Get-PSDrive
Hämtar enheter i den aktuella sessionen.
Syntax
Get-PSDrive
[[-Name] <String[]>]
[-Scope <String>]
[-PSProvider <String[]>]
[-UseTransaction]
[<CommonParameters>]
Get-PSDrive
[-LiteralName] <String[]>
[-Scope <String>]
[-PSProvider <String[]>]
[-UseTransaction]
[<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 Windows PowerShell-leverantörer (till exempel enheterna Certificate:, Function:och Alias: ) och HKLM: och HKCU: enheter som exponeras av Windows PowerShell-registerprovidern.
- 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 för 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 kopplas 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 Provider Root
---- -------- ----
Alias Alias
C FileSystem C:\
Cert Certificate \
D 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 enhet (D:) och de enheter som exponeras av Windows PowerShell-leverantörerna (Alias:, Cert:, Env:, Function:, HKCU:, HKLM:och Variable:).
Exempel 2: Hämta en enhet på datorn
PS C:\> Get-PSDrive D
Name Provider Root
---- -------- ----
D 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 Provider Root
---- -------- ----
C FileSystem C:\
D FileSystem D:\
X FileSystem X:\
Y FileSystem \\Server01\Public
Z FileSystem C:\Windows\System32
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 ett 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 mappas till registernyckeln HKLM:\SOFTWARE.
Exempel 5: Jämför typerna av filsystemenheter
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Provider Root
---- -------- ----
C FileSystem C:\
D FileSystem D:\
X FileSystem X:\
Y FileSystem \\Server01\Public
Z FileSystem C:\Windows\System32
PS C:\> net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
X: \\Server01\Public Microsoft Windows Network
PS C:\> [System.IO.DriveInfo]::GetDrives()
Name : C:\
DriveType : Fixed
DriveFormat : NTFS
IsReady : True
AvailableFreeSpace : 39831498752
TotalFreeSpace : 39831498752
TotalSize : 79900368896
RootDirectory : C:\
VolumeLabel :
Name : D:\
DriveType : CDRom
DriveFormat :
IsReady : False
AvailableFreeSpace :
TotalFreeSpace :
TotalSize :
RootDirectory : D:\
VolumeLabel :
Name : X:\
DriveType : Network
DriveFormat : NTFS
IsReady : True
AvailableFreeSpace : 36340559872
TotalFreeSpace : 36340559872
TotalSize : 36413280256
RootDirectory : X:\
VolumeLabel : D_Drive
PS C:\> Get-WmiObject Win32_LogicalDisk
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 39831252992
Size : 79900368896
VolumeName :
DeviceID : D:
DriveType : 5
ProviderName :
FreeSpace :
Size :
VolumeName :
DeviceID : X:
DriveType : 4
ProviderName : \\server01\public
FreeSpace : 36340559872
Size : 36413280256
VolumeName : D_Drive
PS C:\> Get-WmiObject Win32_NetworkConnection
LocalName RemoteName
-------------- ------------
x: \\server01\public
I det här exemplet jämförs de typer av filsystemenheter som visas av Get-PSDrive- med 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 tillfälliga, 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 (X:) som skapades med hjälp av parametern Persist för New-PSDriveoch två tillfälliga Windows PowerShell-enheter (Y: och Z:) som skapades med hjälp av New-PSDrive- utan parametern Persist.
Ett net use-kommando, som visar Windows-mappade nätverksenheter, visar endast X-enheten. Den visar inte Y: och Z: enheter som skapades av New-PSDrive-. Den visar att X: -enheten också är mappad till \\Server01\Public.
Det tredje kommandot använder metoden GetDrives i klassen Microsoft .NET Framework System.IO.DriveInfo. Det här kommandot hämtar Windows-filsystemenheterna, inklusive enhet X:, men det hämtar inte de tillfälliga enheter som skapats av New-PSDrive-.
Det fjärde kommandot använder cmdleten Get-WmiObject för att hämta instanserna av klassen Win32_LogicalDisk. Den returnerar enheterna C:, D:och X: men inte de tillfälliga enheter som skapats av New-PSDrive-.
Det sista kommandot använder cmdleten Get-WmiObject för att visa instanserna av klassen Win32_NetworkConnection. Precis som nettoanvändning returnerar den bara den beständiga X: -enheten som skapades 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 gör att Windows PowerShell inte tolkar några tecken som escape-sekvenser.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Name
Anger, som en strängmatris, namnet eller namnet på enheter som den här cmdleten får i åtgärden. Skriv enhetsnamnet eller bokstaven utan kolon (:).
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-PSProvider
Anger, som en strängmatris, Windows PowerShell-providern. 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.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Scope
Anger i vilken omfattning den här cmdleten hämtar enheterna.
De godtagbara värdena för den här parametern är:
- Global
- Lokal
- Manus
- 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 (https://go.microsoft.com/fwlink/?LinkID=113260).
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-UseTransaction
Innehåller kommandot i den aktiva transaktionen. Den här parametern är endast giltig när en transaktion pågår. Mer information finns i about_Transactions.
Typ: | SwitchParameter |
Alias: | usetx |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
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 Get-PSProvider om du vill visa en lista över 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 autentiseringsuppgifter för en annan användare visas inte i sessioner som startas utan explicita autentiseringsuppgifter eller med den aktuella användarens autentiseringsuppgifter.