Вопрос или проблема
Я попытался использовать PSEXEC с Windows 7 на Windows 10 PRO (не предварительная версия).
PsExec.exe -i 1 -u myuser -p mypass \\xxx.xxx.xxx.xxx cmd
Вывод
Ошибка связи с службой PsExec на xxx.xxx.xxx.xxx
Нет процесса на другом конце канала.
У меня есть только один администраторский пользователь (myuser) на удаленной машине.
Я вижу, что служба PSEXESVC.exe создается и работает. Я остановил её, попробовал снова, результат тот же.
*Я использую ту же команду и ту же конфигурацию (файрвол отключен, LocalAccountTokenFilterPolicy установлен на 1) на XP, Win7, Win8, Win10Preview без проблем.
Я почти сдался на Psexec из-за этого… но вы можете попробовать подключиться к идентификатору сеанса 0 вместо 1. Я заметил некоторые аномалии, если (когда…) Psexec когда-либо зависает и решает не удалять себя (вероятно, связано с версией…) Он “блокируется” на идентификаторе сессии 0 на удаленном ПК, и в моей версии 1.97 меня заставляют указывать идентификатор сессии 0, чтобы снова взаимодействовать с ним (иначе придется перезагрузить удаленный ПК). Если вы запускаете Psexec из сценария, вам, вероятно, следует указать идентификатор сессии 0, чтобы избежать этой ситуации. Удачи!
Ответ или решение
Проблема, с которой вы столкнулись, связана с тем, что PsExec не может установить соединение с удаленной машиной Windows 10 из-за ошибки "No process is on the other end of the pipe". Давайте рассмотрим несколько шагов для решения этой проблемы.
-
Проверьте параметры разметки:
- Убедитесь, что на целевой машине (Windows 10) включен удаленный доступ. Для этого:
- Зайдите в "Панель управления" → "Система и безопасность" → "Система" → "Настройки удаленного доступа".
- Убедитесь, что выбран пункт "Разрешить удалённые подключения к этому компьютеру".
- Убедитесь, что на целевой машине (Windows 10) включен удаленный доступ. Для этого:
-
Проверьте настройки брандмауэра:
- Если брандмауэр отключён, попробуйте его включить, но настройте исключения для PsExec.
- Убедитесь, что разрешены входящие подключения к службе RPC (это может потребовать создания специфических правил в брандмауэре).
-
Проверьте учетные записи и разрешения:
- Убедитесь, что у пользователя
myuser
есть права администратора на удаленной машине. - Попробуйте временно отключить UAC (Контроль учетных записей) на Windows 10 для проверки, не создаёт ли он помех.
- Убедитесь, что у пользователя
-
Работа с идентификаторами сессий:
- Попробуйте выполнить команду, используя
-i 0
вместо-i 1
. Иногда PsExec может зависать на определённой сессии, и использование сессии 0 позволяет избежать этого:PsExec.exe -i 0 -u myuser -p mypass \\xxx.xxx.xxx.xxx cmd
- Попробуйте выполнить команду, используя
-
Перезапуск службы PsExec:
- Иногда служба PsExec может не правильно освободиться. Попробуйте вручную остановить службу
PSEXESVC
на удаленной машине и повторить попытку запуска.
- Иногда служба PsExec может не правильно освободиться. Попробуйте вручную остановить службу
-
Добавьте политику LocalAccountTokenFilterPolicy:
- Убедитесь, что политика
LocalAccountTokenFilterPolicy
выставлена в значение 1. Это делается через редактор локальной групповой политики или реестр:- Для редактирования реестра: откройте
regedit
и перейдите к пути:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Создайте или измените значение
LocalAccountTokenFilterPolicy
на1
.
- Для редактирования реестра: откройте
- Убедитесь, что политика
-
Обновите PsExec:
- Убедитесь, что у вас последняя версия PsExec. Некоторые проблемы могут быть устранены в более поздних версиях утилиты.
Попробуйте эти шаги, и, если проблема сохраняется, будет полезно посмотреть журналы событий на целевой машине для более детальной информации о причинах ошибки.