- Три способа добавить компьютер с Windows к домену
- Способ 1 — графический интерфейс
- Способ 2 — командная строка
- Способ 3 — powershell
- Как ввести в домен через Powershell Add-Computer
- Ввод компьютера в определенную OU домена в Powershell
- Добавление множества компьютеров в домен из CSV с помощью Powershell
- Домен через консоль windows
- Управляем сервером Windows из командной строки
- Содержание статьи
- Базовые операции
- Хакер #181. Вся власть роботам!
- Sconfig.cmd
- Управление BYOD при помощи PowerShell
- Настройки сети
- Переменная patch
- Управление WFAS
- Заключение
Три способа добавить компьютер с Windows к домену
Способ 1 — графический интерфейс
Открываем свойства компьютера. Для этого открываем проводник и кликаем правой кнопкой мыши по Компьютер и выбираем Свойства:
В открывшемся окне в разделе Имя компьютера, имя домена и параметры рабочей группы нажимаем Изменить параметры:
В следующем окне нажимаем Изменить и выставляем переключатель Является членом в положение домена и вводим имя домена:
Нажимаем OK. Система запросит логин и пароль учетной записи с правом на ввод компьютера в домен. Вводим логин и пароль, например администратора, и нажимаем OK. Windows выкинет несколько сообщений о присоединении компьютера к домену и запросит перезагрузку — соглашаемся.
Способ 2 — командная строка
Запускаем командную строку от имени администратора и вводим следующую команду:
> netdom join %computername% /domain:dmosk.local /userd:dmosk\admin /passwordd:pass
* данная команда выполняется в командной строке (cmd). Она добавить компьютер к домену dmosk.local под учетными данными admin с паролем pass.
После отработки команды необходимо перезагрузить компьютер.
Способ 3 — powershell
Запускаем powershell от имени администратора и вводим следующий командлет:
> Add-Computer -DomainName dmosk.local -Credential dmosk\kdo
После нажатия Enter система запросит пароль для учетной записи. Вводим и дожидаемся окончания операции. После перезагружаем компьютер.
Как ввести в домен через Powershell Add-Computer
28 августа 2019
Команда Powershell Add-Computer позволяет ввести компьютер в домен. Командлет так же позволяет ввести в домен компьютер под новым именем или в определенный OU.
Если мы выполним следующий командлет, то у нас появится запрос на ввод учетных данных так как для ввода в домен нужна будет доменная учетная запись:
Если у вас этого не получается, то проблема, скорее всего в DNS. Вы можете проверить доступность хоста пингом и настроить IP в Powershell.
После ввода выполняем перезагрузку:
Есть два ключа, которые присутствуют как и в этом, так и во множестве других командлетов. Это:
- ComputerName — позволяет выполнять команды удаленно используя IP или имя
- Credential — позволяет выполнять команды передавая другие учетные данные
- LocalCredential — учетные данные локального администратора
Если мы запустили консоль Powershell под обычным пользователем, то нам понадобится две учетные записи — локального администратора и пользователя AD:
С ключом ComputerName мы можем ввести в домен сразу несколько объектов. Один из минусов в том, что мы будем использовать проверку NTLM, что потребует дополнительных настроек и снизит безопасность.
У нас могут появиться ошибки:
- add-computer не удается установить подключение wmi к компьютеру
- Add-Computer : Cannot establish the WMI connection to the computer
Я решил эту проблему открытием порта 5985 и открытием доступа по WMI и следующим командлетом:
Хоть Microsoft и пишет, что ключ ComputerName не использует службу PSRemoting, может потребоваться сделать следующее:
Если вы не понимаете смысл строки выше, то стоит почитать статью о том как выполнять удаленные команды в Powershell.
Ключ -Force позволяет не запрашивать подтверждение для каждого хоста если вы выполняете команду сразу для множества.
Мы можем изменить имя хоста сразу при вводе в домен. Для этого нужно добавить ключ:
Ввод компьютера в определенную OU домена в Powershell
Для указания OU нужно понимать пути LDAP. На примере моего домена domain.local и OU Moscow путь будет выглядеть так:
По умолчанию компьютер добавляется в контейнер (CN) Computers.
На примерах выше так мы добавим хост сразу в OU:
Ключ Restart отправит хост в перезагрузку.
Как удалить файлы в Powershell старше определенной даты
Добавление множества компьютеров в домен из CSV с помощью Powershell
Допустим у нас есть такой CSV файл с IP и новыми именами компьютеров:
Для импорта этого файла нужно определиться с символом, который разделяет значения. В моем случае делиметр ;
Домен через консоль windows
После того, как установлен и настроен DNS-сервер и Active Directory на Windows Server 2016 , пришло время ввести в домен компьютер. Ввод компьютера с установленной операционной системой Windows в домен сервера Windows Server 2016 возможен с помощью графического интерфейса, командной строки и PowerShell. Операции ввода не отличаются от предыдущих версий, например Windows Server 2012 . Для ввода в домен необходимо права администратора домена.
1. Перед вводом компьютера в домен необходимо произвести подготовительные действия:
- задать имя комьпютера;
- задать сетевые настройки.
Для переименования комьпютера открываем PowerShell, для этого в поиске пишем одну букву p, дальше правый клик на Windows PowerShell — Запуск от имени администратора.
2. В терминале powershell набираем команду, которая выведет текущее имя компьютера:
$env:computername
Далее задаём новое имя компьютера (в данном случае имя компьютера будет cl11):
rename-computer -newname cl11
Для того, чтобы изменения вступили в силу необходимо перезагрузить компьютер. Задаем перезагрузку с помощью команды:
restart-computer
3. После перезагрузки компьютера производим сетевые настройки. Для этого в поле поиск пишем ncpa.cpl. В открывшемся окне выбираем нужный сетевой интерфейс. Правой клавишей мыши — Свойства — IP версии 4 (TCP/IPv4) — Свойства. Если в сети не развернут DHCP-сервер, то сетевые настройки придется вводить вручную. Придется задать IP-адрес, Маска подсети, Шлюз (если есть), Предпочитаемый DNS-сервер, Альтернативный DNS-сервер (если есть). Далее нажимаем «ОК».
4. Если в сети развернут DHCP-сервер, то главное проверить, чтобы в настройках сетевого интерфейса стояли чекбоксы:
- получить IP-адрес автоматически;
- получить адрес DNS-сервера автоматически.
Далее нажимаем «ОК», на этом настройки сетевого интерфейса закончены.
5. Подготовительные действия закончены, теперь можно ввести компьютер в домен. Для этого открываем PowerShell и в терминале пишем команду (в данном случае имя домена sigro.ru):
add-computer -domainname sigro.ru
Появится запрос учетных данных Windows. Вводим учётные данные пользователя, имеющего право вводить комьпютер в домен и его пароль.
6. После этого появится предупреждение о том, что изменения вступят в силу после перезагрузки компьютера.
Набираем команду и перезагружаем компьютер:
restart-computer
7. После перезагрузки компьютера посмотреть полное имя компьютера (в данном случае cl11.sigro.ru) возможно с помощью команды sysdm.cpl. Для проверки ввода компьютера в домен на сервере выбираем «Диспетчер серверов».
8. В следующем окне выбираем «Средства» — «Пользователи и комьпютеры Active Directory».
9. В новом окне «Active Directory — пользователи и компьютеры» в «Сomputers» видим компьютер, который был добавлен в домен.
10. Далее открываем «Диспетчер серверов» — «Средства» — «DHCP».
11. В окне DHCP-сервера открываем «Арендованные адреса» и справа видим IP-адрес компьютера, который добавили в домен, его имя, а также срок истечения аренды.
12. Если выданный DHCP-ервером IP-адрес нужно зарезервировать, то правый клик на IP-адресе компьютера, далее «Добавить к резервированию».
13. Открываем «Резервирование». Здесь появится компьютер, за которым DHCP-сервер закрепил IP-адрес. Посмотреть свойства можно правым кликом на IP-адрес компьютера.
Теперь компьютер добавлен в домен Windows Server 2016, с этим компьютером можно работать в том числе с помощью GPO.
Посмотреть, что и как делать, можно здесь:
Управляем сервером Windows из командной строки
Содержание статьи
Windows всегда ассоциировалась с графическим интерфейсом, и долгое время win-админы считали благом отсутствие необходимости запоминать консольные команды. Но с увеличением возможностей использование GUI уже не казалось таким простым. Настройки приходится искать среди многочисленных вложенных диалоговых окон. Попытки все оптимизировать, менять местами и добавлять новые визарды только усиливали путаницу. Появился Server Core, вместо одного сервера приходится управлять уже десятками, нередко выполняя однотипные операции. В итоге админы вернулись к консоли.
Базовые операции
На самом деле развитие консольных утилит все это время тоже не стояло на месте. Список команд не сильно изменился: net, netdom, whoami, скрипт активации slmgr.vbs, программа управления службами sc, сетевые утилиты для настройки и диагностики ipconfig, netsh, netstat/nbtstat, arp/getmac, ping, tracert, nslookup и многие другие. После анонса PowerShell появилась официальная информация, что привычные утилиты развиваться больше не будут, на смену им придут командлеты.
Такая судьба постигла консольный вариант диспетчера сервера ServerManagerCmd.exe и утилиту установки компонентов OCSetup.exe, которые, появившись в Win2008, пропали уже в Win2012. Теперь для установки компонентов из консоли используются командлеты Install-WindowsFeature и Add-WindowsFeature. Консольные утилиты по-прежнему привычнее, чем командлеты, но результат, полученный при помощи PowerShell, позволяет выбирать больше параметров, фильтровать их, обрабатывать в скриптах. А главное — теперь нужные данные можно получить не только с локальной, но и с удаленной системы, и в удобном виде. Все это говорит о том, что нужно уже быть готовым к переменам.
В последних редакциях ОС ярлык для запуска cmd.exe спрятали подальше в меню. Правда, и особой необходимости в его использовании нет, так как все традиционные консольные команды можно вводить непосредственно в консоли PowerShell (хотя есть и нюансы), обладающей несомненным преимуществом — автодополнением (по Tab). Постепенно на замену старым добрым утилитам появляются соответствующие командлеты, которые выдают аналогичный результат. Попробуем разобраться со всеми операциями по порядку, рассмотрим типичные задачи с использованием консольных команд и PowerShell.
Проверяем состояние сетевых интерфейсов при помощи PowerShell
Хакер #181. Вся власть роботам!
Сразу после установки операционная система получает имя, сгенерированное случайным образом. Чтобы переименовать систему и подключить ее к домену, используется утилита netdom:
Те же операции при помощи PowerShell выглядят даже понятней.
После установки системы или компонента, возможно, потребуется настройка режима запуска сервиса. В консоли для этого есть две команды:
А вот командлетов для управления запуском сервисов несколько: Get-Service, Start-Service, Set-Service, Stop-Service, Resume-Service. Их назначение говорит само за себя.
Sconfig.cmd
Запоминать команды админы Win не очень любят, в системе можно найти удобную оболочку для большинства консольных команд Sconfig.cmd. Изначально она разрабатывалась для Server Core, но в Win2012R2 доступна и в режиме полной установки сервера. Sconfig не требует знания всех ключей и позволяет, перемещаясь по 15 пунктам, быстро произвести основные установки или выполнить некоторые команды: добавить сервер в домен или рабочую группу, сменить имя компьютера, добавить локального администратора, настроить удаленное управление через WinRM и удаленный рабочий стол, настроить сеть, Windows Update, время и дату, перезагрузить и выключить компьютер. Нужно помнить, что скрипт использует стандартные консольные утилиты и если они пропадут в следующем релизе, то, скорее всего, не будет и Sconfig.
Sconfig.cmd упрощает работу ленивым админам
А вот с монтированием сетевых дисков не все так просто. Традиционно эта операция выполняется при помощи net use:
Его аналогом считается командлет New-PSDrive (от PowerShell Drive), но здесь есть проблема, которая многим неочевидна и порождает кучу вопросов.
При помощи New-PSDrive создается так называемый диск PowerShell, который доступен только в текущем сеансе консоли и только в PowerShell. То есть при помощи проводника, WMI, средствами .NET Framework, net use подключиться к такому диску нельзя. Это неочевидно, но в документации это явно прописано. Просто ее мало кто читает.
Чтобы постоянно использовать диск, необходимо экспортировать сеанс, в котором добавлен диск, или сохранить команду New-PSDrive в профиле PowerShell, или изначально использовать командлет New-Object:
И только в PowerShell 4.0 появился параметр –Persist, позволяющий монтировать PS-диски постоянно.
Для работы с дисками и разделами консоль Windows предлагает две утилиты: diskpart и fsutil. Они не очень удобны и информативны, а поэтому малопопулярны и их часто заменяют альтернативными разработками. Получим статистику по разделу.
Команда «Get-Command disk» выдаст несколько командлетов, но в нашем примере они не очень помогают, и, чтобы получить информацию о свободном месте, по-прежнему приходится обращаться к WMI:
Доступ к файлам в Win традиционно регулируется двумя утилитами — takeown и icacls (есть еще и cacls, но она признана устаревшей), вполне справляющимися со своими обязанностями. Например, чтобы сделать текущую учетную запись (должна входить в группу админов) владельцем каталога, достаточно ввести:
Утилита icacls позволяет управлять списками контроля доступа. Для примера, сохраним ACL в файл и восстановим его:
Та же операция при помощи PowerShell выглядит проще:
Управление BYOD при помощи PowerShell
Одна из самых больших проблем, с которыми сталкиваешься при работе с моделью BYOD, — отсутствие управления устройствами пользователей. В Win2012R2 этим заправляет Device Registration Service (DRS), при регистрации на устройство устанавливается сертификат, а в AD создается новый объект устройства.
Этот объект устанавливает связь между пользователем и устройством, создавая нечто вроде двухфакторной аутентификации. Пользователи получают доступ к корпоративным ресурсам, которые были недоступны, когда они работали за пределами доменной сети. Для работы потребуется роль Active Directory Federation Services (AD FS) и собственно служба DRS (устанавливается при помощи командлета Install-AdfsFarm). Теперь инициализируем службу и приступаем к регистрации устройств пользователей.
В консоли AD FS Management переходим к Authentication Policies, выбираем Edit Global Primary Authentication и активируем Enable Device Authentication. Теперь, используя командлет Get-AdfsDeviceRegistration, можем просматривать и подтверждать устройства (подробнее).
Настройки сети
Комплект консольных сетевых утилит достаточно хорошо известен администраторам, ведь их приходится использовать довольно часто, как при установке, так и для диагностики. Настраивают сетевой интерфейс при помощи netsh interface. Для примера просмотрим список и для одного из доступных установим IP и DNS-сервер:
Смотрим сетевые настройки
Для установки и изменения параметров сетевого интерфейса при помощи PowerShell 3.0 и выше используются командлеты New-NetIPAddress и Set-NetIPAddress.
Причем New-NetIPAddress позволяет задавать несколько IP для одного интерфейса. Вместо InterfaceAlias можно использовать индекс InterfaceIndex, который легко узнать в выводе Get-NetIPInterface.
На смену команде route пришел набор командлетов, очень простых и понятных в использовании.
Таблица маршрутизации, полученная при помощи route и Get-NetRoute
Аналогом ping служат два командлета Test-Connection и Test-NetConnection (сокращенно tnc). Первый очень простой и напоминает обычный ping, второй позволяет проверить доступность определенного порта или системы с разных ПК. Например, посмотрим, на каких ПК в группе включен RDP, и проверим подключение к example.org с двух систем:
Но иногда вместо одной команды придется запомнить несколько командлетов. Так, состояние сетевых интерфейсов традиционно можно узнать при помощи ipconfig. До Win2012/8, чтобы сделать то же самое при помощи PowerShell, приходилось обращаться непосредственно к WMI. Например, нам нужны МАС- и IP-адреса:
Переменная patch
В качестве команд Win может принимать любой файл с расширением exe, bat, cmd, com, js, msc и vbs, который расположен в текущем каталоге или прописан в переменной PATH. Просмотреть значение PATH очень просто. Для этого вводим «echo %PATH%» или используем команду set (set > filename.txt). В консоли PowerShell — «echo $Env:PATH» или «Get-ChildItem Env:». Чтобы изменить, просто дописываем нужный каталог:
или используем GUI (My Computer -> Свойства системы -> Дополнительно -> Переменные среды -> Path). Средствами PowerShell изменить значение можно, установив SetEnvironmentVariable:
И только в PowerShell 3.0 появился простой аналог ipconfig, точнее, несколько. Например, командлет Get-NetIPAddress выдает подробную информацию об интерфейсах, а Get-NetIPConfiguration (алиас gip) позволяет получить информацию о сетевых настройках: IP интерфейса, шлюза и DNS. Добавив дополнительные параметры, например –Detailed, получим больше данных.
Профильтровав их вывод, мы можем заменить «ARP –a» выводящую таблицу МАС-адресов и GETMAC — отображающую MAC-адреса сетевых адаптеров локального или удаленного компьютера. Есть уже и готовые скрипты. Например, PingMultipleServerWithTraceroute.ps1 (goo.gl/0iLeyg) позволяет проверить подключение к нескольким серверам и запустить аналог tracert к неответившим системам.
Управление WFAS
Настройка брандмауэра Windows в режиме повышенной безопасности WFAS (Windows Firewall with Advanced Security) традиционно производится при помощи netsh advfirewall, появившейся в ОС начиная с Win2k8/Vista и практически не изменившейся с тех пор. Контекст advfirewall позволяет использовать семь команд (export, import, dump, reset, set, show и help) и четыре субконтекста (consec, firewall, mainmode и monitor). Просмотреть подробности можно, использовав ключ help или ‘/?’, да и в Сети доступно достаточное количество примеров. Например, команда set позволяет сконфигурировать профили, show — просмотреть состояние. Смотрим настройки по умолчанию, активируем профили и для Domain действием по умолчанию установим блокировку.
Официальная информация гласит, что в следующих релизах netsh может пропасть, а использовать следует командлеты PowerShell, позволяющие к тому же контролировать еще больше функций. Командлеты NetSecurity доступны только в PS 3.0, для их использования в Win2012/8 их необходимо импортировать Import-Module NetSecurity. При помощи Get-Command firewall получим список из 27 командлетов (полный список командлетов модуля — goo.gl/Aj9Mg4). Ситуацию упрощает то, что названия командлетов пересекаются с командами netsh.
Настройкой Windows Firewall можно управлять при помощи почти 30 командлетов
Теперь тот же пример, но средствами PS:
Как видим, командлеты выглядят даже проще. Вместо параметра All можно указать на конкретный профиль: –Profile Domain,Public,Private.
Смотрим профили Windows Firewall
Доступны и прочие функции. Например, можем исключить Ethernet-интерфейс из профиля Public.
Чтобы вернуть настройки в исходное состояние, достаточно вместо Ethernet установить NotConfigured. Дополнительные параметры командлета Set-NetFirewallProfile позволяют настроить журналирование, добавить IP, порт, протокол и многое другое. Все манипуляции с правилами производятся при помощи семи командлетов: New|Set|Copy|Enable|Disable|Remove|Rename-NetFirewallRule. Чтобы просмотреть установленные правила, используем командлет Get-NetFirewallRule, при помощи фильтров мы можем легко отобрать нужные. Например, блокирующие и все, что касается IE:
Создадим правило, блокирующее исходящие соединения для IE в двух профилях.
Теперь к правилу можем добавить протокол, порт и IP удаленной и локальной системы.
При создании или изменении мы можем группировать правила, используя параметр –Group, и впоследствии управлять не одним правилом, а всеми входящими в группу, при помощи -DisplayGroup. Чтобы отключить правило, воспользуемся
Заключение
Вполне очевидно, что в будущем админу все больше и больше придется выполнять настройки не при помощи GUI, а используя средства командной строки. Это быстрее, позволяет автоматизировать практически все задачи и легко управляться с большим количеством серверов.
Список параметров командлета можно узнать при помощи Show-Command, например Show-Command Get-NetFirewallRule.