Condividi tramite


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 Get-PSDrive cmdlet ottiene le unità nella sessione corrente. È possibile ottenere una specifica unità o tutte le unità della 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 New-PSDrive cmdlet 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 oggetto 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 l'oggetto 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 tutte le unità della sessione corrente.

L'output mostra il disco rigido (C:), l'unità CD-ROM (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 dai 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 recupera 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 un nome di unità di Windows PowerShell. In caso contrario, il comando usa il New-PSDrive cmdlet 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 tramite 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-PSDrivee un'unità 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 Microsoft .NET Framework System.IO.DriveInfo . 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 Get-CimInstance cmdlet 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 Get-CimInstance cmdlet 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 carattere jolly. Se il nome include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a Windows PowerShell di non interpretare i caratteri 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, Registry o Certificate.

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 validi per questo parametro sono:

  • Generale
  • Locale
  • Script
  • numero relativo all'ambito corrente (da 0 al numero di ambiti, dove 0 è l'ambito corrente e 1 è il relativo elemento padre). Il valore predefinito è "Local".

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

PSDriveInfo

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 Get-PSProvider cmdlet . Per altre informazioni, vedere about_Providers.

  • Le unità di rete mappate create usando 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.