2

У меня есть процесс, который выполняется под учетной записью локальной системы на компьютере с Windows XP. Затем этот процесс пытается открыть файл с приложением по умолчанию в качестве другого пользователя (скажем, Макс) в системе. Макс вошел в систему и имеет рабочий стол.

Файл открывается следующей командой с ShellExecute в vbscript:

runas /user:Max "cmd.exe /C start \"path_to_file\""

После запуска процесса под локальной системной учетной записью Максу предлагается ввести свой пароль. (Таким образом, компонент runas явно запускается по крайней мере.)

Только после ввода правильного пароля runas выдает следующую ошибку:

RUNAS ERROR: Unable to run - cmd.exe /C start "path_to_file"
5: Access is denied.

Мне не ясно, к какому доступу отказано. Запустив cmd.exe /C, запустите "path_to_file", так как Макс работает отлично. Макс, таким образом, явно имеет доступ к "path_to_file".

2 ответа2

2

Похоже, это та же проблема, что и с PSExec. Редактировать: Runas и PSExec порождают новые процессы с разными учетными данными, вызывая CreateProcessWithLogonW. Однако, если вы используете учетную запись "LocalSystem":

Вы не можете вызвать CreateProcessWithLogonW из процесса, который выполняется под учетной записью "LocalSystem", потому что функция использует SID входа в систему в токене вызывающего абонента, а токен для учетной записи "LocalSystem" не содержит этого SID.

http://msdn.microsoft.com/en-us/library/ms682431%28VS.85%29.aspx

0

Я испытал похожий опыт, когда попробовал использовать инструмент sanur, который автоматически вводит пароль. Мой сценарий работает нормально, пока я использовал свой аккаунт. когда я запустил его в SCCM, который работает с учетной записью systen, это не удалось.

Я не нашел пути назад, я пришел к выводу, что вы не можете запустить runas с системной учетной записью.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .