在.NET中使用GetComputerObjectName来获取自己的ID?
我曾经调用GetComputerObjectName(NameUniqueId,…)来获取本地计算机的Active Directory ID。试图在.NET中获得相同的功能,它是否存在,或者p-invoke是实现此目标的最佳方法?System.Environment.MachineName?必须p-invoke在.NET中使用GetComputerObjectName来获取自己的ID?,.net,active-directory,.net,Active Directory,我曾经调用GetComputerObjectName(NameUniqueId,…)来获取本地计算机的Active Directory ID。试图在.NET中获得相同的功能,它是否存在,或者p-invoke是实现此目标的最佳方法?System.Environment.MachineName?必须p-invoke [DllImport("secur32.dll", SetLastError = true, CharSet = CharSet.Auto)] static extern
[DllImport("secur32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern bool GetComputerObjectName(int nameFormat, StringBuilder lpNameBuffer, ref int lpnSize);
public static string GetComputerObjectName()
{
const int NameUniqueId = 6;
var lpBuffer = new StringBuilder(260);
var bufferLength = lpBuffer.Capacity;
if (!GetComputerObjectName(NameUniqueId, lpBuffer, ref bufferLength))
{
throw new Win32Exception(Marshal.GetLastWin32Error());
}
return lpBuffer.ToString();
}
我想要的是NameUniqueId,而不是NetBIOS nameSorry,如果没有pinvoke,我找不到你可以如何做到这一点。