Condividi tramite


New-PSDrive

Crea un'unità di Windows PowerShell nella sessione corrente.

Sintassi

New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Descrizione

Il cmdlet New-PSDrive crea un'unità di Windows PowerShell che viene mappata o associata a un percorso in un archivio dati, ad esempio un'unità di rete, una directory del computer locale o una chiave del Registro di sistema.

È possibile utilizzare le unità di Windows PowerShell create per accedere ai dati nell'archivio dati associato, in modo analogo a qualsiasi unità mappata. È possibile modificare i percorsi nell'unità (tramite "Set-Location", "cd" o "chdir") e accedere al contenuto dell'unità (tramite "Get-Item", "Get-ChildItem" o "dir").

Tuttavia, le unità di Windows PowerShell sono note solo a Windows PowerShell. Non è possibile accedervi attraverso Esplora risorse, Strumentazione gestione Windows (WMI), Component Object Model (COM) o Microsoft .NET Framework o strumenti come Net Use.

Le unità di Windows PowerShell esistono solo nella sessione corrente di Windows PowerShell. Per rendere permanente l'unità, è possibile esportare la sessione alla quale è stata aggiunta o salvare un comando New-PSDrive nel profilo di Windows PowerShell.

Per eliminare un'unità creata da New-PSDrive, utilizzare il cmdlet Remove-PSDrive.

Parametri

-Credential <PSCredential>

Specifica un account utente con autorizzazione per l'esecuzione di questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "Utente01" o "Dominio01\Utente01". In alternativa, immettere un oggetto PSCredential, ad esempio quello generato dal cmdlet Get-Credential. Se si digita un nome utente, viene richiesta una password.

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Description <string>

Fornisce una breve descrizione di testo dell'unità. Digitare una stringa qualsiasi.

Per visualizzare le descrizioni di tutte le unità di Windows PowerShell del sistema, digitare "Get-PSDrive | nome formato, descrizione". Per visualizzare la descrizione di una determinata unità di Windows PowerShell, digitare "(get-psdrive <NomeUnità>).descrizione".

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Name <string>

Specifica un nome per la nuova unità. Per il nome è possibile utilizzare qualsiasi stringa valida. Non occorre utilizzare necessariamente le lettere delle unità. I nomi delle unità di Windows PowerShell rilevano la distinzione tra maiuscole e minuscole.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-PSProvider <string>

Specifica il provider di Windows PowerShell che supporta unità di questo tipo.

Ad esempio, se l'unità di Windows PowerShell è associata a una condivisione di rete o una directory del file system, il provider di Windows PowerShell è "FileSystem". Se l'unità di Windows PowerShell è associata a una chiave del Registro di sistema, il provider è "Registry".

Per visualizzare un elenco dei provider nella sessione di Windows PowerShell, digitare "Get-PSProvider".

Obbligatorio?

true

Posizione?

2

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Root <string>

Specifica il percorso dell'archivio dati al quale è mappata l'unità di Windows PowerShell.

Specificare ad esempio una condivisione di rete, come \\Server01\Public, una directory locale, come C:\Programmi, o una chiave del Registro di sistema, come HKLM:\Software\Microsoft.

Obbligatorio?

true

Posizione?

3

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Scope <string>

Specifica un ambito per l'unità. I valori validi sono "Global", "Local", "Script" oppure un numero relativo all'ambito corrente, ovvero da 0 al numero di ambiti, dove 0 corrisponde all'ambito corrente e 1 al relativo padre. Il valore predefinito è "Local". Per ulteriori informazioni, vedere about_Scopes.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByPropertyName)

Accettare caratteri jolly?

false

-Confirm

Chiede una conferma prima di eseguire il comando.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-WhatIf

Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Nessuno

Non è possibile reindirizzare l'input a questo cmdlet.

Output

System.Management.Automation.PSDriveInfo

Note

Il cmdlet New-PSDrive è progettato per l'utilizzo di dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare "Get-PSProvider". Per ulteriori informazioni, vedere about_Providers.

Esempio 1

C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public

Name       Provider      Root
----       --------      ----
P          FileSystem    \\Server01\Public

Descrizione
-----------
Con questo comando viene creata un'unità di Windows PowerShell che funziona come un'unità di rete mappata in Windows. Viene creata un'unità di Windows PowerShell denominata P: mappata alla condivisione di rete \\Server01\Public. 

Vengono utilizzati il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider FileSystem di Windows PowerShell e il parametro Root per specificare la condivisione di rete.

Al completamento del comando, il contenuto della condivisione \\Server01\Public viene visualizzato nell'unità P:. Per visualizzarlo, digitare "dir p:".





Esempio 2

C:\PS>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

Descrizione
-----------
Con questo comando viene creata un'unità di Windows PowerShell che consente di accedere rapidamente a una directory locale. Viene creata un'unità denominata MyDocs: mappata alla directory 
"C:\Documents and Settings\User01\My Documents" del computer locale.

Vengono utilizzati il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider FileSystem di Windows PowerShell, il parametro Root per specificare il percorso della cartella My Documents e il parametro Description per creare una descrizione dell'unità.


Al completamento del comando, il contenuto della cartella My Documents viene visualizzato nell'unità MyDocs:. Per visualizzarlo, digitare "dir mydocs:".





Esempio 3

C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany

Name       Provider      Root
----       --------      ----
MyCompany  Registry      HKEY_LOCAL_MACHINE\Software\MyCo...

Descrizione
-----------
Con questo comando viene creata un'unità di Windows PowerShell che consente di accedere rapidamente a una chiave del Registro di sistema controllata spesso. Viene creata un'unità denominata MyCompany mappata alla chiave del Registro di sistema HKLM\Software\MyCompany. 

Vengono utilizzati il parametro Name per specificare un nome per l'unità, il parametro PSProvider per specificare il provider Registry di Windows PowerShell e il parametro Root per specificare la chiave del Registro di sistema.


Al completamento del comando, il contenuto della chiave MyCompany viene visualizzato nell'unità MyCompany:. Per visualizzarlo, digitare "dir MyCompany:".





Esempio 4

C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Public

C:\PS> $drive = new-object -com wscript.network
C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public")


C PS:\> get-psdrive public, x

Name       Provider      Root
----       --------      ----
PsDrive    FileSystem    \\Server01\public
X          FileSystem    X:\


C:\PS>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()
...



C:\PS> net use
Status       Local     Remote                    Network
---------------------------------------------------------------------------
             X:        \\server01\public         Microsoft Windows Network


C:\PS> get-wmiobject win32_logicaldisk | ft deviceid
deviceid
--------
C:
D:
X:

C:\PS> get-wmiobject win32_networkconnection
LocalName                     RemoteName                    ConnectionState               Status
---------                     ----------                    ---------------               ------
X:                            \\products\public             Disconnected                  Unavailable

Descrizione
-----------
In questo esempio viene illustrata la differenza tra un'unità di Windows e un'unità di Windows PowerShell mappate alla stessa condivisione di rete.

Nel primo comando viene utilizzato il cmdlet New-PSDrive per creare un'unità di Windows PowerShell denominata PSDrive: mappata alla condivisione di rete \\Server01\Public.

Nel secondo set di comandi viene utilizzato il cmdlet New-Object per creare un oggetto COM Wscript.Network, quindi viene utilizzato il metodo MapNetworkDrive per mappare la condivisione di rete \\Server01\Public all'unità X: nel computer locale. 

È ora possibile esaminare le due unità. Mediante l'utilizzo di un comando Get-PSDrive le unità sembrano essere uguali, anche se il nome della condivisione di rete viene visualizzato solo nella radice dell'unità PSDrive:.

L'invio degli oggetti unità a Get-Member indica che hanno lo stesso tipo di oggetto, System.Management.Automation.PSDriveInfo.

Tuttavia, l'esecuzione di un comando net use, di un comando Get-WmiObject alla classe Win32_LogicalDisk e di un comando Get-WmiObject alla classe Win32_NetworkConnection rileva solo l'unità X: creata tramite l'oggetto Wscript.Network. Questa situazione è dovuta al fatto che le unità di Windows PowerShell sono note solo a Windows PowerShell.

Se si chiude la sessione di Windows PowerShell, quindi se ne apre una nuova, l'unità PSDrive: non è più presente mentre l'unità X: persiste.

Pertanto, per decidere quale metodo utilizzare per mappare le unità di rete, è opportuno considerare in che modo verrà utilizzata l'unità, se deve essere permanente e se è necessario che sia visibile ad altre funzionalità di Windows.





Vedere anche

Concetti

about_Providers
Get-PSDrive
Remove-PSDrive