bem0815
Goto Top

SMB Usershares in Loginscript auf Mac OS X

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:

tell application "Finder"  
 try
 mount volume "smb://server-a/freigabe1"  
 mount volume "smb://server-a/freigabe2"  
 mount volume "smb://server-a/freigabe3"  
 mount volume "smb://server-a/freigabe4"  
 mount volume "smb://server-b/freigabe1"  
 mount volume "smb://server-a/usershares/$user"  
 end try
 end tell

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:
 mount volume "smb://server-a/usershares/$user"  

Das klappt so leider auch nicht.

Unter Windows funktioniert das ganze so im Logonscript:
net use Y: \\server-a\usershares\%username%

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

Printed on: April 24, 2024 at 07:04 o'clock

Member: SlainteMhath
SlainteMhath Nov 07, 2018 at 08:21:09 (UTC)
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
Member: Bem0815
Bem0815 Nov 07, 2018 updated at 09:45:34 (UTC)
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 Nov 07, 2018 updated at 14:16:13 (UTC)
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
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

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.

set username to system attribute "USER"  
Member: Bem0815
Bem0815 Nov 07, 2018 at 15:18:53 (UTC)
Goto Top
Danke euch zwei schon mal.

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

set {shortUserName, homeDirectory} to {short user name, POSIX path of home directory} of (system info)
mount volume "smb://server-a/usershares/" & shortUserName  

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.