我知道这个问题已经被问了很多次,但是没有人回答我的问题。 从Comptiat A +的学习中我知道,当使用自动化(无人值守)安装时,技术人员必须返回并在每台机器上激活操作系统之前更改MACHINE SID。 似乎有很多关于如何使用networking来获取SID的问题,但是我知道还有一个不能改变的机器SID。 对于那些使用Fix-It Utilities启动盘的用户来说,有一个button“更改SID”,如果它已经被激活,将会导致Windows无法启动。
我的问题与此相似,但他的问题从来没有真正的答案。 我的问题是,如何使用c#获得MACHINE Windows安装SID。
那么,这取决于你想要哪台计算机SID(认真!)。 有本地计算机自己使用的SID …为此,您只需要获取本地管理员用户的SID,并从最后删除“-500”以获得计算机的SID。
在.NET 3.5的C#中:
using System; using System.Security.Principal; using System.DirectoryServices; using System.Linq; public static SecurityIdentifier GetComputerSid() { return new SecurityIdentifier((byte[])new DirectoryEntry(string.Format("WinNT://{0},Computer", Environment.MachineName)).Children.Cast<DirectoryEntry>().First().InvokeGet("objectSID"), 0).AccountDomainSid; }
另一方面,Active Directory使用SID来标识每个域成员计算机…通过获取域中计算机帐户的SID来获取的SID – 以美元符号结尾的那个SID。