Powershell 收集有关多台计算机的特定映像和硬件信息

Powershell 收集有关多台计算机的特定映像和硬件信息,powershell,wmi,Powershell,Wmi,我想做的是从我公司100+的大量资产中收集具体信息 文本文件只是计算机主机名的列表 desktop12345 desktop23456 etc. 但即使我有一个列表,它也只返回有关我的资产的信息。我想我需要在第一节中替换Get WmiObject-Class Win32_Desktop-ComputerName,但不能100%确定应该如何格式化它 也许是这样的: $assets = Import-Csv 'c:\users\xxxxx\desktop\tex docs\assets.txt'

我想做的是从我公司100+的大量资产中收集具体信息

文本文件只是计算机主机名的列表

desktop12345 desktop23456 etc. 但即使我有一个列表,它也只返回有关我的资产的信息。我想我需要在第一节中替换
Get WmiObject-Class Win32_Desktop-ComputerName
,但不能100%确定应该如何格式化它

也许是这样的:

$assets = Import-Csv 'c:\users\xxxxx\desktop\tex docs\assets.txt'

foreach ($asset in $assets) {
  Get-WmiObject -Class Win32_OperatingSystem -ComputerName |
    Select-Object CSname, OSArchitecture, version, BuildNumber, OSType, InstallDate,
                  operatingsystemsku, ServicePackMajorVersion, encryptionlevel | FL
}

这里是一个猜测,取决于您的文本文件的格式,假设它是计算机的直接列表。如果它不仅仅是一个列表,请编辑问题以显示文件的外观

$assets = Get-Content 'c:\users\xxxxx\desktop\tex docs\assets.txt'

$output = foreach ($asset in $assets) {
     Get-WmiObject -class Win32_operatingSystem -ComputerName $asset | 
         Select-Object  CSname, OSArchitecture, version, BuildNumber, OSType, InstallDate, operatingsystemsku, ServicePackMajorVersion, encryptionlevel
}
$output | fl
编辑:

根据Ansgar Wiechers的建议简化

$assets = Get-Content 'c:\users\xxxxx\desktop\tex docs\assets.txt' 
Get-WmiObject -class Win32_operatingSystem -ComputerName $assets | 
    Select-Object  CSname, OSArchitecture, version, BuildNumber, OSType, InstallDate, operatingsystemsku, ServicePackMajorVersion, encryptionlevel |
    fl

这里是一个猜测,取决于您的文本文件的格式,假设它是计算机的直接列表。如果它不仅仅是一个列表,请编辑问题以显示文件的外观

$assets = Get-Content 'c:\users\xxxxx\desktop\tex docs\assets.txt'

$output = foreach ($asset in $assets) {
     Get-WmiObject -class Win32_operatingSystem -ComputerName $asset | 
         Select-Object  CSname, OSArchitecture, version, BuildNumber, OSType, InstallDate, operatingsystemsku, ServicePackMajorVersion, encryptionlevel
}
$output | fl
编辑:

根据Ansgar Wiechers的建议简化

$assets = Get-Content 'c:\users\xxxxx\desktop\tex docs\assets.txt' 
Get-WmiObject -class Win32_operatingSystem -ComputerName $assets | 
    Select-Object  CSname, OSArchitecture, version, BuildNumber, OSType, InstallDate, operatingsystemsku, ServicePackMajorVersion, encryptionlevel |
    fl

No go,Get WMIOObject:RPC服务器不可用。(HRESULT:0x800706BA的异常)第5行字符:1+获取WmiObject-类Win32_operatingSystem-ComputerName$asset |选择对象…看起来正确,但没有看到文本文件。可能需要“$assett”或拆分…新的错误消息是您无法通过WMI连接到该计算机。可能的原因是
$asset
中的值不正确、计算机未打开或已防火墙。尝试从文件中获取第一个条目并手动运行该命令。e、 g.
获取WmiObject Win32\u OperatingSystem-ComputerName“desktop12345”是否有效?如果答案对您有效,然后最好接受它。您可以将所有计算机名称的列表传递给
获取WmiObject
获取WmiObject-Class Win32\u OperatingSystem-computer$assets
。不必单独查询每台计算机。获取WmiObject:RPC服务器不可用。(HRESULT:0x800706BA的异常)第5行字符:1+获取WmiObject-类Win32_operatingSystem-ComputerName$asset |选择对象…看起来正确,但没有看到文本文件。可能需要“$assett”或拆分…新的错误消息是您无法通过WMI连接到该计算机。可能的原因是
$asset
中的值不正确、计算机未打开或已防火墙。尝试从文件中获取第一个条目并手动运行该命令。e、 g.
获取WmiObject Win32\u OperatingSystem-ComputerName“desktop12345”是否有效?如果答案对您有效,然后最好接受它。您可以将所有计算机名称的列表传递给
获取WmiObject
获取WmiObject-Class Win32\u OperatingSystem-computer$assets
,而不是单独查询每台计算机。