Remove User from Groupアクティビティの1501ユーザー以上が存在するグループに対しての処理に失敗する問題に対しての回避方法

以下のスクリプトでuser1~1600ユーザーを作成し、user1501をSCOの「Remove User From Group」アクティビティで削除しようとするとエラーが発生してしまいます。

New-ADGroup -Name “scogroup” -GroupScope Universal

for($i=1; $i -lt 1601; $i++)

{

New-ADUser -Name (“user” + $i)

}

for($i=1; $i -lt 1601; $i++)

{

$user = Get-ADUser (“user” + $i)

Add-ADGroupMember -Identity “scogroup” -Members $user

}

Image(91)

エラーメッセージは以下です。

The group member ‘CN=user1501,CN=Users,DC=ebsjsc,DC=local’ was not found.

Exception: AdGroupMemberNotFoundException

Target site: LdapGroup.RemoveMember

Stack trace:

場所 Microsoft.Accelerators.ActiveDirectoryCore.LdapGroup.RemoveMember(DistinguishedName memberDistinguishedName)

場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.RemoveUserFromGroupExecutor.DoAction(Object executionItem)

場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.AExecutor.ExecuteNonGetAction(Object executionObject)

場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.AExecutor.Execute()

場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.Execution.ActiveDirectoryProgram.ExecuteProxy(ExecutionProxy proxy)

場所 Microsoft.SystemCenter.IntegrationPack.ActiveDirectory.AActiveDirectoryActivity.Execute(IActivityRequest request, IActivityResponse response)

 

明らかにアクティビティの実装ミスだと思われます。

1500以上のユーザー数を扱う場合にはPageSizeを適切に設定してオペレーションをしないといけない…というのはAD系のプログラムを書いている人なら多くの人が知っていることかなと思います。

しかたがないので、とりあえず問題を回避するには以下のようにPowerShellスクリプトを書くことが出来ます。

Image(92)

$group = “”
$member = “”
Import-Module ActiveDirectory
Remove-ADGroupMember -Identity $group -Members $member -confirm:$false

これでよし…と思ったのですが、これではRemove-ADGroupMemberコマンドレットが見つからないと言われてエラーになってしまいました。

残念ながら呼び出されるPowerShellのバージョンが低いようです。

Windows Server 2012 and Orchestrator Run.NET Script Activity in PowerShell – Execution Policy?

対処として以下のレジストリを作成しました。

hklm\software\wow6432node\microsoft\.netframework\OnlyUseLatestCLR

種類はDWORDで値は1です。

Image(93)

情報元は以下のブログです。

これで常に最新のバージョンのPowerShellが立ち上がるようになり、うまく動作させることができました。

Image(94)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です