воскресенье, 18 марта 2012 г.

Доступ к папке принтеров из командной строки Windows XP

Как известно, всякие настройки можно вызывать из командной строки. Вот, например, для принтеров:
control.exe printers


Однако, если мы хотим использовать это в связке с командой runas, возникают трудности. Например, с теми же принтерами команда:
runas /user:domain\admin "control.exe printers"
ничего не отображает.

Оказалось, что "Принтеры" - это специальная папка, открывается она при помощи explorer.exe, её можно открыть вообще "в лоб" вот так:
%windir%\Explorer.exe ::{2227A280-3AEA-1069-A2DE-08002B30309D}

А explorer.exe, похоже, по умолчанию не создает отдельный процесс с нужными правами, а либо подживается к уже существующему, либо просто тихо дохнет. Чтобы его от этой вредной привычки отучить, требуется при помощи редактора реестра прописать для админской учетки параметр HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\SeparateProcess равным 1.
UPD 13-05-28: Есть еще вариант запуска с хитрым ключом:
explorer /separate

То есть последовательность действий такова:

1. запускаем regedit.exe командой:
runas /user:domain\admin regedit.exe
Правим там параметр HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\SeparateProcess = dword:00000001

2. Получаем на экран папку с принтерами:
runas /user:domain\admin "control.exe printers"
И делаем там своё чёрное админское дело...

Комментариев нет:

Отправить комментарий