Sdílet prostřednictvím


New-PSDrive

Vytvoří dočasné a trvalé jednotky, které jsou přidružené k umístění v úložišti dat položky.

Syntax

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-Locationa 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 useje .

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ěžíte New-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\Sharepř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-PSDrivepomocí 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-PSDrivepomocí 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-Credentialzobrazí 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í.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters: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 FileSystemzprostř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 .

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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\Publicmístní adresář, například C:\Program Filesnebo 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.

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String
Position:Named
Default value:Local
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

None

Do této rutiny nemůžete objekty převést.

Výstupy

PSDriveInfo

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.