そのため、Active Directoryには、IIS経由でホストしているフォルダーへのアクセスを許可するために使用されているWebSiteUsersというグループがあります。私は(DSQuery、ADFind、または無料で入手できるツールを使用して)次の方法を考えていました。
WebSiteUsersの識別名を照会するにはどうすればよいですか(ADの奥深くにいくつかのOUが埋め込まれていると仮定します)。
WebSiteUsersにクエリを実行して、他のグループと比較してこのリソースにアクセスする必要のあるすべてのユーザーが追加されていることを確認できるユーザーのリスト(人間が読める形式)を作成するにはどうすればよいですか?この例では、WebSiteUsersに数千のアカウントが追加されているため、目視検査はオプションではないと想定します。ユーザーのリストを比較するためにExcelを使用したいので、Excelで操作できるCSVまたはある種のテキストファイルをエクスポートするのが理想的です。
DNを見つけるには、コマンドdsquery group -name WebSiteUsers
を実行します。
PowerShell用にドメインコントローラーを設定している場合(必要ですが、すばらしいです)、コマンド$WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
および$WebSiteUsers | Export-CSV
を実行してCSVに出力できます。次のようにCompare-Object
コマンドを使用することもできます。
$WebSiteUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=WebSiteUsers,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
$OtherGroupUsers = Get-ADUser -Filter {memberOf -RecursiveMatch CN=OtherGroups,OU=Lemings,OU=CorporateBranch,DC=example,DC=com'
Compare-Object -ReferenceObject $WebSiteUsers -DifferenceObject $OtherGroupUsers -Property Name
これにより、あるグループまたは別のグループから除外されている名前のリストが表示されます。 (全員に会いたい場合は-IncludeEqual
を追加してください。)これにより、目視検査がはるかに簡単になります。
Jim Bob =>
Suzie Q <=
Harold Johnson <=
他のグループのメンバーである全員をWebSiteUsersグループに追加する場合:
Compare-Object $OtherGroupUsers $WebSiteUsers | Where {$_.SideIndicator -eq '=>'} | foreach{Add-ADGroupMember -Identity WebSiteUsers -Members $_}
Add-ADGroupMemberコマンドに-WhatIfを追加して、意図したとおりに実行されることを再確認しても問題はないかもしれません。
このリストは、ActiveDirectoryユーザーとコンピュータースナップインを使用して取得することもできます。ワークステーションからこれを行うには、 [〜#〜] rsat [〜#〜] をインストールする必要があります。インストールしない場合は、ドメインコントローラーにリモートでアクセスして開くことができます。
[保存されたクエリ]を右クリックして、[新規]、[クエリ]を選択します。
それに任意の名前と簡単な説明を付けて、[クエリの定義]をクリックします。
Find:
の下でCustom Search
を選択します。 [フィールド]をクリックして、[ユーザー]、[メンバー]を選択します
含めるグループの名前を入力し、[追加]をクリックします。
これで、ADUCでこのリストを表示できます。エクスポートするには、[リストのエクスポート]ボタンをクリックします。これは、タブ区切りのテキストファイルに出力されます。