' global Dim Prefix Prefix = Array("", " ", " ", " ") Sub AzPrintCommon(Level, ObjName, Obj) If 0=Level Then 'level 0 has no name WScript.Echo Prefix(Level) & ObjName & "(Description=" & Obj.Description & ")" Else WScript.Echo Prefix(Level) & ObjName & "(Name=" & Obj.Name & ", Description=" & Obj.Description & ")" End If End Sub Sub AzPrintAttr(Level, Obj, PId, PName) WScript.Echo Prefix(Level) & " @ " & PName & "=" & Obj.GetProperty(PId, 0) End Sub Sub AzPrintItem(Level, Name, Item) WScript.Echo Prefix(Level) & " / " & Name & "=" & Item End Sub Sub AzPrintAdmin(Lvl, Obj) Dim Writers, Readers, U AzPrintCommon Lvl, "AdminManager", Obj AzPrintAttr Lvl, Obj, AZ_PROP_ADMIN_DOMAIN_TIMEOUT, "AZ_PROP_ADMIN_DOMAIN_TIMEOUT" AzPrintAttr Lvl, Obj, AZ_PROP_ADMIN_SCRIPT_ENGINE_TIMEOUT, "AZ_PROP_ADMIN_SCRIPT_ENGINE_TIMEOUT" AzPrintAttr Lvl, Obj, AZ_PROP_ADMIN_MAX_SCRIPT_ENGINES, "AZ_PROP_ADMIN_MAX_SCRIPT_ENGINES" AzPrintAttr Lvl, Obj, AZ_PROP_GENERATE_AUDITS, "AZ_PROP_GENERATE_AUDITS" Writers = Obj.PolicyAdministrators For Each U In Writers AzPrintItem Lvl, "PolicyAdministrator", U Next Readers = Obj.PolicyReaders For Each U In Readers AzPrintItem Lvl, "PolicyReader", U Next WScript.Echo "" End Sub Sub AzPrintApp(Lvl, Obj) AzPrintCommon Lvl, "Application", Obj AzPrintAttr Lvl, Obj, AZ_PROP_APPLICATION_AUTHZ_INTERFACE_CLSID, "AZ_PROP_APPLICATION_AUTHZ_INTERFACE_CLSID" AzPrintAttr Lvl, Obj, AZ_PROP_APPLICATION_VERSION, "AZ_PROP_APPLICATION_VERSION" AzPrintAttr Lvl, Obj, AZ_PROP_GENERATE_AUDITS, "AZ_PROP_GENERATE_AUDITS" Writers = Obj.PolicyAdministrators For Each U In Writers AzPrintItem Lvl, "PolicyAdministrator", U Next Readers = Obj.PolicyReaders For Each U In Readers AzPrintItem Lvl, "PolicyReader", U Next WScript.Echo "" End Sub Sub AzPrintOp(Lvl, Obj) AzPrintCommon Lvl, "Operation", Obj AzPrintAttr Lvl, Obj, AZ_PROP_OPERATION_ID, "AZ_PROP_OPERATION_ID" WScript.Echo "" End Sub Sub AzPrintTask(Lvl, Obj) Dim Ops, Tasks AzPrintCommon Lvl, "Task", Obj AzPrintAttr Lvl, Obj, AZ_PROP_TASK_BIZRULE, "AZ_PROP_TASK_BIZRULE" AzPrintAttr Lvl, Obj, AZ_PROP_TASK_BIZRULE_LANGUAGE, "AZ_PROP_TASK_BIZRULE_LANGUAGE" AzPrintAttr Lvl, Obj, AZ_PROP_TASK_BIZRULE_IMPORTED_PATH, "AZ_PROP_TASK_BIZRULE_IMPORTED_PATH" AzPrintAttr Lvl, Obj, AZ_PROP_TASK_IS_ROLE_DEFINITION, "AZ_PROP_TASK_IS_ROLE_DEFINITION" Ops = Obj.GetProperty(AZ_PROP_TASK_OPERATIONS, 0) For Each Op In Ops AzPrintItem Lvl, "OperationLink", Op Next Tasks = Obj.GetProperty(AZ_PROP_TASK_TASKS, 0) For Each Task In Tasks AzPrintItem Lvl, "TaskLink", Task Next WScript.Echo "" End Sub Sub AzPrintGroup(Lvl, Obj) Dim Mems, NonMems, AppMems, AppNonMems AzPrintCommon Lvl, "Group", Obj AzPrintAttr Lvl, Obj, AZ_PROP_GROUP_TYPE, "AZ_PROP_GROUP_TYPE" AzPrintAttr Lvl, Obj, AZ_PROP_GROUP_LDAP_QUERY, "AZ_PROP_GROUP_LDAP_QUERY" Mems = Obj.GetProperty(AZ_PROP_GROUP_MEMBERS, 0) For Each Mem In Mems AzPrintItem Lvl, "SidMember", Mem Next NonMems = Obj.GetProperty(AZ_PROP_GROUP_NON_MEMBERS, 0) For Each Mem In NonMems AzPrintItem Lvl, "SidNonMember", Mem Next AppMems = Obj.GetProperty(AZ_PROP_GROUP_APP_MEMBERS, 0) For Each Mem In AppMems AzPrintItem Lvl, "AppMemberLink", Mem Next AppNonMems = Obj.GetProperty(AZ_PROP_GROUP_APP_NON_MEMBERS, 0) For Each Mem In AppNonMems AzPrintItem Lvl, "AppNonMemberLink", Mem Next WScript.Echo "" End Sub Sub AzPrintScope(Lvl, Obj) AzPrintCommon Lvl, "Scope", Obj Writers = Obj.PolicyAdministrators For Each U In Writers AzPrintItem Lvl, "PolicyAdministrator", U Next Readers = Obj.PolicyReaders For Each U In Readers AzPrintItem Lvl, "PolicyReader", U Next WScript.Echo "" End Sub Sub AzPrintRole(Lvl, Obj) Dim Mems, SidMems, Ops, Tasks AzPrintCommon Lvl, "Role", Obj Ops = Obj.GetProperty(AZ_PROP_ROLE_OPERATIONS, 0) For Each Op In Ops AzPrintItem Lvl, "OperationLink", Op Next Tasks = Obj.GetProperty(AZ_PROP_ROLE_TASKS, 0) For Each Task In Tasks AzPrintItem Lvl, "TaskLink", Task Next SidMems = Obj.GetProperty(AZ_PROP_ROLE_MEMBERS, 0) For Each Mem In SidMems AzPrintItem Lvl, "SidMember", Mem Next Mems = Obj.GetProperty(AZ_PROP_ROLE_APP_MEMBERS, 0) For Each Mem In Mems AzPrintItem Lvl, "AppMemberLink", Mem Next WScript.Echo "" End Sub Sub AzPrintPolicy(Admin) AzPrintAdmin 0, Admin ' navigate whole tree Dim Apps, App Set Apps=Admin.Applications For Each App In Apps AzPrintApp 1, App Dim Ops, Op Set Ops=App.Operations For Each Op In Ops AzPrintOp 2, Op Next Dim Tks, Tk Set Tks=App.Tasks For Each Tk In Tks AzPrintTask 2, Tk Next Dim Gps, Gp Set Gps=App.ApplicationGroups For Each Gp In Gps AzPrintGroup 2, Gp Next Dim Rls, Rl Set Rls=App.Roles For Each Rl In Rls AzPrintRole 2, Rl Next Dim Scs, Sc Set Scs=App.Scopes For Each Sc In Scs AzPrintScope 2, Sc Dim STks, STk Set STks=Sc.Tasks For Each STk In STks AzPrintTask 3, STk Next Dim SGps, SGp Set SGps=Sc.ApplicationGroups For Each SGp In SGps AzPrintGroup 3, SGp Next Dim SRls, SRl Set SRls=Sc.Roles For Each SRl In SRls AzPrintRole 3, SRl Next Set STks=Nothing Set SGps=Nothing Set SRls=Nothing Next Set Ops=Nothing Set Tks=Nothing Set Gps=Nothing Set Rls=Nothing Set Scs=Nothing Next Dim Groups, Group Set Groups=Admin.ApplicationGroups For Each Group In Groups AzPrintGroup 1, Group Next Set Groups=Nothing Set Apps=Nothing End Sub 'AzPrintPolicy Sub AzPrintADPolicy(url) Dim Admin WScript.Echo "Store = " & url Set Admin=CreateObject("AzRoles.AzAdminManager") Admin.Initialize 0, url WScript.Echo "" WScript.Echo "Admin Initialized" AzPrintPolicy Admin Set Admin=Nothing End Sub 'AzPrintADPolicy