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).