Запуск приложения на удаленном сервере без дополнительного ПО
Друзья привет. Есть необходимость запустить консольное приложение на удаленном сервере на Windows 10. Из сложностей: не должно быть доп ПО(psexec и тп.). Есть ли возможность сделать это средствами, допустим, powershell? Мне удалось подключиться к удаленному серверу и взять с него инфу по запущенным процессам через powershell кодом ниже, значит подключиться можно,но запустить приложение я так и не смог(ошибка доступа).
Invoke-Command -ComputerName serverName -ScriptBlock {Get-Process}
Или может это можно сделать кодом c# какими нибудь секретными библиотечками?
Ответы (1 шт):
В первую очередь Вам необходимо убедиться, что 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 - это массив аргументов, передаваемых для запуска (если они требуются).