Dela via


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 och Registry 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)