Feedback

Ermittelt Remote, ob der User Admin, PowerUser oder User -Re

Name='““ + mo[„“Name““] + „“‚““““);

/// <summary>
        /// Ermittelt Remote, ob der User Admin, PowerUser oder User -Rechte hat
        /// </summary>
        /// <param name="ComputerName"></param>
        /// <param name="UserName"></param>
        /// <returns>local GroupName</returns>
        public static string GetLocalUserRights(string ComputerName, string UserName)
        {
            Dictionary<string, string> LocalRights = new Dictionary<string,string>();
            ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Group WHERE LocalAccount = TRUE");
            ManagementScope ms = new ManagementScope("\\" + ComputerName + "\root\cimv2");
            mos.Scope = ms;
            try
            {
                mos.Scope.Connect();
            }
            catch (Exception)
            {
                return null;
            }
            SecurityIdentifier sidLocalAdmins = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
            SecurityIdentifier sidLocalPowerUser = new SecurityIdentifier(WellKnownSidType.BuiltinPowerUsersSid, null);
            SecurityIdentifier sidLocalUser = new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null);

            foreach (ManagementObject mo in mos.Get())
            {
                if (mo["SID"].ToString() == sidLocalAdmins.Value | mo["SID"].ToString() == sidLocalPowerUser.Value | mo["SID"].ToString() == sidLocalUser.Value)
                {
                    ManagementObjectSearcher userSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_GroupUser Where GroupComponent = "Win32_Group.Domain='"" + ComputerName + ""'