@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

Inicio - Windows - PowerShell - Powershell: Borrar dispositivos ocultos
powershell-borrar-dispositivos-ocultos-3

Powershell: Borrar dispositivos ocultos

Powershell: Borrar dispositivos ocultos

Hoy os dejo un script que he probado en Windows 10 y un Windows Server 2016 sin problemas. Todo viene porque no encontraba la forma de eliminar por powershell en una máquina virtual W2016 en Hyper-V sobre Windows Server 2016 Core un dispositivo oculto.

En alguna de las múltiples modificaciones que ha tenido la máquina virtual se ha quedado una de las NICs del sistema oculta al eliminar y borrar la anterior. Probablemente, porque dispone la máquina de un clúster NLB y no le ha gustado que jugueteara con él. Al no tener interfaz gráfica no he encontrado una forma fácil para eliminarla (esto viene porque quiero que se llame Ethernet y no Ethernet 2).

Este script os sirve en el proceso de optimización de plantillas para VMware y Citrix sobre todo.

Así que he encontrado un script que he podido testear y que funciona realmente bien. Hay que lanzarlo como administrador. Leer el script porque existen parámetros para no borrar todos sino los que nos interesan:

powershell-borrar-dispositivos-ocultos-0

Lo primero es copiar a un servidor Nano, así que lanzamos la copia de siguiente manera:

Veremos que por ejemplo, las NICs que queremos quitar existen en modo oculto:

powershell-borrar-dispositivos-ocultos-2

Y podremos eliminar esos dispositivos ocultos que optimizan precisamente el sistema:

powershell-borrar-dispositivos-ocultos-3

Una vez ejecutado podremos ver el resultado:

powershell-borrar-dispositivos-ocultos-1

Y yo ya puedo hacer lo que buscaba:

powershell-borrar-dispositivos-ocultos-4

Os dejo el script que deberéis copiar en un fichero ps1 (no sé quien es el autor, porque ya no sale en GitHub) :

<#
.SYNOPSIS
Removes ghost devices from your system

.DESCRIPTION
This script will remove ghost devices from your system. These are devices that are present but have a “InstallState” as false. These devices are typically shown as ‘faded’
in Device Manager, when you select “Show hidden and devices” from the view menu. This script has been tested on Windows 2008 R2 SP2 with PowerShell 3.0, 5.1 and Server 2012R2
with Powershell 4.0. There is no warranty with this script. Please use cautiously as removing devices is a destructive process without an undo.

.PARAMETER filterByFriendlyName
This parameter will exclude devices that match the partial name provided. This paramater needs to be specified in an array format for all the friendly names you want to be excluded from removal.
“Intel” will match “Intel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz”. “Loop” will match “Microsoft Loopback Adapter”.

.PARAMETER filterByClass
This parameter will exclude devices that match the class name provided. This paramater needs to be specified in an array format for all the class names you want to be excluded from removal.
This is an exact string match so “Disk” will not match “DiskDrive”.

.PARAMETER listDevicesOnly
listDevicesOnly will output a table of all devices found in this system.

.PARAMETER listGhostDevicesOnly
listGhostDevicesOnly will output a table of all ‘ghost’ devices found in this system.

.EXAMPLE
Lists all devices
. “removeGhosts.ps1” -listDevicesOnly

.EXAMPLE
Save the list of devices as an object
$Devices = . “removeGhosts.ps1” -listDevicesOnly

.EXAMPLE
Lists all ‘ghost’ devices
. “removeGhosts.ps1” -listGhostDevicesOnly

.EXAMPLE
Save the list of ‘ghost’ devices as an object
$ghostDevices = . “removeGhosts.ps1” -listGhostDevicesOnly

.EXAMPLE
Remove all ghost devices EXCEPT any devices that have “Intel” or “Citrix” in their friendly name
. “removeGhosts.ps1” -filterByFriendlyName @(“Intel”,”Citrix”)

.EXAMPLE
Remove all ghost devices EXCEPT any devices that are apart of the classes “LegacyDriver” or “Processor”
. “removeGhosts.ps1” -filterByClass @(“LegacyDriver”,”Processor”)

.EXAMPLE
Remove all ghost devices EXCEPT for devices with a friendly name of “Intel” or “Citrix” or with a class of “LegacyDriver” or “Processor”
. “removeGhosts.ps1” -filterByClass @(“LegacyDriver”,”Processor”) -filterByFriendlyName @(“Intel”,”Citrix”)

.NOTES
Permission level has not been tested. It is assumed you will need to have sufficient rights to uninstall devices from device manager for this script to run properly.
#>

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales, linuxero y entusiasta de la tecnología.

Compruebe también

instalar-containers-en-Windows-Server-2019-1

Instalar containers en Windows Server 2019

Instalar containers en Windows Server 2019 He estado probando estos días en mi LAB unas …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

cuatro + tres =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu