Hantera Windows PowerShell-enheter

En Windows PowerShell enhet är en datalagerplats som du kan komma åt som en filsystemenhet i Windows PowerShell. De Windows PowerShell-leverantörerna skapar vissa enheter åt dig, till exempel filsystemenheterna (inklusive C: och D:), registerenheterna (HKCU: och HKLM:) och certifikatenheten (Cert:) och du kan skapa dina egna Windows PowerShell-enheter. Dessa enheter är mycket användbara, men de är bara tillgängliga inom Windows PowerShell. Du kan inte komma åt dem med andra Windows verktyg, till exempel Utforskaren eller Cmd.exe.

Windows PowerShell använder substantivet PSDrive för kommandon som fungerar med Windows PowerShell enheter. En lista över de Windows PowerShell enheterna i din Windows PowerShell-session använder du Get-PSDrive cmdleten .

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

Även om enheterna på skärmen varierar beroende på enheterna i systemet, kommer listan att se ut ungefär som utdata från Get-PSDrive kommandot som visas ovan.

Filsystemenheter är en delmängd Windows PowerShell enheter. Du kan identifiera filsystemenheterna med posten FileSystem i kolumnen Provider. (Filsystemenheterna i Windows PowerShell stöds av Windows PowerShell FileSystem.)

Om du vill se syntaxen för Get-PSDrive cmdleten skriver du ett Get-Command kommando med parametern 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>]

Med parametern PSProvider kan du endast visa Windows PowerShell enheter som stöds av en viss provider. Om du till exempel bara vill Windows PowerShell enheter som stöds av Windows PowerShell FileSystem-providern, skriver du ett kommando med Get-PSDrive parametern PSProvider och FileSystem-värdet:

Get-PSDrive -PSProvider FileSystem
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
C          FileSystem    C:\                           ...nd Settings\PowerUser
D          FileSystem    D:\

Om du vill Windows PowerShell enheter som representerar registreringsdatafiler använder du parametern PSProvider för att endast visa de Windows PowerShell-enheter som stöds av Windows PowerShell Registry-providern:

Get-PSDrive -PSProvider Registry
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE

Du kan också använda standard cmdletarna Location (Plats) med Windows PowerShell enheter:

Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft

Lägga till Windows PowerShell enheter (New-PSDrive)

Du kan lägga till Windows PowerShell enheter med hjälp av New-PSDrive kommandot . Hämta syntaxen för kommandot New-PSDrive genom att ange kommandot med Get-Command parametern Syntax:

Get-Command -Name New-PSDrive -Syntax

New-[-Descript
ion <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug
] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St
ring>] [-OutBuffer <Int32>] [-WhatIf] [-Confirm]

Om du vill skapa Windows PowerShell enhet måste du ange tre parametrar:

  • Ett namn på enheten (du kan använda ett giltigt Windows PowerShell namn)

  • PSProvider (använd "FileSystem" för filsystemplatser och "Register" för registerplatser)

  • Roten, det vill säga sökvägen till roten på den nya enheten

Du kan till exempel skapa en enhet med namnet "Office" som är mappad till mappen som innehåller Microsoft Office program på datorn, till exempel C:\Program Files\MicrosoftOffice\OFFICE11 . Skriv följande kommando för att skapa enheten:

New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...

Anteckning

I allmänhet är sökvägar inte fallkänsliga.

Du refererar till den Windows PowerShell enheten när du gör alla Windows PowerShell enheter – efter dess namn följt av ett kolon ( : ).

En Windows PowerShell enhet kan göra många uppgifter mycket enklare. Några av de viktigaste nycklarna i Windows register har till exempel extremt långa sökvägar, vilket gör dem besvärliga att komma åt och svåra att komma ihåg. Viktig konfigurationsinformation finns under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion . Om du vill visa och ändra objekt i registernyckeln CurrentVersion kan du skapa en Windows PowerShell som är rotad i nyckeln genom att skriva:

New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
cvkey      Registry      HKLM\Software\Microsoft\Windows\...

Du kan sedan ändra plats till cvkey:-enheten precis som vilken annan enhet som helst:

cd cvkey:

eller:

Set-Location cvkey: -PassThru
Path
----
cvkey:\

Den New-PsDrive cmdleten lägger endast till den nya enheten i den Windows PowerShell sessionen. Om du stänger Windows PowerShell-fönstret går den nya enheten förlorad. Om du vill Windows PowerShell en enhet använder du cmdleten Export-Console för att exportera den aktuella Windows PowerShell-sessionen och använder sedan parametern PowerShell.exe PSConsoleFile för att importera den. Du kan också lägga till den nya enheten Windows PowerShell enhetsprofilen.

Ta Windows PowerShell enheter (Remove-PSDrive)

Du kan ta bort enheter från Windows PowerShell med hjälp av Remove-PSDrive cmdleten . Cmdleten är enkel att använda. Om du vill ta bort en Windows PowerShell enhet behöver du bara Remove-PSDrive ange Windows PowerShell enhetsnamnet.

Om du till exempel har lagt till Office: Windows PowerShell enhet, som du ser i avsnittet, kan du New-PSDrive ta bort den genom att skriva:

Remove-PSDrive -Name Office

Om du vill ta bort cvkey: Windows PowerShell enhet, som även New-PSDrive visas i avsnittet, använder du följande kommando:

Remove-PSDrive -Name cvkey

Det är enkelt att ta bort en Windows PowerShell enhet, men du kan inte ta bort den när du är på enheten. Ett exempel:

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

Lägga till och ta bort enheter utanför Windows PowerShell

Windows PowerShell identifierar filsystemenheter som läggs till eller tas bort i Windows, inklusive nätverksenheter som är mappade, USB-enheter som är anslutna och enheter som tas bort med hjälp av kommandot net use eller WScript.NetworkMapNetworkDrive och RemoveNetworkDrive från ett WSH-skript (Windows Script Host).