Delen via


New-PSDrive

Hiermee maakt u tijdelijke en permanente stations die zijn gekoppeld aan een locatie in een itemgegevensarchief.

Syntaxis

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

Description

De New-PSDrive cmdlet maakt tijdelijke en permanente stations die zijn toegewezen aan of gekoppeld aan een locatie in een gegevensarchief, zoals een netwerkstation, een map op de lokale computer of een registersleutel, en permanente windows toegewezen netwerkstations die zijn gekoppeld aan een bestandssysteemlocatie op een externe computer.

Tijdelijke stations bestaan alleen in de huidige PowerShell-sessie en in sessies die u in de huidige sessie maakt. Ze kunnen elke naam hebben die geldig is in PowerShell en kan worden toegewezen aan elke lokale of externe resource. U kunt tijdelijke PowerShell-stations gebruiken om toegang te krijgen tot gegevens in het bijbehorende gegevensarchief, net zoals bij elk toegewezen netwerkstation. U kunt locaties wijzigen in het station, door gebruik te maken Set-Locationvan en toegang te krijgen tot de inhoud van het station met behulp van Get-Item of Get-ChildItem.

Omdat tijdelijke stations alleen bekend zijn bij PowerShell, kunt u deze niet openen met behulp van Bestandenverkenner, Windows Management Instrumentation (WMI), Component Object Model (COM), Microsoft .NET Framework of met hulpprogramma's zoals net use.

De volgende functies zijn toegevoegd aan New-PSDrive PowerShell 3.0:

  • Toegewezen netwerkstations. U kunt de parameter Persistent gebruiken om New-PSDrive toegewezen Windows-netwerkstations te maken. In tegenstelling tot tijdelijke PowerShell-stations zijn toegewezen Windows-netwerkstations niet sessiespecifiek. Ze worden opgeslagen in Windows en kunnen worden beheerd met behulp van standaard Windows-hulpprogramma's, zoals Bestandenverkenner en netgebruik. Toegewezen netwerkstations moeten een stationsletternaam hebben en verbonden zijn met een externe bestandssysteemlocatie. Wanneer uw opdracht lokaal is gericht, blijft de parameter Persistent het maken van een PSDrive niet behouden buiten het bereik waarin de opdracht wordt uitgevoerd. Als u in een script werkt New-PSDrive en u het station voor onbepaalde tijd wilt behouden, moet u de puntbron van het script maken. Als u wilt dat een nieuw station voor onbepaalde tijd behouden blijft, voegt u de parameter Bereik toe aan uw opdracht en stelt u de waarde ervan in op Globaal. Zie about_Scripts voor meer informatie over dot-sourcing.
  • Externe stations. Wanneer een extern station is verbonden met de computer, voegt PowerShell automatisch een PSDrive toe aan het bestandssysteem dat het nieuwe station vertegenwoordigt. U hoeft PowerShell niet opnieuw op te starten. Op dezelfde manier verwijdert PowerShell, wanneer een extern station is losgekoppeld van de computer, automatisch de PSDrive die het verwijderde station vertegenwoordigt.
  • Referenties voor UNC-paden (Universal Naming Convention).

Wanneer de waarde van de hoofdparameter een UNC-pad is, zoals \\Server\Sharede referentie die is opgegeven in de waarde van de referentieparameter , wordt gebruikt om de PSDrive te maken. Anders is referentie niet effectief wanneer u nieuwe bestandssysteemstations maakt.

Sommige codevoorbeelden gebruiken splatting om de lijnlengte te verminderen en de leesbaarheid te verbeteren. Zie about_Splatting voor meer informatie.

Notitie

Tenzij u de parameter Bereik gebruikt, worden PSDrives gemaakt in het bereik waarin de New-PSDrive opdracht wordt uitgevoerd.

Voorbeelden

Voorbeeld 1: Een tijdelijk station maken dat is toegewezen aan een netwerkshare

In dit voorbeeld wordt een tijdelijk PowerShell-station gemaakt dat is toegewezen aan een netwerkshare.

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

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

New-PSDrive gebruikt de parameter Name om het PowerShell-station met de naam Public en de PSProvider-parameter op te geven om de PowerShell-provider FileSystem op te geven. De hoofdparameter geeft het UNC-pad van de netwerkshare op.

De inhoud van een PowerShell-sessie weergeven: Get-ChildItem -Path Public:

Voorbeeld 2: Een tijdelijk station maken dat is toegewezen aan een lokale map

In dit voorbeeld wordt een tijdelijk PowerShell-station gemaakt dat toegang biedt tot een map op de lokale computer.

$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

Met Splatting worden de parametersleutels en -waarden gemaakt. Met de parameter Name geeft u de naam van het station, MyDocs. De parameter PSProvider geeft de PowerShell-provider FileSystem op. De hoofdmap geeft de map van de lokale computer op. De beschrijvingsparameter beschrijft het doel van het station. New-PSDrive gebruikt de geplatte parameters om het MyDocs station te maken.

De inhoud van een PowerShell-sessie weergeven: Get-ChildItem -Path MyDocs:

Voorbeeld 3: Een tijdelijk station voor een registersleutel maken

In dit voorbeeld wordt een tijdelijk PowerShell-station gemaakt dat toegang biedt tot een registersleutel. Er wordt een station gemaakt met de naam MyCompany dat is toegewezen aan de HKLM:\Software\MyCompany registersleutel.

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

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

New-PSDrive gebruikt de parameter Name om het PowerShell-station met de naam MyCompany en de PSProvider-parameter op te geven om de PowerShell-provider Registry op te geven. De hoofdparameter geeft de registerlocatie op.

De inhoud van een PowerShell-sessie weergeven: Get-ChildItem -Path MyCompany:

Voorbeeld 4: Een permanent toegewezen netwerkstation maken met behulp van referenties

In dit voorbeeld wordt een netwerkstation toegewezen dat is geverifieerd met de referenties van een domeinserviceaccount. Zie de beschrijving van de referentieparameter voor meer informatie over het PSCredential-object waarin referenties worden opgeslagen en hoe wachtwoorden worden opgeslagen als secureString.

$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

Notitie

Als u het bovenstaande codefragment in een script gebruikt, stelt u de parameterwaarde Bereik in op 'Globaal' om ervoor te zorgen dat het station zich buiten het huidige bereik blijft bevinden.

In $cred de variabele wordt een PSCredential-object opgeslagen dat de referenties van het serviceaccount bevat. Get-Credential vraagt u om het wachtwoord in te voeren dat is opgeslagen in een SecureString.

New-PSDrive maakt het toegewezen netwerkstation met behulp van verschillende parameters. De naam geeft de S stationsletter die door Windows wordt geaccepteerd. en Root definieert \\Server01\Scripts als de locatie op een externe computer. Persistent maakt een toegewezen Windows-netwerkstation dat is opgeslagen op de lokale computer. PSProvider geeft de FileSystem provider op. Referentie gebruikt de $cred variabele om de referenties van het serviceaccount op te halen voor verificatie.

Het toegewezen station kan worden weergegeven op de lokale computer in PowerShell-sessies, Bestandenverkenner en met hulpprogramma's zoals net use. De inhoud van een PowerShell-sessie weergeven: Get-ChildItem -Path S:

Voorbeeld 5: Permanente en tijdelijke stations maken

In dit voorbeeld ziet u het verschil tussen een permanent toegewezen netwerkstation en een tijdelijk PowerShell-station dat is toegewezen aan dezelfde netwerkshare.

Als u de PowerShell-sessie sluit en vervolgens een nieuwe sessie opent, is de tijdelijke PSDrive: sessie niet beschikbaar, maar is het permanente X: station wel beschikbaar. Wanneer u besluit welke methode u moet gebruiken om netwerkstations toe te wijzen, moet u overwegen hoe u het station gaat gebruiken. Bijvoorbeeld of het permanent moet zijn en of het station zichtbaar moet zijn voor andere Windows-functies.

# 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

Voorbeeld 6: Permanente schijf maken in een script

PSDrives worden gemaakt in het bereik waarin de New-PSDrive opdracht wordt uitgevoerd. Wanneer de opdracht wordt uitgevoerd binnen een script, is de stationstoewijzing lokaal voor het script. Wanneer het script wordt afgesloten, is het station niet meer beschikbaar.

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

Als u ervoor wilt zorgen dat het station buiten het script beschikbaar is, moet u de parameter Bereik gebruiken om het station in het globale bereik te maken.

Parameters

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Credential

Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. Standaard is dit de huidige gebruiker.

Aangezien PowerShell 3.0, wanneer de waarde van de parameter Root een UNC-pad is, kunt u referenties gebruiken om bestandssysteemstations te maken.

Typ een gebruikersnaam, zoals User01 of Domain01\User01, of voer een PSCredential-object in dat is gegenereerd door de Get-Credential cmdlet. Als u een gebruikersnaam typt, wordt u gevraagd het wachtwoord in te voeren.

Referenties worden opgeslagen in een PSCredential-object en het wachtwoord wordt opgeslagen als SecureString.

Notitie

Zie Hoe veilig is SecureString SecureString?voor meer informatie over SecureString-gegevensbeveiliging.

Type:PSCredential
Position:Named
Default value:Current user
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Description

Hiermee geeft u een korte tekstbeschrijving van het station. Typ een willekeurige tekenreeks.

Als u de beschrijvingen van alle stations van de sessie wilt bekijken, Get-PSDrive | Format-Table Name, Description.

Als u de beschrijving van een bepaald station wilt zien, typt (Get-PSDrive <DriveName>).Descriptionu .

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Name

Hiermee geeft u een naam voor het nieuwe station. Gebruik een stationsletter voor permanente toegewezen netwerkstations. Voor tijdelijke PowerShell-stations bent u niet beperkt tot stationsletters en gebruikt u een geldige tekenreeks.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Persist

Geeft aan dat deze cmdlet een toegewezen Windows-netwerkstation maakt. De parameter Persistent is alleen beschikbaar in Windows.

Toegewezen netwerkstations worden opgeslagen in Windows op de lokale computer. Ze zijn permanent, niet sessiespecifiek en kunnen worden bekeken en beheerd in Bestandenverkenner en andere hulpprogramma's.

Wanneer u de opdracht lokaal bereikt, zonder dot-sourcing, blijft de parameter Persistent het maken van een PSDrive niet behouden buiten het bereik waarin u de opdracht uitvoert. Als u in een script uitvoert New-PSDrive en u wilt dat het nieuwe station voor onbepaalde tijd behouden blijft, moet u een puntbron van het script maken. Als u wilt afdwingen dat een nieuw station behouden blijft, geeft u Global op als de waarde van de parameter Bereik en neemt u Persistent op in uw opdracht.

De naam van het station moet een letter zijn, zoals D of E. De waarde van de rootparameter moet een UNC-pad van een andere computer zijn. De waarde van de parameter PSProvider moet zijn FileSystem.

Gebruik de Remove-PSDrive cmdlet om de verbinding met een toegewezen Windows-netwerkstation te verbreken. Wanneer u een toegewezen Windows-netwerkstation loskoppelt, wordt de toewijzing definitief van de computer verwijderd, niet alleen uit de huidige sessie.

Toegewezen netwerkstations zijn specifiek voor een gebruikersaccount. Toegewezen stations die zijn gemaakt in sessies met verhoogde bevoegdheid of sessies met behulp van de referenties van een andere gebruiker, zijn niet zichtbaar in sessies die zijn gestart met verschillende referenties.

Type:SwitchParameter
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-PSProvider

Hiermee geeft u de PowerShell-provider op die stations van dit type ondersteunt.

Als het station bijvoorbeeld is gekoppeld aan een netwerkshare of bestandssysteemmap, is FileSystemde PowerShell-provider. Als het station is gekoppeld aan een registersleutel, is Registryde provider .

Tijdelijke PowerShell-stations kunnen worden gekoppeld aan elke PowerShell-provider. Toegewezen netwerkstations kunnen alleen worden gekoppeld aan de FileSystem provider.

Gebruik de Get-PSProvider cmdlet om een lijst met de providers in uw PowerShell-sessie weer te geven.

Type:String
Position:1
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Root

Hiermee geeft u de locatie van het gegevensarchief waaraan een PowerShell-station is toegewezen.

Geef bijvoorbeeld een netwerkshare op, zoals \\Server01\Publiceen lokale map, zoals C:\Program Files, of een registersleutel, zoals HKLM:\Software\Microsoft.

Tijdelijke PowerShell-stations kunnen worden gekoppeld aan een lokale of externe locatie op elk ondersteund providerstation. Toegewezen netwerkstations kunnen alleen worden gekoppeld aan een bestandssysteemlocatie op een externe computer.

Type:String
Position:2
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Scope

Hiermee geeft u een bereik voor het station. De acceptabele waarden voor deze parameter zijn: Globaal, Lokaal en Script, of een getal ten opzichte van het huidige bereik. Bereiken getal 0 tot en met het aantal bereiken. Het huidige bereiknummer is 0 en de bovenliggende waarde is 1. Zie about_Scopes voor meer informatie.

Type:String
Position:Named
Default value:Local
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt geen objecten doorsluisen naar deze cmdlet

Uitvoerwaarden

PSDriveInfo

Met deze cmdlet wordt een PSDriveInfo-object geretourneerd dat het gemaakte station vertegenwoordigt.

Notities

PowerShell bevat de volgende aliassen voor Get-PSDrive:

  • Alle platforms:
    • ndr
  • Windows:
    • mount

New-PSDrive is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, gebruikt u Get-PSProvider. Zie about_Providers voor meer informatie over providers.

Toegewezen netwerkstations zijn specifiek voor een gebruikersaccount. Toegewezen stations die zijn gemaakt in sessies met verhoogde bevoegdheid of sessies met behulp van de referenties van een andere gebruiker, zijn niet zichtbaar in sessies die zijn gestart met verschillende referenties.