Не удалось запустить службу PsExec на удаленном компьютере: система не может найти указанный файл.

Вопрос или проблема

Вот скрипт, который я составил:

@echo off
REM Этот файл предполагает, что у вас установлен psexec
REM Запросите имя машины или IP
set /p machine= Пожалуйста, введите имя машины или ip:
REM проверьте, что рабочая станция онлайн, если нет, выход
ping %machine% | find "Reply"
if errorlevel 1 goto :offline
if errorlevel 0 goto :install

:offline
echo Рабочая станция не онлайн
pause
exit

:install
xcopy "w:\*****\*****\psexec.exe" \\%machine%\c$\windows\system32
xcopy "w:\*****\*****\*****\*****\fix.reg" \\%machine%\c$\temp
PsExec -s -i \\%machine% -u domainadmin \\%machine%\c$\windows\regedit.exe -i "c:\temp\fix.reg"
pause

<< Рег файл fix.reg>>
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

Скрипт работает до того момента, когда он скопировал файлы с сети на удаленный компьютер. Затем меня просят ввести пароль от доменного администратора, PsExec запускается, и я получаю сообщение:

Не удалось запустить службу PsExec на Computername: Система не может найти указанный файл.

Я могу запустить .reg файл, подключившись к компьютеру по удаленному доступу и дважды щелкнув по нему, но должен быть способ заставить PsExec запустить его удаленно.

\\%machine%\c$\temp\fix.reg psexec -s \\%machine%\c$\windows\system32\reg.exe

Первая половина этой строки работает правильно, она запускает reg файл, но вместо обновления реестра на целевом компьютере обновляет реестр на моем локальном ПК, кто-нибудь видит проблему?

PsExec.exe -s \\%machine% -u domainadmin C:\windows\system32\cmd.exe /C c:\windows\system32\reg.exe IMPORT c:\temp\fix.reg

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что сервис PsExec не может быть запущен на удалённом компьютере. В результате возникает сообщение об ошибке: "Could not start PsExec service on Computername: The system cannot find the file specified". Давайте разберёмся в основах этой проблемы и представим возможные пути её решения.

1. Причины возникновения проблемы

Ошибка, о которой идёт речь, может быть вызвана несколькими факторами:

  • Неправильный путь к PsExec: Убедитесь, что файл psexec.exe был успешно скопирован на удалённый компьютер в нужное место. В вашем скрипте используется путь \\%machine%\c$\windows\system32, проверьте, содержит ли удалённый компьютер этот файл в указанной директории.

  • Некорректные права доступа: Убедитесь, что у вас есть необходимые права для запуска служб на удалённом компьютере. Пользователь, от имени которого вы выполняете PsExec, должен иметь права администратора на целевом компьютере.

  • Антивирусное ПО или брандмауэр: Иногда антивирусные решения или настройки брандмауэра могут блокировать работу PsExec. Проверьте настройки безопасности на удалённой машине.

2. Проведение предварительных проверок

Прежде чем продолжить, выполните несколько проверок:

  • Проверка доступности: С помощью команды ping %machine% уже сделана проверка доступности, однако также убедитесь, что удалённый компьютер настроен для приема соединений по SMB.

  • Копирование файла: После выполнения команды xcopy, убедитесь, что файл PsExec действительно доступен на удалённом компьютере.

    dir \\%machine%\c$\windows\system32\psexec.exe

3. Правильный запуск PsExec

Ваш приведённый код имеет небольшую ошибку в синтаксисе при вызове reg.exe. Давайте исправим:

PsExec.exe -s \\%machine% -u domainadmin -p password C:\Windows\system32\reg.exe ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "YourKeyName" /t REG_SZ /d "YourValue" /f

4. Альтернативные подходы

Если предыдущий метод не сработал, вы можете создать специфическую команду через PsExec, чтобы выполнить нужный импорт реестра:

PsExec.exe -s -u domainadmin -p password \\%machine% cmd /C reg import c:\temp\fix.reg

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

5. Замечания по безопасности

  • Используйте защищенные соединения: Вместо передачи пароля в открытом виде, рассмотрите возможность использования Kerberos аутентификации или других безопасных методов.

  • Логирование и мониторинг: Ведите логирование всех операций, связанных с удалённым подключением и изменениями реестра, для обеспечения безопасности и аудита.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...