【问题标题】:Powershell script to add and remove groups based on file in active directory基于活动目录中的文件添加和删除组的 Powershell 脚本
【发布时间】:2015-05-06 14:27:48
【问题描述】:

我们的组织目前手动分发和删除活动目录中的所有权限,这是一项令人厌烦的工作。 但是我知道使用 PowerShell,它应该能够比手动获取列表并输入用户应该所属的每个组快得多(有些用户属于 20-40 个组,这使得它很麻烦键入所有组),当我们必须更改组时,人们往往最终拥有更多权限,因为某些组没有被删除和其他人为错误。

所以我想询问或获得一些关于我应该如何编写执行以下操作的 PowerShell 脚本的指示:

  • 询问必须更改组的用户的姓名(可能分别询问名字和姓氏)。

  • 从该人中删除所有现有组(如果他/她是任何组的成员),可能带有来自文件(txt、csv 或其他文件)的排除选项。

  • 根据来自文件的列表(同样,txt、csv 或其他)向人员添加组。

如果有人可以就如何开始或链接/指针提供一些建议,我将不胜感激,因为这似乎不是一个容易制作的脚本(我可能错了)

【问题讨论】:

  • 你问的是一个相当广泛的问题。我建议您花一些时间熟悉文件 I/O(Get-Content、Set-Content、Add-Content 等)和用于组成员身份的 AD cmdlet(Add-ADGroupMember、Remove-ADGroupMember 等)然后开始编写脚本并在遇到无法解决的具体问题时将问题发回此处。
  • 对包含该主题的良好解释和教程的好网站有什么建议吗?
  • 您可以使用非常好的内部帮助,以下 cmdlet 将帮助您探索:Get-Help(查找有关特定 cmdlet 的更多信息)、Get-Command(查找命令,例如广告组的所有内容)和Get-Member(了解对象的属性和方法)

标签: powershell csv active-directory


【解决方案1】:

你可以试试这样的

Import-Csv .\users.csv | ForEach {

If ( $_.position -eq 'Administrator' ) {

    Add-ADGroupMember -Identity 'Administrators' -Members $_.user
    Add-ADGroupMember -Identity 'Facility' -Members $_.user

}

If ( $_.position -eq 'Assistant' ) {

    Add-ADGroupMember -Identity 'Facility' -Members $_.user

}

If ( $_.position -eq 'Power Users' ) {

    Add-ADGroupMember -Identity 'Power Users' -Members $_.user
    Add-ADGroupMember -Identity 'Facility' -Members $_.user
    Add-ADGroupMember -Identity 'Mobile' -Members $_.user

}

}

这是基于具有以下标题的 CSV,user,firstname,lastname,ou,phone,position,fullname,empid

这实际上来自 technet,但它对您来说是一个很好的起点。

https://social.technet.microsoft.com/Forums/scriptcenter/en-US/6ab194c0-1718-4345-af29-922ae2e5727d/active-directory-add-group-to-users-from-a-text-file-based-on-ou-and-position?forum=ITCG

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多