我有一个简单的问题,我似乎无法解决。我需要知道哪些服务器仍在运行服务器2008/R2。
我知道Win32_OperatingSystem
的Name
属性包含我正在寻找的信息,我希望能够在OU中的服务器集合上运行Get-WmiObject
。
我有两个问题:
Get-ADComputer
的输出重定向到Get-WmiObject -ComputerName
可以使用的东西。我认为Get-ADComputer
正在输出Microsoft.ActiveDirectory.Management.ADComputer
类型的对象,而Get-WmiObject
正在寻找System.Management.ManagementObject
类型。这是我想出来的,但似乎行不通。
WmiObject Win32_OperatingSystem -ComputerName (Get-ADComputer -filter * -SearchBase OU=Member Servers,DC=Company,DC=Com“为由选择@{L=”ComputerName“;e={$_”}}) -Property名称,csname \选择csname,name \ Format-Table -AutoSizeGet-WmiObject
。但是,OU包含“死”服务器。因此,当我尝试使用来自AD的CSV服务器列表运行Get-WmiObject
时,会出现连接超时,而PowerShell会等待一段时间,以查看死服务器是否会响应。这真的减慢了操作的速度&我们正在努力清理这个问题。在此之前,是否有一种方法只将传递Test-Connection
的服务器名称传递给Get-WmiObject
?
获取-WmiObject win32_operatingsystem -ComputerName (Get-Content C:\Users\user1\Desktop\Servers.csv) -Property名称,选择csname发布于 2017-03-27 22:57:40
首先选择name组件,然后将其传递给下一个管道对象(选择-object)
Get-WmiObject Win32_OperatingSystem -ComputerName ((Get-ADComputer -filter * -SearchBase "OU=Member Servers,DC=Company,DC=Com").Name)
注意:-ComputerName:接受一个string对象,因此不能直接将基类型对象传递给它。
https://stackoverflow.com/questions/43055244
复制