Acabei de tentar acessar uma pasta assim:
\\somecomputeronmynetwork\somelocation$
Ao ir a este local, sou solicitado a fornecer um nome de usuário e uma senha.
Eu coloquei um, e ele me deixou entrar bem.
Agora preciso remover esse login, para que eu possa tentar um nome de usuário e senha diferentes.
Qual é a maneira mais fácil de fazer isso?
Abra um prompt de comando ou do tipo iniciar/executar:
Você também pode usar o seguinte comando para listar as conexões "lembradas":
Abra seu menu iniciar, na barra de pesquisa digite:
Não funcionará se o seu Windows não tiver senha de login, então coloque uma senha nele
O Windows tenta impedir o logon no mesmo servidor com credenciais diferentes ao mesmo tempo, por algum "motivo de segurança" obscuro.
Essa interceptação acontece no lado do cliente, não no lado do servidor.
Você pode contornar isso usando o endereço IP do servidor em vez do nome do servidor. Pessoalmente, eu faço isso na linha de comando:
Dessa forma, você pode até se conectar duas vezes ao mesmo compartilhamento, com credenciais diferentes. Incrivelmente útil quando você tenta depurar problemas de permissão do usuário do computador do usuário. Até funciona para conectar, digamos, c$, em seu próprio computador com direitos de administrador.
Você remove um compartilhamento clicando com o botão direito do mouse ou
net use x: /delete
Mas: Isso não remove a suposta conexão do seu cliente com o servidor. Apenas navegar para o servidor no explorer, sem conectar um compartilhamento, conta e impede que você use outra credencial para fazer login nesse servidor, a menos que você disfarce o nome.
De acordo com a Microsoft, este é um recurso.
Para remover uma conexão com um PC onde foi feito o acesso a uma pasta e o Usuário foi armazenado em cache (ou seja, permanece ativo) deve ser utilizado rigorosamente o seguinte procedimento (passo-a-passo):
2 Feche todo o Windows Explorer da máquina
3 Abra o prompt de comando
4 Execute o comando
*** Deve ser feito nesta sequência, caso contrário não funciona. Por exemplo, se o prompt de comando já estiver aberto (antes do Windows Explorer) o comando não funcionará.
Todas as senhas salvas para o Windows 7 são salvas no Credential Manager.
Painel de controle\Todos os itens do painel de controle\Gerenciador de credenciais
Se você se autenticar com um nome de usuário e senha em um local de rede, esse nome de usuário e senha permanecerão armazenados em cache para sua sessão de logon. Você precisará fazer logoff e logon novamente antes de poder autenticar novamente.
Eu uso credenciais falsas para realmente desabilitar o acesso.
que parece substituir as credenciais antigas e força o explorador a tentar usar as novas credenciais ruins.
Tente isso, pode funcionar no Windows 7 [funciona no XP]. Basta digitar isso em Iniciar->Executar-> control keymgr.dll . Abrirá
uma janela onde a senha e os nomes de usuário armazenados serão armazenados, você poderá excluir de lá.
Você pode, é claro, remover sua conexão fazendo
Mas você provavelmente deseja se reconectar eventualmente também. Além disso, se você tiver credenciais em cache para o compartilhamento de rede, ao restabelecer a conexão, poderá encontrar um destes erros:
ou
Então, em vez disso, sugiro corrigir o problema sem reinicializar fazendo isso:
Isso tem o bônus adicional de que, embora você desconectará todos os compartilhamentos existentes, eles não serão esquecidos como seriam se você os excluísse com algo como
net use * /d
.Se você não gosta de coisas de linha de comando, você pode, alternativamente, reiniciar o serviço Workstation indo diretamente para Services :
services
, pressione EnterEm seguida, tente seu
net use \\somemachine\someshare /user:someuser
comando novamente para obter novamente as credenciais.Também descobri na resposta do @rocketsarefast que o Windows limpará as credenciais de rede antigas quando houver uma nova tentativa de login.
No entanto, seu
net use "\\10.0.0.5\c$" "badpassword" /user:"baduser"
comando é muito lento, principalmente quando o cliente precisa esperar vários segundos para que o servidor responda com uma rejeição, o que é terrível e inconveniente.Para meu caso de uso, consegui usar a API do Win32 para mapear o compartilhamento de rede
\\Server\Share
para aS:\
unidade. Ele desconecta a unidade primeiro e, em seguida, solicita ao usuário a caixa de diálogo de login de rede do Windows para que a pessoa possa sair e fazer login como um usuário diferente.Aqui está o código C
main.c
:Aqui está o
CMakeLists.txt
:Compile usando MinGW-w64 - para Windows de 32 e 64 bits:
Como alternativa ao C, aqui está um tutorial fácil de C# sobre a API:
Mapeando uma letra de unidade programaticamente:
http://www.blackwasp.co.uk/mapdriveletter.aspx
No Windows 10 (Powershell 5+), agora você também pode usar arquivos
Remove-SmbMapping
.Confira também
Get-Command *Smb*
.