2017-07-07 43 views
0

なぜWindows 7で、次のVBSコードの作業を行いますが、Windows 10上でエラーを与える:VBS無効なクエリのWindowsで10

strComputer="." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'notepad.exe'") 
Wscript.Echo colProcesses.Count 

私は、Windows 10で取得していますエラーは次のとおりです。

test_2.vbs(4,1)SWbemObjectSet:無効なクエリ

私はここで間違っていますか?

+0

あなたのコードは私のシステムでうまく動作します(Windows 7を使用しています)。 – Gurman

+0

はい、それは私の質問に記載されているようにWindows 7で動作しますが、Windows 10ではありません – user726720

+0

ああ..私は気付きませんでした:P – Gurman

答えて

1

以下のコードを試してみてください。これはうまくいくはずです

strQuery = "select * from win32_process where Name = " & """" & "Notepad.exe" & """" 
strComputer="." 
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set colProcesses = objWMIService.ExecQuery(strQuery) 
Wscript.Echo colProcesses.Count 
+0

はい、動作します。私はまだVBSを学んでいるので、 '' strQuery'に ''マークがたくさんある理由を説明してもらえますか? – user726720

+0

'Notepad.exe'では、このような' 'Notepad.exe ''のように二重引用符が必要ですが、一重引用符 ''Notepad.exe' 'をつけてください。これは非常に奇妙です。誰かがこの理由を持っているなら説明してください。 – user726720

関連する問題