Obtenha arquitetura do SO remotamente via PowerShell

1

Alguém sabe como obter arquitetura do sistema operacional remotamente a partir de vários hosts do Windows via PowerShell?

    
por Volodymyr M. 15.10.2012 / 15:17

4 respostas

4

get-wmiobject win32_operatingsystem -computer $_ | select-object OSArchitecture

Você pipeline a lista de nomes de computador para este comando para que $ _ seja interpretado como cada computador em sua lista.

Editar: depois de cavar, parece que isso funcionará em 2003 e 2008.

get-wmiobject win32_computersystem -computer $_ | select-object systemtype

    
por 15.10.2012 / 15:34
2

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"
}
    
por 15.10.2012 / 16:09
0

Isso funciona para mim

PS > $env:processor_architecture
AMD64

PowerShell de 32 ou 64 bits

    
por 19.06.2014 / 18:32
0

Talvez um pouco menos extravagante, mas para aqueles que não têm o WMI remoto ativado, um pouco de estilo antigo seria:

$compList = #<whatever you use to source your list of machines>
ForEach($comp in $compList){
    $testPath64 = '\' + $comp + '\c$\Program Files (x86)'
    $testPath = '\' + $comp + '\c$\Program Files'
    $arch = Test-Path $testPath64
    If($arch){Write-Host "$comp is x64"}
    Else{
        $arch = Test-Path $testPath
        If($arch){Write-Host "$comp is x86"}
        Else{Write-Host "No idea..."}
    }
}

Ou algo parecido. O cerne do ponto é, test-path para Arquivos de Programas (x86), que está presente apenas em máquinas de 64 bits.

    
por 18.02.2016 / 00:52