Active Directoryの特定のOUのユーザーで動的グループを作成したいと思います。 Exchange動的配布リストを使用してこれを完全に行うことができますが、もちろん、Ex DDLはメール専用です。
これを作成する方法はありますか? System Centerを使用してこれを処理するガイドをいくつか見つけましたが、System Centerはオプションではありません。
前もって感謝します、
Active Directoryには動的セキュリティグループなどはありません。動的配布グループのみです。
これを実現するために、最も実行可能なオプションは、Powershellスクリプトで、指定されたOUに誰が属しているかを判断し、それに応じてセキュリティグループを更新することです。
Import-Module ActiveDirectory
$groupname = PseudoDynamicGroup
$users = Get-ADUser -Filter * -SearchBase "ou=desiredUsers,dc=domain,dc=tld"
foreach($user in $users)
{
Add-ADGroupMember -Identity $groupname -Member $user.samaccountname -ErrorAction SilentlyContinue
}
$members = Get-ADGroupMember -Identity $groupname
foreach($member in $members)
{
if($member.distinguishedname -notlike "*ou=desiredUsers,dc=domain,dc=tld*")
{
Remove-ADGroupMember -Identity $groupname -Member $member.samaccountname
}
}
私は自分の質問に答えています。 MathiasのPowerShellのアイデアで、インターネットでこれを見つけました。
https://github.com/davegreen/shadowGroupSync
作成者のブログ には、ツールの設計と動機に関する追加情報が含まれています。
これはAdaxesで実行できます。技術的には、ユーザーが更新または移動されると、グループメンバーシップを動的に更新します。以下は、Department属性に基づいてグループメンバーシップを自動的に維持する方法の例ですが、OUに基づいて同じことを行うように変更するのは非常に簡単です。 http://www.adaxes.com/tutorials_AutomatingDailyTasks_AddUsersToGroupsByDepartment.htm
最も簡単な方法は、DynamicGroupを使用することです。 http://www.firstattribute.com/en/active-directory/ad-automation/dynamic-groups/
NovellからActive Directoryへの移行後、さまざまな環境で実行しています。
これは、OUグループ、部門グループなどを自動的に作成するソフトウェアです。フィルターを作成するだけです。
また、Active Directoryで動的セキュリティグループを作成する方法を探し、Mathiasとして結論を出しました。私のソリューションは彼ほどエレガントではありませんでした。スケジュールされたPowerShellスクリプトを使用して、グループからすべてのユーザーを削除し、OU内のユーザーを入力します。さらに、サブOUグループが、それが適合する親OUセキュリティグループに追加されることを確認しました。
import-module ActiveDirectory
Get-ADGroupMember OU_GroupName | % { Remove-ADGroupMember 'OU_GroupName' -Members $_ -Confirm:$false}
Get-ADUser -SearchBase 'OU=OUName,OU=ParentOUName,DC=DomainName,DC=TopDomainName' -Searchscope 1 -Filter * | % { Add-ADGroupMember 'OU_GroupName' -Members $_ }
Add-ADGroupMember -Identity "OU_ParentName" -Members "OU_ChildOneName", "OU_ChildTwoName", "OU_ChildThreeName"
これが大企業でうまく拡張できるかどうかはわかりませんが、スクリプトは300ユーザーの企業で数分しか使用しません。
他のメンバーが残した声明に。 これをドメインコントローラーから実行しない場合は、$ domainControllerを置き換えることで静的エントリを提供するか、別のを追加し、その後に$ DomainControllerを追加してその情報を渡すことができます。
ユーザーをグループに追加するには
Function AddUserToGroup($Group, $User, $DomainController)
{
if(!(Get-ADGroupMember -Identity $group | ?{$_.name -eq $User}))
{
Add-ADGroupMember -Identity $group -Members $User -Server $DomainController
}
else
{
return "The user: $User is already in the $group"
}
}
ユーザーを削除するには、同じことを行うことができます。
Function RemoveUserFromGroup($Group, $User, $DomainController)
{
if((Get-ADGroupMember -Identity $group | ?{$_.name -eq $User}))
{
Remove-ADGroupMember -Identity $group -Members $User -Server $DomainController
}
else
{
return "The user: $User is not a member of $group"
}
}
これを使用するには、これを行うことができます...
$Users = Get-Aduser -Filter *
Foreach($user in $users)
{
AddUserToGroup "SomeGroup" $user.name "ServerName"
}
または
無効になっているユーザーOUまたはこれが発生する可能性がある場所、またはサイトやグループなどのOUを切り替える場合に最適です。
$Users = Get-Aduser -Filter *
Foreach($user in $users)
{
RemoveUserToGroup "SomeGroup" $user.name "ServerName"
}