您可以在c#中获取windows安装SID

本文关键字:获取 windows 安装 SID | 更新日期: 2023-09-27 17:50:13

我知道这个问题在SO上被问了很多次,但是没有一个人回答我的问题。我从竞争A+的研究中知道,当使用自动化(无人看管)安装时,技术人员总是必须在每台机器上激活操作系统之前返回并更改MACHINE SID。似乎有很多关于如何获得SID与网络等问题,但我知道也有一个机器的SID是不能改变的。对于那些使用Fix-It Utilities引导盘的人来说,有一个按钮,"更改SID",如果已经激活,它将使窗口无法启动。

我的问题和他的问题很相似,但是他的问题从来没有得到真正的回答。我的问题是,如何使用c#获得MACHINE Windows安装SID。

您可以在c#中获取windows安装SID

嗯,这取决于您想要哪种计算机SID(说真的!)。有本地计算机自己使用的SID…为此,您只需要获得本地Administrator用户的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来获取的那个——以美元符号结尾的那个。