-1

这是我想要实现的目标......

我必须在 VMWARE 中查看 ADAM db 才能查看复制时间。我的问题是如何使用 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];
}

先谢谢了!!!

4

1 回答 1

0

正如我在评论中提到的,您的问题太模糊,我们无法为您的情况提供一个好的答案,所以我将专注于“比较两个以上的字符串”。为此,我建议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来“比较两个以上的字符串”。

于 2014-09-24T19:54:49.587 回答