欢迎光临
我们一直在努力

使用组策略获取AD中所有计算机当前登录用户信息

需求原因:AD中所有计算机命名规则:公司+PC序列号,操作系统为Windows 7 Professional版本。当我使用Powershell将AD中所有计算机信息导出,并排序检查时,发现有部分机器命名不符合规则,且操作系统为Win7旗舰版或Win10系统。对于这些机器的操作系统公司并未购买许可,会存在法律风险。作为IT人员,应当及时处理这些不合规的机器。所以,我们需要及时找到机器的使用者,并培养用户软件正版化的思维。

解决方案:让AD中所有计算机显示出当前用户登录信息,及时沟通处理不合规机器。使用组策略部署脚本将用户登录信息写入对应的计算机描述中或用户登录名称中

一、登录DC,打开AD用户和计算机管理中心,右键“Computers组织单位(OU)”选择”属性”

二、选择“安全”,“Authenticated Users”点击“高级”

三、选择“Authenticated Users”点击“编辑”

四、选择“应用于后代计算机对象”给予“写入描述权限”,点击确定(注意:对于权限给予一定要仔细审核!!!)

五、打开“组策略管理”,可在默认组策略或OU下新建策略都可以,此处已默认策略为例

六、右键“Default Domain Policy”点击“编辑”

七、选择“用户配置”,“Windows设置”"脚本(登录/注销)"

八、双击“登录”点击“添加”,点击“浏览”

九、放入VBS脚本,点击“打开”,点击“确定”

十、点击“应用”“确定”,关闭组策略管理,结束

十一、可以使用gpupdate /force 强制刷新组策略,测试结果成功

附件脚本如下,改为VBS后缀即可正常使用

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")

Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)

Set objUser = GetObject("LDAP://" & objSysInfo.UserName)

strCompDesc =objUser.CN

if strCompDesc <> "" then

   objComputer.Description = strCompDesc & "|" & date & " " & time

   objComputer.SetInfo

end if

Set objUser = Nothing

Set objComputer = Nothing

Set objSysInfo = Nothing  

十二、如果需要写入“用户登录名称”需要更改脚本“Description“”和重新给予OU“后代计算机对象“”写入“UserPrincipalName”的权限,此处不做详细解释

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。