SMB Usershares in Loginscript auf Mac OS X

bem0815
Goto Top
Hallo zusammen,

ich bin nicht so fit was Mac OS X betrifft, bin eher der Windows User und wir haben in der Firmenumgebung auch sowohl Client- als auch Servermäßig eher Windows im Einsatz.
Unsere Marketingabteilung bestand aber darauf Macs zu bekommen, daher wurden jetzt ein iMac 2017 Model angeschafft.

Integration in die Active Directory Domäne hat soweit geklappt.
Ich stehe aber noch vor einem Problem mit dem Mounten der Netzlaufwerke vom Windows Fileserver.

Imac ist auf Mac OS X Mojave.
Fileserver ist ein SBS 2011.


Das script das beim anmelden automatisch ausgeführt werden soll, sollte verschiedene Netzlaufwerke verbinden.
Je nach Mitarbeiter der sich hier anmeldet hat dieser aber nicht Zugriff auf alle Freigaben die eingebunden werden.

Aktuell ist das Script ganz simple so aufgebaut:


Leider funktioniert das so nicht wirklich, da er mir abbricht sobald er auf eine Freigabe nicht zugreifen kann.

Also z.B. User 1 Meldet sich an und hat Zugriff auf freigabe2 und freigabe3 bricht das script vorher ab weil er keinen Zugriff auf freigabe1 hat.


Kann mir jemand helfen zwei Dinge hier zu verbessern?

-Das Script soll nicht abbrechen wenn auf eine Freigabe nicht zugegriffen werden kann
-Das Script soll keine Fehlermeldung ausgeben wenn auf eine Freigabe nicht zugegriffen werden kann. Dies würde sonst jedesmal auftauchen, da keiner unserer Mitarbeiter Zugriff auf alle diese Freigaben auf einmal hat.

username:password@server-a wird bewusst nicht genutzt, da die Active Directory Zugangsdaten hier genutzt werden sollen.

Was wir auf dem Windows Server auch noch als Freigabe nutzen ist ein eigener Userordner für jeden Benutzer.
Das ist in dem Script der letzte Mount.
Also das:

Das klappt so leider auch nicht.

Unter Windows funktioniert das ganze so im Logonscript:

Nun da in der Apple Welt die Variable für den Username $user ist dachte ich vielleicht klappt es damit, leider jedoch nicht.
Er gibt hier die Rückgabe Ordner unbekannt aus.

Gibt es hier überhaupt die Möglichkeit mit Variablen zu Arbeiten um auf \\server-a\usershares\%username% auf einem Mac zugreifen zu können?


Danke schon mal für die Hilfe.

Gruß
Bem0815

Content-Key: 391900

Url: https://administrator.de/contentid/391900

Ausgedruckt am: 17.08.2022 um 03:08 Uhr

Mitglied: SlainteMhath
SlainteMhath 07.11.2018 um 09:21:09 Uhr
Goto Top
Moin,

setze einfach jeden mount in ein Try..end try, dann sollte das auch nicht bei einem Fehler komplett abbrechen.

Und der angemeldete Anwender steht in der Variable $USER - ja, groß/kleinschreibung spielt eine Rolle face-smile

lg,
Slainte
Mitglied: Bem0815
Bem0815 07.11.2018 aktualisiert um 10:45:34 Uhr
Goto Top
Zitat von @SlainteMhath:

Moin,

setze einfach jeden mount in ein Try..end try, dann sollte das auch nicht bei einem Fehler komplett abbrechen.

Daran dachte ich auch schon, das funktioniert zwar, ich hatte aber gehofft es gibt hier vielleicht eine elegantere Lösung.
Ich habe insgesamt 17 Freigaben die ich einbinden muss, die vielen Try und End Try machen das Script für seinen Zweck dann etwas lang.
Aber zur Not geht das natürlich.


Und der angemeldete Anwender steht in der Variable $USER - ja, groß/kleinschreibung spielt eine Rolle face-smile

Stimmt, UNIX basierendes System, hab ich nicht mehr dran gedacht.
Das funktioniert aber leider auch großgeschrieben nicht.

Kann hier in der Form überhaupt eine Variable Verwendung finden?
Oder gibt es womöglich einen Workaround?

Das Problem mit den Fehlermeldungen hab ich ja leider auch noch, bei 17 Netzwerkfreigaben ploppen mir da sonst leider bei jedem Nutzer einige der Fenster auf.

Gibt es eine Möglichkeit die Fehlermeldung auszublenden oder alternativ vor dem Mounten zu prüfen ob der Zugriff auf die Freigabe möglich ist und nur zu Mounten wenn das der Fall ist?
Mitglied: 137443
137443 07.11.2018 aktualisiert um 15:16:13 Uhr
Goto Top
Zitat von @Bem0815:
Ich habe insgesamt 17 Freigaben die ich einbinden muss, die vielen Try und End Try machen das Script für seinen Zweck dann etwas lang.
Mach eine Foreach Schleife und schreibe die Pfade vorher in ein Array, dann mit der For Schleife über das Array iterieren, dann brauchst du nur ein Try catch.

Etwa (ungetestet) so
<Code>
set myList to {"smb://xxxxxxxxxx", "smb://yyyyyyyy", "smb://zzzzzzzz"}
repeat with itm in myList
tell Application "Finder"
try
mount volume itm
end try
end tell
end repeat
</code>
Nun da in der Apple Welt die Variable für den Username $user ist dachte ich vielleicht klappt es damit, leider jedoch nicht.
Naja das ist ja auch AppleScript und keine Bash.

Mitglied: Bem0815
Bem0815 07.11.2018 um 16:18:53 Uhr
Goto Top
Danke euch zwei schon mal.

Das mit dem Userfolder habe ich nun hinbekommen mit folgendem Script:


Bleibt noch das Problem mit der Fehlermeldung wenn der User keinen Zugriff auf eine Freigabe hat.
Habe hier leider auch im Netz keine brauchbare Info gefunden wie ich die Fehlermeldung ausblenden kann oder eine Prüfung ob der Zugriff möglich ist bevor gemountet wird.

Vielleicht hat hier noch jemand eine Idee.