Dela via


Get-PSDrive

Hämtar enheter i den aktuella sessionen.

Syntax

Get-PSDrive
   [[-Name] <String[]>]
   [-Scope <String>]
   [-PSProvider <String[]>]
   [<CommonParameters>]
Get-PSDrive
   [-LiteralName] <String[]>
   [-Scope <String>]
   [-PSProvider <String[]>]
   [<CommonParameters>]

Description

Cmdleten Get-PSDrive hämtar enheterna i den aktuella sessionen. Du kan hämta en viss enhet eller alla enheter i sessionen.

Den här cmdleten hämtar följande typer av enheter:

  • Logiska Windows-enheter på datorn, inklusive enheter som mappats till nätverksresurser.
  • Enheter som exponeras av PowerShell-leverantörer (t.ex. enheterna Certificate:, Function:, and Alias: drives) och HKLM: och HKCU: enheter som exponeras av Windows PowerShell Registry-providern.
  • Sessionsdefinierade tillfälliga enheter och beständiga mappade nätverksenheter som du skapar med hjälp av cmdleten New-PSDrive.

Från och med Windows PowerShell 3.0 kan parametern Persist i cmdleten New-PSDrive skapa mappade nätverksenheter som sparas på den lokala datorn och som är tillgängliga i andra sessioner. Mer information finns i New-PSDrive.

Från och med Windows PowerShell 3.0, när en extern enhet är ansluten till datorn, lägger Windows PowerShell automatiskt till en PSDrive i filsystemet som representerar den nya enheten. Du behöver inte starta om Windows PowerShell. På samma sätt, när en extern enhet är frånkopplad från datorn, tar Windows PowerShell automatiskt bort PSDrive som representerar den borttagna enheten.

Exempel

Exempel 1: Hämta enheter i den aktuella sessionen

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

Det här kommandot hämtar enheterna i den aktuella sessionen.

Utdata visar hårddisken (C:), CD-ROM-enheten (D:) och de enheter som exponeras av Windows PowerShell providers (Alias:, Cert:, Env:, Function:, HKCU:, HKLM:, och Variable:).

Exempel 2: Hämta en enhet på datorn

PS C:\foo> Get-PSDrive D

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
D                1211.06     123642.32 FileSystem    D:\

Det här kommandot hämtar D: -enheten på datorn. Observera att enhetsbeteckningen i kommandot inte följs av ett kolon.

Exempel 3: Hämta alla enheter som stöds av Windows PowerShell-filsystemsprovidern

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

Det här kommandot hämtar alla enheter som stöds av Windows PowerShell FileSystem-providern. Detta omfattar fasta enheter, logiska partitioner, mappade nätverksenheter och tillfälliga enheter som du skapar med hjälp av cmdleten New-PSDrive.

Exempel 4: Kontrollera om en enhet används som Windows PowerShell enhetsnamn

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
}

Det här kommandot kontrollerar om X-enheten redan används som ett Windows PowerShell enhetsnamn. Om det inte är det använder kommandot cmdleten New-PSDrive för att skapa en tillfällig enhet som är mappad till registernyckeln HKLM:\SOFTWARE.

Exempel 5: Jämför typerna av filsystemenheter

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

I det här exemplet jämförs de typer av filsystemenheter som visas med Get-PSDrive de som visas med hjälp av andra metoder. Det här exemplet visar olika sätt att visa enheter i Windows PowerShell och visar att sessionsspecifika enheter som skapats med hjälp av cmdleten New-PSDrive endast är tillgängliga i Windows PowerShell.

Det första kommandot använder Get-PSDrive för att hämta alla filsystemenheter i sessionen. Detta inkluderar de fasta enheterna (C: och D:), en mappad nätverksenhet (G:) som skapades med hjälp av parametern Persist i New-PSDriveoch en PowerShell-enhet (T:) som skapades med hjälp New-PSDrive av utan parametern Persist .

Kommandot net use visar Windows-mappade nätverksenheter, i det här fallet visas endast G-enheten. Den visar inte X:-enheten som skapades av New-PSDrive. Det visar att G: -enheten också är mappad till \\Music\GratefulDead.

Det tredje kommandot använder metoden GetDrives i klassen Microsoft .NET Framework System.IO.DriveInfo. Det här kommandot hämtar Windows-filsystemenheter, inklusive enhet G:, men de enheter som skapas av hämtas inte av New-PSDrive.

Det fjärde kommandot använder cmdleten Get-CimInstance för att hämta instanserna av klassen Win32_LogicalDisk . Den returnerar enheterna A:, C:, D:, E:och G: men inte de enheter som skapats av New-PSDrive.

Det sista kommandot använder cmdleten Get-CimInstance för att visa instanserna av klassen Win32_NetworkConnection . Precis som med net use returnerar den bara den beständiga G:-enheten som skapats av New-PSDrive.

Parametrar

-LiteralName

Anger namnet på enheten.

Värdet för LiteralName används exakt som det skrivs. Inga tecken tolkas som jokertecken. Om namnet innehåller escape-tecken omger du det inom enkla citattecken. Enkla citattecken talar om för Windows PowerShell att inte tolka några tecken som escape-sekvenser.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Anger namnet eller namnet på de enheter som cmdleten får i åtgärden som en strängmatris. Skriv enhetsnamnet eller bokstaven utan kolon (:).

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Anger Windows PowerShell providern som en strängmatris. Den här cmdleten hämtar endast de enheter som stöds av den här providern. Ange namnet på en provider, till exempel FileSystem, Registry eller Certificate.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Scope

Anger i vilken omfattning den här cmdleten hämtar enheterna.

De acceptabla värdena för den här parametern är:

  • Global
  • Lokal
  • Skript
  • ett tal i förhållande till det aktuella omfånget (0 genom antalet omfång, där 0 är det aktuella omfånget och 1 är dess överordnade). "Lokal" är standardvärdet.

Mer information finns i about_Scopes.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Indata

None

Du kan inte skicka objekt till den här cmdleten.

Utdata

PSDriveInfo

Den här cmdleten returnerar objekt som representerar enheterna i sessionen.

Kommentarer

  • Den här cmdleten är utformad för att fungera med data som exponeras av alla leverantörer. Använd cmdleten för Get-PSProvider att lista de leverantörer som är tillgängliga i sessionen. Mer information finns i about_Providers.
  • Mappade nätverksenheter som skapas med hjälp av parametern Persist i cmdleten New-PSDrive är specifika för ett användarkonto. Mappade nätverksenheter som du skapar i sessioner som startas med alternativet Kör som administratör eller med en annan användares autentiseringsuppgifter visas inte i sessioner som startas utan uttryckliga autentiseringsuppgifter eller med den aktuella användarens autentiseringsuppgifter.