Столкнулся с неожиданными трудностями при удаленных подключениях к Windows по WMI. Постоянно получал "ОШИБКА. Описание: Отказано в доступе. Код ошибки: 80070005" При этом все учетные данные, настройки firewall и т.д. были на 100% верны. Где-то сразу все работало, как надо, а где-то ни в какую не получалось удаленно подключиться к Windows 10 по WMI.
Введение
WMI - Windows Management Instrumentation, инструмент для управления Windows. В том числе поддерживает удаленную работу. С его помощью, к примеру, удобно мониторить Windows системы. Так как WMI встроен в саму систему, нет необходимости ставить что-то дополнительно. Базовые метрики можно собирать сразу же.
Для работы по WMI используется свой язык запросов WMI Query Language (WQL), который немного похож на SQL, так как является его разновидностью. Пример работы с WMI можно посмотреть прямо в командной строке Windows:
wmic computersystem get totalphysicalmemory
Вы получите информацию в байтах о доступной оперативной памяти компьютера.
Ошибка WMI 80070005 Отказано в доступе
Запросы по WMI можно делать по сети. Выглядит это примерно следующим образом:
wmic /user:"win10-kvm\zerox" /node:"10.20.1.53" computersystem get totalphysicalmemory
win10-kvm\zerox | учетная запись на целевом компьютере в формате домен или имя компьютера и сам пользователь |
10.20.1.53 | адрес компьютера в виде ip или имени |
Очень часто вы можете получить вот такую ошибку при запросе WMI по сети. Далее рассказываю, как ее продиагностировать и исправить.
Разрешение удаленных вызовов по WMI
Первым делом вам надо локально убедиться, что WMI в принципе работает. Выше я уже показал пример с оперативной памятью. Так что прежде чем настраивать удаленные запросы, проверьте, работает ли все локально.
Далее необходимо проверить, какой тип сетевого соединения у вас установлен. Если общедоступная сеть, то WMI удаленно работать не будет, даже если вы настроите или отключите фаервол.
Вам необходимо сменить тип сети на Частная. Для этого идем в Параметры -> Сеть и Интернет -> Состояние. Открываем свойства сетевого соединения.
Выбираете сетевой профиль - Частные.
Должно получиться в итоге вот так:
В разных версиях Windows 10 изменение типа сети с общедоступной на частную выглядит по-разному. Даже сейчас, проверяя статью, я в двух разных системах вижу 2 разных способа. Пункты меню в Параметрах постоянно меняются. Каждый раз как Коломбо вынужден искать новое расположение старых настроек. Ума не приложу, зачем Microsoft это делает. Вот так меняется тип сети в одной из других версий:
После того, как изменили профиль сети на частный, открывайте командную строку с правами администратора и выполните в ней команду:
winrm quickconfig
На все заданные вопросы отвечайте положительно. Если до этого тип сети не изменили, то данная команда отработает с ошибкой: Исключение брандмауэра WinRM не будет работать, поскольку одно из сетевых подключений, установленных для этого компьютера, является общим. Измените тип сетевого подключения либо на доменное, либо на частное и повторите попытку.
Что делать в этом случае, вы знаете. Если все прошло успешно, то теперь удаленный вызов WMI завершится удачно:
wmic /user:"win10-kvm\user" /node:"10.20.1.53" computersystem get totalphysicalmemory
Заключение
На этом все по удаленному запуску команд WMI и возможных ошибок в этом деле. Во время отладки имеет смысл смотреть журнал безопасности Windows. Если вдруг вы перепутаете учетную запись системы, в логе четко будет видно, что авторизация не проходит. Если же по логу видно, что авторизация верна, а WMI удаленно не отрабатывает, значит проблемы именно с ним.
В неинтерактивном режиме winrm можно настроить вот так: https://ru.stackoverflow.com/a/949971/191416
Спасибо за статью. Помогла с доступом к 10ке.
В дополнение к Вашей статье - Вариант управления компьютером на Windows из-под консоли Linux https://habr.com/ru/post/181103/
Владимир, наткнулся на твой сайт случайно, при поиске информации про CentOS,
вопрос не относится к теме, но все же задам его тебе.
Более 10 лет проработал в тех поддержке, грубо говоря эникейщиком, но теперь наконец то твердо для себя решил освоить системное администрирование.
Сейчас полно курсов, где ребята обещают сделать из тебя девопса за год, но я к этому отношусь скептически.
вопроса по сути два:
1) не поздно ли начинать в 35 лет?
2) с чего начать? с никсов или изучения сетевого оборудования?
По курсам у меня есть заметка - https://serveradmin.ru/kursy-po-it-lichnaya-rekomendacziya/
А вот еще одна на тему подхода к обучению - https://t.me/srv_admin/651
Там будут ответы на твои вопросы. Начать надо с того, что определиться, что тебе ближе и чем ты хочешь заниматься. От этого уже и плясать. А так, все возможно, если ты реально хочешь развиваться. 35 лет это еще не возраст, когда можно ставить на себе крест. Такого возраста вообще не существует. Все зависит от настроя и целеполагания.
Мне даже немного смешно читать, про 35 лет :) Это же возраст с максимальными возможностями, когда человек знает, что хочет и умеет трудиться. В этом возрасте все по плечу. Мне самому 36 и я чем только не занимаюсь. Постоянно учусь, осваиваю новое - воспитание детей, стройка, IT, блогерство и т.д.
Владимир, здравствуйте!
А командлет Enable-PSRemoting для этих же целей не подойдёт? Я у себя в доменной среде им время от времени пользуюсь, но вне домена применять не доводилось.
Даже не знаю, не слышал о нем. Надо будет проверить.
Отпишитесь потом, если не затруднит:)