将Active Directory计算机帐户和用户帐户绑定在一起

在AD中有可能以某种方式将用户帐户与计算机帐户相关联? 这个想法是,我想编写一个程序来查询AD用户拥有的计算机。

在“AD用户和计算机”中,您可以find每个计算机对象的“托pipe者”字段。 您可以将用户的AD帐户添加到此字段,并用它来标识工作站的所有者。

据我所知,通过将用户添加到“Managed By”字段中,没有额外的权限。 只是在那里保持logging。

我采用的另一种方法是标准化“描述”字段,以便它拥有一组一致的信息。 例如,在计算机的描述字段中,您可以具有:

Desktop,Brisbane,Dell Optiplex 720,Fred Bloggs,01-02-2007

从这个angular度来说,parsing和提取一个位置,计算机types,模型,用户名或购买date都是非常简单的。 您也可以让login脚本将相同的信息复制到操作系统的机器描述字段中。

另一个选项 – AD允许您像其他数据库一样扩展和增强模式。 您可以使用它来添加自定义字段 。 这是一个更多的参与,你冒着违反“不要乱用默认值”的风险,除非你没有select的networkingpipe理规则。

我最喜欢的方法是使用库存软件,自动将用户名和计算机名称关联起来。 如果我们在AD中维护这些信息,那么随着每个人员或设备的更改都要手动更新一次。 为什么我要手动做一些事情,如果我的networking会为我做?

OCS库存NG是一个很好的免费/开源替代品; 如果用户界面不适合特定的search,而且碰巧知道SQL,那么也可以直接查询MySQL数据库。 如果将其设置为每个工作站都在login时检入服务器,则您将始终知道谁login了哪台计算机。

从我记忆中来说,这并不是一个好的方法,因为用户可以login到多台机器,或者多个用户可以login到同一台机器。

假设它是一个一对一的(一台机器对一个用户)在一个较小或控制良好的环境中,你可能能够一起破解这样的事情…

根据截止date之前你有多less时间,你可能会有他们的login脚本更新谁login谁,以及通过vbscript或批处理什么机器。 您可以将该信息附加到服务器共享上的平面文件,然后稍后执行自己的parsing…

示例脚本(未testing)在机器%SYSTEMNAME%上echo“%USERNAME%”>> S:\ admins \ servermap.txt

然后用一些vbscriptparsing出来,然后通过文件查看,并返回用户名后面的机器名称。

或者,如果你很聪明,你可以在login脚本上做同样的事情,而是将机器名称写入用户的AD描述字段或其他一些你没有使用admod的字段…虽然这需要pipe理员访问…

admod -b dc = test,dc = net“description ::%USERNAME%COMPUTER”

这取决于你的意思是“拥有”。 如果您指的是他们每天login的站点,则可以通过parsing您的域控制器安全事件日志以及将login/注销事件与工作站关联来获得。 或者工作站本身的安全事件日志,如果你想要去那么远。

DC上的login事件显示了login的IP地址,因此您必须parsing机器帐户login才能将IP与计算机名称匹配。 查询工作站日志更好,因为它只显示login在该机器上的人员,但这意味着您必须打开安全日志; 它在XP上默认closures,但在Vista和7上默认是closures的。

不,你不能这样做,因为所谓的join到Windows AD机器/计算机实际上只是Windows安装程序,但物理机器没有被Windows AD识别。 你可以启动它:

  • 从任何一台电脑的图像
  • 从另一台电脑的磁盘
  • 让一个物理机器上有多个虚拟机join域
  • 在同一个Windows安装程序上有多个login会话
  • 有没有硬盘远程terminallogin会话的机器。

所以,DC不会检测物理硬件电脑。 即使在理论上也不清楚要考虑一个物理安全单元。

我试图问在SF的类似问题,但它被closures:

  • 什么是Windows AD中的主机/计算机SID? 需要什么来识别networking的元素呢?

我希望你的问题的命运会有所不同

我upvoted你的问题,继续前进!