停止特定服务的javascript
我在脚本中有以下代码。 问题是,我想获取以特定名称开始并位于特定startmode中的脚本的信息停止特定服务的javascript,javascript,service,wsh,Javascript,Service,Wsh,我在脚本中有以下代码。 问题是,我想获取以特定名称开始并位于特定startmode中的脚本的信息 var e = new Enumerator(GetObject("winmgmts:").InstancesOf("Win32_Service")) var WSHShell = new ActiveXObject ("WScript.Shell"); var strPrefix = "TTTT"; for(;!e.atEnd(); e.moveNext()){ var Service =
var e = new Enumerator(GetObject("winmgmts:").InstancesOf("Win32_Service"))
var WSHShell = new ActiveXObject ("WScript.Shell");
var strPrefix = "TTTT";
for(;!e.atEnd(); e.moveNext()){
var Service = e.item();
var strName = Service.Name;
if (strName.substr (0, strPrefix.length) == strPrefix) {
if(Service.StartMode == 'mmManual') {
WScript.Echo("Yes");
}
if(e.StartMode == 'Manual') {
WScript.Echo("Yes");
}
}
}
在上面的脚本中,我试图知道启动模式,但它总是返回true。我不确定您到底在问什么,但这
if(Service.StartMode = 'mmManual')
…将始终计算为true
。您缺少一个=
。应该是:
if(Service.StartMode == 'mmManual')
McDowell是对的,但请注意,如果将前缀和启动模式检查作为WMI查询的一部分,则可以在循环中取消它们: 从Win32_服务中选择*,其中名称如“TTTT%”和StartMode=“Manual” 使用此查询,您的脚本可能如下所示:
var strComputer = ".";
var oWMI = GetObject("winmgmts://" + strComputer + "/root/CIMV2");
var colServices = oWMI.ExecQuery("SELECT * FROM Win32_Service WHERE Name LIKE 'TTTT%' AND StartMode = 'Manual'");
var enumServices = new Enumerator(colServices);
for(; !enumServices.atEnd(); enumServices.moveNext())
{
var oService = enumServices.item();
WScript.Echo(oService.Name);
}
嘿Java和javascript完全不同。请更改您的标签。是的,您是对的!!!我更新了问题。我仍然找不到如何确定有关服务的StartMode的数据?什么是“winmgmts://”+strComputer+“/root/CIMV2”?@Roman:这是用于连接WMI服务的名字对象字符串(请参阅)。它相当于脚本中的
GetObject(“winmgmts:”)
,但明确指定计算机名(
表示本地计算机)和默认WMI命名空间路径(root\cimv2
)。