У 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 Установить рабочий каталог процесса (относительно удаленного компьютера).
Дайте мне знать, -Матью