Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Problem mit New-PSDrive per Skript - Nach Ende des Skripts werden die erstellten Netzlaufwerke direkt wieder gelöscht

$
0
0

Hallo zusammen,

ich bin PowerShell Frischling, kam aber mit dem Code bisher ziemlich schnell klar. Nun habe ich allerdings direkt schon mein erstes Problem:

Folgendes Szenario:

Ich möchte per Powershell-Skript (dass zu einem späteren Zeitpunkt durch die Aufgabenplanung aufgerufen wird) Netzlaufwerke (auf einem NAS im internen Netzwerk) verbinden.

Bisher machte ich das per NET USE, was mir aber zwischenzeitlich aus verschiedenen Gründen missfällt. Nun habe ich mich in PowerShell eingearbeitet und eine, wie ich finde, für mich zufriedenstellendes Skript zum Verbinden der Netzlaufwerke erstellt. Dazu werden einmalig die Credentials eingelesen und als xml im Nutzerordner abgelegt. Im Skript soll dann beim Systemstart die xml eingelesen und die Netzlaufwerke per New-PSDrive verbunden werden.

Und nun zu dem Problem:

Das Skript funktioniert, wenn ich es Copy&Paste in die Powershell (Version 5.1.14393.576 unter Windows 10) kopiere und abarbeiten lasse. Wenn ich die PowerShell verlasse, bestehen die Netzlaufwerke weiter.

Es funktioniert ebenfalls, wenn ich das Skript aus PowerShell ISE starte.

Es kommt allerdings zu einem mir unerklärbaren Effekt, den ich immerhin eingrenzen konnte, wenn ich die Skriptdatei (*.ps1) ausführen lasse: Starte ich das Skript (z. B. per Verknüpfung oder aus einer Batch-Datei), dann wird es sauber abgearbeitet, die Netzlaufwerke bestehen jedoch nur solange, wie das Skript noch aktiv ist. Zum Testen habe ich ein Start-Sleep 30 an mein Skript gehängt...die Netzlaufwerke bleiben exakt für 30 Sekunden verbunden und trennen sich dann wieder (weder in der PowerShell noch im Windows Explorer kann danach auf diese zugegriffen werden). Quasi der gleiche Effekt, wie ein net use * /del /yes.

Da ich erst mein Skript im Verdacht hatte (diverse Variablen werden übergeben), habe ich es auf ein Minimum reduziert, der Effekt bleibt der gleiche, wenn ich den New-PSDrive Befehl möglichst direkt ausführe. Bei folgendem minimalistischen Skript tritt das Problem also leider bereits auf.

Minimalskript:

$pwNew = Get-Credential
New-PSDrive -name "Z" -psprovider “FileSystem” -Credential $pwNew -root "\\192.168.2.100\Daten" -Persist
Start-Sleep 20

Ich starte das Skript derzeit beispielsweise über eine Batch Datei:

PowerShell.exe -ExecutionPolicy Bypass -Command "& 'C:\Users\Nutzername\Netzlaufwerke\minimal.ps1'"
pause

Sonstiges:

Die Execution Policy hatte ich auf dem PC testweise mal auf unrestricted, was allerdings keine Änderung brachte. Ich denke, wenn es daran liegt, dann dürfte das Skript ja überhaupt nicht starten.

Gibt es sonstige Sicherheitsbeschränkungen, die den Effekt erklären oder ist mir einfach ein ganz großer Schnitzer unterlaufen? Ich habe zwischenzeitlich sehr viel hier in den Foren und auch per google gesucht, aber leider keinen passenden Hinweis gefunden, der mir weiterhelfen könnte :-(





Viewing all articles
Browse latest Browse all 2314