No Windows XP / 2003 e superior, o Win32_Processor possui uma propriedade AddressWidth, que será 32 ou 64, conforme apropriado.
Há 1 instância do objeto WMI da classe Win32_Processor para cada CPU conhecida no Gerenciador de dispositivos do Windows, então, normalmente, fiz esse tipo de coisa no passado. É o VBScript, meu PowerShell é uma droga, mas você tem a idéia ...
Set objWMIService = GetObject("winmgmts:\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor WHERE AddressWidth='64'")
If colItems.Count = 0 Then
strArch = "x86"
Else
strArch = "x64"
End If
update : traduzido para o PowerShell:
If ($(Get-WmiObject -Query "SELECT * FROM Win32_Processor WHERE AddressWidth='64'")) {
Write-Host "I'm x64"
} Else {
Write-Host "I'm x86"
}