Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.NET中使用GetComputerObjectName来获取自己的ID?_.net_Active Directory - Fatal编程技术网

在.NET中使用GetComputerObjectName来获取自己的ID?

在.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

我曾经调用GetComputerObjectName(NameUniqueId,…)来获取本地计算机的Active Directory ID。试图在.NET中获得相同的功能,它是否存在,或者p-invoke是实现此目标的最佳方法?

System.Environment.MachineName?

必须p-invoke

    [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,我找不到你可以如何做到这一点。