Собираюсь приладить powershell как обработчик Cgi.
Сделал вот что:
Внес в CGI.rules.txt следующую строку
File *.ps1 | Cgi {HTTP[PowerShellBin]}
В EServ.ini
PowerShellBin="C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe"
Проблема состоит в том, что powershell.exe не понимает путь к скрипту, который выдает ему acWeb и говорит:
The term 'test.ps1' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.
At line:1 char:8
+ test.ps1 <<<<
Причина в принципе ясна. Powershell понимает только четкие пути к скрипту. т.е. powershell test.ps1 его не устроит, даже если test.ps1 находится в текущей папке. Ему подавай powershell .\test.ps1 Либо полный путь... powershell D:\wwwroot\test.ps1
Вот хотелось бы это как-то исправить.
Не сработало.
Для проверки вставил в OnRequest.rules вот это:
Вот что пишет: D:\Eserv3.x\acWEB\.\notfound.html
Я в легком замешательстве...
Проверять результат преобразования файла надо после вызова http\CGI.rules
В таком варианте выводится D:\wwwroot\test.ps1
Но ошибка почему-то остается.
Вот что я подставил:
И заработало. Но это только один скрипт работать будет. Как это по человечески сделать?
И при этом учитывать, что PowerShell получит в своей командной строке два параметра — полное имя файла с путём и одно имя без пути.
Ведь если по уму, то должно быть так
Знак & не обязателен, но кавычки желательно бы иметь.
Странно. Не понимаю, зачем.
Последний вариант заработал. Но все-таки оперативное решение. Окончательным его назвать сложно. Но это уже вопрос к ac.
Спасибо за помощь. Подожду комментариев Андрея Черезова.