Выполнение удаленных команд на целевой машине через WinRM в среде рабочей группы

Выполнение удаленных команд на целевой машине через WinRM в среде рабочей группы

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

Машины были предварительно настроены с помощью Enable-PSremotingи т. д. для поддержки удаленного управления Windows, чтобы мы могли выполнить команду на целевой машине следующим образом.

Команды работают нормально, за исключением того, что если я хочу запустить некоторые специальные команды, такие как start-process, они не выполняются как локальная машина.

Например, если я запускаю на локальной машине:

> Start-Process -Filepath "cmd.exe"

он запускает cmd процесс. Если я делаю это удаленно, вот так

Invoke-Command -Computername "my-target-ip" -ScriptBlock {Start-Process -Filepath "cmd.exe"} -Credential get-credential

Окно cmd не выполняется на целевой машине.

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

Большое спасибо.

решение1

Invoke-Commandпредназначен для неинтерактивных команд. Если я правильно помню, вы не получите интерактивного приглашения, используя его, и, конечно, если вы хотите запустить программу на удаленном компьютере, она должна существовать там до того, как вы ее запустите.

Если вы хотите использовать интерактивный сеанс на удаленном компьютере, вам следует использоватьEnter-PSSessionвместо:

Enter-PSSession -Computer "remote" -Credential (Get-Credential)

В этом сеансе вы сможете запустить командную строку cmd, если вам это действительно нужно.

Если вам необходимо выполнить ряд связанных команд, которые не являются интерактивными, этот New-PSSessionкомандлет может быть интересен вместе с Invoke-Command -Session $session.

Связанный контент