我想查询[adsisearcher]以获取可信任和服务器中的服务器的一些服务器的OU信息。不受信任的域名。
$session = New-PSSession -ComputerName icvmm02
Invoke-Command -Session $session -ScriptBlock {
$compname= (Get-WmiObject "Win32_Computersystem" -namespace "root\CIMV2" -computername $comp).name
$searcher = [adsisearcher]"(&(ObjectCategory=computer)(Name=$compname))"
$ou= $searcher.FindOne() | Select-Object path
$serverou = $ou.path
}
$adou= (Invoke-Command -Session $session -ScriptBlock { $serverou })
Get-PSSession | Remove-PSSession
对于受信任域中的服务器我在创建pssession时传递$ cred =获取凭据,但是当我运行时
$compname= (Get-WmiObject "Win32_Computersystem" -namespace "root\CIMV2" -computername $comp).name
$searcher = [adsisearcher]"(&(ObjectCategory=computer)(Name=$compname))"
$ou= $searcher.FindOne() | Select-Object path
它给我一个错误
Exception calling "FindOne" with "0" argument(s): "An operations error occurred.
"
At line:1 char:27
+ $ou= $searcher.FindOne <<<< () | Select-Object path
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
$serverou = $ou.path
有人可以帮我解决这个问题。
答案 0 :(得分:1)
我不是原因,但ADSI接口在远程会话中不起作用。我甚至无法在我的域中获得计算机域的DN。我可以让它在本地运行,但不能远程运行:
icm { ([adsi]"").distinguishedName } #works
icm -Session $s -ScriptBlock { ([adsi]"").distinguishedName } #doesn't work
答案 1 :(得分:0)
看起来FindOne方法调用存在问题 - 您可以通过此查找有关$ searcher对象的更多信息;
$searcher | gm
findOne方法应该包含所需参数的列表。
虽然,我刚刚尝试了类型:
[adsisearcher] | gm | sort name
并且没有FindOne方法 - 你确定它是adsisearcher的方法吗?