[PowerShell] Tester si un périphérique est connecté

Bonjour à tous,

Voici une fonction qui vous permettra de tester si un périphérique est connecté sur un poste de travail.
Cette fonction retourne les caractéristiques du périphérique si il est trouvé, sinon elle ne renvoie rien.
Le critère de recherche est un ID plug’n’play ou une liste d’IDs plug’n’play compatibles avec ce périphérique.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
function Search-Device
{
    Param
    (
        [Parameter(Mandatory=$true,ValueFromPipeline=$false,Position=0)][String[]]$PnpIDs
    )
 
    $devices = $device = $FoundDevice = $null
 
    # On dresse la liste des pépriphériques connectés 
    $devices = Get-WmiObject -Class Win32_PnpEntity | Sort-Object -Property Caption
 
    # On cherche dans cette liste si un périphérique contient l'ID plug'n'play recherché
    foreach ($device in $devices)
    {
        # On construit la liste des IDs plug'n'play compatibles
        $CompatibleIDs = $null
        if ($device.HardwareID.Count -gt 0)
        {
            $CompatibleIDs = $device.HardwareID
        }
        if ($device.CompatibleID.Count -gt 0)
        {
            $CompatibleIDs += $device.CompatibleID
        }
 
        # On cherche l'ID plug'n'play parmi la liste 
        if ($CompatibleIDs -ne $null)
        {
            foreach ($PnpID in $PnpIDs)
            {
                if ($CompatibleIDs.Contains($PnpID) -eq $true)
                {
                    $FoundDevice = $device
                    break
                }
            }
        }
    }
 
    if ($FoundDevice -ne $null)
    {
        Write-host "Périphérique trouvé" -ForegroundColor Green
        Write-Output $FoundDevice
    }
    else 
    {
        Write-Host "Périphérique non trouvé" -ForegroundColor Yellow
        Write-Output $null
    }
}

Exemples d’utilisation :

1
$Device = Search-Device -PnpIDs @('PCI\VEN_8086&DEV_0166&REV_09','PCI\VEN_8086&CC_030000')

Enjoy 😉

[Windows] Modifier l’ordre des emplacements source des pilotes

Vous avez déjà pu constater que lors du branchement d’un nouveau périphérique la recherche d’un pilote compatible pouvait prendre un certain temps … et même un temps certain. Ce délai est dû au fait que le processus de recherche de pilote Windows tente d’abord de localiser un pilote à partir du site Windows Update avant de rechercher un pilote localement.

Depuis Windows 7, vous avez la possibilité de modifier cet ordre de recherche.

Cet article vous présente où et comment modifier ce paramètre.

Lire la suite