New-PSDrive
Vytvoří dočasné a trvalé jednotky, které jsou přidružené k umístění v úložišti dat položky.
Syntaxe
New-PSDrive
[-Name] <String>
[-PSProvider] <String>
[-Root] <String>
[-Description <String>]
[-Scope <String>]
[-Persist]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina New-PSDrive
vytvoří dočasné a trvalé jednotky mapované na umístění v úložišti dat, například síťovou jednotku, adresář na místním počítači nebo klíč registru a trvalé síťové jednotky mapované systémem Windows, které jsou přidružené k umístění systému souborů na vzdáleném počítači.
Dočasné jednotky existují pouze v aktuální relaci PowerShellu a v relacích, které vytvoříte v aktuální relaci. Můžou mít libovolný název, který je platný v PowerShellu, a je možné ho namapovat na jakýkoli místní nebo vzdálený prostředek. Dočasné jednotky PowerShellu můžete použít pro přístup k datům v přidruženém úložišti dat stejně jako u jakékoli mapované síťové jednotky. Umístění na jednotku můžete změnit pomocí Set-Location
a získat přístup k obsahu jednotky pomocí Get-Item
nebo Get-ChildItem
.
Vzhledem k tomu, že dočasné jednotky jsou známé jenom pro PowerShell, nemůžete k nim přistupovat pomocí Průzkumník souborů, rozhraní WMI (Windows Management Instrumentation), modelu COM (Component Object Model), rozhraní Microsoft .NET Framework nebo pomocí nástrojů, jako net use
je .
Do PowerShellu 3.0 byly přidány New-PSDrive
následující funkce:
- Mapované síťové jednotky. K vytvoření namapovaných síťových
New-PSDrive
jednotek systému Windows můžete použít parametr Trvalý. Na rozdíl od dočasných jednotek PowerShellu nejsou namapované síťové jednotky windows specifické pro relaci. Ukládají se ve Windows a dají se spravovat pomocí standardních nástrojů pro Windows, jako jsou Průzkumník souborů a net use. Mapované síťové jednotky musí mít název písmena jednotky a musí být připojené ke vzdálenému umístění systému souborů. Pokud je váš příkaz vymezen místně, žádný typ dot-sourcing, parametr Persist neuchová vytvoření PSDrivu nad rámec oboru, ve kterém je příkaz spuštěný. Pokud běžíteNew-PSDrive
uvnitř skriptu a chcete, aby jednotka trvale trvala, musíte skript vytvořit tečkou. Nejlepších výsledků dosáhnete, když chcete vynutit trvalé uchování nové jednotky, přidejte do příkazu parametr Scope a nastavte jeho hodnotu na Global. Další informace o dot-sourcing naleznete v tématu about_Scripts. - Externí jednotky. Když je externí jednotka připojená k počítači, PowerShell automaticky přidá psDrive do systému souborů, který představuje novou jednotku. PowerShell nemusíte restartovat. Podobně když se externí jednotka odpojí od počítače, PowerShell automaticky odstraní psDrive , který představuje odebranou jednotku.
- Přihlašovací údaje pro cesty UNC (Universal Naming Convention).
Pokud je hodnota kořenového parametru cesta UNC, například \\Server\Share
přihlašovací údaje zadané v hodnotě parametru Credential se používají k vytvoření PSDrive. V opačném případě nejsou přihlašovací údaje efektivní při vytváření nových jednotek systému souborů.
Některé ukázky kódu používají k zmenšení délky řádků a zlepšení čitelnosti. Další informace najdete v tématu about_Splatting.
Poznámka:
Pokud nepoužíváte parametr Scope , psDrives se vytvoří v oboru, ve kterém New-PSDrive
je příkaz spuštěn.
Příklady
Příklad 1: Vytvoření dočasné jednotky mapované na sdílenou síť
Tento příklad vytvoří dočasnou jednotku PowerShellu, která je namapovaná na sdílenou síťovou složku.
New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"
Name Provider Root
---- -------- ----
Public FileSystem \\Server01\Public
New-PSDrive
pomocí parametru Name určuje jednotku PowerShellu s názvem Public
a parametr PSProvider k určení zprostředkovatele PowerShelluFileSystem
. Kořenový parametr určuje cestu UNC sdílené síťové složky.
Zobrazení obsahu z relace PowerShellu: Get-ChildItem -Path Public:
Příklad 2: Vytvoření dočasné jednotky namapované na místní adresář
Tento příklad vytvoří dočasnou jednotku PowerShellu, která poskytuje přístup k adresáři v místním počítači.
$parameters = @{
Name = "MyDocs"
PSProvider = "FileSystem"
Root = "C:\Users\User01\Documents"
Description = "Maps to my My Documents folder."
}
New-PSDrive @parameters
Name Provider Root
---- -------- ----
MyDocs FileSystem C:\Users\User01\Documents
Splatting vytvoří klíče a hodnoty parametrů. Parametr Name určuje název jednotky MyDocs. Parametr PSProvider určuje zprostředkovatele PowerShellu FileSystem
. Kořen určuje adresář místního počítače. Parametr Description popisuje účel jednotky. New-PSDrive
používá k vytvoření MyDocs
jednotky parametry splatted.
Zobrazení obsahu z relace PowerShellu: Get-ChildItem -Path MyDocs:
Příklad 3: Vytvoření dočasné jednotky pro klíč registru
Tento příklad vytvoří dočasnou jednotku PowerShellu, která poskytuje přístup k klíči registru. Vytvoří jednotku s názvem MyCompany, která je namapována na HKLM:\Software\MyCompany
klíč registru.
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name Provider Root
---- -------- ----
MyCompany Registry HKLM:\Software\MyCompany
New-PSDrive
pomocí parametru Name určuje jednotku PowerShellu s názvem MyCompany
a parametr PSProvider k určení zprostředkovatele PowerShelluRegistry
. Kořenový parametr určuje umístění registru.
Zobrazení obsahu z relace PowerShellu: Get-ChildItem -Path MyCompany:
Příklad 4: Vytvoření trvalé mapované síťové jednotky pomocí přihlašovacích údajů
Tento příklad mapuje síťovou jednotku ověřenou pomocí přihlašovacích údajů účtu doménové služby. Další informace o PSCredential objekt, který ukládá přihlašovací údaje a způsob ukládání hesel jako SecureString, naleznete v popisu parametru Credential .
$cred = Get-Credential -Credential Contoso\ServiceAccount
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem" -Credential $cred
Net Use
Status Local Remote Network
---------------------------------------------------------
OK S: \\Server01\Scripts Microsoft Windows Network
Poznámka:
Mějte na paměti, že pokud ve skriptu použijete výše uvedený fragment kódu, nastavte hodnotu parametru Scope na "Global", abyste zajistili, že jednotka zůstane mimo aktuální obor.
Proměnná $cred
ukládá objekt PSCredential , který obsahuje přihlašovací údaje účtu služby. Get-Credential
zobrazí výzvu k zadání hesla uloženého v securestringu.
New-PSDrive
vytvoří mapovanou síťovou jednotku pomocí několika parametrů. Název určuje S
písmeno jednotky, které systém Windows přijme. a Root definuje \\Server01\Scripts
jako umístění ve vzdáleném počítači. Zachování vytvoří namapovanou síťovou jednotku systému Windows uloženou v místním počítači. PsProvider určuje FileSystem
zprostředkovatele. Přihlašovací údaje používají proměnnou $cred
k získání přihlašovacích údajů účtu služby pro ověřování.
Namapovanou jednotku je možné zobrazit na místním počítači v relacích PowerShellu, Průzkumník souborů a pomocí nástrojů, jako je použití sítě. Zobrazení obsahu z relace PowerShellu: Get-ChildItem -Path S:
Příklad 5: Vytvoření trvalých a dočasných jednotek
Tento příklad ukazuje rozdíl mezi trvalou mapovanou síťovou jednotkou a dočasnou jednotkou PowerShellu, která je namapovaná na stejnou sdílenou síťovou složku.
Pokud relaci PowerShellu zavřete a pak otevřete novou relaci, dočasné PSDrive:
není k dispozici, ale je k dispozici trvalá X:
jednotka. Při rozhodování o tom, kterou metodu použít k mapování síťových jednotek, zvažte, jak jednotku použijete. Například zda musí být trvalá a zda musí být jednotka viditelná pro jiné funkce Systému Windows.
# Create a temporary PowerShell drive called PSDrive:
# that's mapped to the \\Server01\Public network share.
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\\Server01\Public"
# Use the Persist parameter of New-PSDrive to create the X: mapped network drive,
# which is also mapped to the \\Server01\Public network share.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"
# Now, you can use the Get-PSDrive drive cmdlet to examine the two drives.
# The drives appear to be the same, although the network share name appears only
# in the root of the PSDrive: drive.
Get-PSDrive -Name "PSDrive", "X"
Name Provider Root
---- -------- ----
PsDrive FileSystem \\Server01\public
X FileSystem X:\
# Get-Member cmdlet shows that the drives have the same object type,
# System.Management.Automation.PSDriveInfo.
Get-PSDrive "PSDrive", "x" | Get-Member
TypeName: System.Management.Automation.PSDriveInfo
Name MemberType Definition
---- ---------- ----------
CompareTo Method System.Int32 CompareTo(PSDriveInfo drive),
Equals Method System.Boolean Equals(Object obj),
GetHashCode Method System.Int32 GetHashCode()
...
# Net Use and Get-CimInstance for the Win32_LogicalDisk class,
# and Win32_NetworkConnection class find only the persistent X: drive.
# PowerShell temporary drives are known only to PowerShell.
Net Use
Get-CimInstance Win32_LogicalDisk | Format-Table -Property DeviceID
Get-CimInstance Win32_NetworkConnection
Status Local Remote Network
--------------------------------------------------------
OK X: \\contoso-pc\data Microsoft Windows Network
deviceid
--------
C:
D:
X:
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
X: \\products\public Disconnected Unavailable
Příklad 6: Vytvoření trvalé jednotky ve skriptu
PsDrive se vytvářejí v oboru, ve kterém New-PSDrive
se příkaz spouští. Při spuštění příkazu ve skriptu je mapování jednotek místní pro skript. Když se skript ukončí, jednotka už není k dispozici.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global
Chcete-li zajistit, aby byla jednotka k dispozici mimo skript, musíte použít parametr Scope k vytvoření jednotky v globálním oboru.
Parametry
-Confirm
Před spuštěním rutiny zobrazí výzvu k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Credential
Určuje uživatelský účet, který má oprávnění k provedení této akce. Ve výchozím nastavení je to aktuální uživatel.
Vzhledem k tomu, že PowerShell 3.0, pokud je hodnota kořenového parametru cesta UNC, můžete použít přihlašovací údaje k vytvoření jednotek systému souborů.
Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential vygenerovaný rutinouGet-Credential
. Pokud zadáte uživatelské jméno, zobrazí se výzva k zadání hesla.
Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.
Poznámka:
Další informace o ochraně dat SecureString naleznete v tématu Jak zabezpečený je SecureString?.
Typ: | PSCredential |
Position: | Named |
Default value: | Current user |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Description
Určuje stručný textový popis jednotky. Zadejte libovolný řetězec.
Chcete-li zobrazit popisy všech jednotek relace, Get-PSDrive | Format-Table Name, Description
.
Chcete-li zobrazit popis konkrétní jednotky, zadejte (Get-PSDrive <DriveName>).Description
.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Name
Určuje název nové jednotky. Pro trvalé mapované síťové jednotky použijte písmeno jednotky. U dočasných jednotek PowerShellu nejste omezeni na písmena jednotek a použijte platný řetězec.
Typ: | String |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Persist
Označuje, že tato rutina vytvoří namapovanou síťovou jednotku windows. Parametr Persist je k dispozici pouze ve Windows.
Mapované síťové jednotky se ukládají ve Windows na místním počítači. Jsou trvalé, ne specifické pro relaci a dají se zobrazit a spravovat v Průzkumník souborů a dalších nástrojích.
Když příkaz vymešíte místně bez tečk-sourcing, parametr Persist neuchová vytvoření PSDrivu nad rámec rozsahu, ve kterém příkaz spustíte. Pokud spustíte New-PSDrive
skript a chcete, aby nová jednotka trvale trvala, musíte skript vytvořit tečkou. Nejlepších výsledků dosáhnete tak, že pokud chcete vynutit zachování nové jednotky, zadejte jako hodnotu parametru Scope hodnotu Global a do příkazu zahrňte příkaz Zachovat.
Název jednotky musí být písmeno, například D
.E
Hodnota kořenového parametru musí být cesta UNC jiného počítače. Hodnota parametru PSProvider musí být FileSystem
.
Pokud chcete odpojit namapovanou síťovou jednotku systému Windows, použijte tuto rutinu Remove-PSDrive
. Když odpojíte namapovanou síťovou jednotku systému Windows, mapování se trvale odstraní z počítače, nikoli pouze z aktuální relace.
Mapované síťové jednotky jsou specifické pro uživatelský účet. Mapované jednotky vytvořené ve zvýšených relacích nebo relacích používajících přihlašovací údaje jiného uživatele nejsou viditelné v relacích, které začaly používat jiné přihlašovací údaje.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-PSProvider
Určuje zprostředkovatele PowerShellu, který podporuje jednotky tohoto typu.
Pokud je například jednotka přidružená k síťové sdílené složce nebo adresáři systému souborů, je FileSystem
zprostředkovatel PowerShellu . Pokud je jednotka přidružena k klíči registru, poskytovatel je Registry
.
Dočasné jednotky PowerShellu je možné přidružit k libovolnému poskytovateli PowerShellu. Mapované síťové jednotky lze přidružit pouze k poskytovateli FileSystem
.
Pokud chcete zobrazit seznam zprostředkovatelů v relaci PowerShellu, použijte tuto rutinu Get-PSProvider
.
Typ: | String |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Root
Určuje umístění úložiště dat, na které se mapuje jednotka PowerShellu.
Zadejte například sdílenou síťovou složku, například \\Server01\Public
místní adresář, například C:\Program Files
nebo klíč registru, například HKLM:\Software\Microsoft
.
Dočasné jednotky PowerShellu je možné přidružit k místnímu nebo vzdálenému umístění na libovolné podporované jednotce poskytovatele. Mapované síťové jednotky lze přidružit pouze k umístění systému souborů ve vzdáleném počítači.
Typ: | String |
Position: | 2 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Scope
Určuje rozsah jednotky. Přijatelné hodnoty pro tento parametr jsou: Global, Local a Script nebo číslo relativní k aktuálnímu oboru. Rozsahy číslo 0 až počet oborů. Aktuální číslo oboru je 0 a nadřazené číslo je 1. Další informace najdete v tématu about_Scopes.
Typ: | String |
Position: | Named |
Default value: | Local |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-WhatIf
Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Do této rutiny nemůžete objekty převést.
Výstupy
Tato rutina vrátí objekt PSDriveInfo představující vytvořenou jednotku.
Poznámky
PowerShell obsahuje následující aliasy pro Get-PSDrive
:
- Všechny platformy:
ndr
- Windows:
mount
New-PSDrive
je navržený tak, aby fungoval s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných ve vaší relaci, použijte Get-PSProvider
. Další informace o poskytovateli najdete v tématu about_Providers.
Mapované síťové jednotky jsou specifické pro uživatelský účet. Mapované jednotky vytvořené ve zvýšených relacích nebo relacích používajících přihlašovací údaje jiného uživatele nejsou viditelné v relacích, které začaly používat jiné přihlašovací údaje.