none
关于域组策略中统一本地管理员密码研究讨论。路过的专家老师高手达人都来赐教! RRS feed

  • 问题

  • 这个问题老问题了 之前用的2008R2域,首选项中的设定本地管理员密码策略,简单方便的成功实现过。也方便了域内客户机本地管理员的管理。

    但是!升级到2012 r2后微软考虑到安全因素放弃了组策略中给我们的首选项解决方案,而另外给出了一个LAPS附加工具来部署。但是部署过程复杂,需要客户端分发安装后还要AD架构扩展等等一系列设置工作。还涉及到客户机x86,x64等等区别。比较繁琐。所以从实施便捷角度来看相对于2008 r2域我感觉是退步的。但是安全性肯定是增加的。代价就是微软给我们更多更复杂的工具而不是更方便的部署。类似于Intel,永远给我们带来的是N核心的更多CPU的集合而不是更强的单个CPU。个人见解。不要喷我。言归正传

    恰巧最近我这边从2008 r2切换到了2012 r2,客户机本地管理员密码统一问题这个问题亟待解决。因为很多时候我们需要在客户机上通过本地管理员登录来解决一些事情。但是我研究了LAPS之后,决定放弃。说实话看了一些LAPS的说明,因为我个人水平菜的原因,有些我甚至看不懂,尤其是涉及到AD架构增加属性的部分,所以我觉得放弃LAPS。我想了另一个方案。来这里请教专家看看是不是可行和怎么实现。思路如下:

    a。通过域组策略进行客户机本地用户的统一创建,也就是加入域内的客户机通过组策略实现统一的本地用户创建。比如为每一台客户机新增一个本地名为bendiadmin的户用

    b. 通过首选项,把这个bendiadmin的用户放入客户机的本地管理员组,目前看来2012 r2组策略首选项这个功能是可以实现

    c. 通过开机脚本,统一设置这个bendiadmin的密码

    这样曲线救国,实现了一个具有本地管理员权限级别的本地用户bendiadmin,并且在域内客户机中统一了密码。必要时候我们可以通过这个用户进行登录

    那么 为什么不直接在步骤c中通过开机脚本实现对本地管理员密码统一设定而非要去创建一个用户再加入本地管理员组呢 因为实践中我发现如果直接通过脚本对本地管理员进行密码设定,会带来 万一则组策略中 ou gpo规划设置不当,会导致域控制器自身的域管理员密码造成被重新设定(个人认为是相对于域控制器来说域管理员就是其本地管理员)。我就曾经通过修改本地管理员密码的脚本部署到组策略中,发生了导致域管理员密码被脚本强制修改的事例。当然如果组策略 ou gpo规划合理,是不会发生这样的情况的。所以,我认为还是追加一个本地用户再加入管理员组,再统一设定密码来变通实现更好。

    问题1:首先要请教各位专家老师高手达人,这个方案是不是可行?如果不可行。不用看下面了。直接枪毙这个帖子。如果可行。继续go on

    问题2: 2012 r2组策略中通过首选项创建用户的界面中都已经变成灰色。如图:

    微软出于安全性考虑又抛弃了我们的使用习惯。所以 考虑通过脚本来创建本地用户吧。求一个这样的脚本范例。要适用客户机不同的系统(win7 、win10、winxp、win2003)和系统位数(x86、x64)。有这个脚本后就可以放入组策略的启动脚本中。这样客户机连入域就会自动创建。

    问题3:这是问题2的引深,假设有了一个创建本地用户bendiadmin的脚本,并放入了组策略的启动中。那么客户机启动时第一次执行了组策略,成功创建了bendiadmin。那么客户机后续开机重启的时候,又会再次执行这个脚本。也就是说重复创建。那么系统如何处理这个逻辑?会不会造成报错?

    问题4:假设有了一个创建本地用户bendiadmin的脚本,求一个强制设定这个用户密码的脚本。同样要适用客户机不同的系统(win7 、win10、winxp、win2003)和系统位数(x86、x64)。附上我最初网上找的设定本地管理员密码的开机脚本。

    strComputer = "."
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator,user")
    objUser.SetPassword "password"
    objUser.SetInfo

    这个是网上搜索的。我不是很了解含义。我比较菜。还希望专家老师能解答下。比如第一行那个“.”是代表当前计算机?

    “WinNT://” 适用所有客户机系统么,比如xp?

    setinfo又什么作用?

    嗯。问题比较多。因为确实水平有限。还望不吝赐教。谢谢大家


    nn

    2020年11月26日 0:54

答案

  • 已经自己测试解决了。下面说下具体怎么实现的 希望给正好有此问题困扰且也不想用LAPS解决的人一点帮助

    下面我自己回答一下我的问题:

    问题1回答:可行

    问题2回答:组策略中统一创建客户机本地用户脚本如下:

    strComputer = "."     '.代表客户机本机自身
    
    '设定客户机对象
    Set colAccounts = GetObject("WinNT://" & strComputer & ",computer")
    
    ‘客户机创建本地用户bdadmin
    Set objUser = colAccounts.Create("user", "bdadmin")
     
    ‘本地用户bdadmin设定密码
    objUser.SetPassword "xxxxxxxx"
    
    ‘执行
    objUser.SetInfo

    然后放入组策略中脚本(启动)中,测试了客户机环境win7 win10 都通过。均成功创建了本地用户bdadmin。

    再设定组策略的首选项,把这个bdadmin用户放入客户机的本地管理员组中提升本地权限。如图:

    当然你可以在计算机配置和用户配置2个地方都这么做。

    最后域内客户机效果:

    问题3回答: 经过多次重启,并未发现错误或者有异常。说明重复脚本也没问题。(其实我想改善下脚本。比如现行判断本地用户有没有bdadmin这样账户。没有的话创建,有的话跳过。但是我不会写)

    问题4回答:这个问题已经合并到问题2中。创建的同时直接设定密码。不用在另外写一个脚本。

    以上就是整个过程。更安全一点可以通过组策略禁用本地的administrator内置账户。只有bdadmin才是管理员 方便管理。



    nn

    2020年11月26日 3:16