Как Вы выполняете CMD.exe в соответствии с Локальной Системной Учетной записью?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

138
задан Jon Seigel 6 March 2010 в 04:08
поделиться

4 ответа

Хотя я лично не протестировал, у меня есть серьезное основание полагать, что вышеупомянутое указало, что решение для КОМАНДЫ AT будет работать на XP, 2000 и Сервер 2003. На тестирование моего и Bryant мы определили, что тот же подход не работает с Vista или Windows Server 2008 - по всей вероятности из-за дополнительной защиты и / интерактивного удержавшего от использования переключателя.

Однако я столкнулся с этим статья , которая демонстрирует использование PSTools от SysInternals (который был получен Microsoft в июле 2006.) Я запустил командную строку через следующее, и внезапно я работал в соответствии с Локальной Администраторской Учетной записью как волшебство:

psexec -i -s cmd.exe

PSTools работает хорошо. Это - легкий, хорошо зарегистрированный набор инструментов, который предоставляет соответствующее решение моей проблемы.

Большое спасибо тем, кто предложил справку.

212
ответ дан 23 November 2019 в 23:27
поделиться

Найденный ответом здесь , который, кажется, решает проблему путем добавления/k, запускаются к binPath параметру. Таким образом, это дало бы Вам:

sc create testsvc binpath= "cmd /K start" type= own type= interact

Однако Ben сказал, что это не работало на него и когда я попробовал его на Windows Server 2008, это действительно создавало процесс cmd.exe под локальной системой, но это не было интерактивным (я не мог видеть окно).

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

10
ответ дан 23 November 2019 в 23:27
поделиться

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

Интерактивные сервисы больше не работают - или по крайней мере, больше не показывают UI - на Windows Vista и Windows Server 2008 из-за сессия 0 изоляции .

6
ответ дан 23 November 2019 в 23:27
поделиться

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

1
ответ дан 23 November 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: