그래서 저는 stackoverflow를 많이 읽었습니다. 그리고 그 순간 저는 제 이해력으로 항상 도움이되었습니다. 지금은 여러 변수 중 하나와 일치하는 것에 난처한 점이있어서 수출에 대해 생각할 것입니다. .powershell은 여러 변수와 일치합니다
내 작업에 약간의 배경이 있습니다.
저는 여러 하위 도메인 (+4)이있는 AD 포리스트의 시스템 관리자입니다. 그러나 이러한 도메인을 하나의 도메인으로 통합하는 과정을 진행하고 있습니다.하지만 불행히도 각 도메인이 독립적으로 관리 될 때마다 오래된 '중복 SAM'문제 (그리고 우리가 파기를 시작하면 속이기 UPN을 확실히 보게됩니다).
이와 같이 -이 복제본을 찾기 위해 스크립트를 작성하려고합니다. 그래서이 도메인의 사용자를 지원하는 팀과이를 해결할 수 있습니다.
나는 이것을 통해 공정한 방법을 얻었습니다. 하나의 마이그레이션 도메인에 대한 SAM 목록을 내 보냈습니다.이를 PS로 구문 분석하고 모든 도메인에 대해 각 SAM을 조회하고 나 사용자 이름 OR $ null 변수.
그래서 지금은 'IF'명령이 두 개 이상의 변수를 일치시키고 어느 것이 일치하는지 보여주는 것에 대해 이해하고자합니다.
따라서, 예를 들어, 이러한 변수에서 ...
$one="MSmith01"
$oneNT="DOMAIN1\MSmith01"
$two="MSmith01"
$twoNT="DOMAIN2\MSmith01"
$three=$null
$threeNT=$null
$four=$null
$fourNT=$null
$five="MSmith01"
$fiveNT="DOMAIN5\MSmith01"
$six=$null
$sixNT=$null
어떻게 하나 개 이상의 변수가 일치하는 경우에 저를 표시하는 IF 명령을 작성하려면 어떻게해야합니까?
내가 작성하는 경우이 : 변수가있는 경우,
Duplicate Found - DOMAIN1\MSmith01, DOMAIN2\MSmith01, , , DOMAIN5\MSmith01,.
을 :하지만
if ($one -match $two -match $three -match $four -match $five -match $six) {write-host "Duplicate Found - $oneNT, $twoNT, $threeNT, $fourNT, $fiveNT, $sixNT." -foregroundcolor "yellow"}
그것은 나를 표시됩니다
는$one=$null
$oneNT=$null
$two="MSmith01"
$twoNT="DOMAIN2\MSmith01"
$three="MSmith01"
$threeNT="DOMAIN3\MSmith01"
$four=$null
$fourNT=$null
$five=$null
$fiveNT=$null
$six=$null
$sixNT=$null
결과는 사실을 무시하는 것 DOMAIN2와 DOMAIN3에는 일치하는 SAM이 있고 "x -match y -match z"는 실제로 실제로 x를 비교하는 것으로 나타납니다. d y, 그래서 나는 아무것도 얻지 않는다. 분명히 부정확합니다.
누구나 내가 어떻게 비교하고 여러 변수 중에서 어떤 중복을 찾을 수 있는지 설명 할 수 있습니까?
감사
더 정교하게하려면 : 을 나는이 일을하고있어 내 변수를 얻으려면 :
$SAMAccountList=gc "C:\My Documents\Domain2SAMList.txt"
$SamAccountList | % {
$one=Get-QADUser -SamAccountName $_ -IncludedProperties SamAccountName -Server dc.domain1.local | foreach { $_.SAMAccountName }
$oneNT=Get-QADUser -SamAccountName $_ -IncludedProperties NTAccountName -Service dc.domain1.local | foreach { $_.NTAccountName }
$twoSAM=Get-QADUser -SamAccountName $_ -IncludedProperties SamAccountName -Service dc.domain2.local | foreach { $_.SAMAccountName }
$twoNT=Get-QADUser -SamAccountName $_ -IncludedProperties NTAccountName -Service dc.domain2.local | foreach { $_.NTAccountName }
#...
#...
#...etc for each domain
}
내가
안녕 hysh, 응답에 대한 감사를 얻을. 매우 감사. 나는 원래의 질문을 확장하여 나 자신을 도우 려하며 내가 도와주기를 바랍니다. – Dan
'고유'에 대한 의견을 이해하지 못합니다. 실제로는 여러 개의 $ null 변수 또는 여러 개의 동일한 SAM 이름 목록을 갖게 될 것입니다. 사용자가 고유 한 매개 변수를 사용하는 경우 몇 가지 변수가 $ null 인 문제가 발생하지 않습니까? – Dan
안녕하세요, 결과로 응답을 업데이트했습니다. 귀하가 우려하는 데이터 패턴을 제게 알려 주면 귀하를 도울 수 있습니다. –