在AD中将组成员从一个用户复制到另一个用户

rif*_*tha 3 powershell

我想建立一个脚本,将AD中的组成员从一个用户复制到另一个用户.我试图使用powershell来自动完成这项任务.但是在为用户创建检查时卡住了.换句话说,当我将组成员资格从一个用户复制到另一个用户时,我希望能够在添加之前运行检查以查看用户是否已经是该组的成员,这样做可以避免诸如"这个"之类的错误用户已经是该组的成员,无法再次添加"任何帮助或建议将不胜感激.我现在使用以下脚本.

$copy = Read-host "Enter user to copy from"
$Sam  = Read-host " Enter user to copy to"
 Function Copymembership {

$members = Get-ADUser -Identity $copyp -Properties memberof
foreach ($groups in $members.memberof){
if ($members -notcontains $groups.sAMAccountname)
{Add-ADGroupMember -Identity $groups -Member $sam -ErrorAction SilentlyContinue
Write-Output $groups} 
}
}
copymembership 
Run Code Online (Sandbox Code Playgroud)

The*_*ian 10

为两个用户使用Get-ADUser.然后使用-notcontains运算符来过滤组.

$CopyFromUser = Get-ADUser JSmith -prop MemberOf
$CopyToUser = Get-ADUser MAdams -prop MemberOf
$CopyFromUser.MemberOf | Where{$CopyToUser.MemberOf -notcontains $_} |  Add-ADGroupMember -Member $CopyToUser
Run Code Online (Sandbox Code Playgroud)

  • 2019 年更正——我不得不使用参数“Memebers”而不是“Member” $CopyFromUser = Get-ADUser JSmith -prop MemberOf $CopyToUser = Get-ADUser MAdams -prop MemberOf $CopyFromUser.MemberOf | 其中{$CopyToUser.MemberOf -notcontains $_} | Add-ADGroupMember -Members $CopyToUse (3认同)

小智 10

一行即可获取用户成员的内容。

Get-ADUser -Identity alan0 -Properties memberof | Select-Object -ExpandProperty memberof
Run Code Online (Sandbox Code Playgroud)

一行将成员资格从一个用户复制到另一个用户。

Get-ADUser -Identity <UserID> -Properties memberof | Select-Object -ExpandProperty memberof |  Add-ADGroupMember -Members <New UserID>
Run Code Online (Sandbox Code Playgroud)


小智 0

像这样的内容应该告诉您组是否包含特定成员:

If ((Get-ADGroup "Domain Admins" -Properties Members).Members -Contains (Get-ADUser "AdminBob").DistinguishedName) {write-host "Yes"}
Run Code Online (Sandbox Code Playgroud)

可能有更简单的事情,但这是我首先想到的事情。