我试图在我的网络中列出计算机,并确定哪些在域中,哪些不在。
以下是代码的摘录:
$ipName ="10.0.0.$i"
$myPC = $NULL
$myPC = Get-ADComputer -property * -filter {IPv4Address -eq $ipName}
但是大部分时间它都没有返回任何内容(尽管有一些IP可以正常工作),即使我按照计算机名称进行过滤,我也会得到具有相同IPv4Address属性的计算机。
所以例如
Get-ADComputer -properties * -filter {IPv4Address -eq "10.0.0.138"}
返回$ NULL,
但同时
Get-ADComputer -properties * -filter {Name -eq "KNP"}
返回所有属性,包括
IPv4Address : 10.0.0.138
提前致谢
答案 0 :(得分:0)
我首先要确保它与你想象的匹配使用Where-Object。
Get-ADComputer -Properties * -Filter * | Where-Object {$_.IPv4Address -eq '10.0.0.138'}
如果这会带回您期望的计算机,那么AD提供商的搜索语法会发生一些变化。各种cmdlet的-Filter参数使用不同的提供程序。在这种情况下,它是Active Directory。
如果您查看过滤器本身的帮助,它有很多关于如何构建过滤器的有用信息。
get-help about_ActiveDirectory_Filter