Greifen Sie in PowerShell auf das bereits zugeordnete Netzwerklaufwerk zu

8

Ich führe eine Windows Server 2012-Installation in VMWare Workstation aus. Ich habe freigegebene Ordner aktiviert, daher ist das Laufwerk Z:zugeordnet \\vmware-host. Ich kann im Explorer korrekt auf dieses Laufwerk zugreifen (ich kann Z:innerhalb des "normalen" `cmd zugreifen ) und ich kann Dateien ordnungsgemäß öffnen.

Ich habe PowerShell geöffnet und versucht, dies zu cd Z:tun. Dabei wurde der folgende Fehler angezeigt:

cd: Pfad 'Z: \' kann nicht gefunden werden, da er nicht vorhanden ist.

Warum kann PowerShell das bereits zugeordnete Netzwerklaufwerk nicht finden ?

Ich googelte ein bisschen und fand den New-PSDriveBefehl. Ich habe folgendes ausgeführt:

New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'

aber ich bekomme immer noch den gleichen Fehler wie oben. Was muss ich tun, um auf die freigegebenen VMWare-Ordner in PowerShell zuzugreifen?

Rakete Hazmat
quelle
Was wird Get-PSDrive -PSProvider FileSystemgemeldet, wenn Sie eine neue Powershell-Konsole öffnen?
Jscott
@jscott: In einer neuen Konsole, wie ich sehe A, Cund D. In der Konsole habe ich schon geöffnet, ich sehe auch Z. Warum wird die neue Konsole nicht angezeigt Z?
Rocket Hazmat
3
Laufen Sie Powershell erhöht? Wenn ja, versuchen Sie es bitte ohne "Als Administrator ausführen". Sie müssten das Laufwerk neu zuordnen, wenn es erhöht ausgeführt wird. stackoverflow.com/questions/4742992/…
jscott
@jscott: Es läuft als Administrator. Ich bin auch gelaufen Set-ExecutionPolicy -ExecutionPolicy Unrestricted. Ich verwende PowerShell, um zu versuchen, ein Skript zum Aufrufen auszuführen New-ADUser.
Rocket Hazmat
@jscott: Ich habe PowerShell gerade als mein Benutzer (nicht als Administrator) ausgeführt und konnte problemlos darauf zugreifen Z:.
Rocket Hazmat

Antworten:

8

Sie müssen die Laufwerkszuordnung dem Benutzer zur Verfügung stellen, unter dem Sie ausgeführt Powershellwerden. Sie können Folgendes tun, um diesem Benutzer dieselbe Laufwerkszuordnung zu geben:

net use Z: "\\vmware-host\Shared Folders"

Siehe folgende SO-Frage: In PowerShell, das als Administrator ausgeführt wird, kann nicht auf das Netzwerklaufwerk zugegriffen werden

jscott
quelle
Darf ich auch erwähnen, dass Powershell die Verwendung von PUSHD und POPD (oder formeller: Push-Location und Pop-Location) unterstützt, die möglicherweise besser geeignet sind, um ein Laufwerk für eine bestimmte Operation vorübergehend zuzuordnen.
Get-HomeByFiveOClock
5

Starten Sie diese PowerShell-Konsole als Administrator oder als aktueller Benutzer?

Wenn Sie es an einer nicht erhöhten Eingabeaufforderung ausführen, sollten alle lokal zugeordneten Netzlaufwerke angezeigt werden. Ich bin gerade in der gleichen Situation wie Sie und habe eine x:Zuordnung vorgenommen. \\vmware-host\[folder]A Get-PSDrive -PSProvider FileSystemzeigt mir alle meine lokal zugeordneten Laufwerke.

Allerdings , wenn ich diese Konsole als Administrator starten, wird es nicht von meinem lokalen zugeordneten Laufwerk sehen, wie bei einer erhöhten Eingabeaufforderung eine andere (zweite) Sicherheitskontext verwendet wird , um die Anwendung zu laden, die keine Verbindungen Aktie Netzwerk der Fall ist.

Die gute Nachricht ist, dass Sie das Laufwerk in der Administratorkonsole im Grunde nur einmal zuordnen müssen und es in diesem Sicherheitskontext bleibt (bis zu einem Neustart, glaube ich).

Wenn Sie dies automatisieren möchten, sollten Sie sich beim Starten einer Powershell-Sitzung über das automatische Laden von Skripten informieren. Wenn Sie in Ihrem My Documentsangerufenen WindowsPowerShellund darin enthaltenen Ordner einen Ordner erstellen, der eine Microsoft.PowerShell_profile.ps1Datei erstellt, wird dieser grundsätzlich jedes Mal ausgelöst, wenn Sie eine neue Powershell-Konsole starten. Dort können Sie einen net useBefehl hinzufügen oder benutzerdefinierte Funktionen hinzufügen, die Sie geschrieben haben und die Sie verwenden möchten.

Zum Beispiel habe ich eine, die meinen Cursor für Administrationskonsolen rot färbt, und eine Funktion, die ich einfach aufrufen kann, um meine PS1-Skripte zu signieren.

Mark Henderson
quelle
Ja, das war hier los. Das Laufwerk wurde als mein Benutzer zugeordnet, und die PowerShell wurde als Administrator ausgeführt. Ich bin an Linux-Shells gewöhnt, nicht an PowerShell.
Rocket Hazmat
Das ist ein wirklich guter Tipp für die Eingabeaufforderung der Administratorkonsole. Was verwenden Sie in Ihrer profile.ps1, um festzustellen, ob die Sitzung erhöht ist oder nicht?
Stib