PsExec запустит удаленную программу от имени того же пользователя без домена.

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

Я пытаюсь запустить удаленную программу с помощью PsExec. В целом это работает, если я указываю имя пользователя и пароль или запускаю от имени учетной записи SYSTEM.

Я хочу обойтись без имени пользователя и пароля, чтобы программа запускалась с той же учетной записью, в которой был выполнен PsExec.

Я предполагаю, что это не работает, потому что нет домена, но мне интересно, есть ли способ заставить это работать без него?

Учетные записи на обоих машинах используют локальную учетную запись с одинаковым именем пользователя и паролем.

Команды, которые работают:

.\psexec64 \\192.168.250.31 -u username -p password -d -i 2 notepad.exe

.\psexec64 \\192.168.250.31 -s -d -i 2 notepad.exe

Команда, которая не работает:

.\psexec64 \\192.168.250.31 -d -i 2 notepad.exe

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

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

1. Понимание PsExec и локальных учетных записей

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

2. Запуск PsExec с использованием локальных учетных записей

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

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

3. Использование опции -i

Для запуска интерфейсных приложений (например, Notepad) следует использовать флаг -i, который указывает на идентификатор сессии. Однако, если учетная запись не может быть определена, это может привести к ошибкам.

4. Работа вокруг проблемы с аутентификацией

Вы можете попробовать два варианта:

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

  • Использование групповой политики: Настройка локальной политики безопасности может помочь разрешить выполнения программ без явного указания имени пользователя и пароля, но это может потребовать прав администратора на обеих машинах.

5. Альтернативные способы запуска программ

Если у вас есть возможность использовать PowerShell или другие инструменты удаленного управления, вы можете использовать командлет Invoke-Command, который позволит вам выполнять команды на удаленной машине под теми же учетными данными:

Invoke-Command -ComputerName 192.168.250.31 -ScriptBlock { Start-Process notepad.exe } -Credential (Get-Credential)

Хотя в данном примере сохраняется ввод учетных данных, вы можете настроить PowerShell для использования текущих учетных данных.

Заключение

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

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

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