Hantera PowerShell-enheter
Det här exemplet gäller endast för Windows-plattformar.
En PowerShell-enhet är en datalagerplats som du kan komma åt som en filsystemenhet i PowerShell. PowerShell-leverantörerna skapar några enheter åt dig, till exempel filsystemenheterna (inklusive C:
och D:
), registerenheterna (HKCU:
och HKLM:
) och certifikatenheten (Cert:
), och du kan skapa egna PowerShell-enheter. De här enheterna är användbara, men de är bara tillgängliga i PowerShell. Du kan inte komma åt dem med andra Windows-verktyg, till exempel Istraživač datoteka eller Cmd.exe
.
PowerShell använder substantiv, PSDrive, för kommandon som fungerar med PowerShell-enheter. En lista över PowerShell-enheterna i PowerShell-sessionen finns i cmdleten Get-PSDrive
.
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 i displayen varierar med enheterna i systemet bör dina se ut ungefär som utdata från Get-PSDrive
kommandot som visas ovan.
filesystem-enheter är en delmängd av PowerShell-enheterna. Du kan identifiera filsystemenheterna med posten FileSystem i kolumnen Provider. Filsystemenheterna i PowerShell stöds av PowerShell FileSystem-providern.
Om du vill se cmdletens Get-PSDrive
syntax skriver du ett Get-Command
kommando med syntaxparametern:
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 de PowerShell-enheter som stöds av en viss provider. Om du till exempel bara vill visa de PowerShell-enheter som stöds av PowerShell FileSystem-providern skriver du ett Get-PSDrive
kommando med 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 visa De PowerShell-enheter som representerar registerdatafiler använder du parametern PSProvider för att endast visa de PowerShell-enheter som stöds av PowerShell-registerprovidern:
Get-PSDrive -PSProvider Registry
Name Provider Root CurrentLocation
---- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Du kan också använda standard-plats-cmdletar med PowerShell-enheterna:
Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft
Lägga till nya PowerShell-enheter
Du kan lägga till egna PowerShell-enheter med hjälp New-PSDrive
av kommandot . Om du vill hämta syntaxen New-PSDrive
för kommandot anger du Get-Command
kommandot med syntaxparametern:
Get-Command -Name New-PSDrive -Syntax
New-[-Description <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug ]
[-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St ring>]
[-OutBuffer <Int32>] [-WhatIf] [-Confirm]
Om du vill skapa en ny PowerShell-enhet måste du ange tre parametrar:
- Ett namn på enheten (du kan använda valfritt giltigt PowerShell-namn)
- PSProvider – används
FileSystem
för filsystemplatser ochRegistry
för registerplatser - Roten, det vill: 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 kancelarija program på datorn, till exempel C:\Program Files\MicrosoftOffice\OFFICE11
.
Om du vill skapa enheten skriver du följande kommando:
New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name Provider Root CurrentLocation
---- -------- ---- ---------------
Office FileSystem C:\Program Files\Microsoft Offic...
Kommentar
I allmänhet är sökvägar inte skiftlägeskänsliga.
En PowerShell-enhet nås med dess namn följt av ett kolon (:
).
En PowerShell-enhet kan göra många uppgifter mycket enklare. Till exempel har några av de viktigaste nycklarna i Windows-registret extremt långa vä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 PowerShell-enhet som är rotad i den 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 på samma sätt som andra enheter:
cd cvkey:
eller:
Set-Location cvkey: -PassThru
Path
----
cvkey:\
Cmdleten New-PSDrive
lägger bara till den nya enheten i den aktuella PowerShell-sessionen. Om du stänger PowerShell-fönstret går den nya enheten förlorad. Om du vill spara en PowerShell-enhet använder du cmdleten Export-Console
för att exportera den aktuella PowerShell-sessionen och använder sedan parametern PowerShell.exe
PSConsoleFile för att importera den. Du kan också lägga till den nya enheten i din Windows PowerShell-profil.
Ta bort PowerShell-enheter
Du kan ta bort enheter från PowerShell med hjälp av cmdleten Remove-PSDrive
. Om du till exempel har lagt till Office:
PowerShell-enheten, som du ser i avsnittet New-PSDrive
, kan du ta bort den genom att skriva:
Remove-PSDrive -Name Office
Om du vill ta bort cvkey:
PowerShell-enheten använder du följande kommando:
Remove-PSDrive -Name cvkey
Du kan dock inte ta bort den när du är på enheten. Till 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 PowerShell
PowerShell identifierar filsystemenheter som läggs till eller tas bort i Windows, inklusive:
- nätverksenheter som mappas
- USB-enheter som är anslutna
- Enheter som tas bort med kommandot
net use
eller från ett WSH-skript (Windows Script Host)