Olá Pessoal,
Há um tempo atrás, tive um problema com o Windows server 2012 R2 rodando no Azure, na época do Azure Service Management, isso em meados de 2014. O servidor não funcionava devidamente, porque cada vez que ele desligava e o Azure desalocava os recursos, ele “instalava” uma interface de rede nova, e em determinado momento tinham mais de 150 interfaces “Fantasma”(possivel ver plelo Gerenciador de dispositivos habilitando os ocultos). Na época precisei recorer a outra forma mais “legada” no script, mas hoje, é possivel remediar isso com PowerShell Nativo.
O comando Get-PnPDevice, permite listar os dispositivos com status desconhecido, que são basicamente os desconectados. e Através disso, podemos listar no registro do Windows e fazer a limpeza disso. O script abaixo vai percorrer todos os dispositivos desconhecidos encontrados e criar um caminho no registro com o ID desse dispositivo e remover essas entradas, no caso não irá remover o driver, apenas o histórico desses dispositivos. Deixei no comando Remove-ItemProperty o parametro WhatIf para que voce veja tudo que será feito sem que seja feita nenhuma alteração de imediato afim de evitar acidentes. Lembrando também que é necessário executar o terminal em modo elevado visto que estão sendo buscadas chaves de registro da maquina, e nao do usuário.
Script:
ForEach ($Device in @(Get-PnPDevice -Status 'Unknown')) {
Write-Host "Removing $($Device.FriendlyName)" -ForegroundColor Cyan
$RemoveKey = 'HKLM:\SYSTEM\CurrentControlSet\Enum\{0}' -f $Device.InstanceId
Get-Item -Path $RemoveKey | Select-Object -ExpandProperty Property | ForEach-Object -Process {
Remove-ItemProperty -Path $RemoveKey -Name $PSItem -Verbose -WhatIf
}
}
Resultado:
Lembrando que todo cuidado é pouco! teste em um ambiente controlado antes de fazer qualquer modificação em produção!
Dúvidas? Sugestões? Comente!
Até a próxima!
1 Comments
Olá Guido, tenho um cenário na empresa onde trabalho e possivelmente você pode me ajudar, ou indiciar um tutorial que faça. Preciso de um script que busque as impressoras no Windows com determinados nomes e que delete as mesmas. Poderia me ajudar?