Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo esempio si applica solo alle piattaforme Windows.
Un'unità di PowerShell è un percorso di archivio dati a cui puoi accedere come a un'unità del file system in PowerShell. I provider di PowerShell creano automaticamente alcune unità, ad esempio le unità del file system (incluso C: e D:), le unità del Registro di sistema (HKCU: e HKLM:) e l'unità certificato (Cert:) ed è possibile creare unità PowerShell personalizzate. Queste unità sono utili, ma sono disponibili solo in PowerShell. Non è possibile accedervi usando altri strumenti di Windows, ad esempio Esplora file o Cmd.exe.
PowerShell usa il sostantivo PSDrive per i comandi che funzionano con le unità di PowerShell. Per un elenco dei dischi di PowerShell nella sessione di PowerShell, usare il cmdlet Get-PSDrive.
Get-PSDrive
Name Provider Root CurrentLocation
---- -------- ---- ---------------
A FileSystem A:\
Alias Alias
C FileSystem C:\ ...And Settings\me
cert Certificate \
D FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
Anche se le unità nello schermo variano rispetto a quelle del tuo sistema, le tue dovrebbero essere simili all'output del comando Get-PSDrive mostrato sopra.
le unità del file system sono un subset delle unità di PowerShell. È possibile identificare le unità del file system dalla voce FileSystem nella colonna Provider. Le unità del file system in PowerShell sono supportate dal provider di PowerShell FileSystem.
Per visualizzare la sintassi del Get-PSDrive cmdlet, digitare un Get-Command comando con il parametro Syntax :
Get-Command -Name Get-PSDrive -Syntax
Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider <String[]>] [-V
erbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-
OutVariable <String>] [-OutBuffer <Int32>]
Il parametro PSProvider consente di visualizzare solo le unità di PowerShell supportate da un provider specifico. Ad esempio, per visualizzare solo le unità di PowerShell supportate dal provider FileSystem di PowerShell, digitare un Get-PSDrive comando con il parametro PSProvider e il valore FileSystem :
Get-PSDrive -PSProvider FileSystem
Name Provider Root CurrentLocation
---- -------- ---- ---------------
A FileSystem A:\
C FileSystem C:\ ...nd Settings\PowerUser
D FileSystem D:\
Per visualizzare le unità di PowerShell che rappresentano hive del Registro di sistema, usare il parametro PSProvider per visualizzare solo le unità di PowerShell supportate dal provider del Registro di sistema di PowerShell:
Get-PSDrive -PSProvider Registry
Name Provider Root CurrentLocation
---- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
È anche possibile usare i cmdlet Location standard con le unità di PowerShell:
Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft
Aggiunta di nuovi drive PowerShell
È possibile aggiungere unità di PowerShell personalizzate usando il New-PSDrive comando . Per ottenere la sintassi per il New-PSDrive comando, immettere il Get-Command comando con il parametro Syntax :
Get-Command -Name New-PSDrive -Syntax
New-[-Description <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug ]
[-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St ring>]
[-OutBuffer <Int32>] [-WhatIf] [-Confirm]
Per creare una nuova unità di PowerShell, è necessario specificare tre parametri:
- Un nome per l'unità (è possibile usare qualsiasi nome valido in PowerShell)
- PSProvider: usare
FileSystemper i percorsi del file system eRegistryper i percorsi del Registro di sistema - Radice, ovvero il percorso della radice della nuova unità
Ad esempio, è possibile creare un'unità Office mappata alla cartella contenente le applicazioni Microsoft Office sul computer, come C:\Program Files\MicrosoftOffice\OFFICE11.
Per creare l'unità, digitare il comando seguente:
New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name Provider Root CurrentLocation
---- -------- ---- ---------------
Office FileSystem C:\Program Files\Microsoft Offic...
Annotazioni
In generale, i percorsi non fanno distinzione tra maiuscole e minuscole.
È possibile accedere a un'unità di PowerShell usando il nome seguito da due punti (:).
Un'unità di PowerShell può rendere molte attività molto più semplici. Ad esempio, alcune delle chiavi più importanti nel Registro di sistema di Windows hanno percorsi estremamente lunghi, rendendo difficile l'accesso e difficile da ricordare. Le informazioni di configurazione critiche si trovano in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Per visualizzare e modificare gli elementi nella chiave del Registro di sistema CurrentVersion, è possibile creare un'unità di PowerShell radicata in tale chiave digitando:
New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name Provider Root CurrentLocation
---- -------- ---- ---------------
cvkey Registry HKLM\Software\Microsoft\Windows\...
È quindi possibile modificare la posizione in cvkey: unità come qualsiasi altra unità:
cd cvkey:
oppure:
Set-Location cvkey: -PassThru
Path
----
cvkey:\
Il New-PSDrive cmdlet aggiunge la nuova unità solo alla sessione di PowerShell corrente. Se si chiude la finestra di PowerShell, la nuova unità viene persa. Per salvare un'unità di PowerShell, usare il Export-Console cmdlet per esportare la sessione di PowerShell corrente e quindi usare il powershell.exe parametro PSConsoleFile per importarlo. In alternativa, aggiungere la nuova unità al profilo di Windows PowerShell.
Eliminazione delle unità di PowerShell
È possibile eliminare le unità da PowerShell usando il Remove-PSDrive cmdlet . Ad esempio, se è stata aggiunta l'unità Office: PowerShell, come illustrato nell'argomento New-PSDrive, è possibile eliminarla digitando:
Remove-PSDrive -Name Office
Per eliminare l'unità cvkey: di PowerShell, usare il comando seguente:
Remove-PSDrive -Name cvkey
Tuttavia, non è possibile eliminarlo mentre si è nell'unità. Per esempio:
cd office:
Remove-PSDrive -Name Office
Remove-PSDrive : Cannot remove drive 'Office' because it is in use.
At line:1 char:15
+ Remove-PSDrive <<<< -Name Office
Aggiunta e rimozione di unità al di fuori di PowerShell
PowerShell rileva le unità del file system aggiunte o rimosse in Windows, tra cui:
- unità di rete mappate
- Unità USB collegate
- Unità eliminate usando il comando
net useo da uno script di Windows Script Host (WSH)