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 nebo přidružené k 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íka souborů, rozhraní WMI (Windows Management Instrumentation), modelu COM (Component Object Model), Rozhraní Microsoft .NET Framework nebo pomocí nástrojů, jako jsou net use
.
Do New-PSDrive
v PowerShellu 3.0 byly přidány následující funkce:
- Mapované síťové jednotky. K vytvoření namapovaných síťových jednotek systému Windows můžete použít parametr Zachovat
New-PSDrive
. 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ů windows, jako je Průzkumník souborů a net, používají. 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ě, bez tečk-sourcing, parametr Persist neuchová vytvoření PSDrive nad rámec rozsahu, ve kterém je příkaz spuštěný. Pokud používáteNew-PSDrive
uvnitř skriptu a chcete, aby jednotka trvale trvala, musíte skript vytvořit tečkou. Nejlepších výsledků dosáhnete, pokud 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 parametru Root 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ě přihlašovacích údajů není 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 naleznete v tématu about_Splatting.
Poznámka
Pokud nepoužíváte parametr Scope, vytvoří se psDrives v oboru, ve kterém se spustí příkaz New-PSDrive
.
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čí jednotku PowerShellu s názvem Public
a parametr PSProvider k určení zprostředkovatele FileSystem
PowerShellu. Parametr root 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 FileSystem
PowerShellu.
kořenový určuje adresář místního počítače. Parametr Description popisuje účel jednotky.
New-PSDrive
používá k vytvoření jednotky MyDocs
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 namapovaná na klíč registru HKLM:\Software\MyCompany
.
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name Provider Root
---- -------- ----
MyCompany Registry HKLM:\Software\MyCompany
New-PSDrive
pomocí parametru Name určí jednotku PowerShellu s názvem MyCompany
a parametr PSProvider k určení zprostředkovatele Registry
PowerShellu. Parametr Root 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 objektu PSCredential, který ukládá přihlašovací údaje a jak se hesla ukládají jako SecureString, najdete v popisu přihlašovacích údajů parametru.
$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
vás vyzve k zadání hesla uloženého v securestring.
New-PSDrive
vytvoří mapovanou síťovou jednotku pomocí několika parametrů.
Název určuje písmeno jednotky S
, které systém Windows přijímá. a kořenový definuje \\Server01\Scripts
jako umístění ve vzdáleném počítači.
Trvalé vytvoří namapovanou síťovou jednotku systému Windows uloženou v místním počítači.
PSProvider určuje poskytovatele FileSystem
.
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í.
Mapovanou jednotku lze zobrazit na místním počítači v relacích PowerShellu, Průzkumníku souborů a pomocí nástrojů, jako je net, použí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á jednotka X:
. 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 se spouští příkaz New-PSDrive
. 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, je nutné použít parametr Scope k vytvoření jednotky v oboru Globální.
Parametry
-Confirm
Před spuštěním rutiny vás vyzve 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. Výchozí hodnota je aktuální uživatel.
Vzhledem k tomu, že PowerShell 3.0 je hodnota parametru Root cesta UNC, můžete k vytvoření jednotek systému souborů použít přihlašovací údaje.
Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential vygenerovaný rutinou Get-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 najdete 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.
Pokud chcete zobrazit popisy všech jednotek relace, Get-PSDrive | Format-Table Name, Description
.
Pokud chcete 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 Zachovat 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íkovi souborů a dalších nástrojích.
Když příkaz vymešíte místně bez tečk-sourcing, parametr Zachovat nezachová vytvoření PSDrive nad rámec rozsahu, ve kterém příkaz spouštíte. Pokud spustíte New-PSDrive
uvnitř skriptu a chcete, aby nová jednotka trvale trvala, je nutné skript vytvořit tečkou. Nejlepších výsledků dosáhnete tak, že pokud chcete vynutit zachování nové jednotky, zadejte Globální jako hodnotu parametru Scope a do příkazu zahrňte Zachovat.
Název jednotky musí být písmeno, například D
nebo E
. Hodnota parametru Root musí být cesta UNC jiného počítače. Hodnota parametru PSProvider musí být FileSystem
.
K odpojení namapované síťové jednotky systému Windows použijte 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á ke sdílené síťové složce nebo adresáři systému souborů, poskytovatel PowerShellu je FileSystem
. 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 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, Locala Scriptnebo číslo vzhledem 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
Ukazuje, co se stane, když se rutina spustí. 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 fungovala s daty vystavenými libovolným poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných ve vaší relaci, použijte Get-PSProvider
. Další informace o poskytovateli naleznete 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.