Estou executando uma instalação do Windows Server 2012 dentro da VMWare Workstation. Eu tenho pastas compartilhadas habilitadas, então a unidade Z:
é mapeada para \\vmware-host
. Consigo acessar corretamente esta unidade no Explorer (posso acessar Z:
dentro do `cmd "normal") e posso abrir arquivos corretamente.
Abri o PowerShell e tentei cd Z:
e recebi o seguinte erro:
cd : Não é possível localizar o caminho 'Z:\' porque ele não existe.
Por que o PowerShell não consegue encontrar a unidade de rede já mapeada?
Pesquisei um pouco no Google e encontrei o New-PSDrive
comando. Eu corri o seguinte:
New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'
mas ainda recebo o mesmo erro acima. O que preciso fazer para acessar as pastas compartilhadas VMWare dentro do PowerShell.
Você precisa disponibilizar o mapeamento da unidade para o usuário com o qual está executando
Powershell
. Você pode fazer o seguinte para fornecer a esse usuário o mesmo mapeamento de unidade:Consulte a seguinte pergunta SO: Não é possível acessar a unidade de rede no PowerShell em execução como administrador
Você está iniciando este console do PowerShell como Administrador ou como seu usuário atual?
Se você estiver executando a partir de um prompt de comando não elevado, ele deverá ver todas as suas unidades de rede mapeadas localmente. Estou na mesma situação que você agora e
x:
mapeei para\\vmware-host\[folder]
, e umGet-PSDrive -PSProvider FileSystem
mostra todas as minhas unidades mapeadas localmente.No entanto , se eu iniciar este console como administrador, ele não verá nenhuma unidade mapeada local, pois para um prompt de comando elevado, um contexto de segurança diferente (segundo) é usado para carregar o aplicativo, que não compartilha conexões de rede.
A boa notícia é que você basicamente só precisa mapear a unidade no console do administrador apenas uma vez e ela permanecerá nesse contexto de segurança (até uma reinicialização, eu acho).
Se você deseja automatizar isso, leia sobre scripts de carregamento automático ao iniciar uma sessão do powershell. Basicamente, se você criar uma pasta em seu
My Documents
chamadoWindowsPowerShell
e dentro dela criar umMicrosoft.PowerShell_profile.ps1
arquivo, ele será acionado toda vez que você iniciar um novo console do powershell. Lá você pode adicionar umnet use
comando ou adicionar funções personalizadas que você escreveu que deseja usar.Por exemplo, tenho um que torna meu cursor vermelho para consoles administrativos e tem uma função que posso chamar facilmente para assinar meus scripts PS1.
Para que esse
New-PSDrive
comando funcione, você precisa usar um caminho UNC para -Root em vez de "Z:", pois o PowerShell elevado não conhece Z: ainda:Meu entendimento é que a resposta de jscott (
net use...
) funciona em mais casos, no entanto.