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 Utforskaren 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 Office-appen likeringar 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)
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för