Condividi tramite


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-ChildItemo 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 esegue New-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

PSDriveInfo

Note

  • New-PSDrive è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, usare Get-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.