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 New-PSDrive
Cmdlet erstellt temporäre und persistente Laufwerke, die einem Speicherort in einem Datenspeicher zugeordnet oder zugeordnet sind, z. B. ein Netzwerklaufwerk, ein Verzeichnis auf dem lokalen Computer oder einen Registrierungsschlüssel und beständig 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 über einen beliebigen Namen verfügen, 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 zugehörigen Datenspeicher zuzugreifen, genau wie bei jedem zugeordneten Netzlaufwerk. Sie können Speicherorte in das Laufwerk ändern, indem Sie mithilfe Set-Location
des Laufwerks auf den Inhalt des Laufwerks zugreifen Get-Item
oder Get-ChildItem
.
Da temporäre Laufwerke nur für PowerShell bekannt sind, können Sie nicht mithilfe von Explorer, Windows-Verwaltungsinstrumentation (WMI), Component Object Model (COM), Microsoft .NET Framework oder tools wie net use
z. B. auf diese zugreifen.
Die folgenden Features wurden in PowerShell 3.0 hinzugefügt New-PSDrive
:
- Zugeordnete Netzlaufwerke. Sie können den Parameter
New-PSDrive
"Persist" verwenden, um Windows zugeordnete Netzwerklaufwerke zu erstellen. Im Gegensatz zu temporären PowerShell-Laufwerken sind windows zugeordnete Netzwerklaufwerke nicht sitzungsspezifisch. Sie werden in Windows gespeichert und können mithilfe von Standard-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, bleibt der Parameter "Persist " die Erstellung eines PSDrives nicht über den Bereich hinaus erhalten, in dem der Befehl ausgeführt wird. Wenn Sie innerhalb eines Skripts ausgeführtNew-PSDrive
werden und das Laufwerk auf unbestimmte Zeit beibehalten werden soll, müssen Sie das Skript dot-sourcen. Um optimale Ergebnisse zu erzielen, um zu erzwingen, dass ein neues Laufwerk unbegrenzt beibehalten wird, fügen Sie den Bereichsparameter zu Ihrem Befehl hinzu, und legen Sie den Wert auf "Global" fest. Weitere Informationen zum 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. Sie müssen PowerShell nicht neu starten. 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 Credential-Parameters angegebenen Anmeldeinformationen , wird verwendet, um das PSDrive zu erstellen. Andernfalls ist Credential nicht wirksam, wenn Sie neue Dateisystemlaufwerke erstellen.
Einige Codebeispiele verwenden splatting, um die Zeilenlänge zu verringern und die Lesbarkeit zu verbessern. Weitere Informationen finden Sie unter about_Splatting.
Hinweis
Wenn 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-PSDrive
verwendet 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 bietet.
$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 erstellt die Parameterschlüssel und -werte. Der Parameter Name gibt den Laufwerknamen MyDocs an. Der PSProvider-Parameter 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 bietet. Es erstellt ein Laufwerk namens "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 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 persistent zugeordneten Netzlaufwerks mithilfe von Anmeldeinformationen
In diesem Beispiel wird ein Netzwerklaufwerk 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 Credential-Parameters .
$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
Denken Sie daran, wenn Sie den obigen Codeausschnitt in einem Skript verwenden, legen Sie den Bereichsparameterwert 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 windows-zugeordnetes Netzwerklaufwerk, 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 net use angezeigt werden. So zeigen Sie den Inhalt aus einer PowerShell-Sitzung an: Get-ChildItem -Path S:
Beispiel 5: Erstellen von beständigen und temporären Laufwerken
In diesem Beispiel wird der Unterschied zwischen einem beständigen zugeordneten Netzwerklaufwerk und einem temporären PowerShell-Laufwerk dargestellt, das der gleichen 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 beständig 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, muss der Bereichsparameter zum Erstellen des Laufwerks im globalen Bereich verwendet werden.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 Stammparameters 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 Datenschutz von SecureString finden Sie unter Wie sicher ist SecureString?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Description
Gibt eine kurze Textbeschreibung des Laufwerks an. Geben Sie eine beliebige Zeichenfolge ein.
So zeigen Sie die Beschreibungen aller Laufwerke der Sitzung an. Get-PSDrive | Format-Table Name, Description
Um die Beschreibung eines bestimmten Laufwerks anzuzeigen, geben Sie den Typ (Get-PSDrive <DriveName>).Description
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Gibt einen Namen für das neue Laufwerk an. Verwenden Sie für beständig zugeordnete Netzwerklaufwerke einen Laufwerkbuchstaben. Bei temporären PowerShell-Laufwerken sind Sie nicht auf Laufwerkbuchstaben beschränkt, verwenden Sie eine gültige Zeichenfolge.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Persist
Gibt an, dass dieses Cmdlet ein zugeordnetes Windows-Netzwerklaufwerk erstellt. Der Parameter "Persist" ist nur unter Windows verfügbar.
Zugeordnete Netzwerklaufwerke werden unter Windows auf dem lokalen Computer gespeichert. Sie sind beständig, nicht sitzungsspezifisch und können in Explorer und anderen Tools angezeigt und verwaltet werden.
Wenn Sie den Befehl lokal ausweiten, ohne Dot-Sourcing, behält der Parameter "Persist " die Erstellung eines PSDrive nicht über den Bereich hinaus, in dem Sie den Befehl ausführen. Wenn Sie innerhalb eines Skripts ausgeführt werden New-PSDrive
und möchten, dass das neue Laufwerk unbegrenzt beibehalten wird, müssen Sie das Skript dot-source. Um optimale Ergebnisse zu erzielen, um zu erzwingen, dass ein neues Laufwerk beibehalten wird, geben Sie "Global " als Wert des Bereichsparameters an, 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 Stammparameters muss ein UNC-Pfad eines anderen Computers sein. Der Wert des PSProvider-Parameters muss sein FileSystem
.
Verwenden Sie zum Trennen einer Verbindung mit einem zugeordneten Windows-Netzwerklaufwerk das Cmdlet Remove-PSDrive
. 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 erhöhten Sitzungen oder Sitzungen mit den Anmeldeinformationen eines anderen Benutzers erstellt wurden, sind in Sitzungen, die mit unterschiedlichen Anmeldeinformationen gestartet wurden, nicht sichtbar.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PSProvider
Gibt den PowerShell-Anbieter an, der Laufwerke dieser Art unterstützt.
Wenn das Laufwerk beispielsweise einem Netzwerkfreigabe- oder Dateisystemverzeichnis zugeordnet ist, lautet FileSystem
der PowerShell-Anbieter . Wenn das Laufwerk einem Registrierungsschlüssel zugeordnet ist, lautet Registry
der Anbieter .
Temporäre PowerShell-Laufwerke können einem 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.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Root
Gibt den Datenspeicherspeicherort an, dem ein PowerShell-Laufwerk zugeordnet ist.
Geben Sie z. B. eine Netzwerkfreigabe an, z\\Server01\Public
. B. ein lokales Verzeichnis, z. B. ein lokales Verzeichnis, zC:\Program Files
. B. einen Registrierungsschlüssel.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 sein.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Scope
Gibt einen Bereich für das Laufwerk an. Die zulässigen Werte für diesen Parameter sind: Global, Local 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.
Type: | String |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
None
Sie können keine Eingabe an dieses Cmdlet weiterleiten.
Ausgaben
Hinweise
New-PSDrive
ist darauf ausgelegt, mit den daten zu arbeiten, die von jedem Anbieter verfügbar gemacht werden. Verwenden Sie , um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können Get-PSProvider
. Weitere Informationen zu Anbietern finden Sie unter about_Providers.
Zugeordnete Netzwerklaufwerke sind bestimmten Benutzerkonten zugeordnet. Zugeordnete Laufwerke, die in erhöhten Sitzungen oder Sitzungen mit den Anmeldeinformationen eines anderen Benutzers erstellt wurden, sind in Sitzungen, die mit unterschiedlichen Anmeldeinformationen gestartet wurden, nicht sichtbar.