次のコマンドは、AzureADに参加しているWindows 10 VM)で実行されます。
PS C:\ Windows\system32> Get-LocalGroupMember -Group Administrators
Get-LocalGroupMember:配列内の2つの要素の比較に失敗しました。行:1文字:1PS C:\ Windows\system32> Get-LocalGroupMember -Group Users
グループNTAUTHORITY\Authenticationed Users Unknown
グループNTAUTHORITY\INTERACTIVE不明PS C:\ Windows\system32>ネットローカルグループ管理者
メンバー
管理者AzureAD\UserName
PowerShell Get-LocalGroupMemberコマンドがAdministratorsグループでエラーを生成しているのに、net localgroupがUsersグループのGet-LocalGroupMemberと同じように機能する理由はありますか?
これは公式のバグとして参照されています:
https://github.com/PowerShell/PowerShell/issues/2996
回避策は次のとおりです。
http://jdhitsolutions.com/blog/scripting/2342/query-local-administrators-with-cim/
更新:
CIMとWMIにいくつか問題がありました。
これが私にとってどこでもうまくいった別の回避策です。
https://p0w3rsh3ll.wordpress.com/2016/06/14/any-documented-adsi-changes-in-powershell-5-0/
これにより、壊れた管理者がクリーンアップされます。更新プロセス中に作成されたと思います。
(PowerShellスクリプト)
$administrators = @(
([ADSI]"WinNT://./Administrators").psbase.Invoke('Members') |
% {
$_.GetType().InvokeMember('AdsPath','GetProperty',$null,$($_),$null)
}
) -match '^WinNT';
$administrators = $administrators -replace "WinNT://",""
$administrators
foreach ($administrator in $administrators)
{
if ($administrator -like "$env:COMPUTERNAME/*" -or $administrator -like "AzureAd/*")
{
continue;
}
Remove-LocalGroupMember -group "administrators" -member $administrator
}