Сравните более двух строк

Вот чего я пытаюсь добиться...

Я должен просмотреть базу данных ADAM в VMWARE, чтобы увидеть время репликации. Мой вопрос заключается в том, как бы я сравнил более двух строк с помощью команды 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];
}

Заранее благодарю!!!

1 ответ

Решение

Как я уже упоминал в своем комментарии, ваш вопрос слишком расплывчатый, чтобы мы могли дать хороший ответ для вашей ситуации, поэтому я сосредоточусь на "сравнении более двух строк". Для этого я рекомендую Group-Object, Ex.

$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. отображать имена серверов и статусы для серверов, которые не были равны остальным (например, count = 1 или нет в любой из самых больших групп) и т. д., но я не буду тратить больше времени на детали, потому что понятия не имею того, чего вы пытаетесь достичь, так что я, вероятно, просто потрачу впустую наше время.

Резюме: я могу вам сказать, что я бы, вероятно, (на 99% уверен) использовал Group-Object "сравнить более двух строк".

Другие вопросы по тегам