Service VBScript-在WinXP(但不是Win7)中为服务返回未知的StartMode
啊…太沮丧了…希望这里有人能帮忙 有一个名为ScreenConnect的软件产品,允许您在自己的服务器上安装它,并通过此安装设置有人参与和无人参与的远程访问会话。我在我的很多客户机上都使用这个,但是在我需要多次访问的客户机上设置无人值守的安装要容易得多。然而,一些客户希望控制我何时可以远程登录,何时不能远程登录,而且由于软件产品还没有内置此功能,我想我应该在他们的桌面上创建两个vbscript文件——一个打开时关闭服务(反之亦然),另一个将服务的启动类型更改为自动(如果设置为手动),反之亦然。我能够非常轻松地启动/停止服务vbscript文件:Service VBScript-在WinXP(但不是Win7)中为服务返回未知的StartMode,service,vbscript,Service,Vbscript,啊…太沮丧了…希望这里有人能帮忙 有一个名为ScreenConnect的软件产品,允许您在自己的服务器上安装它,并通过此安装设置有人参与和无人参与的远程访问会话。我在我的很多客户机上都使用这个,但是在我需要多次访问的客户机上设置无人值守的安装要容易得多。然而,一些客户希望控制我何时可以远程登录,何时不能远程登录,而且由于软件产品还没有内置此功能,我想我应该在他们的桌面上创建两个vbscript文件——一个打开时关闭服务(反之亦然),另一个将服务的启动类型更改为自动(如果设置为手动),反之亦然。我
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colRunningServices = objWMIService.ExecQuery _
("select State from Win32_Service where Name LIKE '%ScreenConnect%'")
For Each objService in colRunningServices
Wscript.Echo "State: " & objService.State
If objService.State <> "Running" Then
errReturn = objService.StartService()
Wscript.Echo "FalconRemote Started"
Else
errReturn = objService.StopService()
Wscript.Echo "FalconRemote Stopped"
End If
Next
然而,它返回“未知”而不是“手动”、“禁用”或“自动”等可接受的值-我不知道为什么它返回“未知”
我已尝试将第五行更改为:
("select * from Win32_Service where Name LIKE '%ScreenConnect%'")
还是这个
("select StartMode from Win32_Service where DisplayName LIKE '%ScreenConnect%'")
但似乎没有效果
如果我在上面的脚本中将ScreenConnect更改为另一个服务,比如helpsvc(使用Name)或Help and Support(使用DisplayName),它会工作!它在Windows7机器上运行良好。为什么它不能在Windows XP机器上工作?有什么想法吗????我试着安装Mozilla Firefox 20(带有Mozilla维护服务),它可以很好地读取该服务的startmode(它没有内置到WinXP中),那么为什么它不读取该服务的startmode呢
非常感谢您的帮助
谢谢
- 马克
sc delete "ScreenConnect service name"
这项服务有什么特别之处吗?例如,它作为什么帐户运行?如果您使用
ChangeStartMode
而不考虑当前的启动模式会怎么样?Ilya-我对没有尽快响应表示歉意-我想当我收到回复时会收到某种电子邮件通知(但没有-如果这是一项提供的功能,我想如何启用该功能)?Oops-我点击回车键,它发表了我的评论,而不是仅仅下移一行-无论如何,为了回答您的问题:它作为WinXP机器上的本地系统帐户运行,如果我使用ChangeStartMode
,它允许我更改服务的启动模式-它似乎无法检索服务的启动模式以运行IF-THEN-ELSE语句…您确定错误不在脚本中吗?您发布的第一个代码片段检查State
属性,而不是StartMode
属性。第二个代码段查询了StartMode
属性,但随后尝试回显PathName
属性。我的错误-在我最初发布的第二个代码段中,在倒数第二行中,PathName
实际上应该是StartMode
-我最初就是这样做的,但在我发布之前的所有测试中,我必须切换它,然后在发布时忘记将其切换回来。无论如何,即使有了这样的更改,代码在WinXP上也不起作用(它仍然报告未知的启动模式),而在Win7上,代码工作正常,并报告正确的启动模式……还有其他想法/建议吗?谢谢
sc delete "ScreenConnect service name"