Partilhar via


New-PSDrive

Cria unidades de rede mapeadas temporárias e persistentes.

Sintaxe

Default (Predefinição)

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

Description

O cmdlet New-PSDrive cria unidades temporárias e persistentes mapeadas ou associadas a um local em um armazenamento de dados, como uma unidade de rede, um diretório no computador local ou uma chave do Registro, e unidades de rede persistentes mapeadas do Windows associadas a um local do sistema de arquivos em um computador remoto.

As unidades temporárias existem apenas na sessão atual do PowerShell e nas sessões que você cria na sessão atual. Eles podem ter qualquer nome válido no PowerShell e podem ser mapeados para qualquer recurso local ou remoto. Você pode usar unidades temporárias do PowerShell para acessar dados no armazenamento de dados associado, assim como faria com qualquer unidade de rede mapeada. Você pode alterar os locais na unidade, usando Set-Location, cdou chdir, e acessar o conteúdo da unidade usando Get-Item, Get-ChildItemou dir.

No entanto, como as unidades temporárias são conhecidas apenas pelo PowerShell, você não pode acessá-las usando o Explorador de Arquivos, o WMI (Instrumentação de Gerenciamento do Windows), o COM (Component Object Model) ou o Microsoft .NET Framework ou usando ferramentas como o Net Use.

Os seguintes recursos são adicionados ao New-PSDrive no Windows PowerShell 3.0:

  • Unidades de rede mapeadas. Você pode usar o parâmetro Persist de New-PSDrive para criar unidades de rede mapeadas do Windows. Ao contrário das unidades temporárias do PowerShell, as unidades de rede mapeadas do Windows não são específicas da sessão. Eles são salvos no Windows e podem ser gerenciados usando ferramentas padrão do Windows, como o Explorador de Arquivos e o Net Use. As unidades de rede mapeadas devem ter um nome de letra de unidade e estar conectadas a um local remoto do sistema de arquivos. Quando o comando tem escopo local (sem dot-sourcing), o parâmetro Persist não persiste a criação de um PSDrive além do escopo no qual o comando está sendo executado. Se você estiver executando New-PSDrive dentro de um script e quiser que a unidade persista indefinidamente, você deve dot-source o script. Para obter melhores resultados, para forçar uma nova unidade a persistir indefinidamente, adicione o parâmetro Scope ao comando e defina seu valor como Global.
  • Unidades externas. Quando uma unidade externa é conectada ao computador, o PowerShell adiciona automaticamente um PSDrive ao sistema de arquivos que representa a nova unidade. Não é necessário reiniciar o PowerShell. Da mesma forma, quando uma unidade externa é desconectada do computador, o PowerShell exclui automaticamente o PSDrive que representa a unidade removida.
  • Credenciais para caminhos UNC.

Quando o valor do parâmetro Root é um caminho UNC, como \\Server\Share, a credencial especificada no valor do parâmetro Credential é usada para criar o PSDrive. Caso contrário, de credenciais não será eficaz quando você estiver criando novas unidades do sistema de arquivos.

Exemplos

Exemplo 1: Criar uma unidade mapeada para um compartilhamento de rede

New-PSDrive -Name "P" -PSProvider "FileSystem" -Root "\\Server01\Public"
Name       Provider      Root
----       --------      ----
P          FileSystem    \\Server01\Public

Este comando cria uma unidade temporária do PowerShell chamada P: que é mapeada para o compartilhamento de rede \\Server01\Public .

Ele usa o parâmetro Name para especificar um nome para a unidade, o parâmetro PSProvider para especificar o provedor do PowerShell FileSystem e o parâmetro Root para especificar o compartilhamento de rede.

Quando o comando terminar, o conteúdo do compartilhamento \\Server01\Public aparecerá na unidade P:. Para vê-los, digite: dir P:.

Exemplo 2: Criar uma unidade temporária

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

Este comando cria uma unidade PowerShell temporária que fornece acesso rápido a um diretório local. Ele cria uma unidade chamada MyDocs: que é mapeada para o diretório "C:\Documents and Settings\User01\My Documents" no computador local.

Ele usa Name para especificar um nome para a unidade, PSProvider para especificar o provedor do PowerShell FileSystem, Root para especificar o caminho da pasta Meus Documentos e o parâmetro Descrição para criar uma descrição da unidade.

Quando o comando terminar, o conteúdo da pasta Meus documentos aparecerá na unidade de MyDocs:. Para vê-los, digite: dir MyDocs:.

Exemplo 3: Criar uma unidade para uma chave do Registro

New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name       Provider      Root
----       --------      ----
MyCompany  Registry      HKEY_LOCAL_MACHINE\Software\MyCo...

Este comando cria uma unidade temporária do PowerShell que fornece acesso rápido a uma chave do Registro verificada com freqüência. Ele cria uma unidade chamada MyCompany que é mapeada para a chave do Registro HKLM\Software\MyCompany.

Ele usa Name para especificar um nome para a unidade, PSProvider para especificar o provedor de Registro do PowerShell e Root para especificar a chave do Registro.

Quando o comando termina, o conteúdo da chave MyCompany aparece na unidade MyCompany:. Para vê-los, digite: dir MyCompany:.

Exemplo 4: Criar uma unidade de rede mapeada persistente

New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem"
Net Use
Status       Local     Remote                    Network
---------------------------------------------------------
OK           S:        \\Server01\Scripts        Microsoft Windows Network

Este comando cria a unidade de rede mapeada 'S' no computador local. A unidade 'S' é mapeada para o compartilhamento de rede \\Server01\Scripts.

O comando usa New-PSDrive para criar a unidade de rede mapeada. Ele usa Persist para criar uma unidade de rede mapeada do Windows que é salva no computador local.

O comando usa Nome para especificar um nome de letra que o Windows aceita e Raiz para especificar um local em um computador remoto. Ele usa PSProvider para especificar o provedor FileSystem.

A unidade resultante pode ser exibida em outras sessões do PowerShell no computador local, no Windows Explorer e em outras ferramentas, como o Net Use.

Exemplo 5: Criar unidades persistentes e temporárias

# 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

Este exemplo mostra a diferença entre uma unidade de rede mapeada persistente e uma unidade PowerShell temporária mapeada para o mesmo compartilhamento de rede.

Se você fechar a sessão do PowerShell e abrir uma nova, a unidade PSDrive: desapareceu e a unidade X: persiste. Portanto, ao decidir qual método usar para mapear unidades de rede, considere como você usará a unidade, se ela precisa ser persistente e se a unidade deve estar visível para outros recursos do Windows.

Parâmetros

-Confirm

Solicita confirmação antes de executar o cmdlet.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Cf.

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Credential

Especifica uma conta de usuário que tem permissão para executar essa ação. O padrão é o usuário atual.

Digite um nome de usuário, como "User01" ou "Domain01\User01", ou insira um objeto PSCredential, como um gerado pelo cmdlet Get-Credential. Se você digitar um nome de usuário, esse cmdlet solicitará uma senha.

A partir do Windows PowerShell 3.0, quando o valor do parâmetro Root for um caminho UNC, você poderá usar credenciais para criar unidades do sistema de arquivos. Esse parâmetro não é suportado por todos os provedores do PowerShell.

Propriedades dos parâmetros

Tipo:PSCredential
Default value:Current user
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Description

Especifica uma breve descrição em texto da unidade. Digite qualquer cadeia de caracteres.

Para ver as descrições de todas as unidades na sessão, digite Get-PSDrive | Format-Table Name, Description. Para ver a descrição de uma unidade específica, digite (Get-PSDrive \<DriveName\>).Description.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Name

Especifica um nome para a nova unidade. Para unidades de rede mapeadas persistentes, digite uma letra de unidade. Para unidades temporárias do PowerShell, digite qualquer cadeia de caracteres válida; Você não está limitado a letras de unidade.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Persist

Indica que esse cmdlet cria uma unidade de rede mapeada do Windows. As unidades de rede mapeadas são salvas no Windows no computador local. Eles são persistentes, não específicos da sessão, e podem ser visualizados e gerenciados no Explorador de Arquivos e em outras ferramentas.

Quando você define o escopo do comando localmente, ou seja, sem dot-sourcing, o parâmetro Persist não persiste a criação de um PSDrive além do escopo no qual você executa o comando. Se você executar New-PSDrive dentro de um script e quiser que a nova unidade persista indefinidamente, você deve dot-source o script. Para obter melhores resultados, para forçar uma nova unidade a persistir, especifique Global como o valor do parâmetro Scope, além de adicionar Persist ao comando.

O nome da unidade deve ser uma letra, como 'D' ou 'E'. O valor de parâmetro Root deve ser um caminho UNC de um computador diferente. O valor do PSProvider parâmetro deve ser FileSystem.

Para desconectar uma unidade de rede mapeada do Windows, use o cmdlet Remove-PSDrive. Quando você desconecta uma unidade de rede mapeada do Windows, o mapeamento é excluído permanentemente do computador, não apenas excluído da sessão atual.

As unidades de rede mapeadas são específicas de uma conta de usuário. As unidades mapeadas criadas em sessões elevadas ou sessões usando a credencial de outro usuário não são visíveis em sessões iniciadas usando credenciais diferentes.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-PSProvider

Especifica o provedor do PowerShell que dá suporte a unidades desse tipo.

Por exemplo, se a unidade estiver associada a um compartilhamento de rede ou diretório do sistema de arquivos, o provedor do PowerShell será FileSystem. Se a unidade estiver associada a uma chave do Registro, o provedor será o Registro.

As unidades temporárias do PowerShell podem ser associadas a qualquer provedor do PowerShell. As unidades de rede mapeadas podem ser associadas somente ao provedor FileSystem.

Para ver uma lista dos provedores em sua sessão do PowerShell, use o cmdlet Get-PSProvider.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:1
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Root

Especifica o local do armazenamento de dados para o qual uma unidade do PowerShell é mapeada.

Por exemplo, especifique um compartilhamento de rede, como \\Server01\Public, um diretório local, como C:\Arquivos de Programas, ou uma chave do Registro, como HKLM:\Software\Microsoft.

As unidades temporárias do PowerShell podem ser associadas a um local local ou remoto em qualquer unidade de provedor suportada. As unidades de rede mapeadas podem ser associadas apenas a um local do sistema de arquivos em um computador remoto.

Propriedades dos parâmetros

Tipo:String
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:2
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Scope

Especifica um escopo para a unidade. Os valores aceitáveis para esse parâmetro são: Global, Local e Script, ou um número relativo ao escopo atual. Escopos número 0 até o número de escopos. O número de escopo atual é 0 e seu pai é 1. Para obter mais informações, consulte about_Scopes.

Propriedades dos parâmetros

Tipo:String
Default value:Local
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-UseTransaction

Inclui o comando na transação ativa. Este parâmetro é válido somente quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Usetx

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:False
Suporta carateres universais:False
NãoMostrar:False
Aliases:Wi

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

None

Não é possível canalizar a entrada para este cmdlet.

Saídas

PSDriveInfo

Notas

  • New-PSDrive é projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, use Get-PSProvider. Para obter mais informações sobre provedores, consulte about_Providers.
  • As unidades de rede mapeadas são específicas de uma conta de usuário. As unidades mapeadas criadas em sessões elevadas ou sessões usando a credencial de outro usuário não são visíveis em sessões iniciadas usando credenciais diferentes.