New-PSDrive
Skapar tillfälliga och beständiga enheter som är associerade med en plats i ett objektdatalager.
Syntax
New-PSDrive
[-Name] <String>
[-PSProvider] <String>
[-Root] <String>
[-Description <String>]
[-Scope <String>]
[-Persist]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten New-PSDrive
skapar tillfälliga och beständiga enheter som mappas till eller associeras med en plats i ett datalager, till exempel en nätverksenhet, en katalog på den lokala datorn eller en registernyckel och beständiga Windows-mappade nätverksenheter som är associerade med en filsystemplats på en fjärrdator.
Tillfälliga enheter finns bara i den aktuella PowerShell-sessionen och i sessioner som du skapar i den aktuella sessionen. De kan ha valfritt namn som är giltigt i PowerShell och kan mappas till valfri lokal resurs eller fjärrresurs. Du kan använda tillfälliga PowerShell-enheter för att komma åt data i det associerade datalagret, precis som med alla mappade nätverksenheter. Du kan ändra platser till enheten med hjälp Set-Location
av och komma åt innehållet på enheten med hjälp Get-Item
av eller Get-ChildItem
.
Eftersom tillfälliga enheter bara är kända för PowerShell kan du inte komma åt dem med hjälp av Utforskaren, Windows Management Instrumentation (WMI), Component Object Model (COM), Microsoft .NET Framework eller med verktyg som net use
.
Följande funktioner har lagts till New-PSDrive
i i PowerShell 3.0:
- Mappade nätverksenheter. Du kan använda parametern
New-PSDrive
Persist för för att skapa Windows-mappade nätverksenheter. Till skillnad från tillfälliga PowerShell-enheter är Windows-mappade nätverksenheter inte sessionsspecifika. De sparas i Windows och de kan hanteras med hjälp av Standard Windows-verktyg, till exempel Utforskaren och net use. Mappade nätverksenheter måste ha ett enhetsbeteckningsnamn och vara anslutna till en fjärrplats för filsystemet. När kommandot är begränsat lokalt, utan punktkällor, bevarar inte parametern Persist skapandet av en PSDrive utöver det omfång där kommandot körs. Om du körNew-PSDrive
i ett skript och vill att enheten ska finnas kvar på obestämd tid måste du köra skriptet med punktkälla. För bästa resultat, om du vill tvinga en ny enhet att bevaras på obestämd tid, lägger du till parametern Scope i kommandot och anger dess värde till Global. Mer information om punktkällor finns i about_Scripts. - Externa enheter. När en extern enhet är ansluten till datorn lägger PowerShell automatiskt till en PSDrive i filsystemet som representerar den nya enheten. Du behöver inte starta om PowerShell. På samma sätt, när en extern enhet är frånkopplad från datorn, tar PowerShell automatiskt bort PSDrive som representerar den borttagna enheten.
- Autentiseringsuppgifter för UNC-sökvägar (Universal Naming Convention).
När värdet för rotparametern är en UNC-sökväg, till exempel , används autentiseringsuppgifterna som \\Server\Share
anges i värdet för parametern Credential för att skapa PSDrive. Annars är autentiseringsuppgifter inte effektiva när du skapar nya filsystemenheter.
Vissa kodexempel använder splatting för att minska radlängden och förbättra läsbarheten. Mer information finns i about_Splatting.
Anteckning
Om du inte använder parametern Omfång skapas PSDrives i det omfång där New-PSDrive
kommandot körs.
Exempel
Exempel 1: Skapa en tillfällig enhet som mappats till en nätverksresurs
I det här exemplet skapas en tillfällig PowerShell-enhet som är mappad till en nätverksresurs.
New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"
Name Provider Root
---- -------- ----
Public FileSystem \\Server01\Public
New-PSDrive
använder parametern Namn för att ange PowerShell-enheten med namnet Public
och parametern PSProvider för att ange PowerShell-providern FileSystem
. Rotparametern anger nätverksresursens UNC-sökväg.
Så här visar du innehållet från en PowerShell-session: Get-ChildItem -Path Public:
Exempel 2: Skapa en tillfällig enhet som mappats till en lokal katalog
I det här exemplet skapas en tillfällig PowerShell-enhet som ger åtkomst till en katalog på den lokala datorn.
$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 skapar parameternycklarna och värdena. Parametern Namn anger enhetens namn, MyDocs. Parametern PSProvider anger PowerShell-providernFileSystem
. Roten anger den lokala datorns katalog. Parametern Description beskriver enhetens syfte. New-PSDrive
använder de splattade parametrarna för att skapa MyDocs
enheten.
Så här visar du innehållet från en PowerShell-session: Get-ChildItem -Path MyDocs:
Exempel 3: Skapa en tillfällig enhet för en registernyckel
I det här exemplet skapas en tillfällig PowerShell-enhet som ger åtkomst till en registernyckel. Den skapar en enhet med namnet MyCompany som är mappad till registernyckeln HKLM:\Software\MyCompany
.
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name Provider Root
---- -------- ----
MyCompany Registry HKLM:\Software\MyCompany
New-PSDrive
använder parametern Namn för att ange PowerShell-enheten med namnet MyCompany
och parametern PSProvider för att ange PowerShell-providern Registry
. Rotparametern anger registerplatsen.
Så här visar du innehållet från en PowerShell-session: Get-ChildItem -Path MyCompany:
Exempel 4: Skapa en beständig mappad nätverksenhet med autentiseringsuppgifter
I det här exemplet mappas en nätverksenhet som autentiseras med autentiseringsuppgifterna för ett domäntjänstkonto. Mer information om PSCredential-objektet som lagrar autentiseringsuppgifter och hur lösenord lagras som en SecureString finns i beskrivningen av parametern Credential .
$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
Anteckning
Kom ihåg att om du använder kodfragmentet ovan i ett skript anger du parametervärdet Scope till "Global" för att säkerställa att enheten finns kvar utanför det aktuella omfånget.
Variabeln $cred
lagrar ett PSCredential-objekt som innehåller tjänstkontots autentiseringsuppgifter. Get-Credential
uppmanar dig att ange lösenordet som lagras i en SecureString.
New-PSDrive
skapar den mappade nätverksenheten med hjälp av flera parametrar. Namn anger enhetsbeteckningen S
som Windows accepterar. och Root definierar \\Server01\Scripts
som platsen på en fjärrdator. Spara skapar en Windows-mappad nätverksenhet som sparas på den lokala datorn. PSProvider anger providern FileSystem
. Autentiseringsuppgifter använder variabeln $cred
för att hämta autentiseringsuppgifterna för tjänstkontot för autentisering.
Den mappade enheten kan visas på den lokala datorn i PowerShell-sessioner, Utforskaren och med verktyg som nätanvändning. Så här visar du innehållet från en PowerShell-session: Get-ChildItem -Path S:
Exempel 5: Skapa beständiga och tillfälliga enheter
Det här exemplet visar skillnaden mellan en beständig mappad nätverksenhet och en tillfällig PowerShell-enhet som är mappad till samma nätverksresurs.
Om du stänger PowerShell-sessionen och sedan öppnar en ny session är den tillfälliga PSDrive:
inte tillgänglig, men den beständiga X:
enheten är tillgänglig. När du bestämmer vilken metod som ska användas för att mappa nätverksenheter bör du fundera på hur du ska använda enheten. Till exempel om den måste vara beständig och om enheten måste vara synlig för andra Windows-funktioner.
# 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
Exempel 6: Skapa beständig enhet i ett skript
PSDrive skapas i omfånget New-PSDrive
där kommandot körs. När kommandot körs i ett skript är enhetsmappningen lokal för skriptet. När skriptet avslutas är enheten inte längre tillgänglig.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global
För att säkerställa att enheten är tillgänglig utanför skriptet måste du använda parametern Omfång för att skapa enheten i det globala omfånget.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standard är den aktuella användaren.
Eftersom PowerShell 3.0, när värdet för rotparametern är en UNC-sökväg, kan du använda autentiseringsuppgifter för att skapa filsystemenheter.
Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt som genereras av cmdleten Get-Credential
. Om du skriver ett användarnamn uppmanas du att ange lösenordet.
Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.
Anteckning
Mer information om SecureString-dataskydd finns i Hur säkert är SecureString?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Description
Anger en kort textbeskrivning av enheten. Skriv valfri sträng.
Om du vill se beskrivningarna av alla sessionens enheter, Get-PSDrive | Format-Table Name, Description
.
Om du vill se beskrivningen av en viss enhet skriver du (Get-PSDrive <DriveName>).Description
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Anger ett namn på den nya enheten. Använd en enhetsbeteckning för beständiga mappade nätverksenheter. För tillfälliga PowerShell-enheter är du inte begränsad till enhetsbeteckningar. Använd en giltig sträng.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Persist
Anger att denna cmdlet skapar en Windows-mappad nätverksenhet. Parametern Persist är bara tillgänglig i Windows.
Mappade nätverksenheter sparas i Windows på den lokala datorn. De är beständiga, inte sessionsspecifika och kan visas och hanteras i Utforskaren och andra verktyg.
När du omfångsbegränsar kommandot lokalt, utan dot-sourcing, bevarar inte parametern Persist skapandet av en PSDrive utöver det omfång där du kör kommandot. Om du kör New-PSDrive
i ett skript och vill att den nya enheten ska finnas kvar på obestämd tid måste du köra skriptet med punktkälla. Om du vill få bästa resultat kan du framtvinga att en ny enhet bevaras genom att ange Global som värde för parametern Scope och inkludera Persist i kommandot.
Namnet på enheten måste vara en bokstav, till exempel D
eller E
. Värdet för rotparametern måste vara en UNC-sökväg för en annan dator. PsProvider-parameterns värde måste vara FileSystem
.
Om du vill koppla från en Windows-mappad nätverksenhet använder du cmdleten Remove-PSDrive
. När du kopplar från en Windows-mappad nätverksenhet tas mappningen bort permanent från datorn, inte bara från den aktuella sessionen.
Mappade nätverksenheter är specifika för ett användarkonto. Mappade enheter som skapats i förhöjda sessioner eller sessioner med hjälp av en annan användares autentiseringsuppgifter visas inte i sessioner som startats med olika autentiseringsuppgifter.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PSProvider
Anger den PowerShell-provider som stöder enheter av den här typen.
Om enheten till exempel är associerad med en nätverksresurs eller filsystemkatalog är FileSystem
PowerShell-providern . Om enheten är associerad med en registernyckel är Registry
providern .
Tillfälliga PowerShell-enheter kan associeras med valfri PowerShell-provider. Mappade nätverksenheter kan endast associeras med providern FileSystem
.
Om du vill se en lista över providrar i PowerShell-sessionen använder du cmdleten Get-PSProvider
.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Root
Anger den datalagerplats som en PowerShell-enhet mappas till.
Ange till exempel en nätverksresurs, till exempel \\Server01\Public
, en lokal katalog, till exempel C:\Program Files
, eller en registernyckel, till exempel HKLM:\Software\Microsoft
.
Tillfälliga PowerShell-enheter kan associeras med en lokal eller fjärransluten plats på valfri providerenhet som stöds. Mappade nätverksenheter kan endast associeras med en filsystemplats på en fjärrdator.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Scope
Anger ett omfång för enheten. De godkända värdena för den här parametern är: Global, Lokal och Skript, eller ett tal i förhållande till det aktuella omfånget. Omfång nummer 0 genom antalet omfång. Det aktuella omfångsnumret är 0 och dess överordnade är 1. Mer information finns i about_Scopes.
Type: | String |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten
Utdata
Den här cmdleten returnerar ett PSDriveInfo-objekt som representerar den skapade enheten.
Kommentarer
PowerShell innehåller följande alias för Get-PSDrive
:
- Alla plattformar:
ndr
- Windows:
mount
New-PSDrive
är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över de providrar som är tillgängliga i sessionen använder du Get-PSProvider
. Mer information om leverantörer finns i about_Providers.
Mappade nätverksenheter är specifika för ett användarkonto. Mappade enheter som skapats i förhöjda sessioner eller sessioner med hjälp av en annan användares autentiseringsuppgifter visas inte i sessioner som startats med olika autentiseringsuppgifter.