New-PSDrive
Cria uma unidade do Windows PowerShell na sessão atual.
Sintaxe
New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Descrição <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Descrição
O cmdlet New-PSDrive cria uma unidade do Windows PowerShell que é "mapeada" ou associada a um local no repositório de dados, como uma unidade de rede, um diretório no computador local ou uma chave do Registro.
Você pode usar as unidades do Windows PowerShell criadas para acessar dados no repositório de dados associado, como faria com qualquer unidade mapeada. É possível alterar de local na unidade (usando “set-location”, “cd” ou “chdir”) e acessar o conteúdo da unidade (usando “get-item”, “get-childitem” ou “dir”).
No entanto, as unidades do Windows PowerShell são conhecidas apenas no Windows PowerShell. Você não pode acessá-los usando Windows Explorer, Instrumentação de Gerenciamento do Windows (WMI), Component Object Model (COM) ou Microsoft .NET Framework, ou usando ferramentas como Net Use.
As unidades do Windows PowerShell existem apenas na sessão do Windows PowerShell atual. Para tornar a unidade persistente, você pode exportar a sessão à qual a unidade foi adicionada ou salvar um comando New-PSDrive no seu perfil do Windows PowerShell.
Para excluir uma unidade criada por New-PSDrive, use o cmdlet Remove-PSDrive.
Parâmetros
-Credential <PSCredential>
Especifica uma conta de usuário com 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 aquele gerado pelo cmdlet Get-Credential. Uma senha será solicitada após a digitação do nome do usuário.
Este parâmetro não tem suporte em nenhum dos provedores instalados com o Windows PowerShell.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Descrição <string>
Especifica um breve texto descritivo da unidade. Digite qualquer cadeia de caracteres.
Para ver as descrições de todas as unidades do Windows PowerShell no seu sistema, digite "Get-PSDrive | format name, description". Para ver a descrição de uma determinada unidade do Windows PowerShell, digite: "(get-psdrive <DriveName>).description".
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Name <string>
Especifica um nome para a nova unidade. Você pode usar qualquer cadeia de caracteres válida como nome. Você não está limitado a letras de unidade. Os nomes de unidades do Windows PowerShell fazem distinção entre maiúsculas e minúsculas.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-PSProvider <string>
Especifica o provedor do Windows PowerShell que dá suporte a unidades desse tipo.
Por exemplo, se as unidades do Windows PowerShell estiverem associadas a um compartilhamento de rede ou a um diretório do sistema de arquivos, o provedor do Windows PowerShell será "FileSystem". Se a unidade do Windows PowerShell estiver associada a uma chave do Registro, o provedor será "Registry".
Para ver uma lista dos provedores na sessão do Windows PowerShell, digite "Get-PSProvider".
Necessário? |
true |
Posição? |
2 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Root <string>
Especifica o local do repositório de dados para o qual a unidade do Windows PowerShell está 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.
Necessário? |
true |
Posição? |
3 |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Scope <string>
Especifica um escopo para a unidade. Os valores válidos são "Global", "Local" ou "Script" ou um número relativo ao atual escopo (0 ao número de escopos, onde 0 é o escopo atual e 1 é seu pai). "Local" é o padrão. Para obter mais informações, consulte about_Scopes.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByPropertyName) |
Aceitar caracteres curinga? |
false |
-Confirm
Solicita confirmação antes da execução do comando.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-WhatIf
Descreve o que aconteceria se você executasse o comando, sem executá-lo de fato.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-UseTransaction
Inclui o comando na transação ativa. Este parâmetro é válido apenas quando uma transação está em andamento. Para obter mais informações, consulte about_Transactions.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
Nenhum Você não pode canalizar a entrada para este cmdlet. |
Saídas |
System.Management.Automation.PSDriveInfo |
Observações
O cmdlet New-PSDrive foi desenvolvido para funcionar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digite "Get-PSProvider". Para obter mais informações, consulte about_Providers.
Exemplo 1
C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public
Name Provider Root
---- -------- ----
P FileSystem \\Server01\Public
Descrição
-----------
Esse comando cria uma unidade do Windows PowerShell que funciona como uma unidade de rede mapeada no Windows. O comando cria uma unidade do Windows 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 FileSystem do Windows PowerShell e o parâmetro Root para especificar o compartilhamento de rede.
Quando o comando é concluído, o conteúdo do compartilhamento \\Server01\Public aparece na unidade P:. Para vê-lo, digite "dir p:".
Exemplo 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
Descrição
-----------
Esse comando cria uma unidade do Windows PowerShell que fornece acesso rápido a um diretório local. Ele cria uma unidade chamada MyDocs: que está mapeada para o
o diretório "C:\Documents and Settings\User01\My Documents" no computador local.
Ele usa o parâmetro Name para especificar um nome para a unidade, o parâmetro PSProvider para especificar o provedor FileSystem do Windows PowerShell, o parâmetro Root para especificar o caminho até a pasta My Documents e o parâmetro Description para criar uma descrição da unidade.
Quando o comando é concluído, o conteúdo da pasta My Documents aparece na unidade MyDocs:. Para vê-lo, digite "dir mydocs:".
Exemplo 3
C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany
Name Provider Root
---- -------- ----
MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo...
Descrição
-----------
Esse comando cria uma unidade do Windows PowerShell que fornece acesso rápido a uma chave do Registro verificada com frequência. Ele cria uma unidade chamada MyCompany que é mapeada para a chave do Registro HKLM\Software\MyCompany.
Ele usa o parâmetro Name para especificar um nome para a unidade, o parâmetro PSProvider para especificar o provedor Registry do Windows PowerShell e o parâmetro Root para especificar a chave do Registro.
Quando o comando é concluído, o conteúdo da chave MyCompany aparece na unidade MyCompany:. Para vê-lo, digite "dir MyCompany:".
Exemplo 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
Descrição
-----------
Este exemplo mostra a diferença entre uma unidade do Windows mapeada para um compartilhamento de rede e uma unidade do Windows PowerShell mapeada para o mesmo compartilhamento.
O primeiro comando usa o cmdlet New-PSDrive para criar uma nova unidade do Windows PowerShell chamada PSDrive que é mapeada para o compartilhamento de rede \\Server01\Public.
O segundo conjunto de comandos usa o cmdlet New-Object para criar um objeto COM Wscript.Network e usa o método MapNetworkDrive para mapear o compartilhamento de rede \\Server01\Public para a unidade X: no computador local.
Agora você pode examinar as duas unidades. Usando um comando de unidade Get-PSDrive, as unidades parecem ser as mesmas, embora o nome do compartilhamento de rede apareça somente na raiz da unidade PSDrive:.
O envio dos objetos da unidade para Get-Member mostra que eles têm o mesmo tipo de objeto, System.Management.Automation.PSDriveInfo.
No entanto, um comando "net use", um comando Get-WmiObject para a classe Win32_LogicalDisk e um comando Get-WmiObject para a classe Win32_NetworkConnection localizam apenas a unidade X: criada usando o objeto Wscript.Network. Isso ocorre porque as unidades do Windows PowerShell são conhecidas apenas no Windows PowerShell.
Se você fechar a sessão do Windows PowerShell e abrir outra, a unidade PSDrive: desaparecerá e a unidade X: persistirá.
Dessa maneira, ao decidir qual método usar para mapear unidades de rede, leve em consideração como a unidade será usada, se ela precisa ser persistente e se precisa estar visível para outros recursos do Windows.