информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Блокировка российских аккаунтов... 
 Отзыв сертификатов ЦБ РФ, ПСБ,... 
 Памятка мирным людям во время информационной... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / sysadmin
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Да... Надеюсь тут за это не убивают: 20.10.06 13:42  Число просмотров: 3724
Автор: ... Статус: Незарегистрированный пользователь
Отредактировано 20.10.06 13:53  Количество правок: 2
<"чистая" ссылка>
Да... Надеюсь тут за это не убивают:
Одно условие - плиз не менять без уведомления =)
Вставить в файл devcontrol.wsf
OpenSource.....=)
Ах да - тут log не поддерживается... Если принципиально - допишу...
----------------------------------------------
<package>
<job id="Device Control">

<runtime>
<description>
Device-driver control
Programmed by ... 15.07.2006
Mail to: kirw@mail.ru

...Thanks for Microsoft...
</description>
<named
name = "Host"
helpstring = "Host name ('.' for local host)"
type = "string"
required = "true"
/>
<named
name = "Device"
helpstring = "Device name"
type = "string"
required = "true"
/>
<named
name = "Mode"
helpstring = "Device startup mode [Boot | System | Automatic | Manual | Disabled]"
type = "string"
required = "true"
/>
<named
name = "Provider"
helpstring = "Provider [Service | Registry] [default Service]"
type = "string"
required = "false"
/>
<named
name = "Alerts"
helpstring = "Alerts and warnings [All | Errors | None] [default All]"
type = "string"
required = "false"
/>
<named
name = "Log"
helpstring = "Log to [None | EventLog | FileName] [default None]"
type = "string"
requred = "false"
/>
<example>
Examples:
Disable USB Mass-storage devices on comp-1 with only errors messages:
devcontrol.wsf /Host:comp-1 /Device:USBStor /Mode:Disabled /Alerts:Errors
Disable CD-ROM on local host through registry:
devcontrol.wsf /Host:. /Device:Cdrom /Mode:Disabled /Provider:Registry
</example>
</runtime>

<script language="JScript">
try {
// if (WScript.Arguments.Length<3|WScript.Arguments.Length>4)
// throw("@Arg");

var oHost = parseArg("Host");
var oDeviceName = parseArg("Device");
var oMode = parseArg("Mode", undefined, "boot", "system", "automatic", "manual", "disabled");
var oAlerts = parseArg("Alerts", "all", "all", "errors", "none");
var oProvider = parseArg("Provider", "service", "service", "registry");

if (!doConnect(oProvider, oHost))
throw(Error("connect failed"));
if (!doJob(oProvider, oDeviceName, oMode))
throw(Error("can't change device start mode"));

say("complete");
WScript.quit(0);
}

catch(e) {
if (e.description=="@Arg") WScript.Arguments.ShowUsage(); else say(e);
WScript.quit(-1);
}

function say(oStr) {
if (oStr && oStr.description) {
if (oAlerts.index<2) WScript.echo("Error:"+oStr.description);
} else
if (oAlerts.index<1)
WScript.echo(oStr);
}


function parseArg(asArg, asDefaultValue) {
//1 - Req. arg
//2 - Opt. with def.value
//
var oArg = new Object();
if (!WScript.arguments.named.exists(asArg)) {
if (typeof(asDefaultValue)=="undefined") throw(Error("@Arg"));
oArg.value = asDefaultValue;
} else oArg.value = WScript.arguments.named.item(asArg);

var iCount = parseArg.arguments.length;
if (iCount>2) {
oArg.value = oArg.value.toLowerCase();
for(var i=2; i<iCount; i++)
if (oArg.value == parseArg.arguments[i]) {oArg.index = i-2; return oArg;}
throw(Error("@Arg"));
}
return oArg;
}

function doConnect(aoProvider, aoHost) {
var strTemplate = "winmgmts:{impersonationLevel=impersonate}!\\\\"+
aoHost.value+"\\root\\";
switch(aoProvider.index) {
//Service
case 0: aoProvider.object = GetObject(strTemplate + "CIMV2"); break;
//Registry
case 1: aoProvider.object = GetObject(strTemplate + "default:StdRegProv"); break;
}
return aoProvider.object;
}

function doJob(aoProvider, aoDeviceName, aoMode) {
switch(aoProvider.index) {
//Service
case 0:
for(var eQuery = new Enumerator(aoProvider.object.ExecQuery("Select * from Win32_SystemDriver where Name ='" + aoDeviceName.value + "'")); !eQuery.atEnd(); eQuery.moveNext())
return !eQuery.item().change(undefined,undefined,undefined,undefined,aoMode.value);
break;
//Registry
case 1:
var iHKLM = 0x80000002;
var sKeyPath = "SYSTEM\\CurrentControlSet\\Services\\" + aoDeviceName.value;
return !aoProvider.object.setDWORDValue(iHKLM, sKeyPath, "Start" , aoMode.index);
}
return false;
}

</script>

</job>
</package>
<sysadmin> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach