![Powershell:如果计算机处于离线状态,则获取计算机架构](https://linux22.com/image/1485613/Powershell%EF%BC%9A%E5%A6%82%E6%9E%9C%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%A4%84%E4%BA%8E%E7%A6%BB%E7%BA%BF%E7%8A%B6%E6%80%81%EF%BC%8C%E5%88%99%E8%8E%B7%E5%8F%96%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%9E%B6%E6%9E%84.png)
我遇到了下面的一行,可以识别计算机是 32 位还是 64 位:
$(Get-WmiObject -Class Win32_Processor -ComputerName [名称]).AddressWidth
如果计算机在线,它就可以正常工作。但是,即使计算机处于离线状态(关闭或当前未连接到公司网络),我也需要能够获取架构信息。
是否可以使用其他 cmdlet(例如 get-qadobject / get-qadcomputer)获取离线计算机的此信息?我尝试
get-qadcomputer [名称] | fl
但无法找到架构。Active Roles 根本没有记录它,还是它只是没有显示在默认属性中?
答案1
如果您的目标机器处于离线状态 - 那么您就无法连接到它来获取信息......就像当某人的手机关机时您无法与他交谈一样。
我猜问这个问题是因为当你尝试对多台机器执行此操作但并非所有机器都处于开启状态时,会出现一个可怕的错误。解决这个问题的最佳方法是使用 try catch 块:
try {
$a = (Get-WmiObject -Class Win32_Processor -ComputerName $computerName).AddressWidth
} catch {
Write-Host "Computer Offline: $ComputerName"
}