Retrouver facilement le chemin vers signtool.exe grâce à PowerShell

Quand il s’agit de signer des fichiers avec le SDK Windows, il est une étape qui est des plus laborieuse : trouver où se trouve signtool.exe. Si en plus vous devez utiliser plusieurs machines, ou que d’autres collègues le même besoin, il faut adapter le chemin pour chaque PC.

Pour éviter de me prendre la tête, j’ai codé une petite ligne de PowerShell qui fait très bien le travail :


$SignTool = get-childItem "C:\Program Files (x86)\Windows Kits\10\bin" -Recurse -Include "signtool.exe" `
  | Where-Object { $_.Directory.BaseName -eq "x64" } `
  | Sort-Object -Property VersionInfo -Descending `
  | Select-Object -First 1

Je l’utilise depuis plusieurs années. Elle a donc été employée avec de nombreux SDK de Windows sans problèmes.

Dans une situation normale, cette ligne peut être utilisée comme ceci.


$SignTool = get-childItem "C:\Program Files (x86)\Windows Kits\10\bin" -Recurse -Include "signtool.exe" `
  | Where-Object { $_.Directory.BaseName -eq "x64" } `
  | Sort-Object -Property VersionInfo -Descending `
  | Select-Object -First 1

if ($null -eq $SignTool) {
    Write-Error "Le SDK Windows comprenant signtool.exe n'est pas installé."
    Break
}

& $SignTool $Arguments

Jérémy Jeanson

Comments

You have to be logged in to comment this post.