指定したユーザー アカウントのグループ メンバーシップを見つけようとしています。多くの場合、1 つのドメインのユーザー アカウントは、他のドメインのグループのメンバーです (ドメインによっては、別の管理者アカウントが必要です)。get-QAQgroup を使用すると、各ドメインを個別に検索できますが、ドメインをループしようとすると、ログインしているドメインでしか結果が見つかりません。#ドメインを変更し、指定されたユーザー アカウントのグループ メンバーシップを探すスクリプト。
$domains = "dom1.ad.state.company.com","dom2.ad.state.company.com","dom3.ad.state.company.com","dom4.ad.state.company.com","corporate.state.company.com","OddNamedDom.com"
$CRED=GET-CREDENTIAL
$userAcc = read-host "Enter domain\username for Group Membership Search"
foreach ($domain in $domains)
{
write-host "In the domain $domain "," $userAcc is a direct member of..."
Get-QADGroup -service $domain -Credential $cred -Containsmember $userAcc | select name
} #foreach domain
Connect-QADService -Service 'dom1.ad.state.company.com'
スクリプトを実行すると、dom1 (ログインしているドメイン) の結果が得られ、残りは次のエラーをスローします。「Ref 1:..」行が「dom1」を指している理由がわかりません。それが問題の原因かもしれないと思いました。エラー メッセージを示す以下の Powershell 出力をコピーしました。
In the domain dom1.ad.state.company.com dom1\brownd2.admin.dom1 is a direct member of...
Name
----
DOM1-G-ITS-DS-Company Services
DOM1PGUELFP00003-Exmerge-R
DOMPGUELFP00003-Exmerge-C
ITSPPTBOSHFS003-FSSHARE-C
Domain Users
In the domain dom2.ad.state.company.com dom1\brownd2.admin.dom1 is a direct member of...
Get-QADGroup : 0000202B: RefErr: DSID-03100742, data 0, 1 access points
ref 1: 'dom1.ad.state.company.com'
At C:\TestScripts\tGet-UserAllMemberships.ps1:24 char:6
+ Get-QADGroup -service $domain -Credential $cred -Containsmember $userAcc | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-QADGroup], DirectoryAccessException
+ FullyQualifiedErrorId : Quest.ActiveRoles.ArsPowerShellSnapIn.DirectoryAccess.DirectoryAccessException,Quest.ActiveRoles.ArsPowerShel
lSnapIn.Powershell.Cmdlets.GetGroupCmdlet
In the domain dom3.ad.state.company.com dom1\brownd2.admin.dom1 is a direct member of...
Get-QADGroup : 0000202B: RefErr: DSID-03100742, data 0, 1 access points
ref 1: 'dom1.ad.state.company.com'
At C:\TestScripts\tGet-UserAllMemberships.ps1:24 char:6
+ Get-QADGroup -service $domain -Credential $cred -Containsmember $userAcc | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-QADGroup], DirectoryAccessException
+ FullyQualifiedErrorId : Quest.ActiveRoles.ArsPowerShellSnapIn.DirectoryAccess.DirectoryAccessException,Quest.ActiveRoles.ArsPowerShel
lSnapIn.Powershell.Cmdlets.GetGroupCmdlet
私がチェックしている各ドメインには、同様のエラー セットがあります。エラー メッセージの完全なリストは掲載していません。
配列内のドメインの順序を変更すると、成功した 1 つのドメインのエラーと結果の順序が配列に一致するように変更されます。ループの最初の繰り返しで成功するかもしれないと思いました。しかし、そうではありません。
アカウントが Dom2 のグループのメンバーであり、Dom3 のどのグループにも属していないことはわかっています。コマンドを foreach ループから取り出し、コンソールでドメインごとに個別に実行すると、期待どおりの結果が得られます。個々の結果に基づいて、これはループで実行する簡単な例だと思っていましたが、ドメインに正しく接続していません。
何を変更できますか?