1

システム上の特定のポリシーをチェックするためのサブルーチンを作成する必要があります。私は現在それをやろうとしています。

strComputerFQDNはプログラムの最初に定義されており、正常に機能しています。

何かおかしいと思いますか?

これが私のコードです:

'*************************************************************************
' This Subroutine checks Local Policies
'*************************************************************************
Sub CheckPolicies()
   Dim objGPOSrvc,colItems,objItem
   Set objGPOSrvc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputerFQDN & "\root\RSOP")
   Set colItems = objGPOSrvc.ExecQuery("SELECT * FROM RSOP_GPO")

   WScript.Echo("Check Policies")
   WScript.Echo("------------------------------------")

   For Each objItem in colItems
      If InStr(UCase(objItem.Name),"WSUS") Then
         If InStr(UCase(objItem.Name),"SERVER") Then
            WScript.Echo("Policy applied: " & objItem.Name)
         Else
            WScript.Echo("Wrong WSUS Policy Applied - Check Computer object location")
         End If
      End If
   Next
   If strWSUSApplied = "FALSE" Then
      WScript.Echo("No WSUS Policy Applied!")
   End If
   WScript.Echo vbCrLf
End Sub
4

1 に答える 1

3

名前空間は次のようになりますroot\RSOP\Computer

Set objGPOSrvc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputerFQDN & "\root\RSOP\Computer")

またroot\RSOP\User

Set objGPOSrvc = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputerFQDN & "\root\RSOP\User")

最も一般的には、次のようなことを行います。

strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\RSOP\Computer")
Set colItems = objWMIService.ExecQuery("Select * from RSOP_GPO")
For Each objItem in colItems  
    WScript.Echo "Name: " & objItem.Name
    WScript.Echo "GUID Name: " & objItem.GUIDName
    WScript.Echo "ID: " & objItem.ID
    WScript.Echo "Access Denied: " & objItem.AccessDenied
    WScript.Echo "Enabled: " & objItem.Enabled
    WScript.Echo "File System path: " & objItem.FileSystemPath
    WScript.Echo "Filter Allowed: " & objItem.FilterAllowed
    WScript.Echo "Filter ID: " & objItem.FilterId
    WScript.Echo "Version: " & objItem.Version
    WScript.Echo
Next

エラー0x80041003を受け取った場合は、管理者の資格情報を使用してこのスクリプトを実行する必要があります。Vista以降の場合は、スタートメニューを開いて「」と入力しcmdます。「コマンドプロンプト」が表示されたら、右クリックして「管理者として実行」を選択します。これで、管理者特権のコマンドプロンプトからエラーなしでスクリプトを起動できます。

于 2012-08-16T17:56:29.850 に答える