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]
[<CommonParameters>]
Beschreibung
Das Cmdlet New-PSDrive
erstellt temporäre und persistente Laufwerke, die einem Speicherort in einem Datenspeicher zugeordnet oder zugeordnet sind, z. B. einem Netzlaufwerk, einem Verzeichnis auf dem lokalen Computer oder einem Registrierungsschlüssel und dauerhaft zugeordneten Windows-Netzlaufwerken, 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 Set-Location
verwenden und auf den Inhalt des Laufwerks zugreifen, indem Sie Get-Item
oder Get-ChildItem
verwenden.
Da temporäre Laufwerke nur für PowerShell bekannt sind, können Sie nicht über den Datei-Explorer, die Windows-Verwaltungsinstrumentation (WMI), das Component Object Model (COM), Microsoft .NET Framework oder mit Tools wie net use
darauf zugreifen.
Die folgenden Features wurden zu New-PSDrive
in PowerShell 3.0 hinzugefügt:
- Zugeordnete Netzlaufwerke. Sie können den Parameter Persist von
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 mithilfe von Windows-Standardtools wie dem Datei-Explorer und Netverwaltet werden. Zugeordnete Netzwerklaufwerke müssen über einen Laufwerkbuchstabennamen verfügen und an einen Remotedateisystemspeicherort angeschlossen sein. Wenn Der Bereich Ihres Befehls lokal festgelegt ist, wird die Persist Parameter nicht beibehalten, um eine PSDrive- über den Bereich hinaus zu erstellen, in dem der Befehl ausgeführt wird. Wenn SieNew-PSDrive
in einem Skript ausführen und möchten, dass das Laufwerk unbegrenzt beibehalten wird, müssen Sie das Skript punktuell erstellen. Um optimale Ergebnisse zu erzielen, fügen Sie dem Befehl den Parameter Scope hinzu, und legen Sie den Wert auf Globalfest. Weitere Informationen zur Dot-Sourcing finden Sie unter about_Scripts. - Externe Laufwerke. Wenn ein externes Laufwerk mit dem Computer verbunden ist, fügt PowerShell dem Dateisystem, das das neue Laufwerk darstellt, automatisch eine PSDrive- hinzu. PowerShell muss nicht neu gestartet werden. Wenn ein externes Laufwerk vom Computer getrennt wird, löscht PowerShell automatisch die PSDrive-, die das entfernte Laufwerk darstellt.
- Anmeldeinformationen für UNC-Pfade (Universal Naming Convention).
Wenn der Wert des Root-Parameters ein UNC-Pfad ist, z. B. \\Server\Share
, werden die anmeldeinformationen, die im Wert des Credential-Parameters angegeben werden, verwendet, um das PSDrive-zu erstellen. Andernfalls ist Anmeldeinformationen nicht wirksam, wenn Sie neue Dateisystemlaufwerke erstellen.
Einige Codebeispiele verwenden splatting, um die Zeilenlänge zu reduzieren und die Lesbarkeit zu verbessern. Weitere Informationen finden Sie unter about_Splatting.
Anmerkung
Sofern Sie nicht den parameter Scope verwenden, werden PSDrives im Bereich erstellt, in dem der Befehl New-PSDrive
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-PSDrive
verwendet den Parameter Name, um das PowerShell-Laufwerk mit dem Namen Public
und den parameter PSProvider anzugeben, um den PowerShell-FileSystem
-Anbieter anzugeben. Der parameter Root 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 MyDocsan. Der parameter PSProvider gibt den PowerShell-FileSystem
-Anbieter an.
Root- gibt das Verzeichnis des lokalen Computers an. Der parameter Description 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-PSDrive
verwendet den Parameter Name, um das PowerShell-Laufwerk mit dem Namen MyCompany
und den parameter PSProvider anzugeben, um den PowerShell-Registry
-Anbieter anzugeben. Der parameter Root 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 der Anmeldeinformationen Parameter.
$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
Anmerkung
Wenn Sie den obigen Codeausschnitt in einem Skript verwenden, legen Sie den Bereich Parameterwert 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.
Name gibt den S
Laufwerkbuchstaben an, den Windows akzeptiert. und Root- definiert \\Server01\Scripts
als Speicherort auf einem Remotecomputer.
Persist erstellt ein zugeordnetes Windows-Netzlaufwerk, das auf dem lokalen Computer gespeichert ist.
PSProvider- gibt den FileSystem
-Anbieter an.
Anmeldeinformationen verwendet die $cred
Variable, um die Anmeldeinformationen des Dienstkontos für die Authentifizierung abzurufen.
Das zugeordnete Laufwerk kann auf dem lokalen Computer in PowerShell-Sitzungen, Datei-Explorer und mit Tools wie netangezeigt 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:
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 in dem Bereich erstellt, in dem der Befehl New-PSDrive
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 bereich Global zu erstellen.
Parameter
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
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. Die Standardeinstellung ist der aktuelle Benutzer.
Da PowerShell 3.0, wenn der Wert des parameters Root 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 PSCredential-Objekt ein, das vom cmdlet Get-Credential
generiert wird. 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.
Anmerkung
Weitere Informationen zu SecureString Datenschutz 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
.
Geben Sie (Get-PSDrive <DriveName>).Description
ein, um die Beschreibung eines bestimmten Laufwerks anzuzeigen.
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 persistent, nicht sitzungsspezifisch und können im Datei-Explorer und anderen Tools angezeigt und verwaltet werden.
Wenn Sie den Befehl lokal festlegen, ohne Dot-Sourcing, behält der parameter Persist die Erstellung eines PSDrive- über den Bereich hinaus, in dem Sie den Befehl ausführen. Wenn Sie New-PSDrive
in einem Skript ausführen und das neue Laufwerk unbegrenzt beibehalten werden soll, müssen Sie das Skript mit Punktquelle erstellen. Um optimale Ergebnisse zu erzwingen, dass ein neues Laufwerk beibehalten wird, geben Sie globalen als Wert des parameters Scope an, und fügen Sie Persist in Den Befehl ein.
Der Name des Laufwerks muss ein Buchstabe sein, z. B. D
oder E
. Der Wert von Root Parameter muss ein UNC-Pfad eines anderen Computers sein. Der Wert des PSProvider Parameters muss FileSystem
sein.
Verwenden Sie zum Trennen eines zugeordneten Windows-Netzlaufwerks das cmdlet Remove-PSDrive
. Wenn Sie ein zugeordnetes Windows-Netzlaufwerk trennen, wird die Zuordnung endgültig vom Computer gelöscht, nicht nur aus der aktuellen Sitzung gelöscht.
Zugeordnete Netzwerklaufwerke sind spezifisch für ein Benutzerkonto. 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, wird der PowerShell-Anbieter FileSystem
. Wenn das Laufwerk einem Registrierungsschlüssel zugeordnet ist, wird der Anbieter Registry
.
Temporäre PowerShell-Laufwerke können jedem Beliebigen PowerShell-Anbieter zugeordnet werden. Zugeordnete Netzlaufwerke können nur dem FileSystem
-Anbieter zugeordnet werden.
Um eine Liste der Anbieter in Ihrer PowerShell-Sitzung anzuzeigen, verwenden Sie das cmdlet Get-PSProvider
.
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 beispielsweise eine Netzwerkfreigabe an, z. B. \\Server01\Public
, ein lokales Verzeichnis, z. B. C:\Program Files
oder einen Registrierungsschlüssel, z. B. HKLM:\Software\Microsoft
.
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 werden.
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, localund Scriptoder 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 |
-WhatIf
Zeigt, was passiert, 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
Dieses Cmdlet gibt ein PSDriveInfo- Objekt zurück, das das erstellte Laufwerk darstellt.
Hinweise
PowerShell enthält die folgenden Aliase für Get-PSDrive
:
- Alle Plattformen:
ndr
- Fenster:
mount
New-PSDrive
ist für die Arbeit mit den daten konzipiert, die von jedem Anbieter verfügbar gemacht werden. Verwenden Sie Get-PSProvider
, um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können. Weitere Informationen zu Anbietern finden Sie unter about_Providers.
Zugeordnete Netzwerklaufwerke sind spezifisch für ein Benutzerkonto. 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.