New-PSDrive
Cria unidades de rede mapeadas temporárias e persistentes.
Sintaxe
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 de registro e unidades de rede mapeadas persistentes 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 criadas 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 chdire acessar o conteúdo da unidade usando Get-Item
, Get-ChildItem
ou 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, a Instrumentação de Gerenciamento do Windows (WMI), o COM (Component Object Model) ou o Microsoft .NET Framework ou usando ferramentas como o Net Use.
Os seguintes recursos são adicionados a 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 pelo 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 Uso da Rede. 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á em execução. Se você estiver executandoNew-PSDrive
dentro de um script e quiser que a unidade persista indefinidamente, você deverá criar o script por ponto. Para obter melhores resultados, para forçar uma nova unidade a persistir indefinidamente, adicione o parâmetro Scope ao seu 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. Você não precisa 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
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
Esse comando cria uma unidade temporária do PowerShell chamada P: mapeada para o \\Server01\Public network share.
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 for concluído, o conteúdo do \\Server01\Public share 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
Esse comando cria uma unidade temporária do PowerShell que fornece acesso rápido a um diretório local. Ele cria uma unidade chamada MyDocs: mapeada para o diretório "C:\Documents and Settings\User01\My Documents" no computador local.
Ele usa
Quando o comando for concluído, o conteúdo da pasta Meus Documentos aparecerá na unidade 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...
Esse comando cria uma unidade temporária do PowerShell que fornece acesso rápido a uma chave do Registro marcada com frequência.
Ele cria uma unidade chamada MyCompany mapeada para a chave do registro HKLM\Software\MyCompany
.
Ele usa Name para especificar um nome para a unidade, PSProvider para especificar o provedor do Registro do PowerShell e Raiz para especificar a chave do Registro.
Quando o comando é concluído, 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
Esse 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 salva no computador local.
O comando usa Name 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 temporária do PowerShell mapeada para o mesmo compartilhamento de rede.
Se você fechar a sessão do PowerShell e abrir uma nova, a unidade PSDrive: desaparecerá e a unidade X:
persistirá. 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 a confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | 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 Raiz for um caminho UNC, você poderá usar credenciais para criar unidades do sistema de arquivos. Esse parâmetro não tem suporte para todos os provedores do PowerShell.
Tipo: | PSCredential |
Cargo: | Named |
Valor padrão: | Current user |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-Description
Especifica uma breve descrição de 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 determinadas unidades, digite (Get-PSDrive \<DriveName\>).Description
.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | 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.
Tipo: | String |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | 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 exibidos 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ê deverá criar o script de origem.
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 seu comando.
O nome da unidade deve ser uma letra, como 'D' ou 'E'. O valor do parâmetro Root deve ser um caminho UNC de um computador diferente. O valor do parâmetro PSProvider 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 para uma conta de usuário. As unidades mapeadas criadas em sessões ou sessões com privilégios elevados usando a credencial de outro usuário não são visíveis em sessões iniciadas usando credenciais diferentes.
Tipo: | SwitchParameter |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | 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.
Unidades temporárias do PowerShell podem ser associadas a qualquer provedor do PowerShell. As unidades de rede mapeadas só podem ser associadas ao provedor FileSystem.
Para ver uma lista dos provedores em sua sessão do PowerShell, use o cmdlet Get-PSProvider
.
Tipo: | String |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | 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.
Unidades temporárias do PowerShell podem ser associadas a uma localização local ou remota em qualquer unidade de provedor com suporte. As unidades de rede mapeadas só podem ser associadas a um local do sistema de arquivos em um computador remoto.
Tipo: | String |
Cargo: | 2 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | 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 por meio do número de escopos. O número de escopo atual é 0 e seu pai é 1. Para obter mais informações, consulte about_Scopes.
Tipo: | String |
Cargo: | Named |
Valor padrão: | Local |
Obrigatório: | False |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-UseTransaction
Inclui o comando na transação ativa. Esse parâmetro só é válido quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.
Tipo: | SwitchParameter |
Aliases: | usetx |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | False |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
None
Não é possível redirecionar a entrada para este cmdlet.
Saídas
Observações
-
New-PSDrive
foi projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, useGet-PSProvider
. Para obter mais informações sobre provedores, consulte about_Providers. - As unidades de rede mapeadas são específicas para uma conta de usuário. As unidades mapeadas criadas em sessões ou sessões com privilégios elevados usando a credencial de outro usuário não são visíveis em sessões iniciadas usando credenciais diferentes.