Powershell: доступ к удаленному реестру через WMI

Как подключиться к удаленному реестру в Windows 7 и 10

Если вы находитесь в среде малого бизнеса, это может стать действительно раздражающим, если вам придется выходить на каждый компьютер, который вам нужно починить. Вместо этого, если вы можете удаленно подключиться и исправить проблемы или изменить настройки, это делает вещи намного удобнее.

Хотя это не так часто, бывают случаи, когда вам может потребоваться подключиться к другому компьютеру, чтобы изменить, удалить или добавить ключи и значения реестра. Очевидно, что вы можете удаленно подключиться к компьютеру и сделать это, но если вы читаете эту статью, вы не идете по этому пути.

В этой статье я расскажу об удаленной службе реестра в Windows, которая позволяет напрямую подключаться к кустам реестра на другом компьютере с помощью regedit. Однако для того, чтобы это работало, есть несколько предпосылок.

Powershell: доступ к удаленному реестру через WMI

У меня есть сценарий, который просто подключается к реестру удаленного компьютера через WMI и Powershell:

Для большинства наших 300 серверов это нормально, и я могу делать последующие запросы в реестре. Однако для нескольких избранных я получаю эту ошибку:

Невозможно преобразовать значение » server1rootdefault: stdregprov» для ввода «System.Management.ManagementClass». Ошибка не найдена»

Это все серверы 2008 R2. Первоначально были проблемы с неверными поставщиками WMI, и мне пришлось перекомпилировать cimWin32.mof до этой ошибки.

Работа c удаленными рабочими станциями из консоли.

Пожалуй одним из лучших иснструментов для работы с удаленными рабочими станциями являются утилиты Марка Руссиновича pstools.

PsLoggedOn — Получение сведений обо всех локально подключенных пользователях, а также всех пользователях, подключенных к общим ресурсам.

Я думаю специалисты MS расписали данные утилиты более чем подробно, поэтому копипастом заниматься не буду, просто даю ссылки — тут и тут.

Заострим внимание на следущих моментах, для работы PSExec в windows 7 (для подключения к Windows 7) необходимо добавить ключ в реестр —

И второй вариант, это руссификация удаленной консоли, какого-то единого решения я не нашел, поэтому меняю шрифт в свойствах консоли на «Lucida Concole» и перед запуском psexec меняю кодировку на 1251 — chcp 1251. Теперь работа с удаленной консолью идет с поддержкой русского языка, но сообщения локальной консоли будут крякозябрами . для этого можно поиграться между chcp 1251 и chcp 866.

Если компьютер работает в домене и Вы являетесь доменным админом, то вводить имя и пароль не нужно, а если машина работает в рабочей группе, то необходимо задать —

Разрешить запуск скриптов PowerShell

PowerShell

По умолчанию запуск скриптов PowerShell может быть запрещён.

Пытаюсь запустить скрипт, получаю ошибку:

Не удается загрузить файл. Файл не имеет цифровой подписи. Невозможно выполнить сценарий в указанной системе.

powershell

Посмотрим текущее значение политики выполнения скриптов PowerShell:

powershell

  • Restricted – запрещен запуск скриптов PowerShell, можно выполнять только интерактивные команды.
  • AllSigned – разрешено выполнять только скрипты с цифровой подписью от доверенного издателя.
  • RemoteSigned – можно запускать локальные PowerShell скрипты без ограничения. Можно запускать удаленные PowerShell скрипты с цифровой подписью. Нельзя запускать PS1 файлы, скачанные из Интернета. В свойствах скачанного файла можно «Разблокировать» запуск скрипта.
  • Unrestricted – разрешен запуск любых PowerShell скриптов.
  • Bypass – разрешён запуск любых PowerShell скриптов. Эта политика обычно используется для автоматического запуска PS скриптов без вывода каких-либо уведомлений и не рекомендуется для постоянного использования.
  • Default – сброс настроек выполнения скриптов на стандартные.

У меня установлена политика AllSigned, поэтому неподписанный скрипт не запустился.

Для изменения текущего значения политики запуска PowerShell скриптов используется командлет Set-ExecutionPolicy.

powershell

Как видно из скриншота, политика запуска PowerShell скриптов изменилась, но. не изменилась. Такая ошибка появляется, если политики запуска PowerShell скриптов управляются групповыми политиками, например, если компьютер в домене.

В этом случае нам поможет реестр. В разделе

powershell

Ещё можно запустить скрипт с явно указанной политикой:

Можно установить не только политику запуска PowerShell скриптов, но и зону её действия с помощью параметра Scope.


Запуск удаленного сеанса

Если у вас несколько командлетов, которые вы хотите запустить на удаленном ПК, вместо многократного ввода командлета Invoke-Command и удаленного IP-адреса, вы можете запустить удаленный сеанс. Просто введите следующий командлет и нажмите «Ввод»:

Enter-PSSession -ComputerName COMPUTER -Credential USER

Снова замените «КОМПЬЮТЕР» на имя или IP-адрес удаленного ПК и замените «USER» на имя учетной записи пользователя, которую вы хотите вызвать.

Ваше приглашение изменится, указывая на удаленный компьютер, к которому вы подключены, и вы можете выполнить любое количество командлетов PowerShell непосредственно в удаленной системе.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector