首页 > 其他分享 >如何自动实现本地AD中禁用的用户从地址列表中隐藏掉?

如何自动实现本地AD中禁用的用户从地址列表中隐藏掉?

时间:2024-07-30 22:28:14浏览次数:9  
标签:触发 msExchHideFromAddressLists AD 禁用 用户 列表 本地

我的博客园:https://www.cnblogs.com/CQman/

如何自动实现本地AD中禁用的用户从地址列表中隐藏掉?

 

需求信息:

 

用户本地AD用户通过ADConnect同步到O365,用户想实现在本地已做同步的OU中禁用某一用户后,其可以自动实现把该用户从地址列表中隐藏掉。

 

用户的ADConnect同步工具装在域控服务器上。

 

解决方法:

 

思路概述:在本地中启用一个计划任务,在特定事件下触发运行powershell脚本,通过powershell命令检测本地AD中已禁用用户的enabled和msExchHideFromAddressLists属性值,并更改msExchHideFromAddressLists和mailnickname的属性值,然后使用Start-ADSyncSyncCycle -PolicyType Delta命令触发同步。

 

操作步骤:

  1. 复制一下powershell 命令,把OU=G10,DC=ttt,DC=com更改为自己的Active Directory路径并保存为一个Powershell脚本文件。

 

Set-Executionpolicy -executionPolicy Unrestricted -force

Get-ADUser -Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -notlike "*")} -SearchBase "OU=G10,DC=ttt,DC=com" -Properties msExchHideFromAddressLists `

| % { Set-ADUser -Identity $_.samaccountname -Replace @{msExchHideFromAddressLists=$true} ;Set-ADUser -Identity $_.samaccountname -Replace @{mailnickname="$($_.samaccountname)"} }

Start-ADSyncSyncCycle -PolicyType Delta

 

  1. 在装有ADConnect同步工具的域控服务器上创建计划任务。

图形界面方式:

  1. 输入“msc”命令打开“Task Scheduler”控制面板。

  1. 打开“任务计划程序”,点击右边的“创建基本任务”。

  1. 填写名称及描述信息

  

  1. 当禁用AD用户时,在本地的域控制器上会触发一个事件日志

  

  1. 选择触发类型

  

  1. 填写Log、Source、EventID

Log: Security

Source: Microsoft Windows security auditing

Event ID : 4725

  

  1. 选择操作类型

  

  1. “程序或脚本”这里要填写Powershell程序的路径,如图中地址;在“添加参数”,这里需要写上:C:\automatically_hide_address_list.ps1 在起始项中填写脚本所在文件夹路径

  

  1. 勾选图中位置选项,点击下一步。

  

  1. 用户那里要使用Administrator管理员权限,这个权限最大,不容易出现:权限不足的报错。勾选“不管用户是否登录都要运行”和“使用最高权限运行”。

  

  1. 输入管理员密码

  

  1. 创建完成后就可以在计划任务面板中看到该计划。

  

备注:正常情况下我们的任务计划执行后会有反馈数值:

    • 代码 0 或 0x0:操作成功完成。
    • 代码 1 或 0x1:调用的函数不正确或调用了未知函数。
    • 代码 10 或 0xa:环境不正确。
    • 代码 0x8009000f:常规访问被拒绝

 

  13. 效果验证

  禁用前

  

  

  禁用后

  禁用T23用户,触发系统安全事件日志

  

  计划任务也自动触发并成功执行。

  

  检查用户的mailnickname和msExchHideFromAddressLists属性值均发生更改。

  

  

  云端O365中的用户已经被Blocked

  

  查看Exchange用户中的Hide address list

  

 

标签:触发,msExchHideFromAddressLists,AD,禁用,用户,列表,本地
From: https://www.cnblogs.com/CQman/p/18333468

相关文章

  • gradio 之页面布局
     输出组件的可交互,默认垂直排列importgradioasgrdefgreet(name):return"Hello"+name+"!"withgr.Blocks()asdemo:name=gr.Textbox(label="Name")#不可交互#output=gr.Textbox(label="OutputBox")#可交互......
  • Hadoop学习
                    hadoop的概念还没有完全了解完全,但是它的核心是处理和存储大数据,需要在虚拟机上面进行系统的测试......
  • 【flash attention安装】成功解决flash attention安装: undefined symbol: _ZN2at4_op
    【大模型-flashattention安装】成功解决flashattention安装site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so:undefinedsymbol:_ZN2at4_ops9_pad_enum4callERKNS_6TensorEN3c108ArrayRefINS5_6SymIntEEElNS5_8optionalIdEE本次修炼方法请往下查看......
  • C#重要集合类:列表、字典、队列、栈
    主要内容:重要集合类:列表、字典、队列、栈Timer定时器,Thread线程)集合类:ArrayList、List列表、集合类:Dictionary字典、集合类:Queue队列、Stack栈Timer定时器Timer定时器:每间隔一段时间执行相同的业务逻辑,类似于循环。定时器在C#中有两种:线程安全的定时器定时器控件(......
  • python高性能计算:cython使用openmp并行 —— 报错:undefined symbol: omp_get_thread_n
    test.pyx文件:fromcython.parallelcimportparallelfromopenmpcimportomp_get_thread_numcpdefvoidlong_running_task1()noexceptnogil:whileTrue:passcpdefvoidlong_running_task2()noexceptnogil:whileTrue:passdefdo......
  • (苍穹外卖 DAY3)启\禁用员工账号、编辑员工功能、分类模块解读
    写在前面在学习苍穹外卖过程中,弹幕常有“为什么我打不开?为什么我没有输出?”的疑问,针对这些我也在学习过程中同样遇到的问题,万分感激在弹幕中找到了答案,并作出这系列汇总。本文内容是基于弹幕对苍穹外卖项目的实施与补充,仅供学习与分享之用,如有侵权请联系删除~ 2024-07-30......
  • python中列表的学习
    列表目录列表列表的定义创建列表列表的索引列表的切片内置函数列表的遍历列表的常用方法(变量.方法名())列表的定义List(列表)是Python中使用最频繁的数据类型,在其他语言中通常叫做数组专门用于存储一串信息列表用[]定义,数据之间使用﹐分隔列表的索引从О开始索引就是数据在列......
  • unity报错CommandWithNoStdoutInvokationFailure: Unable to start ADB server.
    这个错误提示表明Unity无法启动ADB(AndroidDebugBridge)服务器,这通常是因为AndroidSDK没有安装或者配置不正确。以下是一些解决这个问题的步骤:确认AndroidSDK的安装:确保你已经安装了AndroidSDK。可以通过AndroidStudio来安装SDK,或者从Android开发者网站下载。配置U......
  • 一个基于 SourceGenerator 生成 从 dbReader转换为 class 数据的性能测试实验
    好奇SourceGenerator出现开始,好几年了,虽然一直好奇用SourceGenerator生成代码与emit等动态生成的代码会有多少差距,但是一直特别懒,不想搞其实dapperaot项目做了类似事情,不过功能特别积极,还引用了实验特性,所以还是想更为简单客观对比本次乘着自己暂时性不懒了,做了一个基......
  • Hadoop学习总计
    Hadoop的另一重要组成部分是MapReduce,它作为一种分布式计算模型,在处理大规模数据集方面展现出了强大的能力。在我的学习过程中,掌握MapReduce的原理和实际操作成为了一个挑战。刚开始时,我发现编写和调试分布式任务并不容易,需要理解并克服许多复杂的技术难题。然而,通过深入学习MapR......