2011-07-29 16 views
0

このスクリプトは、Microsoft JScript実行時エラーが発生しています:If(out_params.bGranted)行にオブジェクトが必要です。これは構文エラーと関連しているようですが、見つけられません。このコードは、現在の形式では、基本的にInvoking functions with `out` arguments, passing arguments by reference in JScriptからコピーされています。 JScriptでJScriptのStdRegProv。CheckAccessメソッド - エラー:オブジェクトが必要です

function main() 
{ 
    var provider_name = "StdRegProv"; 
    var func_name = "CheckAccess"; 

    var services = GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\default"); // connect to WMI 
    var registry = services.Get(provider_name); // get provider 

    var in_params = registry.Methods_(func_name).InParameters.SpawnInstance_(); 
    in_params.hDefKey = 0x80000001; 
    in_params.sSubKeyName = "Software\\Microsoft\\Shared Tools\\Proofing Tools\\1.0\\Override"; 
    in_params.uRequired = 65536; 

    var out_params = services.ExecMethod(provider_name, func_name, in_params); 

    If (out_params.bGranted) 
    { 
     WScript.Echo("Has DELETE Access Rights on HKCU " + strKeyPath); 
     registry.DeleteKey (HKCU, strKeyPath); 
    } 
    Else 
    { 
     WScript.Echo("No DELETE Access Rights on HKCU " + strKeyPath); 
    } 
} 

main(); 

答えて

0

は、キーワード(と識別子)は、大文字と小文字が区別されますので、あなたはIf代わりのifElse代わりのelse、というように使用することはできません。

例では、スクリプトエンジンはIf (out_params.bGranted)を関数呼び出しとして解釈します。その結果、明らかにIf関数が定義されていないため、ランタイムエラーが発生します。

+0

ありがとう、それは問題でした! –

関連する問題