IT-beheerdershandleiding (MDM)

Implementatie via MDM#

Network Share Mounter kan volledig worden geconfigureerd via een standaard macOS-configuratieprofiel. Alle instellingen worden gelezen vanuit het voorkeursdomein de.fau.rrze.NetworkShareMounter.

Om het aanmaken van profielen te vereenvoudigen, bieden we een JSON-manifestschema voor Jamf Pro en een manifest voor de iMazing Profile Editor.

Voor distributie via AutoPKG zijn recepten beschikbaar op de.fau.rrze.pkg.networkShareMounter.


1. Beheerde netwerkshares (managedNetworkShares)#

De array managedNetworkShares definieert welke netwerkshares centraal worden uitgerold naar gebruikers. Elke vermelding is een dictionary met de volgende sleutels:

SleutelTypeVerplichtBeschrijving
networkShareString✓De URL van de share, bijv. smb://fileserver.example.com/share. De plaatshouder %USERNAME% wordt tijdens uitvoering vervangen door de macOS-aanmeldnaam van de gebruiker.
authTypeString✓Authenticatiemethode: krb (Kerberos/SSO), pwd (gebruikersnaam + wachtwoord) of guest. Standaard: krb.
mountPointStringVervangt de naam van de lokale map die als koppelpunt wordt gebruikt. Alleen relevant wanneer de koppellocatie niet /Volumes is. Leeg laten om de sharenaam te gebruiken.
usernameStringStelt vooraf een gebruikersnaam in voor shares van het type pwd. Als weggelaten, wordt de gebruiker hierom gevraagd.
externalKerberosManagementStringInstellen op "true" als Kerberos-tickets voor deze share extern worden beheerd (AD-binding, Jamf Connect, Apple SSO Extension). NSM koppelt de share zonder tussenkomst in het ticketbeheer en toont geen waarschuwing «profiel vereist». Alleen relevant voor authType: krb.
kerberosRealmStringPer-share overschrijving van het Kerberos-realm. Gebruikt samen met externalKerberosManagement om te identificeren welk extern profiel moet worden toegewezen. Gebruikt standaard de globale instelling kerberosRealm.
autoMountString"true" (standaard): de share wordt automatisch gekoppeld bij opstarten en bij netwerkwijzigingen. "false": de share verschijnt in het menu maar wordt nooit automatisch gekoppeld — de gebruiker kan dit op aanvraag doen.

Voorbeeldpayload:

<key>managedNetworkShares</key>
<array>
    <!-- Kerberos-share, automatisch gekoppeld, extern ticketbeheer -->
    <dict>
        <key>networkShare</key>
        <string>smb://fileserver.example.com/global</string>
        <key>authType</key>
        <string>krb</string>
        <key>externalKerberosManagement</key>
        <string>true</string>
    </dict>
    <!-- Wachtwoordshare met gebruikersspecifieke homedirectory, alleen handmatig koppelen -->
    <dict>
        <key>networkShare</key>
        <string>smb://home.example.com/%USERNAME%</string>
        <key>authType</key>
        <string>pwd</string>
        <key>mountPoint</key>
        <string>My Home Drive</string>
        <key>autoMount</key>
        <string>false</string>
    </dict>
</array>

Opmerking: de verouderde networkShares-array uit versie 2 wordt nog geaccepteerd voor achterwaartse compatibiliteit, maar mag niet worden gebruikt in nieuwe profielen.


2. Authenticatie en Kerberos#

Deze sleutels configureren hoe NSM Kerberos-tickets en gebruikersidentiteit beheert.

SleutelTypeStandaardBeschrijving
kerberosRealmString—Kerberos/AD-domein voor gebruikersauthenticatie (bijv. EXAMPLE.COM). Wanneer ingesteld, beheert NSM automatisch het verkrijgen en vernieuwen van Kerberos-tickets. Vereist voor app-beheerde Kerberos-SSO.
kerberosProfileDisplayNameString—Beschrijvende weergavenaam voor het Kerberos-authenticatieprofiel in de app-instellingen. Als niet ingesteld, wordt de realmnaam (bijv. EXAMPLE.COM) direct gebruikt. Nuttig wanneer een leesbare naam zoals "Bedrijfsnetwerk" de voorkeur heeft boven de technische realmreeks.
usernameOverrideString—Vervangt de variabele %USERNAME% in sharepaden. Gebruiken wanneer de lokale macOS-aanmeldnaam verschilt van de AD- of netwerknaam.

Beheer van wachtwoordvervaldatum#

Wanneer NSM zelf bij Kerberos aanmeldt (kerberosRealm is ingesteld en de shares gebruiken geen externalKerberosManagement), kan NSM gebruikers waarschuwen voordat hun AD-wachtwoord verloopt. De waarschuwingen staan standaard aan: beide drempelwaarden zijn 14 dagen, dus ze verschijnen ook zonder configuratie. Accounts waarvan het wachtwoord nooit verloopt, krijgen geen waarschuwing.

SleutelTypeStandaardBeschrijving
ExpirationCountdownStartDayInteger14Passieve waarschuwing. Aantal dagen vóór het verlopen van het wachtwoord waarop een aftelitem in de menubalk verschijnt. De gebruiker ziet het alleen bij het openen van het menu, zonder onderbreking van het werk. 0 schakelt alle waarschuwingen over het verlopen van het wachtwoord uit, dus het aftellen en het dialoogvenster. Komt overeen met de gelijknamige sleutel van de Apple Kerberos SSO Extension.
ExpirationNotificationStartDayInteger14Actieve waarschuwing. Aantal dagen vóór het verlopen van het wachtwoord waarop automatisch een dialoogvenster verschijnt, hoogstens één keer per kalenderdag. Het dialoogvenster begint nooit vóór het aftellen: is deze waarde hoger dan ExpirationCountdownStartDay, dan begint het dialoogvenster samen met het aftellen. 0 schakelt alleen het dialoogvenster uit, het aftellen blijft (vanaf versie 4.1.6). Komt overeen met de gelijknamige sleutel van Jamf Connect en de Apple Kerberos SSO Extension.
passwordChangeURLString—URL van een webgebaseerde selfserviceportal voor wachtwoorden (SSPR). Als ingesteld, verschijnt in het vervaldialoogvenster een knop Wachtwoord wijzigen die deze URL opent in de standaardbrowser. Als niet ingesteld, kan de gebruiker het wachtwoord direct in de app wijzigen (vereist kerberosRealm).
allowPasswordChangeBooleanfalseWanneer true, wordt permanent een item Wachtwoord wijzigen… weergegeven in de menubalk, zelfs voordat de vervaldatumdrempel is bereikt. Het verandert automatisch in de vervaldatumaftelling wanneer de drempel is bereikt. Als ook passwordChangeURL is ingesteld, opent klikken die URL in plaats van het ingebouwde dialoogvenster. Komt overeen met de gelijknamige sleutel van de Apple Kerberos SSO Extension.

Gangbare instellingen:

DoelInstelling
Geen waarschuwingen over het verlopen van het wachtwoordExpirationCountdownStartDay = 0
Alleen aftellen in het menu, geen dialoogvensterExpirationNotificationStartDay = 0 (vanaf versie 4.1.6)
Aftellen vanaf 14 dagen, dialoogvenster vanaf 7 dagenExpirationCountdownStartDay = 14, ExpirationNotificationStartDay = 7

3. Automatisch opstarten en levenscyclus van de app#

Deze sleutels bepalen of de app automatisch wordt gestart bij aanmelding en hoe deze zich gedraagt bij afsluiten.

SleutelTypeStandaardBeschrijving
autostartBooleanfalseWanneer geïmplementeerd als vergrendelde MDM-sleutel, wordt de waarde bij elke start van de app afgedwongen. Wanneer geïmplementeerd als niet-vergrendelde standaardwaarde, wordt deze alleen bij de eerste start toegepast — daarna behoudt de gebruiker de controle.
canChangeAutostartBooleantrueBepaalt alleen de zichtbaarheid van de schakelaar voor automatisch opstarten in de app-instellingen. Instellen op false om deze grijs weer te geven. Heeft geen invloed op MDM-handhaving. Om de autostart-status bij elke start af te dwingen, autostart als vergrendelde sleutel implementeren.
canQuitBooleantrueWanneer true, kan de gebruiker de app afsluiten via de menubalk. Instellen op false om het item Stoppen volledig te verwijderen.
unmountOnExitBooleantrueWanneer true, worden alle beheerde shares automatisch ontkoppeld bij het afsluiten van de app.

Hoe autostart-handhaving werkt (macOS 13+)#

NSM gebruikt Apple’s SMAppService-API om zichzelf te registreren als aanmeldingsitem. macOS beheert dit als een LaunchAgent in /Library/LaunchAgents/de.fau.rrze.NetworkShareMounter.plist (eigendom van root). Dit is standaard macOS-gedrag, met de volgende implicaties voor MDM-beheerders:

  • Het osascript-commando tell application "System Events" to delete login item "…" werkt niet voor via SMAppService geregistreerde items. System Events beheert alleen aanmeldingsitems van het oude gebruikerstype.
  • Wanneer autostart = false wordt afgedwongen via een vergrendelde MDM-sleutel, roept NSM bij elke start SMAppService.unregister() aan en verwijdert macOS het LaunchAgent-bestand automatisch.
  • Als u automatisch opstarten beheert via een eigen LaunchAgent of payload voor aanmeldingsitems, stel autostart = false in als vergrendelde sleutel om te voorkomen dat NSM een conflicterend aanmeldingsitem registreert.

Voorkomen dat gebruikers automatisch opstarten uitschakelen#

macOS 13 (Ventura) en latere versies laten gebruikers achtergrond-apps vrijelijk uitschakelen via Systeeminstellingen. Om het automatisch opstarten af te dwingen en te voorkomen dat gebruikers NSM uitschakelen, implementeer een Managed Login Items-payload naast uw configuratieprofiel:

  • Rule Type: Bundle Identifier
  • Rule Value: de.fau.rrze.NetworkShareMounter

Het initiële automatisch opstarten activeren#

Vanwege het beveiligingsontwerp van macOS moet een app minstens één keer worden geopend voordat de registratie van het aanmeldingsitem van kracht wordt. Voor een stille implementatie zonder gebruikersinteractie configureert u uw MDM om NSM eenmalig te starten direct na installatie of bij de eerste aanmelding.

Voorbeeld Jamf-beleid:

  • Trigger: Login
  • Frequency: Once per user per computer
  • Command: sudo -u $(stat -f%Su /dev/console) open -a "/Applications/Network Share Mounter.app"

4. Gebruikersinterface#

Deze sleutels bepalen de koppellocatie, het uiterlijk van de menubalk en welke menu-items toegankelijk zijn voor gebruikers.

SleutelTypeStandaardBeschrijving
locationString—Pad waar netwerkshares worden gekoppeld. De standaard is een gelokaliseerde map in de homedirectory van de gebruiker (bijv. ~/Network Shares). ⚠️ Het wordt sterk aanbevolen dit veld leeg te laten en de standaard te gebruiken. Wijzigen kan de Finder-integratie breken.
cleanupLocationDirectoryBooleanfalseWanneer true, verwijdert NSM bestanden en lege mappen op de koppellocatie die het koppelen van een share zouden verhinderen. Lees de documentatie zorgvuldig voordat u dit inschakelt — deze optie wijzigt het bestandssysteem van de gebruiker.
showMountsInMenuBooleantrueWanneer true, worden gekoppelde en niet-gekoppelde shares afzonderlijk weergegeven in de menubalk voor snelle toegang met één klik.
helpURLString—URL naar de interne helpdesk of IT-documentatie van uw organisatie. Wanneer ingesteld, verschijnt in de menubalk het item Over Network Share Mounter dat deze URL opent in de standaardbrowser.
disableDiagnosticsBooleanfalseWanneer true, wordt de sectie Diagnose (de schakelaar “Anonieme diagnostische gegevens verzenden” en de verborgen debug-logexporttool) verborgen in Instellingen → Algemeen.

Aanpassen van menubalkitems#

U kunt afzonderlijke menubalkitems weergeven, verbergen of uitschakelen met de volgende sleutels. Stel de waarde in op hidden om het item volledig te verwijderen, of op disabled om het grijs weer te geven zonder het te verwijderen. Als een sleutel niet is gedefinieerd, wordt het item normaal weergegeven.

SleutelBepaalt
menuConnectSharesActie Shares koppelen
menuDisconnectSharesActie Shares ontkoppelen
menuShowSharesMountDirGekoppelde shares weergeven (opent de koppelmap in Finder)
menuShowSharesAfzonderlijke share-items in de lijst
menuSettingsItem Voorkeuren…
menuCheckUpdatesItem Controleren op updates…
menuAboutItem Over Network Share Mounter (alleen zichtbaar als helpURL is ingesteld)
menuQuitItem Network Share Mounter stoppen

Voorbeeld — Instellingen en Updates verbergen voor gebruikers:

<key>menuSettings</key>
<string>hidden</string>
<key>menuCheckUpdates</key>
<string>hidden</string>

5. Softwareupdatebeheer#

NSM gebruikt het Sparkle-framework voor automatische updates. In beheerde omgevingen is het doorgaans aan te raden dit uit te schakelen en updates via MDM te beheren.

SleutelTypeStandaardBeschrijving
disableAutoUpdateFrameworkBooleanfalseHoofdschakelaar. Instellen op true om het Sparkle-updateframework volledig uit te schakelen. Wanneer uitgeschakeld, worden geen updatecontroles uitgevoerd en wordt het item Controleren op updates verwijderd.
SUEnableAutomaticChecksBooleantrueWanneer het framework is ingeschakeld, bepaalt dit of NSM actief op de achtergrond naar nieuwe versies zoekt. Instellen op false om controles te onderdrukken terwijl het framework geladen blijft.
SUAutomaticallyUpdateBooleantrueWanneer true, worden updates automatisch gedownload en geïnstalleerd zonder de gebruiker om bevestiging te vragen. Heeft alleen effect wanneer SUEnableAutomaticChecks ook true is.

Opmerking: de verouderde sleutel enableAutoUpdater (omgekeerde logica) wordt nog geaccepteerd en automatisch gemigreerd bij de eerste start. Gebruik disableAutoUpdateFramework in alle nieuwe profielen.


6. Scripting en automatisering#

NSM reageert op UNIX-signalen, waardoor externe scripts koppel- en ontkoppelbewerkingen kunnen activeren zonder de app-interface te gebruiken. Dit is nuttig voor self-serviceportal-workflows waarbij gebruikers netwerkschijven kunnen «repareren».

SignaalActie
SIGUSR1Alle shares ontkoppelen
SIGUSR2Alle shares koppelen

Voorbeeld:

# PID opvragen
NSM_PID=$(pgrep -x "Network Share Mounter")

# Alle shares ontkoppelen
kill -SIGUSR1 "$NSM_PID"

# Alle shares koppelen
kill -SIGUSR2 "$NSM_PID"

7. Bekende problemen en compatibiliteit#

Jamf Pro: inventarisatie (recon) blijft hangen

Wanneer shares worden gekoppeld in de homedirectory van de gebruiker (standaardgedrag), kan het Jamf Pro-inventarisatieproces (recon) onbepaald blijven hangen. Dit gebeurt omdat Jamf probeert de totale grootte van de homedirectory te berekenen, waardoor alle gekoppelde netwerkshares worden doorzocht.

Oplossing: Ga in Jamf Pro naar Settings > Computer Management - Management Framework > Inventory Collection en schakel Include home directory sizes uit. U kunt ook de sleutel location instellen op een pad buiten de homedirectory, zoals /Volumes.

Domeingebaseerde DFS-namespaces (smb://example.com/share)

Kerberos-shares die naar de domeinnaam wijzen in plaats van naar een bestandsserver kunnen mislukken met “invalid credentials”, ook al heeft de gebruiker een geldig Kerberos-ticket. Active Directory heeft meestal geen service principal voor de domeinnaam zelf (cifs/example.com). Een servernaam zoals smb://fileserver.example.com/share werkt, maar bindt gebruikers aan één server.

Oplossing: Vanaf macOS 26.5 kunnen Macs die niet aan Active Directory zijn gekoppeld DFS-namespaces via de domeincontrollers oplossen. Verspreid /etc/nsmb.conf met de volgende inhoud, bijvoorbeeld als script of pakket via je MDM, en behoud de domeingebaseerde URL in managedNetworkShares:

[default]
srv_lookup_enabled=yes

Meer informatie over deze instelling vind je in de documentatie van Apple: https://support.apple.com/en-mz/guide/deployment/depd1a7cad1f/web

Platform SSO met een on-premises Active Directory

Met Platform SSO (Microsoft Entra ID) krijgt een Mac standaard alleen een Kerberos-ticket voor de cloud (tgt_cloud). Dat is niet bruikbaar voor lokale bestandsservers, waardoor Kerberos-shares mislukken met “invalid credentials”, ook al is er een ticket aanwezig.

Oplossing: Schakel Microsoft Entra Kerberos in, zodat Platform SSO ook een ticket voor het lokale domein levert (tgt_ad), en schakel Use TGT from Platform SSO for Kerberos requests in de payload van de Kerberos SSO-extensie in. Markeer de shares met externalKerberosManagement, zodat NSM deze tickets gebruikt. Of beide tickets aanwezig zijn, kun je in Terminal controleren met app-sso platform -s (sectie “User Configuration”).


Network Share Mounter v3#

Als u nog afhankelijk bent van de verouderde Network Share Mounter (v3/v2), is de documentatie beschikbaar in onze repository.