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-Location
en 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 uitvoertNew-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
Als u ervoor wilt zorgen dat het station beschikbaar is buiten het script, 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 |
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 zien, gaat Get-PSDrive | Format-Table Name, Description
u naar .
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 FileSystem
de PowerShell-provider . Als het station is gekoppeld aan een registersleutel, is Registry
de 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 objecten doorsnijden naar deze cmdlet
Uitvoerwaarden
Deze cmdlet retourneert een PSDriveInfo-object dat het gemaakte station vertegenwoordigt.
Notities
PowerShell bevat de volgende aliassen voor Get-PSDrive
:
- Alle platformen:
ndr
- Windows:
mount
New-PSDrive
is ontworpen om te werken met de gegevens die door een provider worden weergegeven. Gebruik Get-PSProvider
om 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.