2014-09-24 7 views
-1

다음은 내가 달성하고자하는 것입니다 ...두 개 이상의 문자열 비교

복제 시간을 보려면 VMWARE에서 ADAM 데이터베이스를 확인해야합니다. 내 질문은 비교 개체 명령을 사용하여 두 개 이상의 문자열을 비교하는 방법입니다. 나는 두 가지 이상의 가치에 대한 기사를 찾을 수 없다.

이것이 내가 작성하기 시작한 것입니다. 가능한 한 동적으로 만들려고 노력하고 있습니다 ...

#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을 권장합니다. 전의.

$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은 매우 유연합니다. 나머지 (예 : count = 1 또는 가장 큰 그룹에 속하지 않음)와 같지 않은 서버의 서버 이름과 상태를 표시합니다. 그러나 아무런 생각이 없기 때문에 세부 사항으로 들어가는 데 더 많은 시간을 할애하지 않습니다. 당신이 성취하려고 노력하고있는 것의, 그래서 나는 아마 우리 시간 둘 다 낭비 할 것입니다.

요약 : 나는 당신에게 말할 수있는 것은 아마도 "99 % 확신 할 수있다"는 것입니다. "두 개 이상의 문자열 비교"를 Group-Object 사용하십시오.

+0

그것은 챔피언처럼 일했습니다. 죄송 합니다만, 당신이 "그룹 대상"이라고 말하면서 당신을 오해 한 것 같습니다. 나는 방금 10 개의 다른 서버에 대해 실행하고 내가 찾고있는 결과를 얻을 수있었습니다. 다시 한 번 감사드립니다! – Fidelis

+1

감사합니다. Frode, 나도 비슷한 것을 쓰고있었습니다. 나는 그 코드의 실제 * 기능적 * 부분이 한 줄임을 OP에게 지적하고자한다. 사실 30 분 전에 내 의견에 제안했던 한 줄에 스크립트가 정말 오래되었다고 말했습니다. – TheMadTechnician

+0

@ Spontaneous1980 기꺼이 도와 드리 겠지만, 오늘 뭔가 배웠기를 바랍니다. :) SO에 대한 질문에는 다른 사람들이 귀하의 문제를 재생산하고 해결하는 데 필요한 모든 정보가 포함되어야합니다. 명확한 설명, "작업 코드 샘플"(사용자가 아무것도 비교하지 않음), 테스트 할 데이터 입력 및 원하는 출력이 필요합니다. 당신이 우리에게 광고를 가르쳐주지 않는다는 말 대신에, 당신은 쉽게 내 대답에서 사용한 것과 같은 샘플 데이터를 제공 할 수 있습니다. 더 자세한 질문을하면 5 분 안에 적절한 답을 얻을 수 있습니다. –