IT-Administrator-Handbuch (MDM)
Bereitstellung über Mobile Device Management (MDM)
Mit dem Network Share Mounter kannst du Freigaben zentral verwalten, Anwendungseinstellungen erzwingen und Authentifizierungs-Setups über ein standardmäßiges macOS-Konfigurationsprofil verteilen.
Preference Domain: de.fau.rrze.NetworkShareMounter
Um die Konfiguration aller Einstellungsschlüssel zu vereinfachen - ohne eine benutzerdefinierte Konfigurationsprofile manuell im XML-Format erstellen oder bearbeiten zu müssen – stellen wir zwei hilfreiche Dateien zur Verfügung: ein JSON-Manifestschema für Jamf Pro sowie ein Manifest für den iMazing Profile Editor.
Für eine einfache Verteilung der App über AutoPKG stellen wir auch entsprechende Recipes de.fau.rrze.pkg.networkShareMounter zur Verfügung.
1. Das managedNetworkShares Array
Der Kern des Payloads ist das Array managedNetworkShares. Hier definierst du die Freigaben, die du für deine Benutzer einbinden möchtest.
Hinweis: Du kannst die Variable %USERNAME% in Pfaden verwenden, welche automatisch durch den macOS-Anmeldenamen des aktuellen Benutzers ersetzt wird.
<key>managedNetworkShares</key>
<array>
<dict>
<key>networkShare</key>
<string>smb://fileserver.company.local/global</string>
<key>authType</key>
<string>krb</string>
</dict>
<dict>
<key>networkShare</key>
<string>smb://home.company.local/%USERNAME%</string>
<key>authType</key>
<string>password</string>
<!-- NEU in V4: Den lokalen Mount-Point-Namen optional zentral definieren -->
<key>mountPoint</key>
<string>Global-Company-Data</string>
<!-- NEU in V4: Optionaler Anzeigename innerhalb der App -->
<key>displayName</key>
<string>Company Data Global</string>
</dict>
</array>
2. Verfügbare Konfigurationsschlüssel
Nachfolgend findest du eine umfassende Liste aller verfügbaren MDM-Schlüssel, die du verteilen kannst, um das Verhalten der App zu konfigurieren.
| Schlüssel | Typ | Standard | Beschreibung |
|---|---|---|---|
managedNetworkShares | Array of Dict | Array, das Dictionaries für jede Freigabe enthält (benötigt networkShare und authType, optional mountPoint und username). | |
autostart | Boolean | false | Wenn true, wird die App bei der Benutzeranmeldung automatisch gestartet. |
canChangeAutostart | Boolean | true | Wenn false, wird verhindert, dass der Benutzer die Autostart-Option in den Einstellungen umschalten kann. |
canQuit | Boolean | true | Wenn true, darf der Benutzer die App über die Menüleiste beenden. |
unmountOnExit | Boolean | true | Wenn true, werden verwaltete Freigaben beim Beenden der App automatisch getrennt. |
location | String | - | Pfad, in dem Netzwerkfreigaben eingebunden werden. Standard ist ein lokalisierter Ordner im Benutzerhome (~/Netzlaufwerke). Alternative wäre z.B. das setzten in /Volumesmöglich.⚠️ Damit alle Funktionalitäten uneingeschränkt genutzt werden können, empfehlen wir den Wert nicht zu verändern. |
kerberosRealm | String | - | Kerberos/AD-Domäne für die Benutzerauthentifizierung (z.B. EXAMPLE.COM). Aktiviert die automatische AD/Kerberos-Ticketverwaltung. |
helpURL | String | - | URL zum internen Helpdesk oder zur IT-Dokumentation deiner Organisation. |
showMountsInMenu | Boolean | true | Listet eingebundene/getrennte Freigaben direkt in der Menüleiste für schnellen Zugriff auf. |
usernameOverride | String | - | Überschreibt die Variable %USERNAME%. Nützlich, wenn sich der lokale Mac-Benutzername vom AD/Netzwerk-Benutzernamen unterscheidet. |
Hinweis: Das alte networkShares Array aus Version 2 ist veraltet, wird aber aus Gründen der Abwärtskompatibilität weiterhin unterstützt.
3. Anpassung der Menüleiste
Du kannst genau steuern, was der Benutzer in der Menüleiste sieht. Verwende die folgenden Zeichenfolgen-Schlüssel und setze deren Wert entweder auf hidden (entfernt das Element vollständig) oder disabled (graut das Element aus). Wenn ein Schlüssel nicht definiert ist, wird das Menüelement normal angezeigt.
menuConnectSharesmenuDisconnectSharesmenuShowSharesMountDirmenuShowSharesmenuSettingsmenuCheckUpdatesmenuAbout
Beispiel-Payload zum Ausblenden von Einstellungen und Updates:
<key>menuSettings</key>
<string>hidden</string>
<key>menuCheckUpdates</key>
<string>hidden</string>
4. Software-Update-Verwaltung (Sparkle)
Network Share Mounter verwendet das Sparkle-Framework für automatische Updates. In Unternehmensumgebungen möchtest du das normalerweise deaktivieren, um Updates über dein MDM zu verwalten.
| Schlüssel | Typ | Standard | Beschreibung |
|---|---|---|---|
disableAutoUpdateFramework | Boolean | false | Hauptschalter für das Update-Framework. Auf true setzen, um automatische Updates komplett zu deaktivieren. |
automaticallyChecksForUpdates | Boolean | true | Wenn true, wird regelmäßig nach verfügbaren Updates gesucht. |
automaticallyDownloadsUpdates | Boolean | true | Wenn true, werden Updates automatisch. ohne Bestätigung des Benutzers, heruntergeladen und installiert. |
5. Autostart & Hintergrundausführung
Den initialen Autostart auslösen
Aufgrund des macOS-Sicherheitsdesigns muss eine App mindestens einmal geöffnet werden, bevor ihre eigene Autostart-Routine greifen kann. Um eine komplett lautlose Verteilung ohne Benutzerinteraktion zu gewährleisten, kannst du dein MDM (z. B. Jamf Pro) so konfigurieren, dass die App direkt nach der Installation oder beim ersten Login einmalig gestartet wird.
Beispiel Jamf Policy:
- Trigger: Login
- Frequency: Once per user per computer
- Command:
sudo -u $(stat -f%Su /dev/console) open -a "/Applications/Network Share Mounter.app"
Deaktivieren des Autostarts durch Benutzer verhindern (macOS 13+)
Ab macOS 13 (Ventura) können Benutzer Hintergrund-Apps über die Systemeinstellungen jederzeit deaktivieren. Um den Autostart zu erzwingen und zu verhindern, dass Benutzer den Network Share Mounter abschalten, solltest du zusammen mit dem Konfigurationsprofil einen Managed Login Items Payload verteilen:
- Rule Type:
Bundle Identifier - Rule Value:
de.fau.rrze.NetworkShareMounter - Rule Comment:
Prevent disabling Network Share Mounter autostart
6. Steuerung über UNIX-Signale
Der Network Share Mounter kann über UNIX-Signale gesteuert werden. Damit lassen sich alle konfigurierten Freigaben über ein Skript gezielt ein- oder aushängen, ohne die App-Oberfläche zu benutzen. Dies ist besonders nützlich, um in einem Self Service Portal für Nutzende Aufgaben bereitzustellen, die Netzlaufwerke “reparieren” sollen.
Verfügbare Signale
| Signal | Aktion |
|---|---|
SIGUSR1 | Alle Freigaben aushängen (Unmount) |
SIGUSR2 | Alle Freigaben einhängen (Mount) |
Beispiel:
# Unmount aller Freigaben
kill -SIGUSR1 <PID>
# Mount aller Freigaben
kill -SIGUSR2 <PID>
Hinweis: <PID> ist die Prozess-ID des laufenden Network Share Mounter.
7. Bekannte MDM-Probleme
Jamf Pro: Inventar-Update (recon) bleibt hängen
Wenn du den Standard verwendest und Freigaben direkt im Home-Verzeichnis des Benutzers (z. B. ~/Network shares) einbinden lässt, kann die Jamf Pro Inventarisierung (recon) auf unbestimmte Zeit hängen bleiben. Das passiert, weil Jamf versucht, die Speichergröße des gesamten Home-Verzeichnisses zu berechnen, und dabei effektiv alle verbundenen Netzlaufwerke scannt.
Lösung: Gehe in Jamf Pro zu Settings > Computer Management - Management Framework > Inventory Collection und deaktiviere die Option Include home directory sizes. Alternativ kannst du den Standard-Mount-Pfad der App über das MDM-Profil auf ein anderes Verzeichnis ändern.
Network Share Mounter v3
Wenn du noch auf den alten Network Share Mounter (v3, v2, Legacy) angewiesen bist, findest du die Dokumentation in unserem Repository.