У нас есть несколько серверов Windows 2003, на которых мы запускаем утилиты, psexec. Недавно на одном из них перестало работать. Для тех, кто не знаком с этим, вот как обычно работает этот процесс:
Псексек:
\\target\admin$
(Обычно C: \ WINDOWS)Я проверил, что на пораженном сервере все происходит, за исключением того, что было на шаге 3. Независимо от того, какую программу я прошу запустить psexec (cmd, ping, ipconfig и т. Д.), Она выдает сообщение "команда вышел на цель с кодом ошибки 128. "
Это было несколько раз замечено на форумах sysinternals:
Некоторые утверждают, что вызванная команда возвращает ошибку, но я думаю, что это всего лишь артефакт того, как она пытается получить код выхода. net helpmsg 128
дает «Нет дочерних процессов, которых нужно ждать.», поэтому я думаю, что он не может дождаться дочернего процесса, потому что его нет.
Я проверил, что служба действительно запускается правильно, что разрешения для запрошенной программы идентичны между рабочими серверами и неработающим сервером, и что psexec работает, если работает с затронутого сервера как локальный (например, с psexec cmd
вместо того psexec \\target cmd
).
Единственное подтвержденное решение, которое я видел, - это перезагрузка машины. Хотя это производственный сервер, перезагрузка в течение дня возможна, поскольку его основная рабочая нагрузка - это пакетная обработка в ночное время. Однако я не решаюсь перезагружаться, так как мне бы очень хотелось определить причину проблемы с psexec, а прямо сейчас процесс psexec используется в целях разработки, поэтому задержка перезагрузки не влияет на производство.