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

All

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-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í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 ZachovatNew-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áte New-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 části s názvem 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

Aby bylo zajištěno, že je jednotka dostupná mimo skript, je nutné použít parametr Scope k vytvoření jednotky v globálním rozsahu.

Parametry

-Confirm

Před spuštěním cmdletu vás vyzve k potvrzení.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:viz

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů: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?.

Vlastnosti parametru

Typ:PSCredential
Default value:Current user
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:1
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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 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.

Vlastnosti parametru

Typ:String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:2
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů: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 části about_Scopes.

Vlastnosti parametru

Typ:String
Default value:Local
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-WhatIf

Ukazuje, co se stane, když se příkaz spustí. Cmdlet se nespustil.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Wi

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

None

Vstup do této rutiny nelze zadávat.

Výstupy

PSDriveInfo

Poznámky

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.