Обширный список оснасток в Microsoft Management Console 3.0 предоставляет полный набор возможностей для управления Windows.
Адаптированная выдержка из книги «Microsoft Windows 7 Administrator’s Reference» (Syngress, подразделение издательства Elsevier).
Большая часть управляющих приложений компании Microsoft базируется на консоли Microsoft Management Console (MMC). Консоль MMC служит каркасом для создания консолей управления. Microsoft и многие сторонние разработчики приложений использовали эту платформу для создания своих консолей управления.
Для управления системой и приложениями в консоли MMC используются оснастки. ОС Windows 7 поставляется с большим количеством встроенных оснасток, которые можно использовать для управления системой. Их можно использовать для управления параметрами пользователей, приложениями Windows, безопасностью и многими другими жизненно важными компонентами системы.
В Windows 7 есть следующие встроенные оснастки MMC:
Добавление оснастки в консоль MMC выполняется в следующей последовательности:
Консоль MMC может быть очень гибкой. Есть возможность добавить любую нужную оснастку в пустую консоль MMC. Можно также изменить один из ранее установленных инструментов управления, которые используют MMC.
Джордж Оркиллес начал свою карьеру в качестве сетевого администратора небольшой частной школы, которую сам же и посещал. В настоящее время он является аналитиком центра безопасности и недавно получил степень доктора наук в области управления информационными системами в Международном университете штата Флорида.
Добрый день уважаемые читатели и подписчики блога, сегодня мы с вами поговорим на тему как открыть msc windows оснастки через командную строку, для чего это может быть вам нужно и как это поможет в повседневной практике системного администратора. Поверьте полученные знания в этой статье, в будущем смогут вам сэкономить огромное количество времени и нервных клеток, не говоря уже о возможности блеснуть задротскими знаниями перед вашими коллегами, просто если вы активно используете linux системы и знаете основные команды в консоли, то вам будет интересны и эти. Всегда по возможности стремитесь изучать по мимо GUI интерфейсов, еще и альтернативные методы настройки, так как при настройке Windows Server, все чаще выбирают режим core с минималистическим интерфейсом.
И так msc в Windows расшифровывается как Microsoft System Console, еще проще это окна или как их еще называют оснастки, для управления теми или иными функциями операционной системы. Ранее я вас уже знакомил с методом создания удобной оснастки mmc , в которой мы добавляли все, что нужно системному администратору для повседневного администрирования.
И вы наверно спросите, а при чем тут командная строка и все такое, а вот при чем. Представим себе ситуацию, у вас в организации существует домен Active Directory, рядовые пользователи не имеют прав локального администратора на своих рабочих станциях, все идет и работает как часы, случается ситуация, что например вам нужно у пользователя поменять какие либо настройки, и сделать нужно сейчас, так что искать эти настройки в групповой политике нет времени. Что делать заходить под собой не вариант, так как нужно произвести изменения в другом профиле пользователя, и как открыть например оснастку Управление компьютером или Система.
Во тут нам и поможет знание названия msc windows оснасток и командная строка. Все что вам нужно это открыть командную строку от имени администратора и ввести нужное название msc оснастки. Ниже представлен список. Как видите открыв командную строку cmd.exe я для примера ввел значение открывающее панель управления с правами администратора системы.
Давайте рассмотрим как запускаются Административные оснастки Windows из командной строки cmd.exe
Как видите msc windows оснастки очень полезные инструменты системного администрирования. Мне даже некоторые оснастки быстрее открыть чем щелкать мышкой по куче окон, особенно если сервер или компьютер тормозит или нет мышки. Да и в любом случае знать такие вещи всегда полезно. Большая часть всего, что мы используем хранится в c:\Windows\System32. Если вы пройдете в эту папку то сможете обнаружить очень много интересного.
nbtstat -a pc
- имя пользователя работающего за удаленной машиной pc
net localgroup group user /add
- Добавить в группу group, пользователя user
net localgroup
group user
/delete
- Удалить пользователя из группы
net send pc ""текст "
" - отправить сообщение пользователю компьютера pc
net sessions
- список пользователей
net session /delete
- закрывает все сетевые сессии
net use l: \\имя компа\папка\
- подключить сетевым диском l: папку на удаленном компьютере
net user имя /active:no
- заблокировать пользователя
net user имя /active:yes
- разблокировать пользователя
net user имя /domain
- информация о пользователе домена
net user Имя /add
- добавить пользователя
net user Имя /delete
- удалить пользователя
netstat -a
- список всех подключений к компьютеру
reg add
- Добавить параметр в реестр
reg compare
- Сравнивать части реестра.
reg copy
- Копирует из одного раздела в другой
reg delete
- Удаляет указанный параметр или раздел
reg export
- Экспортировать часть реестра
reg import
- Соответственно импортировать часть реестра
reg load
- Загружает выбранную часть реестра
reg query
- Выводит значения заданной ветки реестра
reg restore
- Восстанавливает выбранную часть реестра из файла
reg save
- Сохраняет выбранную часть реестра
reg unload
- Выгружает выбранную часть реестра
shutdown
- выключение компьютера, можно удаленно выключить другой.
SystemInfo /s machine
- покажет много полезного об удаленной машине
Если у вас есть чем дополнить список msc канонических имен, то пишите пожалуйста в комментариях я их допишу.
При управлении Windows сервером, да и не только сервером, рабочей win-машиной тоже, невольно замечаешь что рука устает возить мышь и как-то лень до нее тянуться. Возить мышь хоть как придется, если использовать оснастки Windows, но сократить время на их запуск можно без проблем! Нажимаем клавиши
Название оснастки | Имя оснастки |
Active Directory Пользователи и компьютеры (AD Users and Computers) | dsa.msc |
Диспетчер служб терминалов (Terminal Services Manager) | tsadmin.msc |
Управление компьютером (Computer Management) | compmgmt.msc |
Консоль управления GPO (Group Policy Management Console) | gpmc.msc |
Редактор объектов локальной политики (Group Policy Object Editor) | gpedit.msc |
Результирующая политика (результат применения политик) | rsop.msc |
Локальные параметры безопасности | secpol.msc |
Настройка терминального сервера (TS Configuration) | tscc.msc |
Маршрутизация и удаленый доступ (Routing and Remote Access) | rrasmgmt.msc | Службы (Services) |
Общие папки (Shared Folders) | fsmgmt.msc |
Диспетчер устройств (Device Manager) | devmgmt.msc |
Локальные пользователи и группы (Local users and Groups) | lusrmgr.msc |
Локальная политика безопасности(Local Security Settings) | secpol.msc |
Управление дисками (Disk Management) | diskmgmt.msc |
Active Directory Домены и Доверие(AD Domains and Trusts) | domain.msc |
Active Directory Сайты и Доверие (AD Sites and Trusts) | dssite.msc |
Политика безопасности домена (Domain Security Settings) | dompol.msc |
Политика безопасности контроллера домена (DC Security Settings) | dсpol.msc |
Распределенная файловая система DFS (Distributed File System) | dfsgui.msc |
Аналогично оснасткам, из командной строки можно запускать элементы панели управления и различные окна настроек системы. Например: настройки сети, пользователей или, что очень актуально на текущий момент - окно настройки даты и времени.
Название элемента панели управления | Команда |
Свойства системы | sysdm.cpl |
Установка и удаление программ | appwiz.cpl |
Учетные записи пользователей | nusrmgr.cpl |
Дата и время | timedate.cpl |
Свойства экрана | desk.cpl |
Брэндмауэр Windows | firewall.cpl |
Мастер установки оборудования | hdwwiz.cpl |
Свойства Интернет | inetcpl.cpl |
Специальные возможности | access.cpl |
Свойства мыши | control Main.cpl |
Свойства клавиатуры | control Main.cpl,@1 |
Язык и региональные возможности | intl.cpl |
Игровые устройства | joy.cpl |
Свойства: Звуки и аудиоустройства | mmsys.cpl |
Мастер настройки сети | netsetup.cpl |
Управление электропитанием | powercfg.cpl |
Центр обеспечения безопасности | wscui.cpl |
Автоматическое обновление | wuaucpl.cpl |
Сетевые подключения | ncpa.cpl |
Запускать из окружения пользователя, от имени администратора можно большинство из вышеперечисленных элементов панели управления, но не все. Панель "Сетевые подключения" и другие использующие explorer для отображения своего функционала не запускаются от имени другого пользователя. В одной из следующих заметок рассмотрим настройку системы из командной строки 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.
Сразу после установки операционная система получает имя, сгенерированное случайным образом. Чтобы переименовать систему и подключить ее к домену, используется утилита netdom:
> netdom renamecomputer Win01 /newname:SRV01 > netdom join SRV01 /Domain:example.org /OU:ou=ouname,dc=example,dc=org /UserD:DomainAdmin /PasswordD:password
Те же операции при помощи PowerShell выглядят даже понятней.
PS> Rename-Computer –NewName SRV01 PS> Add-Computer -domainname example.org -OUPath "OU=ouname=example,DC=org"
После установки системы или компонента, возможно, потребуется настройка режима запуска сервиса. В консоли для этого есть две команды:
> Sc config winrm start= auto > Net start winrm
А вот командлетов для управления запуском сервисов несколько: Get-Service, Start-Service, Set-Service, Stop-Service, Resume-Service. Их назначение говорит само за себя.
PS> Set-Service -name winrm -status Running -StartupType Automatic
Запоминать команды админы Win не очень любят, в системе можно найти удобную оболочку для большинства консольных команд Sconfig.cmd. Изначально она разрабатывалась для Server Core, но в Win2012R2 доступна и в режиме полной установки сервера. Sconfig не требует знания всех ключей и позволяет, перемещаясь по 15 пунктам, быстро произвести основные установки или выполнить некоторые команды: добавить сервер в домен или рабочую группу, сменить имя компьютера, добавить локального администратора, настроить удаленное управление через WinRM и удаленный рабочий стол, настроить сеть, Windows Update, время и дату, перезагрузить и выключить компьютер. Нужно помнить, что скрипт использует стандартные консольные утилиты и если они пропадут в следующем релизе, то, скорее всего, не будет и Sconfig.
А вот с монтированием сетевых дисков не все так просто. Традиционно эта операция выполняется при помощи net use:
> net use E: \\SRV01\users /Persistent:Yes
Его аналогом считается командлет New-PSDrive (от PowerShell Drive), но здесь есть проблема, которая многим неочевидна и порождает кучу вопросов.
PS> New-PSDrive –Name E –PSProvider FileSystem –Root \\SRV01\users
При помощи New-PSDrive создается так называемый диск PowerShell, который доступен только в текущем сеансе консоли и только в PowerShell. То есть при помощи проводника, WMI, средствами.NET Framework, net use подключиться к такому диску нельзя. Это неочевидно, но в документации это явно прописано. Просто ее мало кто читает.
Чтобы постоянно использовать диск, необходимо экспортировать сеанс, в котором добавлен диск, или сохранить команду New-PSDrive в профиле PowerShell, или изначально использовать командлет New-Object:
PS> $net = New-Object -ComObject WScript.Network PS> $net.MapNetworkDrive("E:", "\\SRV01\users")
И только в PowerShell 4.0 появился параметр –Persist, позволяющий монтировать PS-диски постоянно.
PS> New-PSDrive –Name E –PSProvider FileSystem –Root \\SRV01\users –Persist
Для работы с дисками и разделами консоль Windows предлагает две утилиты: diskpart и fsutil. Они не очень удобны и информативны, а поэтому малопопулярны и их часто заменяют альтернативными разработками. Получим статистику по разделу.
> fsutil fsinfo statistics C:
Команда «Get-Command disk » выдаст несколько командлетов, но в нашем примере они не очень помогают, и, чтобы получить информацию о свободном месте, по-прежнему приходится обращаться к WMI:
PS> Get-WmiObject Win32_LogicalDisk -ComputerName SRV01 -Filter "DeviceID="C:"" | Select-Object Size,FreeSpace
Доступ к файлам в Win традиционно регулируется двумя утилитами - takeown и icacls (есть еще и cacls, но она признана устаревшей), вполне справляющимися со своими обязанностями. Например, чтобы сделать текущую учетную запись (должна входить в группу админов) владельцем каталога, достаточно ввести:
> takeown /f c:\temp пуе
Утилита icacls позволяет управлять списками контроля доступа. Для примера, сохраним ACL в файл и восстановим его:
> icacls c:\temp\* /save acl.txt /T > icacls c:\temp\ /restore acl.txt
Та же операция при помощи PowerShell выглядит проще:
PS> Get-Acl c:\temp | Set-Acl -Path c:\temp
Одна из самых больших проблем, с которыми сталкиваешься при работе с моделью BYOD, - отсутствие управления устройствами пользователей. В Win2012R2 этим заправляет Device Registration Service (DRS), при регистрации на устройство устанавливается сертификат, а в AD создается новый объект устройства.
Этот объект устанавливает связь между пользователем и устройством, создавая нечто вроде двухфакторной аутентификации. Пользователи получают доступ к корпоративным ресурсам, которые были недоступны, когда они работали за пределами доменной сети. Для работы потребуется роль Active Directory Federation Services (AD FS) и собственно служба DRS (устанавливается при помощи командлета Install-AdfsFarm). Теперь инициализируем службу и приступаем к регистрации устройств пользователей.
PS> Initialize-ADDeviceRegistration -ServiceAccountName example\adfsfarm PS> Enable-AdfsDeviceRegistration
В консоли AD FS Management переходим к Authentication Policies, выбираем Edit Global Primary Authentication и активируем Enable Device Authentication. Теперь, используя командлет Get-AdfsDeviceRegistration, можем просматривать и подтверждать устройства ().
Комплект консольных сетевых утилит достаточно хорошо известен администраторам, ведь их приходится использовать довольно часто, как при установке, так и для диагностики. Настраивают сетевой интерфейс при помощи netsh interface. Для примера просмотрим список и для одного из доступных установим IP и DNS-сервер:
> netsh interface ipv4 show interfaces
> netsh interface ipv4 set address name="1" source=static address=192.168.1.10 mask=255.255.255.0 gateway=192.168.1.1.
> netsh interface ipv4 add dnsserver name="Local" address=8.8.8.8 index=1
Для установки и изменения параметров сетевого интерфейса при помощи PowerShell 3.0 и выше используются командлеты New-NetIPAddress и Set-NetIPAddress.
PS> Get-NetIPInterface PS> Set-NetIPAddress –InterfaceAlias Ethernet –IPv4Address 192.168.1.10 –PrefixLength 24 –DefaultGateway 192.168.1.1 PS> Set-DNSClientServerAddress –InterfaceAlias Ethernet -ServerAddresses "192.168.1.10","8.8.8.8"
Причем New-NetIPAddress позволяет задавать несколько IP для одного интерфейса. Вместо InterfaceAlias можно использовать индекс InterfaceIndex, который легко узнать в выводе Get-NetIPInterface.
На смену команде route пришел набор командлетов, очень простых и понятных в использовании.
PS> Get-NetRoute
PS> New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "10.10.10.1" -InterfaceAlias Ethernet
Аналогом ping служат два командлета Test-Connection и Test-NetConnection (сокращенно tnc). Первый очень простой и напоминает обычный ping, второй позволяет проверить доступность определенного порта или системы с разных ПК. Например, посмотрим, на каких ПК в группе включен RDP, и проверим подключение к example.org с двух систем:
PS> Test-NetConnection -ComputerName example.org -source localhost, SRV02 PS> (Get-ADComputer -LDAPFilter "(name=office*)").DNSHostName | Test-NetConnection -Port 3389
Но иногда вместо одной команды придется запомнить несколько командлетов. Так, состояние сетевых интерфейсов традиционно можно узнать при помощи ipconfig. До Win2012/8, чтобы сделать то же самое при помощи PowerShell, приходилось обращаться непосредственно к WMI. Например, нам нужны МАС- и IP-адреса:
PS> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE | Select MACAddress,IPAddress
В качестве команд Win может принимать любой файл с расширением exe, bat, cmd, com, js, msc и vbs, который расположен в текущем каталоге или прописан в переменной PATH. Просмотреть значение PATH очень просто. Для этого вводим «echo %PATH%» или используем команду set (set > filename.txt). В консоли PowerShell - «echo $Env:PATH» или «Get-ChildItem Env:». Чтобы изменить, просто дописываем нужный каталог:
> set PATH=%PATH%;C:\example
или используем GUI (My Computer -> Свойства системы -> Дополнительно -> Переменные среды -> Path). Средствами PowerShell изменить значение можно, установив SetEnvironmentVariable:
PS> ::SetEnvironmentVariable("path","$env:Path;C:\example","Machine")
И только в PowerShell 3.0 появился простой аналог ipconfig, точнее, несколько. Например, командлет Get-NetIPAddress выдает подробную информацию об интерфейсах, а Get-NetIPConfiguration (алиас gip) позволяет получить информацию о сетевых настройках: IP интерфейса, шлюза и DNS. Добавив дополнительные параметры, например –Detailed, получим больше данных.
Профильтровав их вывод, мы можем заменить «ARP –a» выводящую таблицу МАС-адресов и GETMAC - отображающую MAC-адреса сетевых адаптеров локального или удаленного компьютера. Есть уже и готовые скрипты. Например, PingMultiple ServerWith Traceroute.ps1 (goo.gl/0iLeyg) позволяет проверить подключение к нескольким серверам и запустить аналог tracert к неответившим системам.
Настройка брандмауэра 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 advfirewall show allprofiles > netsh advfirewall set allprofiles state on > netsh advfirewall set domainprofile firewallpolicy blockinbound
Официальная информация гласит , что в следующих релизах netsh может пропасть, а использовать следует командлеты PowerShell, позволяющие к тому же контролировать еще больше функций. Командлеты NetSecurity доступны только в PS 3.0, для их использования в Win2012/8 их необходимо импортировать Import-Module NetSecurity. При помощи Get-Command firewall получим список из 27 командлетов (полный список командлетов модуля - goo.gl/Aj9Mg4). Ситуацию упрощает то, что названия командлетов пересекаются с командами netsh.
Теперь тот же пример, но средствами PS:
PS> Get-NetFirewallProfile PS> Set-NetFirewallProfile -All -Enabled True PS> Set-NetFirewallProfile –Name Domain –DefaultInboundAction Block
Как видим, командлеты выглядят даже проще. Вместо параметра All можно указать на конкретный профиль: –Profile Domain,Public,Private.
Доступны и прочие функции. Например, можем исключить Ethernet-интерфейс из профиля Public.
PS> Set-NetFirewallProfile -name Public -DisabledInterfaceAliases Ethernet
Чтобы вернуть настройки в исходное состояние, достаточно вместо Ethernet установить NotConfigured. Дополнительные параметры командлета Set-NetFirewallProfile позволяют настроить журналирование, добавить IP, порт, протокол и многое другое. Все манипуляции с правилами производятся при помощи семи командлетов: New|Set|Copy|Enable|Disable|Remove|Rename-NetFirewallRule. Чтобы просмотреть установленные правила, используем командлет Get-NetFirewallRule, при помощи фильтров мы можем легко отобрать нужные. Например, блокирующие и все, что касается IE:
PS> Get-NetFirewallRule -Enabled true -Action block PS> Get-NetFirewallRule -DisplayName “*IE*”
Создадим правило, блокирующее исходящие соединения для IE в двух профилях.
PS> New-NetFirewallRule -Program “C:\Program Files\Internet Explorer\iexplore.exe” -Action Block -Profile Domain, Private -DisplayName “Block IE” -Description “Block IE” -Direction Outbound
Теперь к правилу можем добавить протокол, порт и IP удаленной и локальной системы.
PS> Set-NetFirewallRule -DisplayName “Block IE” -Protocol TCP -RemotePort 80 -RemoteAddress “10.10.10.1-10.10.10.10” -LocalAddress “192.168.1.10”
При создании или изменении мы можем группировать правила, используя параметр –Group, и впоследствии управлять не одним правилом, а всеми входящими в группу, при помощи -DisplayGroup. Чтобы отключить правило, воспользуемся
PS> Disable-NetFirewallRule -DisplayName “Block IE”
Вполне очевидно, что в будущем админу все больше и больше придется выполнять настройки не при помощи GUI, а используя средства командной строки. Это быстрее, позволяет автоматизировать практически все задачи и легко управляться с большим количеством серверов.
Список параметров командлета можно узнать при помощи Show-Command, например Show-Command Get-NetFirewallRule.