Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search 检查跨域工作站C上的管理员权限#_Search_Active Directory_Ldap - Fatal编程技术网

Search 检查跨域工作站C上的管理员权限#

Search 检查跨域工作站C上的管理员权限#,search,active-directory,ldap,Search,Active Directory,Ldap,我试图检查用户是否是特定机器上的管理员。 当计算机位于同一域时,我有以下代码可以正常工作: public bool CheckAdmins(string computerName) { var identity = WindowsIdentity.GetCurrent(); var principal = new WindowsPrincipal(identity); string branchnumber = computerName.Substring(0, 3);

我试图检查用户是否是特定机器上的管理员。 当计算机位于同一域时,我有以下代码可以正常工作:

public bool CheckAdmins(string computerName)
{
    var identity = WindowsIdentity.GetCurrent();
    var principal = new WindowsPrincipal(identity);
    string branchnumber = computerName.Substring(0, 3);

    bool admin = false;

    if (logonUser.authenticate())
    {
        using (DirectoryEntry machine = new DirectoryEntry("WinNT://" + logonUser.Domain + "/" + computerName,logonUser.Domain + "\\" + logonUser.UserID,logonUser.Password))
        {
            //get local admin group

            using (DirectoryEntry group = machine.Children.Find("Administrators","group"))
            {
                //get all members of local admin group
                object members = group.Invoke("Members", null);

                foreach (object member in (IEnumerable)members)
                {
                    //get account name
                    string accountName = new DirectoryEntry(member).Name;
                    bool isAdmin = principal.IsInRole(accountName);
                    if (isAdmin == true) { admin = true; }
                }
            }
        }
    }
    return admin;
}
然而,在整个域中,这只是返回“未找到网络路径”。 我一直在尝试LDAP,但没有走得太远。我尝试了很多方法,理想情况下需要一个例子。这是我目前正在使用的:

        String strPath = "LDAP://172.24.242.51/CN=258TP520,OU=258,DC=net,DC=test,DC=co,DC=uk";
        DirectoryEntry myDE = new DirectoryEntry(strPath, "testdom\user", "password");
        List<string> memberof = new List<string>();
        foreach (object oMember in myDE.Properties["memberOf"])
        {
            memberof.Add(oMember.ToString());
        }
String strPath=“LDAP://172.24.242.51/CN=258TP520,OU=258,DC=net,DC=test,DC=co,DC=uk”;
DirectoryEntry myDE=新的DirectoryEntry(strPath,“testdom\user”,“password”);
List memberof=新列表();
foreach(myDE.Properties[“memberOf”]中的对象oMember)
{
memberof.Add(oMember.ToString());
}
然而,myDE.properties似乎不包含任何内容。感谢大家的帮助!
谢谢

我需要将FQDN附加到computername,如下所示

using (DirectoryEntry machine = new DirectoryEntry("WinNT://"  + computerName + ".net.test.co.uk",logonUser.Domain + "\\" + logonUser.UserID,logonUser.Password))
这解决了我的问题