Sdílet prostřednictvím


Správa disků 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 získat přístup pomocí jiných nástrojů systému Windows, jako je Průzkumník souborů nebo Cmd.exe.

PowerShell používá pro příkazy, které pracují s jednotkami PowerShellu, podstatné jméno PSDrive. Seznam jednotek PowerShellu ve své relaci PowerShellu zobrazíte pomocí rutiny 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 zobrazené na displeji liší od jednotek ve vašem systému, měly by vaše jednotky vypadat podobně jako výstup příkazu Get-PSDrive uvedený výše.

Jednotky souborového systému jsou podmnožinou jednotek PowerShellu. Jednotky systému souborů můžete identifikovat položkou FileSystem ve sloupci Zprostředkovatel. Jednotky systému souborů v PowerShellu jsou podporovány zprostředkovatelem PowerShell FileSystem.

Pokud chcete zobrazit syntaxi rutiny Get-PSDrive, zadejte příkaz Get-Command 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 příkaz Get-PSDrive 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

Také můžete použít standardní příkazy umístění s jednotkami PowerShellu:

Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft

Přidání nových disků PowerShellu

Vlastní disky PowerShell můžete přidat pomocí příkazu New-PSDrive. Pokud chcete získat syntaxi příkazu New-PSDrive, zadejte příkaz Get-Command s parametrem Syntaxe:

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 jakýkoli platný název v PowerShellu)
  • PsProvider – použití FileSystem pro umístění systému souborů a Registry 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 aplikace Microsoft Office na vašem 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šují malá a velká písmena.

K jednotce PowerShellu se přistupuje pomocí názvu následovaného dvojtečkou (:).

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 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á bude zakořeněná v tomto klíči 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: jednotku stejně jako jakoukoli jinou jednotku:

cd cvkey:

nebo:

Set-Location cvkey: -PassThru
Path
----
cvkey:\

Rutina New-PSDrive přidá novou jednotku pouze do aktuální relace PowerShell. Pokud zavřete okno PowerShellu, nová jednotka se ztratí. Pokud chcete uložit jednotku PowerShellu, použijte rutinu Export-Console k exportu aktuální relace PowerShellu a pak k importu použijte parametr powershell.exePSConsole File. 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 Office: PowerShell, jak je znázorněno v tématu New-PSDrive, můžete ji odstranit zadáním:

Remove-PSDrive -Name Office

Pokud chcete odstranit cvkey: jednotku PowerShellu, použijte následující příkaz:

Remove-PSDrive -Name cvkey

Nemůžete ho ale odstranit, když jste v jednotce. Napří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í disků vně 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í příkazu net use nebo ze skriptu WSH (Windows Script Host)