Сравните более двух строк
Вот чего я пытаюсь добиться...
Я должен просмотреть базу данных 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
"сравнить более двух строк".