PowerShell 32 bits vs 64 bits

Mise en contexte

Vous avez un script PowerShell qui utilise des composantes 64 bits.  Tout va bien lorsque vous l’exécutez directement ou en ligne de commande.  Par contre, lorsque vous tentez d’exécuter le même script à partir d’un logiciel tiers ou d’un programme que vous développez en 32 bits, plus rien ne fonctionne.

Par exemple, vous tentez d’utiliser des commandes liées à un serveur Exchange et lorsque vous tentez de charger le module suivant : Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

Vous obtenez l’erreur suivante :

Add-PSSnapin : The Windows PowerShell snap-in ‘Microsoft.Exchange.Management.PowerShell.Admin' is not installed on this computer.

Le snap-in est bien installé, malheureusement il ne fonctionne quand 64 bits.  Que faire si on ne peut obtenir ou compiler le programme en 64 bits?

Voici une solution qui consiste à ajouter quelques lignes de code à votre script afin de lancer l’exécution de PowerShell 64 bits.

If ( [IntPtr]::Size * 8 -ne 32 )
    {
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\PowerShell.exe -File $MyInvocation.MyCommand.Path
    }
Else
    {
# Your code here
    }

Source : http://www.madwithpowershell.com/2015/06/64-bit-vs-32-bit-powershell.html

Voilà, il suffit de mettre votre code d’origine à l’endroit indiqué.

The 4sysops PowerShell tutorial

Une petite mine d’or de scripts et de tutoriel sur le PowerShell.

Voici ma sélection personnelle parmi les scripts proposés par 4sysops :

System administration with PowerShell

Pour la liste complète, visitez 4sysops.com :
https://4sysops.com/archives/announcing-the-4sysops-powershell-tutorial/