Accedi all'unità di rete già mappata in PowerShell


8

Sto eseguendo un'installazione di Windows Server 2012 all'interno di VMWare Workstation. Ho le cartelle condivise abilitate, quindi l'unità Z:è mappata \\vmware-host. Posso accedere correttamente a questa unità in Explorer (posso accedere Z:all'interno del "normale" `cmd) e posso aprire correttamente i file.

Ho aperto PowerShell e ho provato a farlo cd Z:e ho ricevuto il seguente errore:

cd: Impossibile trovare il percorso 'Z: \' perché non esiste.

Perché PowerShell non riesce a trovare l' unità di rete già mappata?

Ho cercato su Google un po 'e ho trovato il New-PSDrivecomando. Ho eseguito il seguente:

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

ma ho ancora lo stesso errore di cui sopra. Cosa devo fare per accedere alle cartelle condivise VMWare all'interno di PowerShell.


Cosa Get-PSDrive -PSProvider FileSystemsegnala quando si apre una nuova console Powershell?
jscott,

@jscott: In una nuova console, vedo A, Ce D. Nella console che ho già aperto, vedo anche Z. Perché la nuova console non viene visualizzata Z?
Rocket Hazmat,

3
Stai eseguendo Powershell elevato? In tal caso, prova a eseguirlo senza "Esegui come amministratore". Sarà necessario mappare nuovamente l'unità se è in esecuzione elevata. stackoverflow.com/questions/4742992/...
jscott

@jscott: funziona come amministratore. Ho anche corso Set-ExecutionPolicy -ExecutionPolicy Unrestricted. Sto usando PowerShell per provare a eseguire uno script da chiamare New-ADUser.
Rocket Hazmat,

@jscott: ho appena eseguito PowerShell come mio utente (non amministratore) ed è stato in grado di accedervi Z:senza problemi.
Rocket Hazmat,

Risposte:


8

Devi rendere disponibile la mappatura dell'unità per l'utente con cui stai eseguendo Powershell. È possibile effettuare le seguenti operazioni per fornire all'utente la stessa mappatura dell'unità:

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

Vedere la seguente domanda SO: Impossibile accedere all'unità di rete in PowerShell in esecuzione come amministratore


Vorrei anche menzionare che Powershell supporta l'uso di PUSHD e POPD (o più formalmente: push-location e pop-location) che potrebbero essere più adatti per mappare temporaneamente un'unità per un'operazione specifica.
Get-HomeByFiveOClock

5

Stai avviando questa console di PowerShell come amministratore o come utente corrente?

Se lo stai eseguendo da un prompt dei comandi non elevato, dovrebbe vedere tutte le unità di rete mappate localmente. Sono nella stessa situazione in cui ti trovi adesso e mi sono x:mappato \\vmware-host\[folder]e Get-PSDrive -PSProvider FileSystemmi mostra tutte le mie unità mappate localmente.

Tuttavia , se avvio questa console come amministratore, non vedo nessuna delle mie unità mappate locali, poiché per un prompt dei comandi con privilegi elevati viene utilizzato un contesto di sicurezza diverso (secondo) per caricare l'applicazione, che non condivide le connessioni di rete.

La buona notizia è che in pratica devi solo mappare l'unità nella console di amministrazione solo una volta e rimarrà in quel contesto di sicurezza (fino al riavvio, credo).

Se si desidera automatizzare ciò, è necessario leggere gli script con caricamento automatico all'avvio di una sessione di PowerShell. Fondamentalmente se si crea una cartella nel proprio My Documentschiamato WindowsPowerShelle all'interno che crea un Microsoft.PowerShell_profile.ps1file, si attiverà ogni volta che si avvia una nuova console PowerShell. Lì puoi aggiungere un net usecomando o aggiungere funzioni personalizzate che hai scritto che desideri utilizzare.

Ad esempio, ne ho uno che trasforma il cursore in rosso per le console amministrative e ha una funzione che posso facilmente chiamare per firmare i miei script PS1.


Sì, è quello che stava succedendo qui. L'unità è stata mappata come mio utente e PowerShell era in esecuzione come amministratore. Sono abituato alle shell Linux, non a PowerShell.
Rocket Hazmat,

Questo è un ottimo consiglio sul prompt della console di amministrazione. Cosa usi nel tuo profilo.ps1 per rilevare se la sessione è elevata o no?
Stib,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.