Изучение неявного удаленного взаимодействия в Windows PowerShell

Завершено

Одной из постоянных проблем в области управления Windows является несоответствие версий. Например, Windows Server 2019 и 2022 включают множество новых команд Windows PowerShell. Эти команды можно сделать доступными в Windows 10 или Windows 11 в рамках средств удаленного администрирования сервера (RSAT). Однако вы скорее всего не сможете использовать этот подход с более старыми версиями Windows.

Если вам недавно пришлось перестраивать рабочую станцию, вы должны быть знакомы с другой постоянной проблемой. Проблема заключается в том, что на отслеживание и установку средств администрирования и консоли управления (MMC) на компьютере может потребоваться огромное количество времени. Если все они совместимы с версиями Windows, только установка может занять несколько дней.

Эти проблемы приводят к тому, что администраторы не устанавливают инструменты на рабочих станциях и получают доступ к средствам непосредственно на сервере с помощью Удаленного рабочего стола. Однако это плохое решение, так как оно фактически заставляет сервер, предоставляющий услуги сотням или тысячам пользователей, одновременно выполнять роль клиента. Создание основных серверных компонентов, в которых отсутствует графический пользовательский интерфейс (GUI), было отчасти направлено на повышение производительности серверов и уменьшение количества обновлений. Однако это также означает, что они не могут запускать средства графического пользовательского интерфейса и консоли управления.

Неявное удаленное взаимодействие дает вам возможность использовать эти средства

Неявное удаленное взаимодействие переносит копию инструментов Windows PowerShell с сервера на локальный компьютер. В действительности команды вообще не копируются, а создается своего рода ярлык, называющийся прокси-функцией, для команд сервера. При выполнении команд на локальном компьютере они неявно выполняются на сервере с помощью удаленного взаимодействия. Затем результаты отправляются вам обратно. Процесс точно такой же, как если бы вы выполнили все с помощью Invoke-Command, но гораздо удобнее. Команды также выполняются быстрее, так как команды на сервере находятся рядом с функциями и данными сервера.

Использование неявного удаленного взаимодействия

Хотя неявное удаленное взаимодействие появилось в Windows PowerShell 2.0, его использование стало гораздо проще начиная с Windows PowerShell 3.0. Все, что необходимо, — создать сеанс на сервере, содержащим модуль, который вы хотите использовать. Затем с помощью параметра Import-Module и параметра –PSSession импортируется нужный модуль. Команды в этом модуле и даже его файлы справки становятся доступными в локальном сеансе Windows PowerShell.

При неявном удаленном взаимодействии можно добавить префикс в существительное импортируемых команд. Это позволяет упростить процесс, например, одновременно загружать несколько версий одной и той же команды, не вызывая конфликта имен. Например, при импорте команд Microsoft Exchange Server 2016 и Exchange Server 2019 можно добавить к ним префикс 2016 и 2019 соответственно. Это позволяет выполнять оба набора команд. В действительности каждый из них будет работать на соответствующих серверах, что позволяет выполнять оба набора (возможно, в сценарии миграции) параллельно.

Параметр Help также работает с командами, выполняемыми с помощью неявного удаленного взаимодействия. Однако файлы справки извлекаются через тот же сеанс удаленного взаимодействия, что и сами команды. Таким образом, удаленный компьютер должен иметь обновленную копию файлов справки. Это может стать проблемой на серверах, так как файлы справки на них могут использоваться редко, а последний запуск Update-Help для извлечения последних файлов справки мог быть выполнен достаточно давно.