Не удается запустить PSExec с использованием учетной записи NETWORK SERVICE

Я использую TFS, чтобы запустить PSExec для запуска процесса InstallShield, который создает установщики. Наш агент сборки TFS работает под учетной записью NETWORK SERVICE.

Я запускаю PSExec с использованием параметров -u -p, и я могу выполнить команду и успешно собрать установщики из командной строки на удаленном компьютере.

Однако в TFS я всегда получаю код ошибки 2250, а установщики не собирают.

Чтобы изолировать проблему, я изменил команду psexec на следующую...

PsExec.exe -accepteula \\<machine> -u <username> -p <password> xcopy /y c:\temp\testing.bat c:\temp\1.bat

Если я запускаю вышеизложенное из командной строки, он копирует файл. Если я запускаю вышеупомянутое из TFS (обращаясь к вышеупомянутому в пакетном файле), это терпит неудачу с 2250.

Итак, чтобы смоделировать, что делает TFS, я...

  1. Запущена командная строка с повышенными привилегиями администратора
  2. Выпущен psexec -i -u "nt authority\network service" cmd.exe
  3. Запустил пакетный файл, содержащий указанную выше команду xcopy

Таким образом, шаг 2 запускает командную строку, используя учетную запись NETWORK SERVICE. Когда я запускаю шаг 3 из этой командной строки, я получаю ту же ошибку 2250. Так что это хорошо, потому что теперь TFS находится вне поля зрения, и я ближе к реальной проблеме.

Просто ради ухмылки я добавил NETWORK SERVICE в группу администраторов удаленного ящика. Это не решило проблему.

Так вот, где я нахожусь в...

  1. Если я вхожу в поле TFS, используя имя входа в группе администраторов, открываю командную строку и запускаю командный файл xcopy с параметрами -u -p, все работает нормально.
  2. Если я запускаю командную строку с учетной записью NETWORK SERVICE и запускаю тот же пакетный файл, что и на шаге 1, я получаю отказ в доступе к 2250.

Так что, на мой взгляд, проблема явно связана с учетной записью NETWORK SERVICE. Вопрос: как я могу заставить psexec работать с этим аккаунтом?

ОБНОВИТЬ

Ниже приведены диалоговые окна, в которых отображается учетная запись NETWORK_SERVICE в группе "Администраторы" и что у нее есть полный доступ к пути (c:\temp).

NETWORK_SERVICE находится в группе администраторов

1 ответ

Допустим, ваши две машины называются TFSSERVER и TARGETMACHINE.

NetworkService на сервере TFS будет рассматриваться как учетная запись компьютера, т.е. DOMAIN\TFSSERVER$, на мишень. Любые учетные записи в группе NT AUTHORITY являются локальными учетными записями, поэтому похоже, что вы только что добавили сетевую службу TARGETMACHINE в качестве администратора, а не сетевую службу машины TFS.

Попробуйте добавить учетную запись компьютера TFS в список разрешений и посмотрите, работает ли он.

Если это не так, посмотрите на этот связанный вопрос и посмотрите, поможет ли вам что-нибудь там: PSEXEC, ошибки доступа запрещены

Другие вопросы по тегам