Запуск приложения на удаленном сервере без дополнительного ПО

Друзья привет. Есть необходимость запустить консольное приложение на удаленном сервере на Windows 10. Из сложностей: не должно быть доп ПО(psexec и тп.). Есть ли возможность сделать это средствами, допустим, powershell? Мне удалось подключиться к удаленному серверу и взять с него инфу по запущенным процессам через powershell кодом ниже, значит подключиться можно,но запустить приложение я так и не смог(ошибка доступа).

Invoke-Command -ComputerName serverName -ScriptBlock {Get-Process}

Или может это можно сделать кодом c# какими нибудь секретными библиотечками?


Ответы (1 шт):

Автор решения: Hardoman

В первую очередь Вам необходимо убедиться, что WSMan and WinRM разрешены на удаленной машине:

Enable-PSRemoting –force
# Set start mode to automatic
Set-Service WinRM -StartMode Automatic
# Verify start mode and state - it should be running
Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}
# Trust all hosts
Set-Item WSMan:localhost\client\trustedhosts -value *
# Verify trusted hosts configuration
Get-Item WSMan:\localhost\Client\TrustedHosts

Проще всего запустить программу на удаленном хосте, используя сессии.

$s = New-PSSession -computername NAME -credential LOGIN
    Invoke-Command -session $s -scriptblock {C:\folder\app.exe}
Remove-PSSession $s

Другой способ:

invoke-command -ComputerName Computer1 -ScriptBlock { param ($myarg) & 'C:\Program Files\program.exe' -something $myarg } -ArgumentList "myArgValue"

ArgumentList - это массив аргументов, передаваемых для запуска (если они требуются).

→ Ссылка