Delen via


New-PSDrive

Hiermee maakt u tijdelijke en permanente stations die zijn gekoppeld aan een locatie in een gegevensarchief van een item.

Syntax

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 geldige naam hebben in PowerShell en kunnen worden toegewezen aan een lokale of externe resource. U kunt tijdelijke PowerShell-stations gebruiken om toegang te krijgen tot gegevens in het bijbehorende gegevensarchief, net zoals u zou doen met elk toegewezen netwerkstation. U kunt locaties in het station wijzigen met behulp van Set-Locationen toegang 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 ze 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 in PowerShell 3.0:

  • Toegewezen netwerkstations. U kunt de parameter Persistent van New-PSDrive gebruiken om 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 nettogebruik. Toegewezen netwerkstations moeten een stationsletternaam hebben en moeten zijn verbonden met een externe bestandssysteemlocatie. Wanneer uw opdracht lokaal is ingesteld, geen dot-sourcing, blijft de parameter Persistent het maken van een PSDrive niet behouden buiten het bereik waarin de opdracht wordt uitgevoerd. Als u in een script uitvoert New-PSDrive en u wilt dat het station voor onbepaalde tijd behouden blijft, moet u een puntbron voor het script uitvoeren. Voor de beste resultaten kunt u afdwingen 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 aangesloten op de computer, voegt PowerShell automatisch een PSDrive toe aan het bestandssysteem dat het nieuwe station vertegenwoordigt. U hoeft PowerShell niet opnieuw te starten. Wanneer een extern station wordt losgekoppeld van de computer, verwijdert PowerShell automatisch de PSDrive die het verwijderde station vertegenwoordigt.
  • Referenties voor UNC-paden (Universal Naming Convention).

Wanneer de waarde van de parameter Root een UNC-pad is, zoals \\Server\Share, wordt de referentie die is opgegeven in de waarde van de referentieparameter 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 bereikparameter gebruikt, worden PSDrives gemaakt in het bereik waarin de New-PSDrive opdracht wordt uitgevoerd.

Voorbeelden

Voorbeeld 1: Creatie een tijdelijk station 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 de PowerShell-schijf met de naam Public op te geven en de parameter PSProvider om de PowerShell-provider FileSystem op te geven. Met de parameter Root geeft u het UNC-pad van de netwerkshare op.

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

Voorbeeld 2: Creatie een tijdelijk station 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. De naam parameter geeft de naam van het station, MyDocs. De parameter PSProvider geeft de PowerShell-provider FileSystem op. Root geeft de map van de lokale computer op. De beschrijving parameter beschrijft het doel van het station. New-PSDrive gebruikt de splatted parameters om het MyDocs station te maken.

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

Voorbeeld 3: Creatie een tijdelijk station voor een registersleutel

In dit voorbeeld wordt een tijdelijk PowerShell-station gemaakt dat toegang biedt tot een registersleutel. Er wordt een station met de naam MyCompany gemaakt 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 de PowerShell-schijf met de naam MyCompany op te geven en de parameter PSProvider om de PowerShell-provider Registry op te geven. De parameter Root geeft de registerlocatie op.

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

Voorbeeld 4: een permanent toegewezen netwerkstation Creatie 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 een 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 fragment in een script gebruikt, stelt u de parameterwaarde Bereik in op 'Globaal' om ervoor te zorgen dat het station zich buiten het huidige bereik bevindt.

De $cred variabele slaat een PSCredential-object op 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. Naam geeft de S stationsletter aan die door Windows wordt geaccepteerd. en Root definieert \\Server01\Scripts als de locatie op een externe computer. Met Persistent maakt u een windows toegewezen 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 voor verificatie op te halen.

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 Creatie

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 wilt gebruiken om netwerkstations toe te wijzen, moet u rekening houden met de manier waarop 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 Creatie in een script

PSDrives worden gemaakt in het bereik waarin de New-PSDrive opdracht wordt uitgevoerd. Wanneer de opdracht wordt uitgevoerd in 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

Om ervoor te zorgen dat het station beschikbaar is buiten het script, moet de bereikparameter worden gebruikt om het station in het globale bereik te maken.

Parameters

-Confirm

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

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

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

Sinds PowerShell 3.0 kunt u, wanneer de waarde van de parameter Root een UNC-pad is, 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 een SecureString.

Notitie

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

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Description

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

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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. Gebruik een geldige tekenreeks.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Persist

Hiermee wordt aangegeven 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 weergegeven en beheerd in Bestandenverkenner en andere hulpprogramma's.

Wanneer u de opdracht lokaal beslaat, zonder dot-sourcing, blijft de parameter Persistent het maken van een PSDrive buiten het bereik waarin u de opdracht uitvoert niet behouden. Als u in een script uitvoert New-PSDrive en u wilt dat het nieuwe station voor onbepaalde tijd behouden blijft, moet u het script als puntbron gebruiken. Als u de beste resultaten wilt afdwingen dat een nieuw station behouden blijft, geeft u Globaal 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 parameter Root moet een UNC-pad van een andere computer zijn. De waarde van de parameter PSProvider moet zijn FileSystem.

Als u de verbinding met een toegewezen Windows-netwerkstation wilt verbreken, gebruikt u de Remove-PSDrive cmdlet. Wanneer u de verbinding met een toegewezen Windows-netwerkstation verbreekt, wordt de toewijzing permanent 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 de referentie van een andere gebruiker zijn niet zichtbaar in sessies die zijn gestart met andere referenties.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Hiermee geeft u de PowerShell-provider op die ondersteuning biedt voor stations van dit type.

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 Get-PSProvider de cmdlet om een lijst met de providers in uw PowerShell-sessie weer te geven.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Root

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

Geef bijvoorbeeld een netwerkshare op, zoals \\Server01\Public, een 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
Required:True
Accept pipeline input:True
Accept wildcard characters: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 nummer 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
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

None

U kunt geen pijplijninvoer naar deze cmdlet uitvoeren.

Uitvoerwaarden

PSDriveInfo

Notities

New-PSDrive is ontworpen om te werken met de gegevens die door een provider worden weergegeven. Gebruik Get-PSProviderom de providers weer te geven die beschikbaar zijn in uw sessie. 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 andere referenties.