Пример #1
0
        private void unjoin_domain(object sender, EventArgs e)
        {
            {
                if (impLevel < 2 || authLevel < 4)
                {
                    MessageBox.Show("Для управления целью необходимы следующие права:\r\nУровень олицетворения: Не ниже \"Олицетворение\"" +
                                    "\r\nУровень аутентификации: Не ниже \"Целостность пакетов\"", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                tabControl1.SelectedIndex = 0;
                if (!check())
                {
                    return;
                }
                Handler.setUser(login, password, impLevel, authLevel);
                DomainDialog domain = new DomainDialog(false);
                domain.Owner = this;
                domain.ShowDialog();
                string[] tts = new string[targets.CheckedItems.Count];
                for (int i = 0; i < targets.CheckedItems.Count; i++)
                {
                    tts[i] = targets.CheckedItems[i].ToString();
                }
                output.Nodes.Clear();
                string   respond;
                TreeNode tt;
                foreach (string target in tts)
                {
                    respond = "Результат: ";
                    object res = Handler.exec_by_object(target, "Win32_ComputerSystem", "UnJoinDomainOrWorkgroup", new object[] { dcUser, dcPassword });
                    if (res == null)
                    {
                        respond += "Цель недоступна";
                    }
                    else
                    {
                        switch ((UInt32)res)
                        {
                        case 0:
                            respond += "Успешно";
                            break;

                        case 0xa84:
                            respond += "Цель не в домене";
                            break;

                        default:
                            respond += res;
                            break;
                        }
                    }
                    tt = new TreeNode(target);
                    tt.Nodes.Add(respond);
                    output.Nodes.Add(tt);
                }
            }
        }
Пример #2
0
        private void join_domain(object sender, EventArgs e)
        {
            tabControl1.SelectedIndex = 0;
            if (!check())
            {
                return;
            }
            if (impLevel < 2 || authLevel < 4)
            {
                MessageBox.Show("Для управления целью необходимы следующие права:\r\nУровень олицетворения: Не ниже \"Олицетворение\"" +
                                "\r\nУровень аутентификации: Не ниже \"Целостность пакетов\"", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            Handler.setUser(login, password, impLevel, authLevel);
            DomainDialog domain = new DomainDialog(true);

            domain.Owner = this;
            domain.ShowDialog();
            if (domainName == null)
            {
                return;
            }
            string[] tts = new string[targets.CheckedItems.Count];
            for (int i = 0; i < targets.CheckedItems.Count; i++)
            {
                tts[i] = targets.CheckedItems[i].ToString();
            }
            output.Nodes.Clear();
            string   respond;
            TreeNode tt;
            string   ou        = null;
            string   join_flag = null;

            if (is_domain)
            {
                ou = "OU=Workstation;";
                string[] spld = domainName.Split('.');
                foreach (string domain_part in spld)
                {
                    ou += " DC=" + domain_part;
                }
                join_flag = "1";
            }
            foreach (string target in tts)
            {
                respond = "Результат: ";
                object res = Handler.exec_by_object(target, "Win32_ComputerSystem", "JoinDomainOrWorkgroup", new object[] { domainName, dcUser, dcPassword, ou, join_flag });
                if (res == null)
                {
                    respond += "Цель недоступна";
                }
                else
                {
                    switch ((UInt32)res)
                    {
                    case 0:
                        respond += "Успешно";
                        break;

                    case 0x54b:
                        respond += "Домен не найден (недоступен)";
                        break;

                    case 0x54e:
                        respond += "Неверный логин и (или) пароль ";
                        break;

                    default:
                        respond += res;
                        break;
                    }
                }
                tt = new TreeNode(target);
                tt.Nodes.Add(respond);
                output.Nodes.Add(tt);
            }
        }