Get-PSDrive
Ottiene le unità nella sessione corrente.
Sintassi
Get-PSDrive
[[-Name] <String[]>]
[-Scope <String>]
[-PSProvider <String[]>]
[<CommonParameters>]
Get-PSDrive
[-LiteralName] <String[]>
[-Scope <String>]
[-PSProvider <String[]>]
[<CommonParameters>]
Descrizione
Il cmdlet Get-PSDrive
ottiene le unità nella sessione corrente. È possibile ottenere un'unità specifica o tutte le unità nella sessione.
Questo cmdlet ottiene i tipi di unità seguenti:
- Unità logiche Windows nel computer, incluse le unità mappate alle condivisioni di rete.
- Unità esposte dai provider di PowerShell(ad esempio Certificate:, Function:, Alias: unità) e HKLM: e HKCU: esposte dal provider del Registro di sistema di Windows PowerShell.
- Unità temporanee specificate per la sessione e unità di rete mappate persistenti create usando il cmdlet New-PSDrive.
A partire da Windows PowerShell 3.0, il parametro Persist del cmdlet New-PSDrive
può creare unità di rete mappate salvate nel computer locale e disponibili in altre sessioni. Per altre informazioni, vedere New-PSDrive.
Inoltre, a partire da Windows PowerShell 3.0, quando un'unità esterna è connessa al computer, Windows PowerShell aggiunge automaticamente un PSDrive al file system che rappresenta la nuova unità. Non è necessario riavviare Windows PowerShell. Analogamente, quando un'unità esterna viene disconnessa dal computer, Windows PowerShell elimina automaticamente il PSDrive che rappresenta l'unità rimossa.
Esempio
Esempio 1: Ottenere unità nella sessione corrente
PS C:\> Get-PSDrive
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Alias Alias
C 202.06 23718.91 FileSystem C:\
Cert Certificate \
D 1211.06 123642.32 FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
Questo comando ottiene le unità nella sessione corrente.
L'output mostra l'unità disco rigido (C:), CD-ROM unità (D:) e le unità esposte dai provider di Windows PowerShell (Alias:, Cert:, Env:, Function:, HKCU:, HKLM:e Variable:).
Esempio 2: Ottenere un'unità nel computer
PS C:\foo> Get-PSDrive D
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
D 1211.06 123642.32 FileSystem D:\
Questo comando ottiene l'unità D: nel computer. Si noti che la lettera di unità nel comando non è seguita da due punti.
Esempio 3: Ottenere tutte le unità supportate dal provider di file system di Windows PowerShell
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A A:\
C 202.06 23718.91 FileSystem C:\
D 1211.06 123642.32 FileSystem D:\
G 202.06 710.91 FileSystem \\Music\GratefulDead
Questo comando ottiene tutte le unità supportate dal provider FileSystem di Windows PowerShell. Sono incluse unità fisse, partizioni logiche, unità di rete mappate e unità temporanee create usando il cmdlet New-PSDrive.
Esempio 4: Verificare se un'unità è in uso come nome di unità di Windows PowerShell
if (Get-PSDrive X -ErrorAction SilentlyContinue) {
Write-Host 'The X: drive is already in use.'
} else {
New-PSDrive -Name X -PSProvider Registry -Root HKLM:\SOFTWARE
}
Questo comando verifica se l'unità X è già in uso come nome di unità di Windows PowerShell.
In caso contrario, il comando usa il cmdlet New-PSDrive
per creare un'unità temporanea mappata alla chiave del Registro di sistema HKLM:\SOFTWARE.
Esempio 5: Confrontare i tipi di unità di sistema dei file
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
A A:\
C 202.06 23718.91 FileSystem C:\
D 1211.06 123642.32 FileSystem D:\
G 202.06 710.91 FileSystem \\Music\GratefulDead
X Registry HKLM:\Network
PS C:\> net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
OK G: \\Server01\Public Microsoft Windows Network
PS C:\> [System.IO.DriveInfo]::GetDrives() | Format-Table
Name DriveType DriveFormat IsReady AvailableFreeSpace TotalFreeSpace TotalSize RootDirectory VolumeLabel
---- --------- ----------- ------- ------------------ -------------- --------- ------------- -----------
A:\ Network False A:\
C:\ Fixed NTFS True 771920580608 771920580608 988877418496 C:\ Windows
D:\ Fixed NTFS True 689684144128 689684144128 1990045179904 D:\ Big Drive
E:\ CDRom False E:\
G:\ Network NTFS True 69120000 69120000 104853504 G:\ GratefulDead
PS N:\> Get-CimInstance -Class Win32_LogicalDisk
DeviceID DriveType ProviderName VolumeName Size FreeSpace
-------- --------- ------------ ---------- ---- ---------
A: 4
C: 3 Windows 988877418496 771926069248
D: 3 Big! 1990045179904 689684144128
E: 5
G: 4 \\Music\GratefulDead 988877418496 771926069248
PS C:\> Get-CimInstance -Class Win32_NetworkConnection
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
G: \\Music\GratefulDead Connected OK
In questo esempio vengono confrontati i tipi di unità del file system visualizzate da Get-PSDrive
a quelle visualizzate usando altri metodi. Questo esempio illustra diversi modi per visualizzare le unità in Windows PowerShell e mostra che le unità specifiche della sessione create usando il cmdlet New-PSDrive sono accessibili solo in Windows PowerShell.
Il primo comando usa Get-PSDrive
per ottenere tutte le unità del file system nella sessione. Sono incluse le unità fisse (C: e D:), un'unità di rete mappata (G:) creata usando il parametro persist di New-PSDrive
e un'unità di PowerShell (T:) creata usando New-PSDrive
senza il parametro persist.
Il comando net use visualizza le unità di rete mappate di Windows, in questo caso visualizza solo l'unità G. Non visualizza l'unità X: creata da New-PSDrive
. Mostra che anche l'unità G: è mappata a \\Music\GratefulDead.
Il terzo comando usa il metodo GetDrives della classe System.IO.Drive Info di Microsoft .NET Framework. Questo comando ottiene le unità del file system di Windows, inclusa l'unità G:, ma non ottiene le unità create da New-PSDrive
.
Il quarto comando usa il cmdlet Get-CimInstance
per ottenere le istanze della classe Win32_LogicalDisk. Restituisce le unità A:, C:, D:, E:e G: ma non le unità create da New-PSDrive
.
L'ultimo comando usa il cmdlet Get-CimInstance
per visualizzare le istanze della classe Win32_NetworkConnection. Come net use, restituisce solo l'unità G persistente creata da New-PSDrive
.
Parametri
-LiteralName
Specifica il nome dell'unità.
Il valore di LiteralName viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come caratteri jolly. Se il nome include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a Windows PowerShell di non interpretare alcun carattere come sequenze di escape.
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Name
Specifica, come matrice di stringhe, il nome o il nome delle unità che questo cmdlet ottiene nell'operazione.
Digitare il nome o la lettera dell'unità senza due punti (:
).
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PSProvider
Specifica, come matrice di stringhe, il provider di Windows PowerShell. Questo cmdlet ottiene solo le unità supportate da questo provider. Digitare il nome di un provider, ad esempio FileSystem, Registro di sistema o Certificato.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Scope
Specifica l'ambito in cui questo cmdlet ottiene le unità.
I valori accettabili per questo parametro sono:
- Globale
- Locale
- Copione
- numero relativo all'ambito corrente (da 0 al numero di ambiti, dove 0 è l'ambito corrente e 1 è il relativo elemento padre). "Local" è l'impostazione predefinita.
Per altre informazioni, vedere about_Scopes.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare tramite pipe oggetti a questo cmdlet.
Output
Questo cmdlet restituisce oggetti che rappresentano le unità della sessione.
Note
PowerShell include gli alias seguenti per Get-PSDrive
:
Tutte le piattaforme:
gdr
Questo cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, usare il cmdlet
Get-PSProvider
. Per altre informazioni, vedere about_Providers.Le unità di rete mappate create tramite il parametro Persist del cmdlet New-PSDrive sono specifiche di un account utente. Le unità di rete mappate create nelle sessioni avviate con l'opzione Esegui come amministratore o con le credenziali di un altro utente non sono visibili nelle sessioni avviate senza credenziali esplicite o con le credenziali dell'utente corrente.