Správa jednotek PowerShellu
Tato ukázka platí jenom pro platformy Windows.
Jednotka PowerShellu je umístění úložiště dat, ke kterému můžete přistupovat jako k jednotce systému souborů v PowerShellu. Poskytovatelé PowerShellu vytvářejí pro vás některé jednotky, například jednotky systému souborů (včetně C:
a D:
), jednotky registru (HKCU:
a HKLM:
) a jednotku certifikátu (Cert:
) a můžete vytvořit vlastní jednotky PowerShellu. Tyto jednotky jsou užitečné, ale jsou dostupné jenom v PowerShellu. K nim nemůžete přistupovat pomocí jiných nástrojů systému Windows, jako jsou Průzkumník souborů nebo Cmd.exe
.
PowerShell používá pro příkazy, které pracují s jednotkami PowerShellu, podstatná jména, PSDrive. Seznam jednotek PowerShellu v relaci PowerShellu najdete v rutině 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
I když se jednotky na displeji liší s jednotkami ve vašem systému, měly by vaše jednotky vypadat podobně jako výstup Get-PSDrive
výše uvedeného příkazu.
Jednotky systému souborů jsou podmnožinou jednotek PowerShellu. Jednotky systému souborů můžete identifikovat položkou FileSystem ve sloupci Zprostředkovatel. Zprostředkovatel systému souborů PowerShell podporuje jednotky systému souborů v PowerShellu.
Pokud chcete zobrazit syntaxi Get-PSDrive
rutiny, zadejte Get-Command
příkaz s parametrem 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>]
Parametr PSProvider umožňuje zobrazit pouze jednotky PowerShellu podporované konkrétním poskytovatelem. Pokud chcete například zobrazit jenom jednotky PowerShellu podporované poskytovatelem systému souborů PowerShellu, zadejte Get-PSDrive
příkaz s parametrem PSProvider a hodnotou FileSystem :
Get-PSDrive -PSProvider FileSystem
Name Provider Root CurrentLocation
---- -------- ---- ---------------
A FileSystem A:\
C FileSystem C:\ ...nd Settings\PowerUser
D FileSystem D:\
Pokud chcete zobrazit jednotky PowerShellu, které představují podregistry registru, pomocí parametru PSProvider zobrazte pouze jednotky PowerShellu podporované poskytovatelem registru PowerShellu:
Get-PSDrive -PSProvider Registry
Name Provider Root CurrentLocation
---- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Standardní rutiny umístění můžete použít také s jednotkami PowerShellu:
Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft
Přidání nových jednotek PowerShellu
Pomocí příkazu můžete přidat vlastní jednotky PowerShellu New-PSDrive
. Pokud chcete získat syntaxi příkazu New-PSDrive
, zadejte Get-Command
příkaz s parametrem Syntax :
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]
Pokud chcete vytvořit novou jednotku PowerShellu, musíte zadat tři parametry:
- Název jednotky (můžete použít libovolný platný název PowerShellu)
- PsProvider – používá se
FileSystem
pro umístění systému souborů aRegistry
pro umístění registru. - Kořen, tedy cesta ke kořenovému adresáři nové jednotky
Můžete například vytvořit jednotku s názvem Office
namapovanou na složku, která obsahuje systém Microsoft Office aplikace v počítači, například C:\Program Files\MicrosoftOffice\OFFICE11
.
Pokud chcete vytvořit jednotku, zadejte následující příkaz:
New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name Provider Root CurrentLocation
---- -------- ---- ---------------
Office FileSystem C:\Program Files\Microsoft Offic...
Poznámka:
Obecně platí, že cesty nerozlišuje malá a velká písmena.
K jednotce PowerShellu se přistupuje pomocí názvu následovaného dvojtečku (:
).
Jednotka PowerShellu může mnohem zjednodušit mnoho úloh. Například některé z nejdůležitějších klíčů v registru Windows mají extrémně dlouhé cesty, což je těžkopádné pro přístup a obtížně zapamatovatelné. Důležité informace o konfiguraci se nacházejí v části HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
. Pokud chcete zobrazit a změnit položky v klíči registru CurrentVersion, můžete vytvořit jednotku PowerShellu, která je v klíči rootovaná zadáním:
New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name Provider Root CurrentLocation
---- -------- ---- ---------------
cvkey Registry HKLM\Software\Microsoft\Windows\...
Umístění pak můžete změnit na cvkey: jednotka stejně jako jakákoli jiná jednotka:
cd cvkey:
nebo:
Set-Location cvkey: -PassThru
Path
----
cvkey:\
Rutina New-PSDrive
přidá novou jednotku jenom do aktuální relace PowerShellu. Pokud zavřete okno PowerShellu, dojde ke ztrátě nové jednotky. Pokud chcete uložit jednotku PowerShellu, použijte rutinu Export-Console
k exportu aktuální relace PowerShellu a pak ji naimportujte pomocí parametru PowerShell.exe
PSConsoleFile . Nebo přidejte novou jednotku do profilu Windows PowerShellu.
Odstranění jednotek PowerShellu
Jednotky můžete z PowerShellu odstranit pomocí rutiny Remove-PSDrive
. Pokud jste například přidali jednotku PowerShellu Office:
, jak je znázorněno v New-PSDrive
tématu, můžete ji odstranit zadáním:
Remove-PSDrive -Name Office
Pokud chcete odstranit jednotku PowerShellu cvkey:
, použijte následující příkaz:
Remove-PSDrive -Name cvkey
Nemůžete ho ale odstranit, když jste na jednotce. Příklad:
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
Přidávání a odebírání jednotek mimo PowerShell
PowerShell detekuje jednotky systému souborů, které jsou přidány nebo odebrány ve Windows, včetně následujících:
- síťové jednotky, které jsou namapované
- Připojené usb disky
- Jednotky, které jsou odstraněny pomocí
net use
příkazu nebo ze skriptu WSH (Windows Script Host)