Если бы у меня были волосы, я бы снова стал лысым.
У меня 2 сервера.
windows01 linux01
На машине windows01 у меня есть GUI приложение , которое мне нужно запускать с linux01 сервера.
Скрипт называется start.ps1 на машине windows01 выглядит так: (Он размещается там, где находится исполняемый файл как приложения, так и psexe c .exe )
if((get-process "TmaApplication" -ea SilentlyContinue) -eq $Null){
echo "TmaApplication not running, attempting to start"
& .\psexec.exe -accepteula TMA.exe /u "Default User" /c y /p 5003
}
else{
echo "Running"
}
Однако, когда я запускаю следующее с сервера linux01 , я получаю следующее: (По какой-то причине он запускается с машины linux, а не просто выполняет файл start.ps1, расположенный на windows01 машина.)
[root@linux01]# ./test.sh
TmaApplication not running, attempting to start
.\psexec.exe : The term '.\psexec.exe' is not recognized as the name of a cmdlet, function, script file, or operable pr
ogram. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Program Files (x86)\redacted\redacted\redacted 1.0\redacted Application\start.ps1:3 char:9
+ .\psexec.exe -accepteula TMA.exe /u "Default User" /c y /p 50 ...
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (.\psexec.exe:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Содержимое теста. sh файл:
#!/bin/bash
STP="redacted"
Server="redacted"
User="redacted"
Password="redacted"
TMAVersion="1.0"
PsExecSourceFile="/opt/tools/psexec.exe"
PsExecFileName="psexec.exe"
Test="test.ps1"
sshpass -p $Password ssh -o stricthostkeychecking=no $User@$Server 'powershell -InputFormat None -File "C:/Program Files (x86)/redacted/redacted/redacted '$TMAVersion'/redacted Application/'$Test'"'
Я очень новичок в это, и я вынужден работать с тем, что я копирую, а что нет. Кроме этого все работает нормально. Если я запустил start.ps1 прямо с машины windows01, щелкнув правой кнопкой мыши «запустить с помощью powershell» , он сделает именно то, что я хочу. Но мне нужно выполнить его с этой linux машины.
У меня есть полный контроль root / admin над средой linux и windows, когда дело касается уровня ОС. Но я предпочитаю ограничивать сторонние приложения. Боюсь, что любой не-открытый исходный код - это не вариант продвижения вперед, если он не выпущен напрямую от Microsoft или RedHat