Windows Netzlaufwerk verbinden mit PowerShell
PowerShell Scripts können genutzt werden um Netzlaufwerke zu Windows-Netzwerkfreigaben auf Server oder NAS Geräte zu erstellen. Dort wo die Batchverarbeitung nicht die geeignete Wahl ist, oder aber Gruppenrichtlinien nicht möglich sind, kann ein PowerShell Script diese Aufgabe erfüllen, beispielsweise bei der Ausführung von Login Scripts bei Remote Clients über VPN, oder Clients diese nicht Mitglied der AD Domäne sind.
PowerShell für Netzlaufwerk Mapping
Das PowerShell Script-Beispiel netdrive.ps1
erstellt die Windows-Netzwerkfreigabe zum Netzlaufwerk Z: für den Benutzer, dabei kann die Anmeldung als ein anderer Benutzer erfolgen, als mit dem man am Client authentifiziert ist.
$LogFile = "netdrive.log"
Get-Date -Format "dd/MM/yyyy HH:mm" | Out-File $LogFile -Force
Write-Host "`nGeben Sie Ihre Anmeldeinformationen ein, um Netzlaufwerke zuzuordnen oder um abzubrechen." -ForegroundColor Yellow
$Cred = Get-Credential -Message "Bitte geben Sie Ihre Anmeldeinformationen ein" -UserName "domain\username"
if ($Cred) {
$sharePath = "\\server\share"
$mapDrive = "Z"
Write-Host "`nMapping network share.." -ForegroundColor White
Add-Content $LogFile -Value "Mapping drive $mapDrive $sharePath"
New-PSDrive -Name $mapDrive -Root $sharePath -Persist -Scope Global -PSProvider "FileSystem" -Credential $Cred | Out-File $LogFile -Append
} else {
Add-Content $LogFile -Value "Es wurden keine Anmeldeinformationen angegeben, Netzlaufwerke werden nicht zugeordnet."
}
Die entsprechende Windows-Netzwerkfreigabe wird in Zeile 6 bei $sharePath
definiert, das Laufwerk wird in Zeile 7 bei $mapDrive
zugewiesen, in dem der jeweilige Platzhalter zwischen den Anführungs- und Schlusszeichen angepasst wird. Sollen weitere Netzlaufwerke erstellt werden, kann in der if
Anweisung die Zeilen 6 – 10 für das nächste Netzlaufwerk kopiert werden, dabei die Variablen zu $sharePath1
und $mapDrive1
benennen.
Nach einfügen der Code Zeilen in eine Datei netdrive.ps1, zum Verzeichnis wechseln in diesem das Script sich befindet und es ausführen.
.\netdrive.ps1
Die Platzhalter domain\username
durch die entsprechende Domäne und Benutzer ersetzen, ohne Domäne einfach leer lassen.

PowerShell Script aus Batch ausführen
Wird bereits eine Batchdatei zB. netlogon.bat
eingesetzt, kann netdrive.ps1
aus der Batchdatei wie folgt ausgeführt werden:
start /wait "" powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File netdrive.ps1
Nach erfolgreicher Anmeldung wird das Netzlaufwerk zur Windows-Netzwerkfreigabe erstellt. Zur Kontrolle wird die Laufwerkszuordnung in der Logdatei netdrive.log
protokolliert.