ああ...とてもイライラしています...ここの誰かが助けてくれることを願っています!
ScreenConnect と呼ばれるソフトウェア製品があり、それを自分のサーバーにインストールして、このインストールを介して有人および無人のリモート アクセス セッションをセットアップできます。多くのクライアントでこれを使用していますが、複数回アクセスする必要があるクライアントのマシンに無人インストールを設定する方がはるかに簡単です。しかし、何人かのクライアントは、私がいつリモート接続できるか、いつできないかを制御したいと考えています。また、ソフトウェア製品にはまだこの機能が組み込まれていないため、クライアントに 2 つの vbscript ファイルを作成するだけでよいと考えました。デスクトップ - 1 つはサービスがオンの場合はオフにし (逆も同様)、もう 1 つはサービスのスタートアップの種類を自動 (手動に設定されている場合) に、またはその逆に変更します。
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
ただし、私の人生では、自動/手動の起動タイプの vbscript を Windows XP で動作させることはできません。骨まで単純化して、vbscript にスタートアップの現在のステータス (つまり、手動、自動、無効) を教えてもらいたいだけの場合、これは vbscript が知る必要があるため、それに基づいて何をすべきかを判断できます。その情報、それからこれは私がまとめたものです:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colRunningServices = objWMIService.ExecQuery _
("select StartMode from Win32_Service where Name LIKE '%ScreenConnect%'")
For Each objService in colRunningServices
Wscript.Echo "StartMode: " & objService.PathName
Next
それでも、「Manual」、「Disabled」、「Autoamtic」などの許容値の代わりに「Unknown」を返します-「Unknown」を返す理由がわかりません!!!
5 行目を次のように変更してみました。
("select * from Win32_Service where Name LIKE '%ScreenConnect%'")
またはこれ
("select StartMode from Win32_Service where DisplayName LIKE '%ScreenConnect%'")
しかし、効果がないようです。
上記のスクリプトの ScreenConnect を、helpsvc (Name を使用) や Help and Support (DisplayName を使用) などの別のサービスに変更すると、機能します。また、Windows 7 マシンでも問題なく動作します。Windows XP マシンで動作しないのはなぜですか? 何か案は????Mozilla Firefox 20 (Mozilla Maintenance Service を使用) をインストールしてみましたが、そのサービス (WinXP には組み込まれていない) の startmode を読み取るのに問題なく動作しますが、なぜこのサービスの startmode を読み取らないのでしょうか?
どんな助けでも大歓迎です!
ありがとう。
- マルク