Como desconectar uma unidade de rede usando o PowerShell

14

Gostaria de desconectar uma unidade de rede (Y :) com o PowerShell. Essa letra de unidade é atribuída / mapeada para um local de rede. Existe uma maneira simples de fazer isso?

Eu acredito que "net use XXX / delete" faria isso.

O problema é:

C:\Windows>net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           Y:        \\192.168.1.108\d         Microsoft Windows Network
The command completed successfully.

porque quando eu tento:

C:\Windows>net use \\192.168.1.108\d  /del

Eu recebo:

C:\Windows>net use \\192.168.1.108\d  /del
The network connection could not be found.

More help is available by typing NET HELPMSG 2250.

????

FernandoSBS
fonte

Respostas:

10

No powershell, você pode emitir um conjunto de comandos como esse para desconectar uma unidade, considerando apenas o UNC que você costumava conectar e sem saber a letra da unidade que foi mapeada.

A parte complicada é que você precisa escapar do \caractere para usá-lo na consulta WMI.

$Drive = Get-WmiObject -Class Win32_mappedLogicalDisk -filter "ProviderName='\\\\192.168.1.108\\d'"
net use $Drive.Name /delete
Zoredache
fonte
2
Adicione /ya net use $Drive.Name /deletepara forçar o fechamento de qualquer conexão aberta na unidade. Se houver conexões abertas, net useserá solicitada uma ação que você não deseja no meio de uma execução autônoma de script.
Alan Donnelly
6

Gostaria de sugerir o uso do Remove-PSDrive do PowerShell. Por exemplo:

Remove-PSDrive Y

Não inclua dois pontos ou uma barra invertida; basta usar apenas a letra da unidade.

Guy Thomas
fonte
7
Remove-psdrive Y não removerá completamente a unidade e deixará um mapeamento de unidade de rede que gerará um erro quando você tentar recriar a unidade ps na mesma sessão. Você precisa usar net use / delete para negar esse problema. seria bom se o comando powershell remove-psdrive realmente removeu a unidade.
Isto está correto. O PowerShell 5 fornece o Remove-SmbMapping que funciona (veja a resposta abaixo)
Minkus
3

Mudou minha resposta com base no seu comentário

Uso líquido Y: / delete

Keltari
fonte
Eu acredito que não me expressei bem. O que eu quero é remover a unidade do Windows Explorer.
FernandoSBS
e se eu quiser usar o endereço de rede para fazer isso?
FernandoSBS
você não pode, você está desconectar uma unidade, não uma parte
Keltari
verifique post inicial, por favor
FernandoSBS
reformule sua postagem inicial, porque o que Keltari disse está certo. O que ele disse vai remover a unidade do Windows Explorer
Jason H