Polling the Active Directory for Configuration Changes

The following VBScript example shows how to use the PollDsNow method of the DfsrConfig class to poll the Active Directory for configuration changes.

To run the script, which is in Windows Script Host (WSH) 2.0 XML file format, save the text in a file with a .wsf extension.

<?XML version="1.0" standalone="yes" ?>

<job id="PollDs">
 <runtime>
  <description>
   This script uses the DFSR WMI provider to trigger AD poll for configuration changes.
  </description>
  <named 
        name="server"
        helpstring="The server to change machine configuration settings on"
        type="string"
        required="true"
/>
  <named
        name="help"
        helpstring="Display help for this script"
        type="simple"
        required="false"
/>
  <named
        name="?"
        helpstring="Display help for this script"
        type="simple"
        required="false"
/>
 </runtime>

 <resource id="DfsrConfig">DfsrConfig</resource>
 <resource id="DfsrNamespace">\root\microsoftdfs</resource>

 <resource id="ConfigError0">Success.</resource>
 <resource id="ConfigError1">Registry key is not found.</resource>
 <resource id="ConfigError2">Registry key is not accessible.</resource>
 <resource id="ConfigError3">Registry value is not found.</resource>
 <resource id="ConfigError4">Registry value is not valid.</resource>
 <resource id="ConfigError5">Generic registry error.</resource>
 <resource id="ConfigError6">MSXML.dll Not installed.</resource>
 <resource id="ConfigError7">Missing XML DOM.</resource>
 <resource id="ConfigError8">XML DOM is not valid.</resource>
 <resource id="ConfigError9">XML file not found.</resource>
 <resource id="ConfigError10">XML file not accessible</resource>
 <resource id="ConfigError11">Generic XML error.</resource>
 <resource id="ConfigError12">Cannot connect to AD.</resource>
 <resource id="ConfigError14">Generic AD error.</resource>
 <resource id="ConfigError15">Bad XML\AD parameter.</resource>
 <resource id="ConfigError16">Bad XML\AD parameter.</resource>
 <resource id="ConfigError17">File path is not valid.</resource>
 <resource id="ConfigError18">Volume not found.</resource>
 <resource id="ConfigError19">Out of memory.</resource>
 <resource id="ConfigError20">Configuration source mismatch.</resource>
 <resource id="ConfigError21">Access denied.</resource>
 <resource id="ConfigError22">Generic error.</resource>

 <reference object="Scripting.FileSystemObject"/>
 <reference object="WbemScripting.SWbemLocator"/>

 <script language="VBScript">
  <![CDATA[
    Option Explicit
    
    Call Main()
    
    Sub Main
        Dim objNamedArgs
        Dim strComputer
        Dim objWmiService, objDfsrConfig
        Dim uintPollRc
    
        Set objNamedArgs   = WScript.Arguments.Named
    
        ' Display help if there are any unnamed arguments in the command line
        If ( WScript.Arguments.Unnamed.Length <> 0 ) Then
            WScript.Arguments.ShowUsage()
            WScript.Quit(1)
        End If
        
        ' Display help if there are not enough arguments, 
        ' help is requested or
        ' required server argument is not specified
        If ( objNamedArgs.Length < 1 Or _
             objNamedArgs.Exists("help") Or _
             objNamedArgs.Exists("?") Or _
             NOT objNamedArgs.Exists("server") ) Then
            WScript.Arguments.ShowUsage()
            WScript.Quit(1)
        End If
        
        strComputer = objNamedArgs("server")
        
        ' Connect to the target server's DFSR WMI namespace
        ' \\server\root\microsoftdfs
        Set objWmiService = _
            GetObject("winmgmts:\\" & strComputer & getResource("DfsrNamespace"))
    
        ' Get the DfsrConfig singleton instance
        ' from target server
        Set objDfsrConfig = _
            objWmiService.Get(getResource("DfsrConfig") & "=@")
        
        ' Invoke the PollDsNow method on target server
        uintPollRc = objDfsrConfig.PollDsNow()
        
        If uintPollRc <> 0 Then
            WScript.Echo "DFSR AD Poll on " & strComputer & " failed"
            WScript.Echo "Error returned from DFSR Provider: " & _
                         getResource("ConfigError" & CStr(uintPollRc))
        Else
            WScript.Echo "Successfully initiated DFSR AD Poll on " & _
                         strComputer
        End If
    End Sub
   ]]>
 </script>

</job>