我是PowerShell的新手,现在摆弄了大约3个小时......我问专家......
我需要设置一个脚本,该脚本会提示用户的广告ID,然后只将他/她所在群组的规范名称导出到文本文件中。
答案 0 :(得分:0)
好吧,至少让你开始想要看看cmdlet
Get-ADPrincipalGroupMembership
如果您执行“帮助Get-ADPrincipalGroupMembership”,您可以看到参数。它接受-identity,因此您只需给它一个广告用户的samacount。
Get-ADPrincipalGroupMembership -Identity testuser
这将返回更多您真正想要的信息,因此最后您可以通过选择特定属性将其过滤到您真正想要的内容。
Get-ADPrincipalGroupMembership -Identity testuser | select distinguishedname
要提示某人输入信息,您可以执行“Read-Host”。除了那些研究变量之外,您应该能够将所有内容整合到提示用户输入id的内容中,然后进行搜索。
答案 1 :(得分:-1)
这是我用于获取用户的通讯组的脚本。它还将为您提供从最后删除所有组中用户的选项,我在转发已终止员工的电子邮件时使用该选项。这可以很容易地修改为导出到文本文件而不是打印到屏幕。
write-host ""
$User = Get-Mailbox (Read-Host -Prompt "User Name") | Select-Object Name,DistinguishedName
#script
Write-Host ""
$User.Name + " is a member of the following groups:"
Write-Host ""
$groups = (Get-DistributionGroup -ResultSize unlimited | Select-Object identity,displayname)
$i = $groups.Count
$j = 0
$usersgroups = @(
foreach ($group in $groups) {
Write-Progress -Activity $group.DisplayName -Status "$i Groups Remaining.." -PercentComplete (($j / $groups.count)*100)
$i--
$j++
if ((Get-DistributionGroupMember $group.identity | Select-Object -ExpandProperty distinguishedname) -contains $user.DistinguishedName) {
$group.displayname
Write-Host $group.DisplayName
}
}
)
#option to remove user from groups
Write-Host ""
if ((Read-Host "Do you want to remove user from these groups? y/n").ToLower() -like 'y*') {
Write-Host ""
foreach ($group in $usersgroups){
Remove-DistributionGroupMember -Identity $group -Member $User.Name -confirm: $false -Verbose
}
Write-Host ""
Write-Host "Done!"
} ELSE {
Write-Host ""
Write-Host "Aborting Script!"
}