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

image.png


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


image.png


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

image.png

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

image.png

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

image.png

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

image.png

image.png

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

image.png

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

image.png

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

image.png

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

image.png

image.png

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

image.png

image.png

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

image.png

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

image.png


附件脚本如下,改为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”的权限,此处不做详细解释