New-PSDrive
Crea unità di rete mappate temporanee e permanenti.
Sintassi
New-PSDrive
[-Name] <String>
[-PSProvider] <String>
[-Root] <String>
[-Description <String>]
[-Scope <String>]
[-Persist]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Descrizione
Il New-PSDrive
cmdlet crea unità temporanee e persistenti mappate a o associate a un percorso in un archivio dati, ad esempio un'unità di rete, una directory nel computer locale o una chiave del Registro di sistema e unità di rete mappate persistenti di Windows associate a un percorso del file system in un computer remoto.
Le unità temporanee esistono solo nella sessione di PowerShell corrente e nelle sessioni create nella sessione corrente.
Possono avere qualsiasi nome valido in PowerShell e può essere mappato a qualsiasi risorsa locale o remota.
È possibile usare unità PowerShell temporanee per accedere ai dati nell'archivio dati associato, esattamente come si farebbe con qualsiasi unità di rete mappata.
È possibile modificare le posizioni nell'unità usando Set-Location
, cd o chdir e accedere al contenuto dell'unità usando Get-Item
, Get-ChildItem
o dir.
Tuttavia, poiché le unità temporanee sono note solo a PowerShell, non è possibile accedervi usando Esplora file, Strumentazione gestione Windows (WMI), Component Object Model (COM) o Microsoft .NET Framework o usando strumenti come Net Use.
Le funzionalità seguenti vengono aggiunte a New-PSDrive
in Windows PowerShell 3.0:
- Unità di rete su cui è stato eseguito il mapping
È possibile usare il parametro Persist di per creare unità di
New-PSDrive
rete mappate di Windows. A differenza delle unità di PowerShell temporanee, le unità di rete mappate di Windows non sono specifiche della sessione. Vengono salvati in Windows e possono essere gestiti usando strumenti di Windows standard, ad esempio Esplora file e Net Use. Le unità di rete mappate devono avere un nome con lettera di unità ed essere connesse a un percorso nel file system remoto. Quando il comando è con ambito locale (nessun punto-sourcing), il parametro Persist non persiste la creazione di un PSDrive oltre l'ambito in cui è in esecuzione il comando. Se si esegueNew-PSDrive
all'interno di uno script e si vuole che l'unità venga mantenuta in modo permanente, è necessario eseguire lo script dot-source. Per ottenere risultati ottimali, per forzare una nuova unità in modo permanente, aggiungere il parametro Scope al comando e impostare il relativo valore su Globale. - Unità esterne. Quando un'unità esterna è connessa al computer, PowerShell aggiunge automaticamente un PSDrive al file system che rappresenta la nuova unità. Non è necessario riavviare PowerShell. Analogamente, quando un'unità esterna viene disconnessa dal computer, PowerShell elimina automaticamente psDrive che rappresenta l'unità rimossa.
- Credenziali per percorsi UNC.
Quando il valore del parametro Root è un percorso UNC, ad esempio \\Server\Share, le credenziali specificate nel valore del parametro Credential vengono usate per creare PSDrive. In caso contrario, le credenziali non sono valide quando si creano nuove unità di file system.
Esempio
Esempio 1: Create un'unità mappata a una condivisione di rete
New-PSDrive -Name "P" -PSProvider "FileSystem" -Root "\\Server01\Public"
Name Provider Root
---- -------- ----
P FileSystem \\Server01\Public
Questo comando crea un'unità powerShell temporanea denominata P: mappata alla condivisione di rete \\Server01\Pubblica.
Usa il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider FileSystem di PowerShell e il parametro Root per specificare la condivisione di rete.
Al termine del comando, il contenuto della condivisione \\Server01\Public viene visualizzato nell'unità P:
Per visualizzarli, digitare : dir P:
.
Esempio 2: Create un'unità temporanea
New-PSDrive -Name MyDocs -PSProvider FileSystem -Root "C:\Documents and Settings\User01\My Documents" -Description "Maps to my My Documents folder."
Name Provider Root
---- -------- ----
MyDocs FileSystem C:\Documents and Settings\User01\My Documents
Questo comando crea un'unità Di PowerShell temporanea che fornisce accesso rapido a una directory locale. Crea un'unità denominata MyDocs: mappata alla directory "C:\Documents and Settings\User01\My Documents" nel computer locale.
Usa Name per specificare un nome per l'unità, PSProvider per specificare il provider FileSystem di PowerShell, Root per specificare il percorso della cartella Documenti personali e il parametro Description per creare una descrizione dell'unità.
Al termine del comando, il contenuto della cartella Documenti personali viene visualizzato nell'unità MyDocs:
.
Per visualizzarli, digitare : dir MyDocs:
.
Esempio 3: Create un'unità per una chiave del Registro di sistema
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name Provider Root
---- -------- ----
MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo...
Questo comando crea un'unità Di PowerShell temporanea che consente di accedere rapidamente a una chiave del Registro di sistema selezionata di frequente.
Crea un'unità denominata MyCompany mappata alla chiave del HKLM\Software\MyCompany
Registro di sistema.
Usa Nome per specificare un nome per l'unità, PSProvider per specificare il provider del Registro di sistema di PowerShell e Root per specificare la chiave del Registro di sistema.
Al termine del comando, il contenuto della chiave MyCompany viene visualizzato nell'unità MyCompany:
.
Per visualizzarli, digitare : dir MyCompany:
.
Esempio 4: Create un'unità di rete mappata persistente
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem"
Net Use
Status Local Remote Network
---------------------------------------------------------
OK S: \\Server01\Scripts Microsoft Windows Network
Questo comando crea l'unità di rete mappata 'S' nel computer locale. L'unità 'S' viene mappata alla condivisione di rete \\Server01\Script.
Il comando usa New-PSDrive
per creare l'unità di rete mappata.
Usa Persistent per creare un'unità di rete mappata di Windows salvata nel computer locale.
Il comando usa Name per specificare un nome lettera che Windows accetta e Root per specificare un percorso in un computer remoto. Usa PSProvider per specificare il provider FileSystem.
L'unità risultante può essere visualizzata in altre sessioni di PowerShell nel computer locale, in Esplora risorse e in altri strumenti, ad esempio Net Use.
Esempio 5: Create unità persistenti e temporanee
# Create a temporary PowerShell drive called PSDrive: that is 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-WmiObject 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-WmiObject Win32_LogicalDisk | Format-Table -Property DeviceID
Get-WmiObject 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
In questo esempio viene illustrata la differenza tra un'unità di rete mappata persistente e un'unità di PowerShell temporanea mappata alla stessa condivisione di rete.
Se si chiude la sessione di PowerShell e quindi si apre una nuova, l'unità PSDrive: è andata e l'unità X:
persiste. Pertanto, quando si decide quale metodo usare per eseguire il mapping delle unità di rete, valutare come usare l'unità, se deve essere persistente e se l'unità deve essere visibile ad altre funzionalità di Windows.
Parametri
-Confirm
Richiede la conferma dell'utente prima di eseguire il cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Il valore predefinito è l'utente corrente.
Digitare un nome utente, ad esempio "User01" o "Domain01\User01" oppure immettere un oggetto PSCredential , ad esempio uno generato dal Get-Credential
cmdlet.
Se si digita un nome utente, questo cmdlet richiede una password.
A partire da Windows PowerShell 3.0, quando il valore del parametro Radice è un percorso UNC, è possibile usare le credenziali per creare unità file system. Questo parametro non è supportato da tutti i provider di PowerShell.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Description
Specifica una breve descrizione testuale dell'unità. Digitare una stringa qualsiasi.
Per visualizzare le descrizioni di tutte le unità nella sessione, digitare Get-PSDrive | Format-Table Name, Description
.
Per visualizzare la descrizione di una determinata unità, digitare (Get-PSDrive \<DriveName\>).Description
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Specifica un nome per la nuova unità. Per le unità di rete mappate permanenti, digitare una lettera di unità. Per le unità PowerShell temporanee, digitare qualsiasi stringa valida; non sei limitato alle lettere di unità.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Persist
Indica che questo cmdlet crea un'unità di rete mappata di Windows. Le unità di rete mappate vengono salvate in Windows nel computer locale. Sono permanenti, non specifiche della sessione e possono essere visualizzate e gestite in Esplora file e altri strumenti.
Quando si esegue l'ambito del comando in locale, ovvero senza dot-sourcing, il parametro Persistent non persiste la creazione di un PSDrive oltre l'ambito in cui si esegue il comando.
Se si esegue all'interno di uno script e si vuole che la nuova unità venga mantenuta New-PSDrive
in modo permanente, è necessario eseguire lo script dot-source.
Per ottenere risultati ottimali, per forzare la persistentità di una nuova unità, specificare Global come valore del parametro Scope oltre all'aggiunta di Persistent al comando.
Il nome dell'unità deve essere una lettera, ad esempio 'D' o 'E'. Il valore del parametro Root deve essere un percorso UNC di un computer diverso. Il valore del parametro PSProvider deve essere FileSystem.
Per disconnettere un'unità di rete mappata di Windows, usare il Remove-PSDrive
cmdlet.
Quando si disconnette un'unità di rete mappata di Windows, il mapping viene eliminato definitivamente dal computer, non solo dalla sessione corrente.
Le unità di rete mappate sono specifiche di un account utente. Le unità mappate create in sessioni o sessioni elevate usando le credenziali di un altro utente non sono visibili nelle sessioni avviate usando credenziali diverse.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PSProvider
Specifica il provider di PowerShell che supporta le unità di questo tipo.
Ad esempio, se l'unità è associata a una condivisione di rete o a una directory del file system, il provider di PowerShell è FileSystem. Se l'unità è associata a una chiave del Registro di sistema, il provider è Registro di sistema.
Le unità PowerShell temporanee possono essere associate a qualsiasi provider di PowerShell. Le unità di rete mappate possono essere associate solo al provider FileSystem.
Per visualizzare un elenco dei provider nella sessione di PowerShell, usare il Get-PSProvider
cmdlet.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Root
Specifica il percorso dell'archivio dati a cui viene eseguito il mapping di un'unità powerShell.
Ad esempio, specificare una condivisione di rete, ad esempio \\Server01\Public, una directory locale, ad esempio C:\Programmi o una chiave del Registro di sistema, ad esempio HKLM:\Software\Microsoft.
Le unità PowerShell temporanee possono essere associate a una posizione locale o remota in qualsiasi unità provider supportata. Le unità di rete mappate possono essere associate solo a un percorso del file system in un computer remoto.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Scope
Specifica un ambito per l'unità. I valori accettabili per questo parametro sono: Global, Local e Script o un numero relativo all'ambito corrente. Gli ambiti sono 0 tramite il numero di ambiti. Il numero di ambito corrente è 0 e il relativo padre è 1. Per altre informazioni, vedere about_Scopes.
Type: | String |
Position: | Named |
Default value: | Local |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UseTransaction
Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.
Type: | SwitchParameter |
Aliases: | usetx |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Non è possibile inviare input tramite pipe a questo cmdlet.
Output
Note
New-PSDrive
è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, usareGet-PSProvider
. Per altre informazioni sui provider, vedere about_Providers.- Le unità di rete mappate sono specifiche di un account utente. Le unità mappate create in sessioni o sessioni elevate usando le credenziali di un altro utente non sono visibili nelle sessioni avviate usando credenziali diverse.