![将 Active Directory 计算机帐户和用户帐户绑定在一起](https://linux22.com/image/521557/%E5%B0%86%20Active%20Directory%20%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%B8%90%E6%88%B7%E5%92%8C%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%E7%BB%91%E5%AE%9A%E5%9C%A8%E4%B8%80%E8%B5%B7.png)
在 AD 中,是否可以以某种方式将用户帐户与计算机帐户关联?我的想法是编写一个程序来查询 AD 中用户拥有的计算机。
答案1
在 AD 用户和计算机中,您会发现每个计算机对象都有一个“管理者”字段。您可以将用户的 AD 帐户添加到此字段,并使用它来识别工作站的所有者。
据我了解,将用户添加到“管理者”字段不会授予任何额外权限。它只是为了保留记录。
我采用的另一种方法是标准化“描述”字段,以便它包含一组一致的信息。例如,在计算机的描述字段中,您可以包含:
台式机,布里斯班,戴尔 Optiplex 720,Fred Bloggs,2007 年 1 月 2 日
从这里,解析并提取位置、计算机类型、型号、用户名或购买日期非常简单。您还可以让登录脚本将相同的信息复制到操作系统的机器描述字段中。
另一个选项 - AD 允许您扩展和增强其架构,就像其他数据库一样。您可以使用它来添加自定义字段。这有点复杂,而且您可能会违反网络管理的“除非别无选择,否则不要更改默认设置”规则。
答案2
我首选的方法是使用自动将用户名与计算机名称关联的库存软件。如果我们在 AD 中维护此信息,那么每次人员或设备变更时都需要手动更新;如果我的网络可以帮我完成这件事,我为什么要手动做呢?
OCS 库存 NG是一个很好的免费/开源替代方案;如果用户界面不足以满足特定搜索的需求,而您恰好了解 SQL,那么您也可以直接查询 MySQL 数据库。如果您将其设置为每个工作站在登录时都向服务器签入,那么您将始终知道谁登录了哪台计算机。
答案3
在我看来,这不是一个好方法,因为用户可以登录到多台机器,或者多个用户可以登录到同一台机器。
假设它是一对一(一台机器对一个用户),在较小或控制良好的环境中,您可能能够一起破解这样的东西......
根据截止日期前有多少时间,您可以让他们的登录脚本通过 vbscript 或批处理向您更新谁在登录以及在哪台机器上登录。您可以将该信息附加到服务器共享上的平面文件中,然后稍后进行自己的解析...
示例脚本(未经测试) echo "%USERNAME% on machine %SYSTEMNAME%" >> S:\admins\servermap.txt
然后稍后使用一些 vbscript 对其进行解析,查看文件并在用户名后返回机器名称...
或者如果你很聪明,你可以在登录脚本上做同样的事情,但要将机器名称写入用户的 AD 描述字段或你不使用的其他字段,例如 admod……但这需要管理员访问权限……
admod -b dc=test,dc=net “描述::%USERNAME %COMPUTER”
答案4
不可以,您无法执行此操作,因为所谓的加入 Windows AD 的机器/计算机实际上只是 Windows 设置,但 Windows AD 无法识别物理机器。您可以启动它:
- 从任何计算机上的图像
- 来自另一台计算机的磁盘
- 将多个虚拟机加入到一台物理机上的域中
- 在同一个 Windows 设置上有多个登录会话
- 拥有没有硬盘但具有远程终端登录会话的机器。
因此,DC 不会检测物理硬件计算机。甚至从理论上讲,尚不清楚应将什么视为物理安全单元。
我尝试在 SF 中询问类似的问题,但是它被关闭了:
我希望你的问题的命运会有所不同
我赞同你的问题,继续!