Oct 21, 2009

Запуск команд от имени системы

Часто по роду работы возникает необходимость запустить ту или иную команду от имени компьютера. В основном это необходимо для тестовых целей, но иногда таким образом можно “спасти жизнь” операционной системе.

Способ прост, как и все гениальное. Мы используем утилиту sc

sc create Console binpath= "c:\windows\system32\cmd.exe /k start" type= own type= interact
Обращаю ваше внимание на то, что пробелы после знака равно обязательны.
В Windows Vista и Windows 7 вы получите предупреждение о том, что отображение программы может быть некорректным, не обращайте внимания.
net start Сonsole
При запуске новой службы сразу появляется следующее диалоговое окно:
warnsess
Выбираем view the message и вуаля:
whoami
Если служба больше не понадобиться – можно удалить ее командой
sc delete Console

Создание коллекции на основе принадлежности к OU

Часто на форумах возникает вопрос по поводу создания коллекции, в которой были бы компьютеры, принадлежащие определённому контейнеру. Как это сделать через Мастер:


Либо коллекция на основе запроса:
SELECT DISTINCT dbo.v_R_System.Name0, dbo.v_RA_System_SystemOUName.System_OU_Name0
FROM dbo.v_R_System INNER JOIN
dbo.v_RA_System_SystemOUName ON dbo.v_R_System.ResourceID = dbo.v_RA_System_SystemOUName.ResourceID
WHERE (dbo.v_RA_System_SystemOUName.System_OU_Name0 = 'DOMAIN.COM/Бухгалтерия')

Список компьютеров с определённым ПО или обновлением


SELECT dbo.v_R_System.Name0, dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0

FROM dbo.v_R_System INNER JOIN
dbo.v_GS_ADD_REMOVE_PROGRAMS ON dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
WHERE (dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = 'ABBYY Lingvo x3')

То же самое и для обновлений:
SELECT dbo.v_R_System.Name0, dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0
FROM dbo.v_R_System INNER JOIN
dbo.v_GS_ADD_REMOVE_PROGRAMS ON dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
WHERE (dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = 'Исправление для Windows XP (KB961118)')