У psExec нет пути

У меня совершенно новый сервер Windows 2008 (64-разрядный), и сценарии удаленного развертывания, использующие nant и psExec, ведут себя не так, как на старых серверах.

Это работает: psExec \\newserver.myco.com cmd
Это успешно запускает Нант: psexec \\newserver.myco.com "C:\Program Files (x86)\Nant\Nant.exe"
Хорошо, он ничего не делает с nant, но показывает, что nant.exe действительно работает.
Но это не работает
psexec \\newserver.myco.com Nant или же
psexec \\newserver.myco.com Nant.exe или же
psexec \\newserver.myco.com "Nant.exe"

Я получил:

PsExec could not start Nant.exe on newserver.myco.com :  
The system cannot find the file specified.

это отлично работает на других серверах, которые работают под управлением Server 2003, также 64-битных.

Я могу убедиться, что Nant находится на пути к newServer:

C:\>path  
PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;"C:\Program Files (x86)\nant" 

И если я наберу "nant" в командном окне на этой машине, я получу вывод nant. Путь и NANT присутствует и правильный, даже если я вхожу через psexec cmd,

Как дела с Psexec в 2008 году?

3 ответа

Решение

Если посмотреть на Process Monitor, то получится искаженный путь к файлу, поэтому переменная пути будет испорчена. Удалите двойные кавычки из "C:\Program Files(x86)\nant", если вы посмотрите на один результат, который показывает, что кавычки встраиваются непосредственно в путь к файлу.

Вам не нужны двойные кавычки в переменной PATH, это точки с запятой, которые обозначают места, а не пробелы.

Я не знаю, нужно ли добавлять обратную косую черту (C:\Program Files(x86)\nant\) или нет, попробуйте оба варианта.

Я так люблю sysinternals

Спасибо Мэтью.

Ни я не работал, ни указание рабочего каталога. Помните, что исполняемый файл попадает на удаленную машину и устанавливает сервис! Он просто не может найти путь.

Но когда я думаю об этом, psexec использовал переход к пути system32, а затем они изменили его, чтобы перейти к пути windows. Хм... может он ищет себя не в том месте?

боб

Могу попробовать:

-i Запустите программу, чтобы она взаимодействовала с рабочим столом указанного сеанса в удаленной системе. Если сеанс не указан, процесс выполняется в сеансе консоли.

-w Установить рабочий каталог процесса (относительно удаленного компьютера).

Дайте мне знать, -Матью

Другие вопросы по тегам