0

このスクリプトで Microsoft JScript ランタイム エラーが発生しています: If (out_params.bGranted) 行にオブジェクトが必要です。これは構文エラーに関連しているようですが、見つかりません。現在の形式のこのコードは、基本的に、「out」引数を使用して関数を呼び出し、JScript で参照によって引数を渡すことからコピーされました。

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();
4

1 に答える 1

0

IfJScriptでは、キーワード(および識別子)は大文字と小文字が区別されるため、の代わりにifElseの代わりに使用することはできませんelse

あなたの例では、スクリプトエンジンIf (out_params.bGranted)は関数呼び出しとして解釈しますが、明らかに関数を定義していないため、実行時エラーが発生しますIf

于 2011-07-29T15:30:51.420 に答える