Удалённо отключать и включать программу используем SSH
И так допустим вам удалённо нужно управлять работой программы
В данном примере рассмотрим работу с OpenSSH-Win64-v9.5.0.0.msi
На клиенте установили и запустили генерацию ключей ssh-keygen
Ключи по умолчанию пишутся сюда C:\Users\user\.ssh\id_ed25519.pub
Необходимо создать файл на сервере C:\Users\user\.ssh\authorized_keys и перенести в него ключ
Настройте сервер C:\ProgramData\ssh\sshd_config
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
Subsystem sftp sftp-server.exe
Перезагрузите сервер Get-Service sshd
Stop-Service sshd
Start-Service sshd
Найдём необходимую программу на сервере schtasks
Подключимся к серверу из клиента
ssh user@192.168.0.246 -i "C:\Users\user\.ssh\id_ed25519"
Запустим и отключим необходимую программу
schtasks /run /tn LaitisSkipUAC
schtasks /end /tn LaitisSkipUAC
Пробросим 22 порт для удалённого управления сервером
Следим за событиями на сервере eventvwr.msc
8 комментариев
Чтобы активировать пользователя "Администратор" в PowerShell
Enable-LocalUser -Name "Администратор"
Чтобы изменить командную оболочку (Shell) по умолчанию в OpenSSH с cmd.exe на PowerShell
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String
Введите пароль для Администратор:
Попытка запуска cmd от имени пользователя "LP85D\Администратор" ...
Введите пароль для Администратор:
Попытка запуска powershell от имени пользователя "LP85D\Администратор" ...
Чтобы решить проблему с ошибкой "kex_exchange_identification: read: Connection reset" в OpenSSH, вы можете попробовать следующие решения:
Перезапустите службу OpenSSH: Попробуйте выполнить команду Restart-Service sshd в командной оболочке PowerShell с правами администратора. Это может помочь восстановить соединение и исправить ошибку.
Проверьте настройки брандмауэра: Убедитесь, что порт, используемый OpenSSH (по умолчанию порт 22), разрешен в настройках брандмауэра на вашем компьютере. Если брандмауэр блокирует соединение, это может вызывать ошибку.
Проверьте настройки сети: Убедитесь, что ваш компьютер имеет доступ к сети и может связываться с удаленным сервером. Проверьте подключение к сети, убедитесь, что нет проблем с маршрутизацией или сетевыми настройками.
Проверьте целостность компонентов OpenSSH: Если проблема продолжается, попробуйте переустановить или восстановить компоненты OpenSSH на вашем компьютере. Вы можете использовать инструменты установки и удаления программ в Windows или другие методы для этого.
Start-Process powershell -Verb RunAs
runas /user:Администратор powershell
whoami
$PSVersionTable.PSVersion
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
На
C:\Program Files\PowerShell\7\pwsh.exe
Set-PSReadlineOption -HistorySaveStyle SaveNothing; $profilePath = (Split-Path -Parent -Path $PROFILE); if (!(Test-Path -Path $profilePath)) { New-Item -ItemType Directory -Path $profilePath | Out-Null }; if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force | Out-Null }; Add-Content -Path $PROFILE -Value "`n`n# Set default PowerShell version`nSet-Alias -Name PowerShell -Value 'C:\Program Files\PowerShell\7\pwsh.exe' -Option AllScope`n"
Запустим PowerShell
Проверим $PSVersionTable.PSVersion
Узнаем имя клиента hostname
На сервере добавим Set-Item WSMan:\localhost\Client\TrustedHosts -Value "имя_удаленной_машины" -Force
С клиента узнаем имя сервера запросы для разных версий PowerShell
Get-WmiObject Win32_ComputerSystem | Select-Object Name
Get-CimInstance Win32_ComputerSystem | Select-Object Name
Соединимся с клиентской машины
Enter-PSSession -ComputerName "WIN-NAME" -Credential "Name"
Get-Service winrm
Get-PSSessionConfiguration
Проверим подключение на клиенте
Test-WSMan -ComputerName lp85d
Установим сеанс
Enter-PSSession -ComputerName lp85d