Freigeben über


New-PSDrive

Erstellt temporäre und persistente Laufwerke, die einem Speicherort in einem Elementdatenspeicher zugeordnet sind.

Syntax

New-PSDrive
   [-Name] <String>
   [-PSProvider] <String>
   [-Root] <String>
   [-Description <String>]
   [-Scope <String>]
   [-Persist]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]

Beschreibung

Das New-PSDrive Cmdlet erstellt temporäre und persistente Laufwerke, die einem Speicherort in einem Datenspeicher zugeordnet oder zugeordnet sind, z. B. ein Netzlaufwerk, ein Verzeichnis auf dem lokalen Computer oder ein Registrierungsschlüssel sowie beständige zugeordnete Windows-Netzwerklaufwerke, die einem Dateisystemspeicherort auf einem Remotecomputer zugeordnet sind.

Temporäre Laufwerke sind nur in der aktuellen PowerShell-Sitzung und in Sitzungen vorhanden, die Sie in der aktuellen Sitzung erstellen. Sie können einen beliebigen Namen haben, der in PowerShell gültig ist und jeder lokalen oder Remoteressource zugeordnet werden kann. Sie können temporäre PowerShell-Laufwerke verwenden, um auf Daten im zugeordneten Datenspeicher zuzugreifen, genau wie bei jedem zugeordneten Netzlaufwerk. Sie können Speicherorte in das Laufwerk ändern, indem Sie den Inhalt des Laufwerks verwenden Set-LocationGet-Item oder Get-ChildItemdarauf zugreifen.

Da temporäre Laufwerke nur für PowerShell bekannt sind, können Sie nicht mithilfe von Explorer, der Windows-Verwaltungsinstrumentation (WMI), dem Component Object Model (COM), Microsoft .NET Framework oder mit Tools wie net use.

Die folgenden Features wurden in PowerShell 3.0 hinzugefügt New-PSDrive :

  • Zugeordnete Netzlaufwerke. Sie können den Persist-Parameter New-PSDrive verwenden, um windows-zugeordnete Netzwerklaufwerke zu erstellen. Im Gegensatz zu temporären PowerShell-Laufwerken sind zugeordnete Windows-Netzwerklaufwerke nicht sitzungsspezifisch. Sie werden in Windows gespeichert und können mit standardmäßigen Windows-Tools verwaltet werden, z. B. Explorer und Net Use. Zugeordnete Netzwerklaufwerke müssen einen Laufwerkbuchstaben aufweisen und mit einem Remotedateisystem-Speicherort verbunden sein. Wenn Ihr Befehl lokal festgelegt ist, wird der Parameter "Persist" nicht beibehalten, wenn der Bereich eines PSDrive über den Bereich hinausgeht, in dem der Befehl ausgeführt wird. Wenn Sie innerhalb eines Skripts ausgeführt New-PSDrive werden und das Laufwerk unbegrenzt beibehalten werden soll, müssen Sie das Skript mit Punktquelle erstellen. Um optimale Ergebnisse zu erzielen, müssen Sie erzwingen, dass ein neues Laufwerk unbegrenzt beibehalten wird, fügen Sie dem Befehl den Parameter "Scope" hinzu, und legen Sie den Wert auf "Global" fest. Weitere Informationen zur Dot-Sourcing finden Sie unter about_Scripts.
  • Externe Laufwerke. Wenn ein externes Laufwerk mit dem Computer verbunden ist, fügt PowerShell automatisch ein PSDrive zum Dateisystem hinzu, das das neue Laufwerk darstellt. PowerShell muss nicht neu gestartet werden. Wenn ein externes Laufwerk vom Computer getrennt wird, löscht PowerShell automatisch das PSDrive , das das entfernte Laufwerk darstellt.
  • Anmeldeinformationen für UNC-Pfade (Universal Naming Convention).

Wenn der Wert des Stammparameters ein UNC-Pfad ist, z\\Server\Share. B. die im Wert des Parameters "Credential" angegebenen Anmeldeinformationen, wird zum Erstellen des PSDrive verwendet. Andernfalls sind Anmeldeinformationen beim Erstellen neuer Dateisystemlaufwerke nicht wirksam.

Einige Codebeispiele verwenden splatting, um die Zeilenlänge zu reduzieren und die Lesbarkeit zu verbessern. Weitere Informationen finden Sie unter about_Splatting.

Hinweis

Sofern Sie den Parameter Scope nicht verwenden, werden PSDrives im Bereich erstellt, in dem der New-PSDrive Befehl ausgeführt wird.

Beispiele

Beispiel 1: Erstellen eines temporären Laufwerks, das einer Netzwerkfreigabe zugeordnet ist

In diesem Beispiel wird ein temporäres PowerShell-Laufwerk erstellt, das einer Netzwerkfreigabe zugeordnet ist.

New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"

Name       Provider      Root
----       --------      ----
Public     FileSystem    \\Server01\Public

New-PSDriveverwendet den Parameter Name, um das PowerShell-Laufwerk namens Public und den PSProvider-Parameter anzugeben, um den PowerShell-Anbieter FileSystem anzugeben. Der Root-Parameter gibt den UNC-Pfad der Netzwerkfreigabe an.

So zeigen Sie den Inhalt aus einer PowerShell-Sitzung an: Get-ChildItem -Path Public:

Beispiel 2: Erstellen eines temporären Laufwerks, das einem lokalen Verzeichnis zugeordnet ist

In diesem Beispiel wird ein temporäres PowerShell-Laufwerk erstellt, das Zugriff auf ein Verzeichnis auf dem lokalen Computer ermöglicht.

$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

Durch splatting werden die Parameterschlüssel und -werte erstellt. Der Parameter Name gibt den Laufwerknamen MyDocs an. Der PARAMETER "PSProvider " gibt den PowerShell-Anbieter FileSystem an. Stamm gibt das Verzeichnis des lokalen Computers an. Der Description-Parameter beschreibt den Zweck des Laufwerks. New-PSDrive verwendet die splatted-Parameter, um das MyDocs Laufwerk zu erstellen.

So zeigen Sie den Inhalt aus einer PowerShell-Sitzung an: Get-ChildItem -Path MyDocs:

Beispiel 3: Erstellen eines temporären Laufwerks für einen Registrierungsschlüssel

In diesem Beispiel wird ein temporäres PowerShell-Laufwerk erstellt, das Zugriff auf einen Registrierungsschlüssel ermöglicht. Es erstellt ein Laufwerk mit dem Namen "MyCompany", das dem HKLM:\Software\MyCompany Registrierungsschlüssel zugeordnet ist.

New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"

Name           Provider      Root
----           --------      ----
MyCompany      Registry      HKLM:\Software\MyCompany

New-PSDriveverwendet den Parameter Name, um das PowerShell-Laufwerk namens MyCompany und den PSProvider-Parameter anzugeben, um den PowerShell-Anbieter Registry anzugeben. Der Root-Parameter gibt den Registrierungsspeicherort an.

So zeigen Sie den Inhalt aus einer PowerShell-Sitzung an: Get-ChildItem -Path MyCompany:

Beispiel 4: Erstellen eines dauerhaft zugeordneten Netzlaufwerks mit Anmeldeinformationen

In diesem Beispiel wird ein Netzlaufwerk zugeordnet, das mit den Anmeldeinformationen eines Domänendienstkontos authentifiziert wird. Weitere Informationen zum PSCredential-Objekt , das Anmeldeinformationen speichert und wie Kennwörter als SecureString gespeichert werden, finden Sie in der Beschreibung des Parameters "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

Hinweis

Wenn Sie den obigen Codeausschnitt in einem Skript verwenden, legen Sie den Parameterwert "Scope " auf "Global" fest, um sicherzustellen, dass das Laufwerk außerhalb des aktuellen Bereichs beibehalten wird.

Die $cred Variable speichert ein PSCredential-Objekt , das die Anmeldeinformationen des Dienstkontos enthält. Get-Credential fordert Sie auf, das Kennwort einzugeben, das in einem SecureString gespeichert ist.

New-PSDrive erstellt das zugeordnete Netzlaufwerk mithilfe mehrerer Parameter. Der Name gibt den Laufwerkbuchstaben an, den S Windows akzeptiert. und Root definiert \\Server01\Scripts den Speicherort auf einem Remotecomputer. Persist erstellt ein zugeordnetes Windows-Netzlaufwerk, das auf dem lokalen Computer gespeichert ist. PSProvider gibt den FileSystem Anbieter an. Anmeldeinformationen verwenden die $cred Variable, um die Anmeldeinformationen des Dienstkontos für die Authentifizierung abzurufen.

Das zugeordnete Laufwerk kann auf dem lokalen Computer in PowerShell-Sitzungen, Explorer und mit Tools wie der Netznutzung angezeigt werden. So zeigen Sie den Inhalt aus einer PowerShell-Sitzung an: Get-ChildItem -Path S:

Beispiel 5: Erstellen dauerhafter und temporärer Laufwerke

In diesem Beispiel wird der Unterschied zwischen einem dauerhaft zugeordneten Netzlaufwerk und einem temporären PowerShell-Laufwerk gezeigt, das derselben Netzwerkfreigabe zugeordnet ist.

Wenn Sie die PowerShell-Sitzung schließen und dann eine neue Sitzung öffnen, ist die temporäre PSDrive: Sitzung nicht verfügbar, aber das dauerhafte X: Laufwerk ist verfügbar. Berücksichtigen Sie bei der Entscheidung, welche Methode zum Zuordnen von Netzlaufwerken verwendet werden soll, wie Sie das Laufwerk verwenden. Beispielsweise, ob es dauerhaft sein muss und ob das Laufwerk für andere Windows-Features sichtbar sein muss.

# 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

Beispiel 6: Erstellen eines beständigen Laufwerks in einem Skript

PSDrives werden im Bereich erstellt, in dem der New-PSDrive Befehl ausgeführt wird. Wenn der Befehl innerhalb eines Skripts ausgeführt wird, ist die Laufwerkzuordnung lokal für das Skript. Wenn das Skript beendet wird, ist das Laufwerk nicht mehr verfügbar.

New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global

Um sicherzustellen, dass das Laufwerk außerhalb des Skripts verfügbar ist, müssen Sie den Parameter Scope verwenden, um das Laufwerk im globalen Bereich zu erstellen.

Parameter

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Credential

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Der Standardwert ist der aktuelle Benutzer.

Da PowerShell 3.0, wenn der Wert des Root-Parameters ein UNC-Pfad ist, können Sie Anmeldeinformationen zum Erstellen von Dateisystemlaufwerken verwenden.

Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domain01\User01", oder geben Sie ein vom Cmdlet generiertes Get-Credential PSCredential-Objekt ein. Wenn Sie einen Benutzernamen eingeben, werden Sie aufgefordert, das Kennwort einzugeben.

Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString gespeichert.

Hinweis

Weitere Informationen zum Schutz von SecureString finden Sie unter "Wie sicher ist SecureString?".

Typ:PSCredential
Position:Named
Standardwert:Current user
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Description

Gibt eine kurze Textbeschreibung des Laufwerks an. Geben Sie eine beliebige Zeichenfolge ein.

Um die Beschreibungen aller Laufwerke der Sitzung anzuzeigen, Get-PSDrive | Format-Table Name, Description

Um die Beschreibung eines bestimmten Laufwerks anzuzeigen, geben Sie folgendes ein (Get-PSDrive <DriveName>).Description.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Name

Gibt einen Namen für das neue Laufwerk an. Verwenden Sie für persistent zugeordnete Netzlaufwerke einen Laufwerkbuchstaben. Bei temporären PowerShell-Laufwerken sind Sie nicht auf Laufwerkbuchstaben beschränkt, verwenden Sie eine gültige Zeichenfolge.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Persist

Gibt an, dass dieses Cmdlet ein zugeordnetes Windows-Netzlaufwerk erstellt. Der Parameter Persist ist nur unter Windows verfügbar.

Zugeordnete Netzwerklaufwerke werden unter Windows auf dem lokalen Computer gespeichert. Sie sind dauerhaft, nicht sitzungsspezifisch und können in Explorer und anderen Tools angezeigt und verwaltet werden.

Wenn Sie den Befehl lokal festlegen, ohne Dot-Sourcing, behält der Persist-Parameter die Erstellung eines PSDrive über den Bereich hinaus, in dem Sie den Befehl ausführen. Wenn Sie innerhalb eines Skripts ausgeführt werden New-PSDrive und das neue Laufwerk unbegrenzt beibehalten werden soll, müssen Sie das Skript mit Punktquelle erstellen. Um optimale Ergebnisse zu erzielen, geben Sie global als Wert des Bereichsparameters an, um zu erzwingen, dass ein neues Laufwerk beibehalten wird, und fügen Sie "Persist" in den Befehl ein.

Der Name des Laufwerks muss ein Buchstabe sein, z D . B. oder E. Der Wert des Root-Parameters muss ein UNC-Pfad eines anderen Computers sein. Der Wert des PSProvider-Parameters muss sein FileSystem.

Verwenden Sie das Cmdlet, um ein Remove-PSDrive zugeordnetes Windows-Netzlaufwerk zu trennen. Wenn Sie die Verbindung mit einem zugeordneten Windows-Netzwerklaufwerk trennen, wird die Zuordnung dauerhaft vom Computer gelöscht, nicht nur aus der aktuellen Sitzung.

Zugeordnete Netzwerklaufwerke sind bestimmten Benutzerkonten zugeordnet. Zugeordnete Laufwerke, die in Sitzungen mit erhöhten Rechten oder Sitzungen mit den Anmeldeinformationen eines anderen Benutzers erstellt wurden, sind in Sitzungen, die mit unterschiedlichen Anmeldeinformationen begonnen haben, nicht sichtbar.

Typ:SwitchParameter
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-PSProvider

Gibt den PowerShell-Anbieter an, der Laufwerke dieser Art unterstützt.

Wenn das Laufwerk beispielsweise einer Netzwerkfreigabe oder einem Dateisystemverzeichnis zugeordnet ist, lautet FileSystemder PowerShell-Anbieter . Wenn das Laufwerk einem Registrierungsschlüssel zugeordnet ist, lautet Registryder Anbieter .

Temporäre PowerShell-Laufwerke können jedem Beliebigen PowerShell-Anbieter zugeordnet werden. Zugeordnete Netzwerklaufwerke können nur dem FileSystem Anbieter zugeordnet werden.

Verwenden Sie das Get-PSProvider Cmdlet, um eine Liste der Anbieter in Ihrer PowerShell-Sitzung anzuzeigen.

Typ:String
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Root

Gibt den Datenspeicherort an, dem ein PowerShell-Laufwerk zugeordnet ist.

Geben Sie z. B. eine Netzwerkfreigabe an, z \\Server01\Public. B. ein lokales Verzeichnis, z C:\Program Files. B. einen Registrierungsschlüssel, z HKLM:\Software\Microsoft. B. . .

Temporäre PowerShell-Laufwerke können einem lokalen oder Remotespeicherort auf jedem unterstützten Anbieterlaufwerk zugeordnet werden. Zugeordnete Netzwerklaufwerke können nur einem Dateisystemspeicherort auf einem Remotecomputer zugeordnet sein.

Typ:String
Position:2
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Scope

Gibt einen Bereich für das Laufwerk an. Die zulässigen Werte für diesen Parameter sind: Global, Lokal und Script oder eine Zahl relativ zum aktuellen Bereich. Bereiche nummer 0 bis zur Anzahl der Bereiche. Die aktuelle Bereichsnummer ist 0, und das übergeordnete Element ist 1. Weitere Informationen finden Sie unter about_Scopes.

Typ:String
Position:Named
Standardwert:Local
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-UseTransaction

Schließt den Befehl in die aktive Transaktion ein. Dieser Parameter ist nur gültig, wenn gerade eine Transaktion ausgeführt wird. Weitere Informationen finden Sie unter about_Transactions.

Typ:SwitchParameter
Aliase:usetx
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

None

Objekte können nicht an dieses Cmdlet weitergeleitet werden.

Ausgaben

PSDriveInfo

Dieses Cmdlet gibt ein PSDriveInfo-Objekt zurück, das das erstellte Laufwerk darstellt.

Hinweise

Windows PowerShell enthält die folgenden Aliase für New-PSDrive:

  • mount
  • ndr

New-PSDrive ist für die Arbeit mit den Daten konzipiert, die von jedem Anbieter verfügbar gemacht werden. Um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können, verwenden Sie Get-PSProvider. Weitere Informationen zu Anbietern finden Sie unter about_Providers.

Zugeordnete Netzwerklaufwerke sind bestimmten Benutzerkonten zugeordnet. Zugeordnete Laufwerke, die in Sitzungen mit erhöhten Rechten oder Sitzungen mit den Anmeldeinformationen eines anderen Benutzers erstellt wurden, sind in Sitzungen, die mit unterschiedlichen Anmeldeinformationen begonnen haben, nicht sichtbar.