这是我想要实现的目标......
我必须在VMWARE中查看ADAM数据库以查看复制时间。我的问题是如何使用compare-object命令比较两个以上的字符串。我找不到任何超过两个值的文章。
这就是我开始写作的内容。我想尽可能让它变得充满活力......
#PORT FOR LDAP
$ldap = 389;
#PATH
$path = 'DC=vdi,DC=vmware,DC=int';
#SERVERS
$vm = @("fqdn" , "fqdn" , "fqdn");
#ARRAY FOR LOOP
$comp = @();
#LOOP FOR ARRAY COMPARE
for($i = 1; $i -le $vm.count; $i++)
{
$comp += repadmin.exe /showrepl $svr":"$ldap $path | Select-String "Last attempt";
}
#CREATE DYNAMIC VARIABLES
for($i = 0; $i -le ($comp.count - 1); $i++)
{
New-Variable -name repl$i -Value $comp[$i];
}
先谢谢你了!
答案 0 :(得分:1)
正如我在评论中提到的,你的问题太过模糊,我们无法为你的情况提供一个好的答案,所以我会专注于比较两个以上的字符串"。为此,我建议Group-Object
。实施例
$data = @"
==== INBOUND NEIGHBORS ======================================
CN=Configuration,CN={B59C1E29-972F-455A-BDD5-1FA7C1B7D60D}
....
Last attempt @ 2010-05-28 07:29:34 was successful.
CN=Schema,CN=Configuration,CN={B59C1E29-972F-455A-BDD5-1FA7C1B7D60D}
....
Last attempt @ 2010-05-28 07:29:34 was successful.
OU=WSFG,DC=COM
....
Last attempt @ 2010-05-28 07:29:35 failed, result -2146893008
(0x8009033
0):
"@ -split [environment]::NewLine
$comp = $data | Select-String "Last attempt"
$comp | Group-Object
Count Name Group
----- ---- -----
2 Last attempt @ 2010-05-28 07:29:34 was successful. { Last atte...
1 Last attempt @ 2010-05-28 07:29:35 failed, result -2146893008 { Last atte...
Group-Object
和PowerShell非常灵活,因此您可以将其自定义为ex。显示不等于其余服务器的服务器的服务器名称和状态(例如,计数= 1或不在任何最大的组中)等,但我不会花更多的时间进入细节,因为我不知道你想要达到什么目标,所以我可能只是浪费了我们的时间。
总结:我可以告诉你的是,我可以(99%肯定)使用Group-Object
来比较超过两个字符串"。