#pragma namespace("\\root") instance of __NAMESPACE { Name = "MicrosoftActiveDirectory"; }; #pragma namespace("MicrosoftActiveDirectory") // The docs say to declare it as: //#pragma namespace("\\\\.\\root\\MicrosoftActiveDirectory") #pragma classflags(64) #pragma autorecover ///////////////////////////////////////////////////////////////////// // Declare an instance of the __Win32Provider Instance of __Win32Provider as $P { Name = "TrustPrv" ; ClsId = "{8065652F-4C29-4908-AAE5-201C891904C5}" ; ImpersonationLevel = 1; PerUserInitialization = TRUE; HostingModel = "NetworkServiceHost"; // comment this out to compile on Win2k }; instance of __InstanceProviderRegistration { Provider = $P; SupportsPut = FALSE; SupportsGet = TRUE; SupportsDelete = FALSE; SupportsEnumeration = TRUE; }; ///////////////////////////////////////////////////////////////////// // // Declare a class whose dynamic instances are provided by the // TrustPrv provider. [ dynamic, provider("TrustPrv"), description("Instances of this class provide information about the domains that" " have trust with the local domain.") ] class Microsoft_DomainTrustStatus { [key] String TrustedDomain; [Description ("Pre-Windows 2000 domain name.")] String FlatName; [Description ("Security Identifier for the domain.")] String SID; [Description ("Direction of trust: 1 is inbound, 2 is outbound, " "3 is bi-directional.")] uint32 TrustDirection; [Description ("Type of trust: 1 is downlevel, 2 is uplevel, 3 is " "non-Windows Kerberos Realm, 4 is DCE.")] uint32 TrustType; [Description ("Attributes can be a combination of: 1 is non-" "transitive, 2 is uplevel clients only, 40000 is " "tree parent and 80000 is tree root.")] uint32 TrustAttributes; [Description ("Name of trusted domain's domain controller.")] String TrustedDCName; [Description ("Error code of trust failure. Zero means no failure.")] uint32 TrustStatus; [Description ("String description of trust status.")] String TrustStatusString; Boolean TrustIsOk = FALSE; }; [ singleton, description("The properties of this class parameterize the operation of" " the trust monitor.") ] class Microsoft_TrustProvider { [Description ("Integer in minutes: if current request for trust enumeration" " within this window, use last listing.")] uint32 TrustListLifetime; [Description ("Integer in minutes: if current request for status within this" " window, use last results.")] uint32 TrustStatusLifetime; [Description ("0 don't verify, just enum; 1 do an SC_QUERY; 2 do a PW check" " (if available); 3 do an SC_RESET.")] uint32 TrustCheckLevel; [Description ("If true, return trusting as well as trusted domains (if different)")] Boolean ReturnAll; }; instance of Microsoft_TrustProvider { TrustListLifetime = 20; TrustStatusLifetime = 3; TrustCheckLevel = 2; ReturnAll = TRUE; }; [ singleton, dynamic, provider("TrustPrv"), description("This class provides information about the domain on which this" " instance of the trust monitor is running.") ] class Microsoft_LocalDomainInfo { [description("DNS name of local domain.")] String DNSname; [description("SAM name of local domain.")] String FlatName; [description("Security ID of local domain.")] String SID; [description("Name of enterprise tree root.")] String TreeName; [description("Name of the DC on whom TrustMon is running.")] String DCname; };