From 97e20a7bf6e78e5711dca8fd52fa3f7ccb4d80ba Mon Sep 17 00:00:00 2001 From: Apress Date: Fri, 7 Oct 2016 03:45:18 +0100 Subject: [PATCH] First commit --- 3044.pdf | Bin 0 -> 172494 bytes 3045.pdf | Bin 0 -> 396863 bytes 9781590597125.jpg | Bin 0 -> 11437 bytes Chapter02/2-1_DisplaySiteBoundaries.vbs | 28 ++++ Chapter02/2-2_AddIPSiteBoundary.vbs | 39 ++++++ Chapter02/2-3_ComputeIPSubnet.vbs | 35 +++++ Chapter02/2-4_AddADSiteBoundary.vbs | 40 ++++++ Chapter02/2-5_AddSiteBoundaries.vbs | 78 +++++++++++ Chapter02/2-6_ShowRoamingSiteBoundaries.vbs | 40 ++++++ Chapter02/2-7_AddRoamingSiteBoundaries.vbs | 95 +++++++++++++ Chapter03/3-10_SetUpdateCollInterval.vbs | 24 ++++ Chapter03/3-11_ConvertToWMIDate.vbs | 14 ++ Chapter03/3-12_LimitCollectionMembership.vbs | 26 ++++ Chapter03/3-13_DelDirectMemberShip.vbs | 23 ++++ Chapter03/3-14_DelResource.vbs | 34 +++++ Chapter03/3-15_ModCollPerms.vbs | 22 +++ Chapter03/3-16_ListAdvertToColl.vbs | 60 +++++++++ .../3-17_ViewAssignedAdvertsToMachine.vbs | 55 ++++++++ Chapter03/3-1_CreateCollection.vbs | 39 ++++++ Chapter03/3-2_ListSubCollections.vbs | 44 ++++++ Chapter03/3-3_ListCollectionIDs.vbs | 19 +++ Chapter03/3-4_DeleteCollection.vbs | 18 +++ Chapter03/3-5_CreateCollectionLink.vbs | 31 +++++ Chapter03/3-6_CreateDirectMembershipRule.vbs | 32 +++++ Chapter03/3-7_CreateQueryMembershipRule.vbs | 35 +++++ Chapter03/3-8_CreateSubSelectQueryRule.vbs | 47 +++++++ Chapter03/3-9_UpdateCollMembership.vbs | 19 +++ Chapter04/4-10_LoadDPs_OneSite.vbs | 32 +++++ Chapter04/4-11_LoadDPs_All.vbs | 30 +++++ Chapter04/4-12_RemoveFromDPs_OneSite.vbs | 26 ++++ Chapter04/4-13_RemoveFromAllDPs.vbs | 23 ++++ Chapter04/4-14_UnloadOneDP.vbs | 31 +++++ Chapter04/4-15_UpdateDPs.vbs | 18 +++ Chapter04/4-16_RefreshDPs.vbs | 25 ++++ Chapter04/4-17_CreatePackageFolder.vbs | 22 +++ Chapter04/4-18_MovePackagesBtwnFolder.vbs | 14 ++ Chapter04/4-1_CreatePackage.vbs | 35 +++++ Chapter04/4-2_ShowPackageIDs.vbs | 18 +++ Chapter04/4-3_EnumPackagesAndFolders.vbs | 76 +++++++++++ Chapter04/4-4_DeletePackage.vbs | 22 +++ Chapter04/4-5_ModPkgSourceLocation.vbs | 24 ++++ Chapter04/4-6_ModPkgProps.vbs | 26 ++++ Chapter04/4-7_ModPkg-DPSettings.vbs | 22 +++ Chapter04/4-8_ModPkgPerms.vbs | 29 ++++ Chapter04/4-9_UpdateDP_Sched.vbs | 31 +++++ ...agesWithPrograms_andProgramEnvironment.vbs | 61 +++++++++ .../5-11_ShowAllProgramsWithDependencies.vbs | 31 +++++ Chapter05/5-12_ConfigRunFrequency.vbs | 26 ++++ ...13_ShowAllProgramsWithNotificationsSet.vbs | 35 +++++ Chapter05/5-14_DisableProgram.vbs | 34 +++++ Chapter05/5-15_ShowAllDisabledPrograms.vbs | 38 ++++++ Chapter05/5-16_Re-EnableProgram.vbs | 34 +++++ ...sWithWindowsInstallerSourcesConfigured.vbs | 31 +++++ Chapter05/5-18_EnableMOMAlerts.vbs | 45 +++++++ .../5-19_ExportingPackageProgramtoMOF.vbs | 97 ++++++++++++++ Chapter05/5-1_CreateProgram.vbs | 23 ++++ .../5-20_ExportingALLPackageProgramtoMOFs.vbs | 93 +++++++++++++ Chapter05/5-2_DeleteProgram.vbs | 21 +++ Chapter05/5-3_DeletePrograms.vbs | 22 +++ .../5-4_ViewingAllProgramsInAPackage.vbs | 28 ++++ .../5-5_ViewingAllPackagesWithPrograms.vbs | 29 ++++ Chapter05/5-6_ModifyProgram.vbs | 22 +++ .../5-7_ModifyCategoryOnMultiplePrograms.vbs | 30 +++++ Chapter05/5-8_ShowSupportedPlatforms.vbs | 41 ++++++ .../5-9_ShowAllExplicitPlatformsWO2K.vbs | 57 ++++++++ Chapter05/5-BonusConfigCmdLinProps.vbs | 57 ++++++++ ...ert_RecurringSMS_ST_RecurMonthlyByDate.vbs | 60 +++++++++ ..._RecurringSMS_ST_RecurMonthlyByWeekDay.vbs | 67 ++++++++++ ..._ModAdvert_RecurringSMS_ST_RecurWeekly.vbs | 63 +++++++++ .../6-13-Bonus_ModAdvert_RunOnUserLogoff.vbs | 44 ++++++ .../6-13-Bonus_ModAdvert_RunOnUserLogon.vbs | 33 +++++ .../6-13_ModAdvert_AssignImmediately.vbs | 31 +++++ Chapter06/6-14_ShowMandatoryAssignments.vbs | 108 +++++++++++++++ Chapter06/6-15_ExpireAdvert.vbs | 43 ++++++ ...stAllAdvertsThatHaveExpireTimesEnabled.vbs | 50 +++++++ Chapter06/6-17_ChangeAdvertPriority.vbs | 23 ++++ Chapter06/6-18_RemoteClientFlagsFromDP.vbs | 25 ++++ Chapter06/6-19_RemoteClientFlagsDLFromDP.vbs | 26 ++++ Chapter06/6-1_CreateAdvert.vbs | 24 ++++ ...rtsConfiguredtoDandE_RemoteClientFlags.vbs | 60 +++++++++ Chapter06/6-21_CreateAdvertFolder.vbs | 30 +++++ Chapter06/6-22_MoveAdvertsBetweenFolders.vbs | 26 ++++ Chapter06/6-23_DisableProgram_Advert.vbs | 32 +++++ Chapter06/6-24_ShowAdvertStatus.vbs | 49 +++++++ Chapter06/6-2_DeleteAdvert.vbs | 20 +++ .../6-3_DeleteMultipleAdverts_SamePackage.vbs | 22 +++ Chapter06/6-4_ListAdverts.vbs | 21 +++ Chapter06/6-5_ModifyAdvert.vbs | 23 ++++ Chapter06/6-6_ModifyAdvert.vbs | 21 +++ Chapter06/6-7_ModAdvert_Voluntary.vbs | 24 ++++ Chapter06/6-8_ModAdvert_Mandatory.vbs | 54 ++++++++ ...odAdvert_RecurringSMS_ST_RecurInterval.vbs | 59 ++++++++ .../6-Bonus_ShowAdvertAssignmentInfo.vbs | 33 +++++ Chapter06/RemoteClientflags.txt | 18 +++ ...-10_DisplayMeteredFileUsageSummaryData.vbs | 67 ++++++++++ Chapter07/7-1_CreatingMeteringRule.vbs | 30 +++++ .../7-2_DeletingASoftwareMeteringRule.vbs | 22 +++ .../7-3_ViewingAllSoftwareMeteringRules.vbs | 23 ++++ Chapter07/7-4_ModifyMeteringRule.vbs | 23 ++++ Chapter07/7-5_DisableMeteringRule.vbs | 22 +++ Chapter07/7-6_EnableMeteringRule.vbs | 28 ++++ Chapter07/7-7_CreateMeteringFolder.vbs | 28 ++++ .../7-8_MoveMeteringRulesBetweenFolders.vbs | 23 ++++ Chapter07/7-9_DisplayMonthlySummaryData.vbs | 54 ++++++++ Chapter08/8-1_ListAllReports.vbs | 30 +++++ Chapter08/8-2_CreateReportFolder.vbs | 26 ++++ Chapter08/8-3_MoveReportssBetweenFolders.vbs | 24 ++++ Chapter09/9-10_ListAllCollLimitQueries.vbs | 20 +++ Chapter09/9-11_CreatePromptedQuery.vbs | 19 +++ Chapter09/9-12_ModifyQueryPerms.vbs | 30 +++++ .../9-13_DisplayQueryInstanceInfo_MOF.vbs | 21 +++ Chapter09/9-14_DisplayQueryInstance_XML.vbs | 21 +++ Chapter09/9-15_ExportCustomQueries.vbs | 50 +++++++ Chapter09/9-16_SampleQuery_MOF.mof | 21 +++ ...leSubSelect_SystemsWithoutAdobeAcrobat.txt | 13 ++ Chapter09/9-19_SampleWQLWithGetDate.txt | 13 ++ Chapter09/9-1_CreateAQuery.vbs | 19 +++ Chapter09/9-20_CreateQueryFolder.vbs | 21 +++ .../9-21_MovingQueriesBetweenFolders.vbs | 25 ++++ Chapter09/9-2_CreateQuery-VerifyName.vbs | 36 +++++ Chapter09/9-3_ListQueries.vbs | 20 +++ Chapter09/9-4_DeleteQuery.vbs | 21 +++ Chapter09/9-5_DeleteMultipleQueries.vbs | 21 +++ Chapter09/9-6_ModifyQuery.vbs | 20 +++ Chapter09/9-8_DisplayWQL.vbs | 16 +++ Chapter09/9-9_CollectionLimitQuery.vbs | 19 +++ Chapter10/10-1_SWInvQuery.vbs | 32 +++++ ...-2_ListCollectedFilesForSpecificSystem.vbs | 42 ++++++ .../10-3_ListSpecificFileForAllSystems.vbs | 29 ++++ ...0-4_ExtractCollectedFilesForAllSystems.vbs | 37 +++++ Chapter10/10-5_SearchINIForSpecificData.vbs | 45 +++++++ Chapter11/11-9_HWInvQuery.vbs | 28 ++++ Chapter12/12-1_TurnOffPermissionRequired.mof | 16 +++ .../12-2_RemoveLocalRemoteToolsPolicies.vbs | 12 ++ Chapter13/13-1_ModifyShortcuts.vbs | 31 +++++ Chapter13/13-2_FindFileAndReplace.vbs | 29 ++++ Chapter13/CreateShortcutOnAllUsersDesktop.ipf | 67 ++++++++++ .../CreateShortcutOnEachUsersDesktop.ipf | 122 +++++++++++++++++ .../CreateShortcutOnEachUsersQuickLaunch.ipf | 126 ++++++++++++++++++ Chapter13/FindFileAndReplace.ipf | 74 ++++++++++ Chapter13/FindFileAndReplace_II.ipf | 111 +++++++++++++++ Chapter13/HKCU_RegMod.ipf | 108 +++++++++++++++ Chapter13/foo2.doc | Bin 0 -> 10752 bytes Chapter15/15-1_DisplayStatusMessageQuery.vbs | 19 +++ .../15-2_DisplayStatusMessageQueries.vbs | 20 +++ Chapter15/15-3_ExportStatusMessagesToMOF.vbs | 50 +++++++ Chapter16/16-10_InitiateDDR_COM.vbs | 8 ++ Chapter16/16-11_InitiateFileCOLL.vbs | 9 ++ Chapter16/16-12_InitiateFileCOLL_COM.vbs | 8 ++ Chapter16/16-13_InitiateSWM.vbs | 9 ++ Chapter16/16-14_InitiateSWM_COM.vbs | 8 ++ Chapter16/16-15_InitiateUserPol_COM.vbs | 8 ++ Chapter16/16-16_InitiateWIUpdate.vbs | 8 ++ Chapter16/16-17_InitiateWIUpdate_COM.vbs | 8 ++ Chapter16/16-18_InitiateClientRepair.vbs | 5 + ...16-19_InitiateClientRepair_CommandLine.vbs | 6 + Chapter16/16-1_GetClientComponents_COM.vbs | 15 +++ Chapter16/16-20_GetAssignedSite.vbs | 6 + Chapter16/16-21_GetAssignedSite_COM.vbs | 3 + Chapter16/16-22_DiscoverAssignedSite.vbs | 11 ++ Chapter16/16-23_DiscoverAssignedSite_COM.vbs | 3 + Chapter16/16-24_SetAssignedSite.vbs | 23 ++++ Chapter16/16-26_GetCacheSize.vbs | 10 ++ Chapter16/16-27_GetCacheSize_COM.vbs | 4 + Chapter16/16-28_SetCacheSize.vbs | 11 ++ Chapter16/16-29_SetCacheSize_COM.vbs | 4 + Chapter16/16-2_GetClientComponents.vbs | 8 ++ Chapter16/16-30_RerunAdvert.vbs | 43 ++++++ Chapter16/16-31_RerunAdvert_COM.vbs | 9 ++ Chapter16/16-32_GetCurrentMP_PMP.vbs | 18 +++ Chapter16/16-33_DisplayLastHWSWInvDates.vbs | 40 ++++++ Chapter16/16-34_DisplayAdverts.vbs | 18 +++ Chapter16/16-35_DisplayAdverts_COM.vbs | 8 ++ Chapter16/16-36_DisplayRunningAdverts.vbs | 10 ++ Chapter16/16-37_DisplayAdvertHistory.vbs | 49 +++++++ Chapter16/16-3_ForceHardwareInv.vbs | 18 +++ Chapter16/16-4_ForceHardwareInv_COM.vbs | 8 ++ Chapter16/16-5_ForceSoftwareInv.vbs | 18 +++ Chapter16/16-6_SoftwareInv_COM.vbs | 8 ++ Chapter16/16-7_RefreshMachinePolicy.vbs | 9 ++ .../16-8_RefreshAndEvalMachinePolicy_COM.vbs | 8 ++ Chapter16/16-9_InitiateDDR.vbs | 9 ++ Chapter16/16_25_SetAssignedSite_Adv.vbs | 14 ++ LICENSE.txt | 27 ++++ README.md | 15 +++ README.txt | 1 + contributing.md | 14 ++ 187 files changed, 5688 insertions(+) create mode 100644 3044.pdf create mode 100644 3045.pdf create mode 100644 9781590597125.jpg create mode 100644 Chapter02/2-1_DisplaySiteBoundaries.vbs create mode 100644 Chapter02/2-2_AddIPSiteBoundary.vbs create mode 100644 Chapter02/2-3_ComputeIPSubnet.vbs create mode 100644 Chapter02/2-4_AddADSiteBoundary.vbs create mode 100644 Chapter02/2-5_AddSiteBoundaries.vbs create mode 100644 Chapter02/2-6_ShowRoamingSiteBoundaries.vbs create mode 100644 Chapter02/2-7_AddRoamingSiteBoundaries.vbs create mode 100644 Chapter03/3-10_SetUpdateCollInterval.vbs create mode 100644 Chapter03/3-11_ConvertToWMIDate.vbs create mode 100644 Chapter03/3-12_LimitCollectionMembership.vbs create mode 100644 Chapter03/3-13_DelDirectMemberShip.vbs create mode 100644 Chapter03/3-14_DelResource.vbs create mode 100644 Chapter03/3-15_ModCollPerms.vbs create mode 100644 Chapter03/3-16_ListAdvertToColl.vbs create mode 100644 Chapter03/3-17_ViewAssignedAdvertsToMachine.vbs create mode 100644 Chapter03/3-1_CreateCollection.vbs create mode 100644 Chapter03/3-2_ListSubCollections.vbs create mode 100644 Chapter03/3-3_ListCollectionIDs.vbs create mode 100644 Chapter03/3-4_DeleteCollection.vbs create mode 100644 Chapter03/3-5_CreateCollectionLink.vbs create mode 100644 Chapter03/3-6_CreateDirectMembershipRule.vbs create mode 100644 Chapter03/3-7_CreateQueryMembershipRule.vbs create mode 100644 Chapter03/3-8_CreateSubSelectQueryRule.vbs create mode 100644 Chapter03/3-9_UpdateCollMembership.vbs create mode 100644 Chapter04/4-10_LoadDPs_OneSite.vbs create mode 100644 Chapter04/4-11_LoadDPs_All.vbs create mode 100644 Chapter04/4-12_RemoveFromDPs_OneSite.vbs create mode 100644 Chapter04/4-13_RemoveFromAllDPs.vbs create mode 100644 Chapter04/4-14_UnloadOneDP.vbs create mode 100644 Chapter04/4-15_UpdateDPs.vbs create mode 100644 Chapter04/4-16_RefreshDPs.vbs create mode 100644 Chapter04/4-17_CreatePackageFolder.vbs create mode 100644 Chapter04/4-18_MovePackagesBtwnFolder.vbs create mode 100644 Chapter04/4-1_CreatePackage.vbs create mode 100644 Chapter04/4-2_ShowPackageIDs.vbs create mode 100644 Chapter04/4-3_EnumPackagesAndFolders.vbs create mode 100644 Chapter04/4-4_DeletePackage.vbs create mode 100644 Chapter04/4-5_ModPkgSourceLocation.vbs create mode 100644 Chapter04/4-6_ModPkgProps.vbs create mode 100644 Chapter04/4-7_ModPkg-DPSettings.vbs create mode 100644 Chapter04/4-8_ModPkgPerms.vbs create mode 100644 Chapter04/4-9_UpdateDP_Sched.vbs create mode 100644 Chapter05/5-10_DisplayAllPackagesWithPrograms_andProgramEnvironment.vbs create mode 100644 Chapter05/5-11_ShowAllProgramsWithDependencies.vbs create mode 100644 Chapter05/5-12_ConfigRunFrequency.vbs create mode 100644 Chapter05/5-13_ShowAllProgramsWithNotificationsSet.vbs create mode 100644 Chapter05/5-14_DisableProgram.vbs create mode 100644 Chapter05/5-15_ShowAllDisabledPrograms.vbs create mode 100644 Chapter05/5-16_Re-EnableProgram.vbs create mode 100644 Chapter05/5-17_ShowAllPackagesProgramsWithWindowsInstallerSourcesConfigured.vbs create mode 100644 Chapter05/5-18_EnableMOMAlerts.vbs create mode 100644 Chapter05/5-19_ExportingPackageProgramtoMOF.vbs create mode 100644 Chapter05/5-1_CreateProgram.vbs create mode 100644 Chapter05/5-20_ExportingALLPackageProgramtoMOFs.vbs create mode 100644 Chapter05/5-2_DeleteProgram.vbs create mode 100644 Chapter05/5-3_DeletePrograms.vbs create mode 100644 Chapter05/5-4_ViewingAllProgramsInAPackage.vbs create mode 100644 Chapter05/5-5_ViewingAllPackagesWithPrograms.vbs create mode 100644 Chapter05/5-6_ModifyProgram.vbs create mode 100644 Chapter05/5-7_ModifyCategoryOnMultiplePrograms.vbs create mode 100644 Chapter05/5-8_ShowSupportedPlatforms.vbs create mode 100644 Chapter05/5-9_ShowAllExplicitPlatformsWO2K.vbs create mode 100644 Chapter05/5-BonusConfigCmdLinProps.vbs create mode 100644 Chapter06/6-10_ModAdvert_RecurringSMS_ST_RecurMonthlyByDate.vbs create mode 100644 Chapter06/6-11_ModAdvert_RecurringSMS_ST_RecurMonthlyByWeekDay.vbs create mode 100644 Chapter06/6-12_ModAdvert_RecurringSMS_ST_RecurWeekly.vbs create mode 100644 Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogoff.vbs create mode 100644 Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogon.vbs create mode 100644 Chapter06/6-13_ModAdvert_AssignImmediately.vbs create mode 100644 Chapter06/6-14_ShowMandatoryAssignments.vbs create mode 100644 Chapter06/6-15_ExpireAdvert.vbs create mode 100644 Chapter06/6-16_ListAllAdvertsThatHaveExpireTimesEnabled.vbs create mode 100644 Chapter06/6-17_ChangeAdvertPriority.vbs create mode 100644 Chapter06/6-18_RemoteClientFlagsFromDP.vbs create mode 100644 Chapter06/6-19_RemoteClientFlagsDLFromDP.vbs create mode 100644 Chapter06/6-1_CreateAdvert.vbs create mode 100644 Chapter06/6-20_ShowAdvertsConfiguredtoDandE_RemoteClientFlags.vbs create mode 100644 Chapter06/6-21_CreateAdvertFolder.vbs create mode 100644 Chapter06/6-22_MoveAdvertsBetweenFolders.vbs create mode 100644 Chapter06/6-23_DisableProgram_Advert.vbs create mode 100644 Chapter06/6-24_ShowAdvertStatus.vbs create mode 100644 Chapter06/6-2_DeleteAdvert.vbs create mode 100644 Chapter06/6-3_DeleteMultipleAdverts_SamePackage.vbs create mode 100644 Chapter06/6-4_ListAdverts.vbs create mode 100644 Chapter06/6-5_ModifyAdvert.vbs create mode 100644 Chapter06/6-6_ModifyAdvert.vbs create mode 100644 Chapter06/6-7_ModAdvert_Voluntary.vbs create mode 100644 Chapter06/6-8_ModAdvert_Mandatory.vbs create mode 100644 Chapter06/6-9_ModAdvert_RecurringSMS_ST_RecurInterval.vbs create mode 100644 Chapter06/6-Bonus_ShowAdvertAssignmentInfo.vbs create mode 100644 Chapter06/RemoteClientflags.txt create mode 100644 Chapter07/7-10_DisplayMeteredFileUsageSummaryData.vbs create mode 100644 Chapter07/7-1_CreatingMeteringRule.vbs create mode 100644 Chapter07/7-2_DeletingASoftwareMeteringRule.vbs create mode 100644 Chapter07/7-3_ViewingAllSoftwareMeteringRules.vbs create mode 100644 Chapter07/7-4_ModifyMeteringRule.vbs create mode 100644 Chapter07/7-5_DisableMeteringRule.vbs create mode 100644 Chapter07/7-6_EnableMeteringRule.vbs create mode 100644 Chapter07/7-7_CreateMeteringFolder.vbs create mode 100644 Chapter07/7-8_MoveMeteringRulesBetweenFolders.vbs create mode 100644 Chapter07/7-9_DisplayMonthlySummaryData.vbs create mode 100644 Chapter08/8-1_ListAllReports.vbs create mode 100644 Chapter08/8-2_CreateReportFolder.vbs create mode 100644 Chapter08/8-3_MoveReportssBetweenFolders.vbs create mode 100644 Chapter09/9-10_ListAllCollLimitQueries.vbs create mode 100644 Chapter09/9-11_CreatePromptedQuery.vbs create mode 100644 Chapter09/9-12_ModifyQueryPerms.vbs create mode 100644 Chapter09/9-13_DisplayQueryInstanceInfo_MOF.vbs create mode 100644 Chapter09/9-14_DisplayQueryInstance_XML.vbs create mode 100644 Chapter09/9-15_ExportCustomQueries.vbs create mode 100644 Chapter09/9-16_SampleQuery_MOF.mof create mode 100644 Chapter09/9-17_SampleSubSelect_SystemsWithoutAdobeAcrobat.txt create mode 100644 Chapter09/9-19_SampleWQLWithGetDate.txt create mode 100644 Chapter09/9-1_CreateAQuery.vbs create mode 100644 Chapter09/9-20_CreateQueryFolder.vbs create mode 100644 Chapter09/9-21_MovingQueriesBetweenFolders.vbs create mode 100644 Chapter09/9-2_CreateQuery-VerifyName.vbs create mode 100644 Chapter09/9-3_ListQueries.vbs create mode 100644 Chapter09/9-4_DeleteQuery.vbs create mode 100644 Chapter09/9-5_DeleteMultipleQueries.vbs create mode 100644 Chapter09/9-6_ModifyQuery.vbs create mode 100644 Chapter09/9-8_DisplayWQL.vbs create mode 100644 Chapter09/9-9_CollectionLimitQuery.vbs create mode 100644 Chapter10/10-1_SWInvQuery.vbs create mode 100644 Chapter10/10-2_ListCollectedFilesForSpecificSystem.vbs create mode 100644 Chapter10/10-3_ListSpecificFileForAllSystems.vbs create mode 100644 Chapter10/10-4_ExtractCollectedFilesForAllSystems.vbs create mode 100644 Chapter10/10-5_SearchINIForSpecificData.vbs create mode 100644 Chapter11/11-9_HWInvQuery.vbs create mode 100644 Chapter12/12-1_TurnOffPermissionRequired.mof create mode 100644 Chapter12/12-2_RemoveLocalRemoteToolsPolicies.vbs create mode 100644 Chapter13/13-1_ModifyShortcuts.vbs create mode 100644 Chapter13/13-2_FindFileAndReplace.vbs create mode 100644 Chapter13/CreateShortcutOnAllUsersDesktop.ipf create mode 100644 Chapter13/CreateShortcutOnEachUsersDesktop.ipf create mode 100644 Chapter13/CreateShortcutOnEachUsersQuickLaunch.ipf create mode 100644 Chapter13/FindFileAndReplace.ipf create mode 100644 Chapter13/FindFileAndReplace_II.ipf create mode 100644 Chapter13/HKCU_RegMod.ipf create mode 100644 Chapter13/foo2.doc create mode 100644 Chapter15/15-1_DisplayStatusMessageQuery.vbs create mode 100644 Chapter15/15-2_DisplayStatusMessageQueries.vbs create mode 100644 Chapter15/15-3_ExportStatusMessagesToMOF.vbs create mode 100644 Chapter16/16-10_InitiateDDR_COM.vbs create mode 100644 Chapter16/16-11_InitiateFileCOLL.vbs create mode 100644 Chapter16/16-12_InitiateFileCOLL_COM.vbs create mode 100644 Chapter16/16-13_InitiateSWM.vbs create mode 100644 Chapter16/16-14_InitiateSWM_COM.vbs create mode 100644 Chapter16/16-15_InitiateUserPol_COM.vbs create mode 100644 Chapter16/16-16_InitiateWIUpdate.vbs create mode 100644 Chapter16/16-17_InitiateWIUpdate_COM.vbs create mode 100644 Chapter16/16-18_InitiateClientRepair.vbs create mode 100644 Chapter16/16-19_InitiateClientRepair_CommandLine.vbs create mode 100644 Chapter16/16-1_GetClientComponents_COM.vbs create mode 100644 Chapter16/16-20_GetAssignedSite.vbs create mode 100644 Chapter16/16-21_GetAssignedSite_COM.vbs create mode 100644 Chapter16/16-22_DiscoverAssignedSite.vbs create mode 100644 Chapter16/16-23_DiscoverAssignedSite_COM.vbs create mode 100644 Chapter16/16-24_SetAssignedSite.vbs create mode 100644 Chapter16/16-26_GetCacheSize.vbs create mode 100644 Chapter16/16-27_GetCacheSize_COM.vbs create mode 100644 Chapter16/16-28_SetCacheSize.vbs create mode 100644 Chapter16/16-29_SetCacheSize_COM.vbs create mode 100644 Chapter16/16-2_GetClientComponents.vbs create mode 100644 Chapter16/16-30_RerunAdvert.vbs create mode 100644 Chapter16/16-31_RerunAdvert_COM.vbs create mode 100644 Chapter16/16-32_GetCurrentMP_PMP.vbs create mode 100644 Chapter16/16-33_DisplayLastHWSWInvDates.vbs create mode 100644 Chapter16/16-34_DisplayAdverts.vbs create mode 100644 Chapter16/16-35_DisplayAdverts_COM.vbs create mode 100644 Chapter16/16-36_DisplayRunningAdverts.vbs create mode 100644 Chapter16/16-37_DisplayAdvertHistory.vbs create mode 100644 Chapter16/16-3_ForceHardwareInv.vbs create mode 100644 Chapter16/16-4_ForceHardwareInv_COM.vbs create mode 100644 Chapter16/16-5_ForceSoftwareInv.vbs create mode 100644 Chapter16/16-6_SoftwareInv_COM.vbs create mode 100644 Chapter16/16-7_RefreshMachinePolicy.vbs create mode 100644 Chapter16/16-8_RefreshAndEvalMachinePolicy_COM.vbs create mode 100644 Chapter16/16-9_InitiateDDR.vbs create mode 100644 Chapter16/16_25_SetAssignedSite_Adv.vbs create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 README.txt create mode 100644 contributing.md diff --git a/3044.pdf b/3044.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d563939f18b13d406cfdc8eae279c808b5c7c632 GIT binary patch literal 172494 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 literal 0 HcmV?d00001 diff --git a/3045.pdf b/3045.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3f00146daf4ce531d8487350a535e157b115cbb6 GIT binary patch literal 396863 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

%0B0)rus0fJUAW)R6xLgx$7 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 v%*Ho_pREJoscSuyn}}BgSn3Hafhomh_v4#%}~} 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

TOj<6?;v!zZwOQ);lu9`X5oQ9 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 I3?=#h0dHL6wEzGB literal 0 HcmV?d00001 diff --git a/9781590597125.jpg b/9781590597125.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4166c05de9191d58b7a47eb1d71606715a587379 GIT binary patch literal 11437 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 +strSubnet = "10.5.123.0" 'replace with desired subnet +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.SiteCode + end if +Next + +Set WbemContext=CreateObject("WbemScripting.SWbemNamedValueSet") +WbemContext.Add "SessionHandle", objSMS.ExecMethod _ + ("SMS_SiteControlFile", "GetSessionHandle").SessionHandle +objSMS.ExecMethod "SMS_SiteControlFile.Filetype=1,SiteCode='" _ + & strSMSSiteCode & "'", "Refresh", , , WbemContext +'retrieve boundary details +Set WbemInst = objSMS.Get _ + ("SMS_SCI_SiteAssignment.Filetype=2,Itemtype='Site Assignment'," _ + & "SiteCode='" & strSMSSiteCode & _ + "',ItemName='Site Assignment'", , WbemContext) +proparray1 = WbemInst.AssignDetails +proparray2 = WbemInst.AssignTypes + +onemore = ubound(proparray1) + 1 +redim preserve proparray1( onemore ) 'add one to size of array +redim preserve proparray2( onemore ) +proparray1( onemore ) = strSubnet +proparray2( onemore ) = "IP Subnet" +WbemInst.AssignDetails = proparray1 +WbemInst.AssignTypes = proparray2 +WbemInst.Put_ , WbemContext +objSMS.ExecMethod "SMS_SiteControlFile.Filetype=0,SiteCode=""" & _ + strSMSSiteCode & """", "Commit", , , WbemContext +objSMS.Get("SMS_SiteControlFile").ReleaseSessionHandle _ + WbemContext.Item("SessionHandle").Value diff --git a/Chapter02/2-3_ComputeIPSubnet.vbs b/Chapter02/2-3_ComputeIPSubnet.vbs new file mode 100644 index 0000000..ce6f839 --- /dev/null +++ b/Chapter02/2-3_ComputeIPSubnet.vbs @@ -0,0 +1,35 @@ +'adopted from the SMS 2003 Scenarios and Procedures guide +strIPAddress = inputbox("Enter IP Address") +strSubnetMask = inputbox("Enter Subnet Mask") + +dim addressbytes(4) +dim subnetmaskbytes(4) +i=0 +period = 1 +while period<>len( strIPAddress ) + 2 + prevperiod=period + period = instr( period+1, strIPAddress, "." ) + 1 + if period = 1 then period = len( strIPAddress ) + 2 + addressbyte = _ + mid( strIPAddress, prevperiod, period-prevperiod-1 ) + addressbytes(i)=addressbyte + i=i+1 +wend + +i=0 +period = 1 +while period<>len( strSubnetMask ) + 2 + prevperiod=period + period = instr( period+1, strSubnetMask, "." ) + 1 + if period = 1 then period = len( strSubnetMask ) + 2 + subnetmaskbyte = _ + mid( strSubnetMask, prevperiod, period-prevperiod-1 ) + subnetmaskbytes(i)=subnetmaskbyte + i=i+1 +wend +for i=0 to 3 + subnet = subnet & _ + (addressbytes(i) AND subnetmaskbytes(i)) & "." +next +subnet = left( subnet, len(subnet)-1 ) +msgbox "Subnet: " & subnet diff --git a/Chapter02/2-4_AddADSiteBoundary.vbs b/Chapter02/2-4_AddADSiteBoundary.vbs new file mode 100644 index 0000000..6739b57 --- /dev/null +++ b/Chapter02/2-4_AddADSiteBoundary.vbs @@ -0,0 +1,40 @@ +strSMSServer = +strADSite = "Cleveland" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.SiteCode + end if +Next + +Set WbemContext=CreateObject("WbemScripting.SWbemNamedValueSet") +WbemContext.Add "SessionHandle", objSMS.ExecMethod _ + ("SMS_SiteControlFile", "GetSessionHandle").SessionHandle +objSMS.ExecMethod "SMS_SiteControlFile.Filetype=1,SiteCode='" _ + & strSMSSiteCode & "'", "Refresh", , , WbemContext +'retrieve boundary details +Set WbemInst = objSMS.Get _ + ("SMS_SCI_SiteAssignment.Filetype=2,Itemtype='Site Assignment'," _ + & "SiteCode='" & strSMSSiteCode & _ + "',ItemName='Site Assignment'", , WbemContext) +proparray1 = WbemInst.AssignDetails +proparray2 = WbemInst.AssignTypes + +onemore = ubound(proparray1) + 1 +redim preserve proparray1( onemore ) 'add one to size of array +redim preserve proparray2( onemore ) +proparray1( onemore ) = strADSite +proparray2( onemore ) = "Active Directory site" +WbemInst.AssignDetails = proparray1 +WbemInst.AssignTypes = proparray2 +WbemInst.Put_ , WbemContext +objSMS.ExecMethod "SMS_SiteControlFile.Filetype=0,SiteCode=""" & _ + strSMSSiteCode & """", "Commit", , , WbemContext +objSMS.Get("SMS_SiteControlFile").ReleaseSessionHandle _ + WbemContext.Item("SessionHandle").Value diff --git a/Chapter02/2-5_AddSiteBoundaries.vbs b/Chapter02/2-5_AddSiteBoundaries.vbs new file mode 100644 index 0000000..2f7feb2 --- /dev/null +++ b/Chapter02/2-5_AddSiteBoundaries.vbs @@ -0,0 +1,78 @@ +Set objArgs = WScript.Arguments +strSMSServer = objArgs(0) +strSiteToConfig= objArgs(1) +strBoundaryType = ucase(objArgs(2)) +strBoundaryData = objArgs(3) +'creating 2 arrays of size one +Dim inputArray1(1) +Dim inputArray2(1) + +select case strBoundaryType + case "SUBNET" + strBoundaryType = "IP Subnet" + case "AD" + strBoundaryType = "Active Directory site" +End Select + +inputArray1(0) = trim(strBoundaryData) +inputArray2(0) = trim(strBoundaryType) + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSWbemServices = objLoc.ConnectServer _ + (Loc.Machine, "root\sms\site_" & Loc.SiteCode) + end if +Next + + +Set objSWbemContext=CreateObject _ + ("WbemScripting.SWbemNamedValueSet") +objSWbemContext.Add "SessionHandle", _ + objSWbemServices.ExecMethod("SMS_SiteControlFile", _ + "GetSessionHandle").SessionHandle +objSWbemServices.ExecMethod _ + "SMS_SiteControlFile.Filetype=1,Sitecode='" & _ + strSiteToConfig & "'", "RefreshSCF", , , objSWbemContext +Set objSWbemInst = objSWbemServices.Get _ + ("SMS_SCI_SiteAssignment.Filetype=2,Itemtype='" & _ + "Site Assignment',Sitecode='" & strSiteToConfig & _ + "',ItemName='Site Assignment'", , objSWbemContext) + +'Retrieve the boundary details. +proparray1 = objSWbemInst.AssignDetails +proparray2 = objSWbemInst.AssignTypes + +if ubound(objSWbemInst.AssignDetails)=-1 then + 'There are no boundaries so create an array. + bounds=0 + redim proparray1(0) + redim proparray2(0) + proparray1(bounds)=inputArray1(0) + proparray2(bounds)=inputArray2(0) +Else + bounds=ubound (objSWbemInst.AssignDetails)+1 + 'Increase array for new boundaries + ReDim Preserve proparray1 (ubound (proparray1) + _ + ubound (inputArray1)) + ReDim Preserve proparray2 (ubound (proparray2) + _ + ubound (inputArray2)) + for i= 0 to ubound(inputArray1)-1 'Add boundaries + proparray1(bounds+i)=inputArray1(i) + proparray2(bounds+i)=inputArray2(i) + Next +End If + +objSWbemInst.AssignDetails = proparray1 +objSWbemInst.AssignTypes = proparray2 +objSWbemInst.Put_ , objSWbemContext + +objSWbemServices.ExecMethod _ + "SMS_SiteControlFile.Filetype=0,Sitecode=""" & _ + strSiteToConfig & """", "Commit", , , objSWbemContext +objSWbemServices.Get("SMS_SiteControlFile"). _ + ReleaseSessionHandle objSWbemContext.Item _ + ("SessionHandle").Value diff --git a/Chapter02/2-6_ShowRoamingSiteBoundaries.vbs b/Chapter02/2-6_ShowRoamingSiteBoundaries.vbs new file mode 100644 index 0000000..7f11330 --- /dev/null +++ b/Chapter02/2-6_ShowRoamingSiteBoundaries.vbs @@ -0,0 +1,40 @@ +Set objArgs = WScript.Arguments +strSMSServer = objArgs(0) +strSiteToDisplay = ucase(objArgs(1)) + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strInfo = "Roaming Site Boundary Informaiton for Site " & _ + strSiteToDisplay & vbCRLF + +Set boundaries=objSMS.Get("SMS_SCI_RoamingBoundary." & _ + "SiteCode='" & strSiteToDisplay & "',Filetype=2,ItemName='" & _ + "Roaming Boundary',ItemType='Roaming Boundary'") +if boundaries.IncludeSiteBoundary then + strInfo = strInfo & "Site Boundaries are included in the "& _ + "local roaming boundaries." & vbCRLF +else + strInfo = strInfo & "Site Boundaries are NOT included in the "& _ + "local roaming boundaries." & vbCRLF +end if +msgbox ubound(boundaries.Details) +For i=0 to ubound(boundaries.Details) + if boundaries.Flags(i) = 1 then + strBoundary = "Remote Boundary" + else + strBoundary = "Local Boundary" + end if + strInfo = strInfo & _ + boundaries.Types(i) & _ + ": " & boundaries.Details(i) & vbTAB & strBoundary & vbCRLF +Next +wscript.echo strInfo diff --git a/Chapter02/2-7_AddRoamingSiteBoundaries.vbs b/Chapter02/2-7_AddRoamingSiteBoundaries.vbs new file mode 100644 index 0000000..53c4f91 --- /dev/null +++ b/Chapter02/2-7_AddRoamingSiteBoundaries.vbs @@ -0,0 +1,95 @@ +Set objArgs = WScript.Arguments +strSMSServer = objArgs(0) +strSiteToModify = objArgs(1) +strBoundaryType = ucase(objArgs(2)) +strBoundaryData = objArgs(3) +strRemote = ucase(objArgs(4)) +Dim inputArray1(1) +Dim inputArray2(1) +Dim inputArray3(1) + +select case strBoundaryType + case "SUBNET" + strBoundaryType = "IP Subnets" + case "AD" + strBoundaryType = "AD Site Name" + case "RANGE" + strBoundaryType = "IP Ranges" +End Select + +select case strRemote + case "LOCAL" + strRemote = 0 + case "REMOTE" + strRemote = 1 +end select +inputArray1(0)=strBoundaryData +inputArray2(0)=strRemote +inputArray3(0)=strBoundaryType + + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objSWbemContext = CreateObject _ + ("WbemScripting.SWbemNamedValueSet") +objSWbemContext.Add "SessionHandle", _ + objSMS.ExecMethod("SMS_SiteControlFile", _ + "GetSessionHandle").SessionHandle +objSMS.ExecMethod _ + "SMS_SiteControlFile.Filetype=1,Sitecode='" & _ + strSiteToModify & "'", "RefreshSCF", , , objSWbemContext +Set objSWbemInst = objSMS.Get _ + ("SMS_SCI_RoamingBoundary.Filetype=2,Itemtype='" & _ + "Roaming Boundary',Sitecode='" & strSiteToModify & _ + "',ItemName='Roaming Boundary'", , objSWbemContext) + +'Retrieve the roaming boundary details. +proparray1 = objSWbemInst.Details +proparray2 = objSWbemInst.Flags +proparray3 = objSWbemInst.Types + +if ubound(objSWbemInst.Details)=-1 then + 'There are no boundaries so create an array. + bounds=0 + redim proparray1(0) + redim proparray2(0) + redim proparray3(0) + proparray1(bounds)=inputArray1(0) + proparray2(bounds)=inputArray2(0) + proparray3(bounds)=inputArray3(0) +Else + bounds=ubound (objSWbemInst.Details)+1 + 'Increase array for new boundaries + ReDim Preserve proparray1 (ubound (proparray1) + _ + ubound (inputArray1)) + ReDim Preserve proparray2 (ubound (proparray2) + _ + ubound (inputArray2)) + ReDim Preserve proparray3 (ubound (proparray3) + _ + ubound (inputArray3)) + for i= 0 to ubound(inputArray1)-1 'Add boundaries + proparray1(bounds+i)=inputArray1(i) + proparray2(bounds+i)=inputArray2(i) + proparray3(bounds+i)=inputArray3(i) + Next +End If + +objSWbemInst.Details = proparray1 +objSWbemInst.Flags = proparray2 +objSWbemInst.Types = proparray3 +objSWbemInst.Put_ , objSWbemContext + +objSMS.ExecMethod _ + "SMS_SiteControlFile.Filetype=0,Sitecode=""" & _ + strSiteToModify & """", "Commit", , , objSWbemContext +objSMS.Get("SMS_SiteControlFile"). _ + ReleaseSessionHandle objSWbemContext.Item _ + ("SessionHandle").Value diff --git a/Chapter03/3-10_SetUpdateCollInterval.vbs b/Chapter03/3-10_SetUpdateCollInterval.vbs new file mode 100644 index 0000000..8bde7fa --- /dev/null +++ b/Chapter03/3-10_SetUpdateCollInterval.vbs @@ -0,0 +1,24 @@ +strSMSServer = +strCollID = "LAB0002B" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set Token = objSMS.Get("SMS_ST_RecurInterval") +Token.DaySpan = 1 +Token.StartTime = "20051202103000.000000+***" 'wmi date-string +'If omitted, StartTime = Jan 1, 1990 - this shouldn't +'cause any issues +Set objCollection = objSMS.Get _ + ("SMS_Collection.CollectionID='" & strCollID & "'") +objCollection.RefreshSchedule = Array(Token) +objCollection.RefreshType = 2 'Periodic refresh +objCollection.Put_ diff --git a/Chapter03/3-11_ConvertToWMIDate.vbs b/Chapter03/3-11_ConvertToWMIDate.vbs new file mode 100644 index 0000000..460979d --- /dev/null +++ b/Chapter03/3-11_ConvertToWMIDate.vbs @@ -0,0 +1,14 @@ +Function ConvertToWMIDate(strDate) + strYear = year(strDate) + strMonth = month(strDate) + strDay = day(strDate) + strHour = hour(strDate) + strMinute = minute(strDate) + 'pad date appropriately + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour & _ + strMinute & "00.000000+***" +end function diff --git a/Chapter03/3-12_LimitCollectionMembership.vbs b/Chapter03/3-12_LimitCollectionMembership.vbs new file mode 100644 index 0000000..302625b --- /dev/null +++ b/Chapter03/3-12_LimitCollectionMembership.vbs @@ -0,0 +1,26 @@ +strSMSServer = + +strCollID = "LAB0002B" 'this is the collection to modify +strCollLimit = "SMS000GS" 'this is the limiting collection + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objCollection=objSMS.Get("SMS_Collection='" & _ + strCollID & "'" ) +'Get the array of embedded SMS_CollectionRule objects. +RuleSet = objCollection.CollectionRules +For Each Rule In RuleSet + if Rule.Path_.Class = "SMS_CollectionRuleQuery" then + Rule.LimitToCollectionID = strCollLimit + end if +Next +objCollection.Put_ diff --git a/Chapter03/3-13_DelDirectMemberShip.vbs b/Chapter03/3-13_DelDirectMemberShip.vbs new file mode 100644 index 0000000..f77c905 --- /dev/null +++ b/Chapter03/3-13_DelDirectMemberShip.vbs @@ -0,0 +1,23 @@ +strSMSServer = + +strCollID = "LAB0002B" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objCollection=objSMS.Get("SMS_Collection='" & strCollID & "'" ) +'Get the array of embedded SMS_CollectionRule objects. +RuleSet = objCollection.CollectionRules +For Each Rule In RuleSet + if Rule.Path_.Class = "SMS_CollectionRuleDirect" then + objCollection.DeleteMembershipRule Rule + end if +Next diff --git a/Chapter03/3-14_DelResource.vbs b/Chapter03/3-14_DelResource.vbs new file mode 100644 index 0000000..bd0d920 --- /dev/null +++ b/Chapter03/3-14_DelResource.vbs @@ -0,0 +1,34 @@ +strSMSServer = + +strComputer = "Computer1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.SiteCode + end if +Next + +'get the resource ID of the computer +intResourceID = GetResourceID(strComputer) + +'Remove ResourceID +Set objResource = GetObject( "WinMgmts:\\" & strSMSServer & _ + "\root\SMS\site_" & strSMSSiteCode & _ + ":SMS_R_System.ResourceID=" & cint(intResourceID)) +objResource.Delete_ +wscript.echo "Deleted " & strComputer & "(" & intResourceID & ")" + +Function GetResourceID(strComputerName) + Set colResourceIDs = objSMS.ExecQuery _ + ("select ResourceID from SMS_R_System where Name = '" & _ + strComputer & "'") + for each objResID in colResourceIDs + GetResourceID = objResID.ResourceID + next +End Function diff --git a/Chapter03/3-15_ModCollPerms.vbs b/Chapter03/3-15_ModCollPerms.vbs new file mode 100644 index 0000000..aae0af4 --- /dev/null +++ b/Chapter03/3-15_ModCollPerms.vbs @@ -0,0 +1,22 @@ +strSMSServer = +strHelpDesk="LAB\SMSHelpDesk" 'Domain\Group or username +strCollID = "LAB00159" 'ID of the collection + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objNewRight = objSMS.Get _ + ("SMS_UserInstancePermissions").SpawnInstance_() +objNewRight.UserName = strHelpDesk +objNewRight.ObjectKey = 1 '1=collection +objNewRight.InstanceKey = strCollID +objNewRight.InstancePermissions = 1+2'grant Read and Modify +objNewRight.Put_ diff --git a/Chapter03/3-16_ListAdvertToColl.vbs b/Chapter03/3-16_ListAdvertToColl.vbs new file mode 100644 index 0000000..d865763 --- /dev/null +++ b/Chapter03/3-16_ListAdvertToColl.vbs @@ -0,0 +1,60 @@ +strSMSServer = +strCollID = "LAB000FE" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +ListAdverts strCollID, False +CheckParent strCollID + +Sub ListAdverts(strCollID,blnSubCollect) + If blnSubCollect then + 'This is to check all parent questions of the + 'collection in question. We can only look at + 'parent collections that are set to "Include + 'members of subcollections" + Set colAdverts = objSMS.ExecQuery _ + ("select * from SMS_Advertisement where " & _ + "CollectionID = '" & strCollID & "' and " & _ + "IncludeSubCollection = 1") + Else + 'This is for the first check, this will look for + 'advertisements assigned directly to the collection + Set colAdverts = objSMS.ExecQuery _ + ("select * from SMS_Advertisement where " & _ + "CollectionID = '" & strCollID & "'") + end if + for each objAdvert in colAdverts + wscript.echo "Advertisement: " & _ + objAdvert.AdvertisementName + wscript.echo " Collection: " & _ + GetCollectionName(objAdvert.CollectionID) & _ + " (" & objAdvert.CollectionID & ")" & VbCRLF + next +End Sub + +Function GetCollectionName(strCollID) + Set instColl = objSMS.Get _ + ("SMS_Collection.CollectionID=""" & strCollID & """") + GetCollectionName = instColl.Name +End Function + +Sub CheckParent(strCollID) + Set colParents = objSMS.ExecQuery _ + ("select * from SMS_CollectToSubCollect where subCollectionID = '" & _ + strCollID & "'") + for each objParent in colParents + if not objParent.ParentCollectionID = "COLLROOT" then + ListAdverts objParent.ParentCollectionID , True + CheckParent objParent.ParentCollectionID + end if + next +End Sub diff --git a/Chapter03/3-17_ViewAssignedAdvertsToMachine.vbs b/Chapter03/3-17_ViewAssignedAdvertsToMachine.vbs new file mode 100644 index 0000000..0c35255 --- /dev/null +++ b/Chapter03/3-17_ViewAssignedAdvertsToMachine.vbs @@ -0,0 +1,55 @@ +strSMSServer = + +strComputer = "Computer1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +'first, get the resource ID of the computer +intResourceID = GetResourceID(strComputer) + +Set colAdverts = objSMS.ExecQuery _ +("select * from SMS_ClientAdvertisementStatus where ResourceID = " & _ + intResourceID) +for each strAdvert in colAdverts 'enumerate all adverts for client + wscript.echo GetAdvertisementName(strAdvert.AdvertisementID) & _ + "(" & strAdvert.AdvertisementID & ")" & vbTAB & _ + strAdvert.LastStateName & vbTAB & strAdvert.LastStatusTime & _ + vbTAB & GetCollectionName(strAdvert.AdvertisementID) +next + +'used to obtain the Advertisement Name +Function GetAdvertisementName(strAdvertID) + Set instAdvert = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + GetAdvertisementName = instAdvert.AdvertisementName +End Function + +'used to obtain the Collection Name +Function GetCollectionName(strAdvertID) + 'first, get advert based on advert ID + Set instAdvert = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + 'then, get collection name based on collectionID from advert + Set instCollection = objSMS.Get _ + ("SMS_Collection.CollectionID='" & instAdvert.CollectionID & "'") + GetCollectionName = instCollection.Name +End Function + +'used to obtain the SMS resource ID +Function GetResourceID(strComputerName) + Set colResourceIDs = objSMS.ExecQuery _ + ("select ResourceID from SMS_R_System where Name = '" & _ + strComputer & "'") + for each objResID in colResourceIDs + GetResourceID = objResID.ResourceID + next +End Function diff --git a/Chapter03/3-1_CreateCollection.vbs b/Chapter03/3-1_CreateCollection.vbs new file mode 100644 index 0000000..6aeb9ae --- /dev/null +++ b/Chapter03/3-1_CreateCollection.vbs @@ -0,0 +1,39 @@ +strSMSServer = +strParentCollID = "COLLROOT" 'This creates the collection in +'the collection root. Replace COLLROOT with the CollectionID +'of an existing collection to make the new collection a child + +strCollectionName = "Systems Without Windows Update Agent" +strCollectionComment = "This collection contains all systems " & _ + "that do not have the Windows Update Agent installed." + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set newCollection = objSMS.Get("SMS_Collection").SpawnInstance_() + +newCollection.Name = strCollectionName +newCollection.OwnedByThisSite = True +newCollection.Comment = strCollectionComment +path=newCollection.Put_ + +'the following two lines are used to obtain the CollectionID +'of the collection we just created +Set Collection=objSMS.Get(path) +strCollID= Collection.CollectionID +'now we create a relationship betwen the new collection +'and it's parent. + +Set newCollectionRelation = objSMS.Get _ + ( "SMS_CollectToSubCollect" ).SpawnInstance_() +newCollectionRelation.parentCollectionID = strParentCollID +newCollectionRelation.subCollectionID = strCollID +newCollectionRelation.Put_ diff --git a/Chapter03/3-2_ListSubCollections.vbs b/Chapter03/3-2_ListSubCollections.vbs new file mode 100644 index 0000000..cb32f9f --- /dev/null +++ b/Chapter03/3-2_ListSubCollections.vbs @@ -0,0 +1,44 @@ +strSMSServer = + +'If you want to start from the root collection, set +' strCollID = "COLLROOT" +strCollID = "LAB00080" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +wscript.echo strCollID & vbTAB & GetCollectionName(strCollID) + +DisplaySubCollections strCollID, 3 + +Sub DisplaySubCollections(strCollID, intSpace) + +strWQL ="SELECT col.* FROM SMS_Collection as col " & _ + "INNER JOIN SMS_CollectToSubCollect as ctsc " & _ + "ON col.CollectionID = ctsc.subCollectionID " & _ + "WHERE ctsc.parentCollectionID='" & strcollID & "' " & _ + "ORDER by col.Name" + + Set colSubCollections = objSMS.ExecQuery(strWQL) + + For each objSubCollection in colSubCollections + wscript.echo space(intSpace) & objSubCollection.CollectionID & _ + vbTAB & objSubCollection.Name + + DisplaySubCollections strSubCollID, intSpace + 3 + Next +End Sub + +Function GetCollectionName(strCollID) + Set objCollection = objSMS.Get _ + ("SMS_Collection.CollectionID='" & strCollID & "'") + GetCollectionName = objCollection.Name +End Function diff --git a/Chapter03/3-3_ListCollectionIDs.vbs b/Chapter03/3-3_ListCollectionIDs.vbs new file mode 100644 index 0000000..fec1a22 --- /dev/null +++ b/Chapter03/3-3_ListCollectionIDs.vbs @@ -0,0 +1,19 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colCollections = objSMS.ExecQuery _ +("select * from SMS_Collection order by Name") +for each objCollection in colCollections + wscript.echo objCollection.Name & vbTAB & _ + objCollection.CollectionID +next diff --git a/Chapter03/3-4_DeleteCollection.vbs b/Chapter03/3-4_DeleteCollection.vbs new file mode 100644 index 0000000..9dfdfb8 --- /dev/null +++ b/Chapter03/3-4_DeleteCollection.vbs @@ -0,0 +1,18 @@ +strSMSServer = + +strCollID = "LAB001A7" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + + Set col = objSMS.Get _ + ("SMS_Collection.CollectionID='" & strCollID & "'") +Col.Delete_ diff --git a/Chapter03/3-5_CreateCollectionLink.vbs b/Chapter03/3-5_CreateCollectionLink.vbs new file mode 100644 index 0000000..737a8f3 --- /dev/null +++ b/Chapter03/3-5_CreateCollectionLink.vbs @@ -0,0 +1,31 @@ +strSMSServer = + +strParentColl = "LAB0000D" 'parent collection ID +strSubColl = "LAB0000E" 'collection ID to link + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set ColSvcs = objSMS.Get("SMS_Collection") + ColSvcs.VerifyNoLoops "SMS_Collection.CollectionID=""" & _ + strParentColl & """", "SMS_Collection.CollectionID=""" & _ + strSubColl & """", Result + +if Result = 0 then + wscript.echo "Link would cause looping condition, exiting" +else + Set objCol = objSMS.Get _ + ("SMS_CollectToSubCollect").SpawnInstance_() + objCol.parentCollectionID = strParentColl + objCol.subCollectionID = strSubColl + objCol.Put_ + wscript.echo "Created Collection Link!" +end if \ No newline at end of file diff --git a/Chapter03/3-6_CreateDirectMembershipRule.vbs b/Chapter03/3-6_CreateDirectMembershipRule.vbs new file mode 100644 index 0000000..5ffaaae --- /dev/null +++ b/Chapter03/3-6_CreateDirectMembershipRule.vbs @@ -0,0 +1,32 @@ +strSMSServer = + +strCollID = "LAB0000F" 'ID of the collection +strComputerName = "2kPro" 'computer name to add + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +'obtain the ResourceID for strComputerName +Set colResourceIDs=objSMS.ExecQuery _ + ("SELECT ResourceId FROM SMS_R_System WHERE NetbiosName ='" & _ + strComputerName & "'") +For each insResource in colResourceIDs + strNewResourceID = insResource.ResourceID +Next +'add the ResourceID to the collection +Set instColl = objSMS.Get _ + ("SMS_Collection.CollectionID=""" & strCollID & """") +Set instDirectRule = objSMS.Get _ + ("SMS_CollectionRuleDirect").SpawnInstance_ () +instDirectRule.ResourceClassName = "SMS_R_System" +instDirectRule.ResourceID = strNewResourceID +instDirectRule.RuleName = strComputerName +instColl.AddMembershipRule instDirectRule diff --git a/Chapter03/3-7_CreateQueryMembershipRule.vbs b/Chapter03/3-7_CreateQueryMembershipRule.vbs new file mode 100644 index 0000000..b886cbb --- /dev/null +++ b/Chapter03/3-7_CreateQueryMembershipRule.vbs @@ -0,0 +1,35 @@ +strSMSServer = + +strCollID = "LAB0000F" +strQuery = "select * from SMS_R_System inner join " & _ + "SMS_G_System_ADD_REMOVE_PROGRAMS on " & _ + "SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = " & _ + "SMS_R_System.ResourceId where " & _ + "SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = 'SMS View'" +strQueryName = "Systems that have SMSView Installed" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + + Set instCollection = objSMS.Get _ + ("SMS_Collection.CollectionID='" & strCollID & "'") +Set clsQueryRule = objSMS.Get _ + ("SMS_CollectionRuleQuery") + +'next we need to validate the query +ValidQuery = clsQueryRule.ValidateQuery(strQuery) + +If ValidQuery Then + Set instQueryRule = clsQueryRule.SpawnInstance_ + instQueryRule.QueryExpression = strQuery + instQueryRule.RuleName = strQueryName + instCollection.AddMembershipRule instQueryRule +End If diff --git a/Chapter03/3-8_CreateSubSelectQueryRule.vbs b/Chapter03/3-8_CreateSubSelectQueryRule.vbs new file mode 100644 index 0000000..8a76706 --- /dev/null +++ b/Chapter03/3-8_CreateSubSelectQueryRule.vbs @@ -0,0 +1,47 @@ +strSMSServer = + +strCollID = "LAB0002B" + +strQuery = "select SMS_R_System.ResourceID," & _ + "SMS_R_System.ResourceType,SMS_R_System.Name," & _ + "SMS_R_System.SMSUniqueIdentifier," & _ + "SMS_R_System.ResourceDomainORWorkgroup," & _ + "SMS_R_System.Client from SMS_R_System inner join " & _ + "SMS_G_System_SYSTEM on " &_ + "SMS_G_System_SYSTEM.ResourceID = " & _ + "SMS_R_System.ResourceId where " & _ + "SMS_G_System_SYSTEM.Name not in (select " & _ + "SMS_G_System_SYSTEM.Name from SMS_R_System inner " & _ + "join SMS_G_System_SoftwareFile on " & _ + "SMS_G_System_SoftwareFile.ResourceID = " & _ + "SMS_R_System.ResourceId inner join " & _ + "SMS_G_System_SYSTEM on " & _ + "SMS_G_System_SYSTEM.ResourceID =" & _ + "SMS_R_System.ResourceId where " & _ + "SMS_G_System_SoftwareFile.FileName = 'wuauclt.exe' " & _ + "and SMS_G_System_SoftwareFile.FilePath like '%system32\\%')" +strQueryName = "Systems That Need Windows Update Agent" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set instCollection = objSMS.Get _ + ("SMS_Collection.CollectionID='" & strCollID & "'") +Set clsQueryRule = objSMS.Get _ + ("SMS_CollectionRuleQuery") +'make sure we have a valid query +ValidQuery = clsQueryRule.ValidateQuery(strQuery) +If ValidQuery Then + Set instQueryRule = clsQueryRule.SpawnInstance_ + instQueryRule.QueryExpression = strQuery + instQueryRule.RuleName = strQueryName + instCollection.AddMembershipRule instQueryRule +End If diff --git a/Chapter03/3-9_UpdateCollMembership.vbs b/Chapter03/3-9_UpdateCollMembership.vbs new file mode 100644 index 0000000..5a12311 --- /dev/null +++ b/Chapter03/3-9_UpdateCollMembership.vbs @@ -0,0 +1,19 @@ +strSMSServer = + +strCollID = "LAB00017" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objCollection = GetObject( "WinMgmts:!\\" & strSMSServer & _ + "\root\SMS\site_" & strSMSSiteCode & _ + ":SMS_Collection.CollectionID='" & strCollID & "'") +objCollection.RequestRefresh False diff --git a/Chapter04/4-10_LoadDPs_OneSite.vbs b/Chapter04/4-10_LoadDPs_OneSite.vbs new file mode 100644 index 0000000..a2d8677 --- /dev/null +++ b/Chapter04/4-10_LoadDPs_OneSite.vbs @@ -0,0 +1,32 @@ +strSMSServer = + +strSiteCode = "BLO" 'this is the site code of the DP to add +PackageID = "LAB0000A" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set AllDPs = objSMS.ExecQuery _ + ("Select * From SMS_SystemResourceList WHERE " & _ + "RoleName='SMS Distribution Point' and " & _ + "SiteCode='" & strSiteCode & "'") +For Each DP In AllDPs + Wscript.echo DP.SiteCode & vbTAB & DP.ServerName + Set Site = objSMS.Get("SMS_Site='" & DP.SiteCode & "'") + Set newDP = objSMS.Get _ + ("SMS_DistributionPoint").SpawnInstance_() + newDP.ServerNALPath = DP.NALPath + newDP.PackageID = PackageID + newDP.SiteCode = DP.SiteCode + newDP.SiteName = Site.SiteName + newDP.Put_ +Next diff --git a/Chapter04/4-11_LoadDPs_All.vbs b/Chapter04/4-11_LoadDPs_All.vbs new file mode 100644 index 0000000..919ec4a --- /dev/null +++ b/Chapter04/4-11_LoadDPs_All.vbs @@ -0,0 +1,30 @@ +strSMSServer = + +PackageID = "LAB0000A" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set AllDPs = objSMS.ExecQuery _ + ("Select * From SMS_SystemResourceList WHERE " & _ + "RoleName='SMS Distribution Point'") +For Each DP In AllDPs + Wscript.echo DP.SiteCode & vbTAB & DP.ServerName + Set Site = objSMS.Get("SMS_Site='" & DP.SiteCode & "'") + Set newDP = objSMS.Get _ + ("SMS_DistributionPoint").SpawnInstance_() + newDP.ServerNALPath = DP.NALPath + newDP.PackageID = PackageID + newDP.SiteCode = DP.SiteCode + newDP.SiteName = Site.SiteName + newDP.Put_ +Next diff --git a/Chapter04/4-12_RemoveFromDPs_OneSite.vbs b/Chapter04/4-12_RemoveFromDPs_OneSite.vbs new file mode 100644 index 0000000..407a513 --- /dev/null +++ b/Chapter04/4-12_RemoveFromDPs_OneSite.vbs @@ -0,0 +1,26 @@ +strSMSServer = + +strSiteCode="BLO" +strPackageID = "LAB0000A" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set AllDPs = objSMS.ExecQuery _ + ("Select * From SMS_DistributionPoint where " & _ + "PackageID = '" & strPackageID & "'") +for each DP in AllDPs + if DP.SiteCode = strSiteCode then + wscript.echo DP.ServerNALPath + DP.Delete_ + end if +next diff --git a/Chapter04/4-13_RemoveFromAllDPs.vbs b/Chapter04/4-13_RemoveFromAllDPs.vbs new file mode 100644 index 0000000..803369c --- /dev/null +++ b/Chapter04/4-13_RemoveFromAllDPs.vbs @@ -0,0 +1,23 @@ +strSMSServer = + +strPackageID = "LAB0000A" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set AllDPs = objSMS.ExecQuery _ + ("Select * From SMS_DistributionPoint where " & _ + "PackageID = '" & strPackageID & "'") +for each DP in AllDPs + wscript.echo "Removing " & DP.ServerNALPath + DP.Delete_ +next diff --git a/Chapter04/4-14_UnloadOneDP.vbs b/Chapter04/4-14_UnloadOneDP.vbs new file mode 100644 index 0000000..05c2388 --- /dev/null +++ b/Chapter04/4-14_UnloadOneDP.vbs @@ -0,0 +1,31 @@ +strSMSServer = 'primary site server + +strSMSSiteCodeforDP = 'site code that + ' contains packages to remove +strServerSharePath = "\\sms-testgmr\smspkgd$" + 'DP path + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objDPs = objSMS.ExecQuery("select * from " & _ + "SMS_DistributionPoint where SiteCode = '" & _ + strSMSSiteCodeforDP & "'") + +For each objDP in objDPs + if instr(ucase(objDP.ServerNALPath), _ + ucase(strServerSharePath)) then + wscript.echo "Removing " & objDP.PackageID & _ + vbTAB & objDP.ServerNALPath + objDP.Delete_ + end if +Next diff --git a/Chapter04/4-15_UpdateDPs.vbs b/Chapter04/4-15_UpdateDPs.vbs new file mode 100644 index 0000000..ab6f73e --- /dev/null +++ b/Chapter04/4-15_UpdateDPs.vbs @@ -0,0 +1,18 @@ +strSMSServer = "SMSVPC" +strPackageID = "LAB000BD" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.SiteCode + end if +Next + +Set objPkg = objSMS.Get _ + ("SMS_Package.PackageID=""" & strPackageID & """") +objPkg.RefreshPkgSource(0) diff --git a/Chapter04/4-16_RefreshDPs.vbs b/Chapter04/4-16_RefreshDPs.vbs new file mode 100644 index 0000000..edd1a92 --- /dev/null +++ b/Chapter04/4-16_RefreshDPs.vbs @@ -0,0 +1,25 @@ +strSMSServer = + +strPackageID = "LAB0000A" +StrSiteCode = "CLE" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.SiteCode + end if +Next + +Set DPs = objSMS.ExecQuery _ + ("Select * From SMS_DistributionPoint " & _ + "WHERE SiteCode='" & strSiteCode & _ + "' AND PackageID='" & strPackageID & "'") +For Each DP In DPs + DP.RefreshNow = True + DP.Put_ +Next diff --git a/Chapter04/4-17_CreatePackageFolder.vbs b/Chapter04/4-17_CreatePackageFolder.vbs new file mode 100644 index 0000000..ace165e --- /dev/null +++ b/Chapter04/4-17_CreatePackageFolder.vbs @@ -0,0 +1,22 @@ +strSMSServer = + +strNewFolderName = "Security Patches" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.SiteCode + end if +Next + +Set newFolder = objSMS.Get("SMS_ObjectContainerNode") _ + .SpawnInstance_() +newFolder.Name = strNewFolderName +newFolder.ObjectType = 2 'package +newFolder.ParentContainerNodeId = 0 +newFolder.Put_ diff --git a/Chapter04/4-18_MovePackagesBtwnFolder.vbs b/Chapter04/4-18_MovePackagesBtwnFolder.vbs new file mode 100644 index 0000000..dadbce2 --- /dev/null +++ b/Chapter04/4-18_MovePackagesBtwnFolder.vbs @@ -0,0 +1,14 @@ +strSMSServer = +strSMSSiteCode = +strPackageIDs = "LAB00004,LAB00001" +'to move more than one, separate with commas +intSourceFolder=0 'Source Folder (root node in this case) +intDestFolder=4 'Destination Folder +intObjectType=2 '2=Package for type of object +Set loc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS = loc.ConnectServer(SMSServer, "root\SMS\site_" & _ + SMSSiteCode) +Set objFolder = objSMS.Get("SMS_ObjectContainerItem") +arrPackageIDs = split(strPackageIDs, ",") +retval = objFolder.MoveMembers _ + (arrPackageIDs, intSourceFolder , intDestFolder , intObjectType) diff --git a/Chapter04/4-1_CreatePackage.vbs b/Chapter04/4-1_CreatePackage.vbs new file mode 100644 index 0000000..7ada214 --- /dev/null +++ b/Chapter04/4-1_CreatePackage.vbs @@ -0,0 +1,35 @@ +strSMSServer = + +'Specify package attributes one time. From here on out +'we reference these variables. +pkgName = "Visual Studio .NET Framework 1.1 SP1" +pkgSource = "\\smsvpc\source\KB867460" +pkgDesc = "This Package Installs .NET 1.1 SP1" +pkgManufacturer = "Microsoft" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +'Define package attributes such as name, source for the files, etc. +Set newPackage = objSMS.Get("SMS_Package").SpawnInstance_() +newPackage.Name = pkgName +newPackage.Description = pkgDesc +newPackage.Manufacturer = pkgManufacturer +newPackage.PkgSourceFlag = 2 +'2=direct, 1=no source 3=use compressed source +newPackage.PkgSourcePath = pkgSource +path=newPackage.Put_ + +'the following three lines are used to obtain the PackageID +'of the package we just created +Set Package=objSMS.Get(path) +PackageID= Package.PackageID +wscript.echo PackageID & " = " & pkgName diff --git a/Chapter04/4-2_ShowPackageIDs.vbs b/Chapter04/4-2_ShowPackageIDs.vbs new file mode 100644 index 0000000..a06e5fe --- /dev/null +++ b/Chapter04/4-2_ShowPackageIDs.vbs @@ -0,0 +1,18 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set Packages = objSMS.ExecQuery _ + ("Select * From SMS_Package order by Name") +For each objPackage in Packages + wscript.echo objPackage.Name & vbTAB & objPackage.PackageID +Next diff --git a/Chapter04/4-3_EnumPackagesAndFolders.vbs b/Chapter04/4-3_EnumPackagesAndFolders.vbs new file mode 100644 index 0000000..8392212 --- /dev/null +++ b/Chapter04/4-3_EnumPackagesAndFolders.vbs @@ -0,0 +1,76 @@ +Const strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'for intPackageFolder=0 enumerate from the root package node +' to enumerate from a subfolder, replace the 0 with +' the proper ContainerNodeID +intPackageFolder = 0 +intSpace = 0 +'First, display packages in current folder (as defined +' by intPackageFolder +ListPkgsInFolder "", intPackageFolder, intSpace +'Then enumerate all subfolders of the current folder +DisplaySubFolders intPackageFolder, intSpace + 3 + +Sub DisplaySubFolders(intPackageFolder, intSpace) + Set colItems = objSMS.ExecQuery _ + ("select * from SMS_ObjectContainerNode where " & _ + "ObjectType = 2 and " & _ + "ParentContainerNodeID = " & cint(intPackageFolder)) + For each objContainerItem in colItems + ListPkgsInFolder objContainerItem.Name, _ + objContainerItem.ContainerNodeID,intSpace + 3 + DisplaySubFolders objContainerItem.ContainerNodeID, _ + intSpace + 3 + Next +End Sub + +Sub ListPkgsInFolder(strContainerName, intPkgFolder, intSpace) + If intPkgFolder = 0 then 'we're looking at the root node here + + strSQL = "Select PackageID From SMS_Package where " & _ + "PackageID not in (select InstanceKey " & _ + "from SMS_ObjectContainerItem where ObjectType=2) " & _ + "and ImageFlags = 0" + 'ImageFlags = 0 is used to make sure we don't pick up + 'and image packages from the Operating System Deployment + 'Feature Pack (OSD FP) + Set colPkgs = objSMS.ExecQuery(strSQL) + wscript.echo space(intSpace) & "----" & vbCRLF & _ + space(intSpace) & "Root Collection" + For each objPkg in colPkgs + wscript.echo objPkg.PackageID & vbTAB & _ + GetPackageName(objPkg.PackageID) + Next + Else + Set colItems = objSMS.ExecQuery _ + ("select * from SMS_ObjectContainerItem where " & _ + "ObjectType = 2 and " & _ + "ContainerNodeID = " & cint(intPkgFolder)) + wscript.echo space(intSpace) & "----" & vbCRLF & _ + space(intSpace) & strContainerName + For each objContainerItem in colItems + strPackageID = objContainerItem.InstanceKey + wscript.echo space(intSpace) & strPackageID & vbTAB & _ + GetPackageName(strPackageID) + Next + End If +End Sub + +Function GetPackageName(strPckID) + Set objPackage = GetObject( "WinMgmts:\\" & strSMSServer & _ + "\root\SMS\site_" & strSMSSiteCode & _ + ":SMS_Package.PackageID='" & strPckID & "'") + GetPackageName = objPackage.Name & vbTAB & objPackage.Version +End Function diff --git a/Chapter04/4-4_DeletePackage.vbs b/Chapter04/4-4_DeletePackage.vbs new file mode 100644 index 0000000..2bc6344 --- /dev/null +++ b/Chapter04/4-4_DeletePackage.vbs @@ -0,0 +1,22 @@ +strSMSServer = + +strPackageID = "LAB000CC" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'Remove Package +Set objPackage = GetObject( "WinMgmts:\\" & strSMSServer & _ + "\root\SMS\site_" & strSMSSiteCode & _ + ":SMS_Package.PackageID='" & strPackageID & "'") +objPackage.Delete_ +wscript.echo "Deleted " & strPackageID diff --git a/Chapter04/4-5_ModPkgSourceLocation.vbs b/Chapter04/4-5_ModPkgSourceLocation.vbs new file mode 100644 index 0000000..8745b2b --- /dev/null +++ b/Chapter04/4-5_ModPkgSourceLocation.vbs @@ -0,0 +1,24 @@ +strSMSServer = + +strPackageID = "LAB0000A" +strSourcePath = "\\smsvpc\Source\867460_1.1SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + + +Set objPackage = GetObject( "WinMgmts:!\\" & strSMSServer & _ + "\root\SMS\site_" & strSMSSiteCode & _ + ":SMS_Package.PackageID='" & strPackageID & "'") +objPackage.PkgSourceFlag = 2 ' specifies direct source +objPackage.PkgSourcePath = strSourcePath +objPackage.Put_ diff --git a/Chapter04/4-6_ModPkgProps.vbs b/Chapter04/4-6_ModPkgProps.vbs new file mode 100644 index 0000000..834105c --- /dev/null +++ b/Chapter04/4-6_ModPkgProps.vbs @@ -0,0 +1,26 @@ +strSMSServer = + +strPackageID = "LAB0000A" +intDisconnectDelay = 5 +blnDisconnectEnabled = True +intDisconnectNumRetries = 2 + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objPackage = GetObject( "WinMgmts:!\\" & strSMSServer & _ + "\root\SMS\site_" & strSMSSiteCode & _ + ":SMS_Package.PackageID='" & strPackageID & "'") +objPackage.ForcedDisconnectDelay = intDisconnectDelay +objPackage.ForcedDisconnectEnabled = blnDisconnectEnabled +objPackage.ForcedDisconnectNumRetries = intDisconnectNumRetries +objPackage.Put_ diff --git a/Chapter04/4-7_ModPkg-DPSettings.vbs b/Chapter04/4-7_ModPkg-DPSettings.vbs new file mode 100644 index 0000000..804b29c --- /dev/null +++ b/Chapter04/4-7_ModPkg-DPSettings.vbs @@ -0,0 +1,22 @@ +strSMSServer = + +strPackageID = "LAB000CE" +strPreferredAddressType = "SMS_LAN_SENDER" +intPriority = 1 + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objPackage = objSMS.Get("SMS_Package.PackageID='" & strPackageID & "'") +objPackage.PreferredAddressType = strPreferredAddressType +objPackage.Priority = intPriority +objPackage.Put_ diff --git a/Chapter04/4-8_ModPkgPerms.vbs b/Chapter04/4-8_ModPkgPerms.vbs new file mode 100644 index 0000000..1e715c7 --- /dev/null +++ b/Chapter04/4-8_ModPkgPerms.vbs @@ -0,0 +1,29 @@ +'This script grants the "Help Desk" Read, Modify, and Distribute +'Permissions to PackageID = LAB00007 +strSMSServer = + +strHelpDesk="SMSVPC\Help Desk" +strPackageID="LAB00007" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objPackage = objSMS.Get("SMS_Package.PackageID='" & strPackageID & "'") +wscript.echo objPackage.PackageID +Set objNewRight = objSWbemServices.Get _ + ("SMS_UserInstancePermissions").SpawnInstance_() +objNewRight.UserName = strHelpDesk +objNewRight.ObjectKey = 2 'package +objNewRight.InstanceKey = objPackage.PackageID +objNewRight.InstancePermissions = 11 + '0000000000001011 (read, modify, distribute) +objNewRight.Put_ diff --git a/Chapter04/4-9_UpdateDP_Sched.vbs b/Chapter04/4-9_UpdateDP_Sched.vbs new file mode 100644 index 0000000..52fdffb --- /dev/null +++ b/Chapter04/4-9_UpdateDP_Sched.vbs @@ -0,0 +1,31 @@ +Const STORAGE_DIRECT=2 +strSMSServer = +strPackageID = "LAB0000A" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set Token = objSMS.Get("SMS_ST_RecurWeekly") +Token.Day = 5 'Thursday +Token.DayDuration = 0 'recur indefinitely +Token.ForNumberOfWeeks = 1 'recur every 1 week +Token.StartTime = "20061202103000.000000+***" 'wmi date-string +'If omitted, StartTime = Jan 1, 1990 - this shouldn't +'cause any issues +Set objPackage = objSMS.Get _ + ("SMS_Package.PackageID='" & strPackageID & "'") +'Make sure package is set to "Always obtain files +' from source directory, then add schedule. +if objPackage.PkgSourceFlag=STORAGE_DIRECT then + objPackage.RefreshSchedule = Array(Token) + objPackage.Put_ +end if diff --git a/Chapter05/5-10_DisplayAllPackagesWithPrograms_andProgramEnvironment.vbs b/Chapter05/5-10_DisplayAllPackagesWithPrograms_andProgramEnvironment.vbs new file mode 100644 index 0000000..57117db --- /dev/null +++ b/Chapter05/5-10_DisplayAllPackagesWithPrograms_andProgramEnvironment.vbs @@ -0,0 +1,61 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPackages = objSMS.ExecQuery("Select * From SMS_Package where " & _ + "ImageFlags = 0 order by Name") + +For each objPackage in ColPackages + wscript.echo objPackage.Name & " (" & objPackage.PackageID & ")" + ListPrograms(objPackage.PackageID) +Next + +Sub ListPrograms(strPackageID) + Set objSWbemLocator = CreateObject _ + ("WbemScripting.SWbemLocator") + Set objSMS = objSWbemLocator.ConnectServer _ + (strSMSServer, "root\sms\site_" & strSMSSiteCode ) + Set colPrograms = objSMS.ExecQuery _ + ("Select * From SMS_Program " & _ + "WHERE PackageID='" & strPackageID & _ + "' order by ProgramName") + For Each objProgram In colPrograms + wscript.echo vbTAB & objProgram.ProgramName & vbTAB & _ + GetUserLogonRequirement(strPackageID, _ + objProgram.ProgramName) + Next +End Sub + +Function GetUserLogonRequirement(strPackageID, strProgramName) + USER_LOGGED_ON = 2^(14-1) + WHETHER_OR_NOT_USER_LOGGED_ON = 2^(15-1) + NO_USER_LOGGED_ON = 2^(17-1) + + Set objProgram=objSMS.Get _ + ("SMS_Program.PackageID='" & strPackageID & "',ProgramName='" & _ + strProgramName & "'") + + intProgramFlags = objProgram.ProgramFlags + + if (intProgramFlags and USER_LOGGED_ON) then + strInfo = "Only when a user is logged on." + elseif _ + (intProgramFlags and WHETHER_OR_NOT_USER_LOGGED_ON) then + strInfo = "Whether or not a user is logged on." + elseif (intProgramFlags and NO_USER_LOGGED_ON) then + strInfo = "Only when no user is logged on." + else + + end if + GetUserLogonRequirement = strInfo +End Function diff --git a/Chapter05/5-11_ShowAllProgramsWithDependencies.vbs b/Chapter05/5-11_ShowAllProgramsWithDependencies.vbs new file mode 100644 index 0000000..13ccbc6 --- /dev/null +++ b/Chapter05/5-11_ShowAllProgramsWithDependencies.vbs @@ -0,0 +1,31 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + + Set colPrograms = objSMS.ExecQuery("Select * From SMS_Program " & _ + "WHERE DependentProgram <> '' order by PackageID") + +for each objProgram in colPrograms + wscript.echo "Package Name: " & GetPackageName _ + (objProgram.PackageID) & "(" & objProgram.PackageID & ")" + wscript.echo vbTAB & "Program Name: " & _ + objProgram.ProgramName + wscript.echo vbTAB & vbTAB & _ + "Dependent PackageID;;Program: " & _ + objProgram.DependentProgram +next + +Function GetPackageName(strPckID) + Set objPackage=objSMS.Get("SMS_Package.PackageID='" & strPckID & "'") + GetPackageName = objPackage.Name +End Function diff --git a/Chapter05/5-12_ConfigRunFrequency.vbs b/Chapter05/5-12_ConfigRunFrequency.vbs new file mode 100644 index 0000000..b0d0e31 --- /dev/null +++ b/Chapter05/5-12_ConfigRunFrequency.vbs @@ -0,0 +1,26 @@ +EVERYUSER = 2^(16) + +strSMSServer = + +strPackageID = "LAB0000A" +strProgramName = "NET Framework 1.1 SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +intProgramFlags = objProgram.ProgramFlags +intProgramFlags = intProgramFlags and not EVERYUSER +objProgram.ProgramFlags = intProgramFlags +objProgram.Put_ diff --git a/Chapter05/5-13_ShowAllProgramsWithNotificationsSet.vbs b/Chapter05/5-13_ShowAllProgramsWithNotificationsSet.vbs new file mode 100644 index 0000000..c876ff4 --- /dev/null +++ b/Chapter05/5-13_ShowAllProgramsWithNotificationsSet.vbs @@ -0,0 +1,35 @@ +SUPPRESS_NOTIFICATIONS = 2^(10) + +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPrograms = objSMS.ExecQuery _ + ("Select * From SMS_Program order by PackageID") + +wscript.echo "All Programs with 'Suppress Program " & _ + "Notifications' configured." +for each objProgram in colPrograms + if (objProgram.ProgramFlags and SUPPRESS_NOTIFICATIONS) then + wscript.echo objProgram.ProgramName & vbTAB & _ + GetPackageName(objProgram.PackageID) & "(" & _ + objProgram.PackageID & ")" + end if +next + +Function GetPackageName(strPckID) + Set objPackage=objSMS.Get _ + ("SMS_Package.PackageID='" & _ + strPckID & "'") + GetPackageName = objPackage.Name +End Function \ No newline at end of file diff --git a/Chapter05/5-14_DisableProgram.vbs b/Chapter05/5-14_DisableProgram.vbs new file mode 100644 index 0000000..5273195 --- /dev/null +++ b/Chapter05/5-14_DisableProgram.vbs @@ -0,0 +1,34 @@ +DISABLE_PROGRAM = 2^(12) + +strSMSServer = + +strPackageID = "LAB0000A" +strProgramName = "NET Framework 1.1 SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +intProgramFlags = objProgram.ProgramFlags + +if (intProgramFlags and DISABLE_PROGRAM) then + wscript.echo "DISABLE_PROGRAM flag " & _ + "already set!" +else + wscript.echo "Setting DISABLE_PROGRAM flag" + intProgramFlags = intProgramFlags or _ + DISABLE_PROGRAM + objProgram.ProgramFlags = intProgramFlags + objProgram.Put_ +end if diff --git a/Chapter05/5-15_ShowAllDisabledPrograms.vbs b/Chapter05/5-15_ShowAllDisabledPrograms.vbs new file mode 100644 index 0000000..3d653b5 --- /dev/null +++ b/Chapter05/5-15_ShowAllDisabledPrograms.vbs @@ -0,0 +1,38 @@ +strSMSServer = + +DISABLE_PROGRAM = 2^(12) + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPrograms = objSMS.ExecQuery _ + ("Select * From SMS_Program order by PackageID") +For Each objProgram In colPrograms + if (objProgram.ProgramFlags and DISABLE_PROGRAM) then + wscript.echo "Program Name: " & _ + objProgram.ProgramName & vbTAB & _ + "Package Name: " & _ + GetPackageName(objProgram.PackageID) & " (" & _ + objProgram.PackageID & ")" + end if +Next + +Function GetPackageName(strPckID) + Set objSWbemLocator = CreateObject _ + ("WbemScripting.SWbemLocator") + Set objSMS = objSWbemLocator.ConnectServer _ + (strSMSServer, "root\sms\site_" & strSMSSiteCode ) + Set objPackage=objSMS.Get _ + ("SMS_Package.PackageID='" & _ + strPckID & "'") + GetPackageName = objPackage.Name +End Function diff --git a/Chapter05/5-16_Re-EnableProgram.vbs b/Chapter05/5-16_Re-EnableProgram.vbs new file mode 100644 index 0000000..ed94cfc --- /dev/null +++ b/Chapter05/5-16_Re-EnableProgram.vbs @@ -0,0 +1,34 @@ +DISABLE_PROGRAM = 2^(12) + +strSMSServer = + +strPackageID = "LAB0000C" +strProgramName = "NET Framework 1.1 SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +intProgramFlags = objProgram.ProgramFlags + +if (intProgramFlags and DISABLE_PROGRAM) then + wscript.echo "Re-enabling disabled program" + intProgramFlags = intProgramFlags and not _ + DISABLE_PROGRAM + objProgram.ProgramFlags = intProgramFlags + objProgram.Put_ +else + wscript.echo "DISABLE_PROGRAM flag not set" +end if + diff --git a/Chapter05/5-17_ShowAllPackagesProgramsWithWindowsInstallerSourcesConfigured.vbs b/Chapter05/5-17_ShowAllPackagesProgramsWithWindowsInstallerSourcesConfigured.vbs new file mode 100644 index 0000000..90ffaba --- /dev/null +++ b/Chapter05/5-17_ShowAllPackagesProgramsWithWindowsInstallerSourcesConfigured.vbs @@ -0,0 +1,31 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPrograms = objSMS.ExecQuery _ + ("Select * From SMS_Program " & _ + "WHERE MSIProductID <> '' order by PackageID") + +for each objProgram in colPrograms + wscript.echo "Package Name: " & GetPackageName _ + (objProgram.PackageID) & "(" & objProgram.PackageID & ")" + wscript.echo vbTAB & "Program Name: " & _ + objProgram.ProgramName + wscript.echo vbTAB & vbTAB & "MSIFilePath MSIProductID: " & _ + objProgram.MSIFilePath & " " & objProgram.MSIProductID +next + +Function GetPackageName(strPckID) + Set objPackage=objSMS.Get("SMS_Package.PackageID='" & strPckID & "'") + GetPackageName = objPackage.Name +End Function diff --git a/Chapter05/5-18_EnableMOMAlerts.vbs b/Chapter05/5-18_EnableMOMAlerts.vbs new file mode 100644 index 0000000..a70633a --- /dev/null +++ b/Chapter05/5-18_EnableMOMAlerts.vbs @@ -0,0 +1,45 @@ +DISABLE_MOM_ALERT_WHILE_RUNNING = 2^(5) +GENERATE_MOM_ALERT_IF_FAILURE = 2^(6) + +strSMSServer = + +strPackageID = "LAB0000A" +strProgramName = "NET Framework 1.1 SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +intProgramFlags = objProgram.ProgramFlags + +if (intProgramFlags and DISABLE_MOM_ALERT_WHILE_RUNNING) then + wscript.echo "DISABLE_MOM_ALERT_WHILE_RUNNING flag " & _ + "already set!" +else + wscript.echo "Setting DISABLE_MOM_ALERT_WHILE_RUNNING flag" + intProgramFlags = intProgramFlags or _ + DISABLE_MOM_ALERT_WHILE_RUNNING +end if + +if (intProgramFlags and GENERATE_MOM_ALERT_IF_FAILURE) then + wscript.echo "GENERATE_MOM_ALERT_IF_FAILURE flag " & _ + "already set!" +else + wscript.echo "Setting GENERATE_MOM_ALERT_IF_FAILURE flag" + intProgramFlags = intProgramFlags or _ + GENERATE_MOM_ALERT_IF_FAILURE +end if +objProgram.ProgramFlags = intProgramFlags +objProgram.Put_ + diff --git a/Chapter05/5-19_ExportingPackageProgramtoMOF.vbs b/Chapter05/5-19_ExportingPackageProgramtoMOF.vbs new file mode 100644 index 0000000..d93793b --- /dev/null +++ b/Chapter05/5-19_ExportingPackageProgramtoMOF.vbs @@ -0,0 +1,97 @@ +'you could use a for-loop in batch to bring in every .mof in a directory: for /F %G in ('dir /b') do mofcomp %G +Const ForWriting = 2 +Set fso = CreateObject("Scripting.FileSystemObject") +strSMSServer = "SMSVPC" +strNEWSMSServer = "MYPRODSMSSERVER" +strNewSMSSiteCode = "PRD" +strPackageID = "LAB0000B" +strExportFolder = "C:\Scripts\Packages\" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + + +Set colPkgs = objSMS.ExecQuery _ + ("select * from SMS_Package where PackageID = '" & strPackageID & "'") + +for each objPkg in colPkgs +'wscript.echo objPkg.GetObjectText_ +'wscript.echo objPkg.GetText_(2) 'output to xml + wscript.echo "Exporting " & objPkg.Name & vbTAB & _ + objPkg.PackageID + Set fout = fso.OpenTextFile(strExportFolder & _ + objPkg.Name & " (" & objPkg.PackageID & ")" & _ + ".MOF", ForWriting, True) + fout.writeline "//********************************" + fout.writeline "//Created by VBScript" & vbTAB & Now() + fout.writeline "//********************************" + fout.writeline vbCRLF + 'only use the following line if planning to import MOF + 'from the command line + fout.writeline "#pragma namespace(" & chr(34) & "\\\\" & _ + strNEWSMSServer & "\\root\\SMS\\site_" & _ + strnewSMSSiteCode & chr(34) & ")" + + 'Write the package info + fout.writeline vbCRLF + fout.writeline "// **** Class : SMS_Package ****" + + for each strLine in split(objPkg.GetObjectText_, chr(10)) + if instr(strLine, "PackageID =") then + fout.writeline(vbTAB & "PackageID = " & chr(34) & _ + chr(34)) & ";" + elseif instr(strLine, "instance of SMS_Package") then + strLine = "instance of SMS_Package as $pID" + fout.writeline cstr(strLine) + elseif instr(strLine, "SourceDate") then + strLine = "SourceDate = " & Chr(34) & Chr(34) + fout.writeline cstr(strLine) + elseif instr(strLine, "SourceSite") then + strLine = "SourceSite = " & Chr(34) & Chr(34) + fout.writeline cstr(strLine) + elseif instr(strLine, "SourceVersion") then + strLine = "SourceVersion = " & Chr(34) & Chr(34) + fout.writeline cstr(strLine) + else + fout.writeline cstr(strLine) + end if + next + + 'now write program info + fout.writeline vbCRLF + fout.writeline "// **** Class : SMS_Program ****" + + Set colPrograms = objSMS.ExecQuery _ + ("select * from SMS_Program where PackageID = '" & _ + objPkg.PackageID & "'") + + for each objProgram in colPrograms + for each strLine in split(objProgram.GetObjectText_, chr(10)) + if instr(strLine, "PackageID =") then + fout.writeline(vbTAB & "PackageID = $pID;") + elseif instr(strLine, "DependentProgram") then + if len(strLine) = 23 then + fout.writeline strLine + else + fout.writeline vbTAB & "//" & strLine + fout.writeline vbTAB & "DependentProgram = " & _ + Chr(34) & Chr(34) & ";" + end if + else + fout.writeline cstr(strLine) + end if + next + next + fout.writeline "// **** End ****" + fout.close +next + + diff --git a/Chapter05/5-1_CreateProgram.vbs b/Chapter05/5-1_CreateProgram.vbs new file mode 100644 index 0000000..dce9908 --- /dev/null +++ b/Chapter05/5-1_CreateProgram.vbs @@ -0,0 +1,23 @@ +strSMSServer = +strPackageID = "LAB0000A" +strProgramName = "NET Framework 1.1 SP1" +strProgramCMDLine = _ + "NDP1.1sp1-KB867460-X86.exe /I /Q /L:%temp%\NetFW1.1.sp1.log" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set newProgram = objSMS.Get("SMS_Program").SpawnInstance_() +newProgram.PackageID = strPackageID +newProgram.ProgramName = strProgramName +newProgram.CommandLine = strProgramCMDLine +newProgram.Put_ diff --git a/Chapter05/5-20_ExportingALLPackageProgramtoMOFs.vbs b/Chapter05/5-20_ExportingALLPackageProgramtoMOFs.vbs new file mode 100644 index 0000000..6d9d94b --- /dev/null +++ b/Chapter05/5-20_ExportingALLPackageProgramtoMOFs.vbs @@ -0,0 +1,93 @@ +'you could use a for-loop in batch to bring in every .mof in a directory: for /F %G in ('dir /b') do mofcomp %G +Const ForWriting = 2 +Set fso = CreateObject("Scripting.FileSystemObject") +strSMSServer = "SMSVPC" +strNEWSMSServer = "MYPRODSMSSERVER" +strNewSMSSiteCode = "PRD" +strExportFolder = "C:\Scripts\Packages\" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colPkgs = objSMS.ExecQuery _ +("select * from SMS_Package") + +for each objPkg in colPkgs +'wscript.echo objPkg.GetObjectText_ +'wscript.echo objPkg.GetText_(2) 'output to xml + wscript.echo "Exporting " & objPkg.Name & vbTAB & _ + objPkg.PackageID + Set fout = fso.OpenTextFile(strExportFolder & _ + objPkg.Name & " (" & objPkg.PackageID & ")" & ".MOF", ForWriting, True) + fout.writeline "//********************************" + fout.writeline "//Created by VBScript" & vbTAB & Now() + fout.writeline "//********************************" + fout.writeline vbCRLF + 'only use the following line if planning to import MOF + 'from the command line + fout.writeline "#pragma namespace(" & chr(34) & "\\\\" & _ + strNEWSMSServer & "\\root\\SMS\\site_" & _ + strnewSMSSiteCode & chr(34) & ")" + + 'Write the package info + fout.writeline vbCRLF + fout.writeline "// **** Class : SMS_Package ****" + + for each strLine in split(objPkg.GetObjectText_, chr(10)) + if instr(strLine, "PackageID =") then + fout.writeline(vbTAB & "PackageID = " & chr(34) & _ + chr(34)) & ";" + elseif instr(strLine, "instance of SMS_Package") then + strLine = "instance of SMS_Package as $pID" + fout.writeline cstr(strLine) + elseif instr(strLine, "SourceDate") then + strLine = "SourceDate = " & Chr(34) & Chr(34) + fout.writeline cstr(strLine) + elseif instr(strLine, "SourceSite") then + strLine = "SourceSite = " & Chr(34) & Chr(34) + fout.writeline cstr(strLine) + elseif instr(strLine, "SourceVersion") then + strLine = "SourceVersion = " & Chr(34) & Chr(34) + fout.writeline cstr(strLine) + else + fout.writeline cstr(strLine) + end if + next + + 'now write program info + fout.writeline vbCRLF + fout.writeline "// **** Class : SMS_Program ****" + + Set colPrograms = objSMS.ExecQuery _ + ("select * from SMS_Program where PackageID = '" & _ + objPkg.PackageID & "'") + + for each objProgram in colPrograms + for each strLine in split(objProgram.GetObjectText_, chr(10)) + if instr(strLine, "PackageID =") then + fout.writeline(vbTAB & "PackageID = $pID;") + elseif instr(strLine, "DependentProgram") then + if len(strLine) = 23 then + fout.writeline strLine + else + fout.writeline vbTAB & "//" & strLine + fout.writeline vbTAB & "DependentProgram = " & Chr(34) & Chr(34) & ";" + end if + else + fout.writeline cstr(strLine) + end if + next + next + fout.writeline "// **** End ****" + fout.close +next + + diff --git a/Chapter05/5-2_DeleteProgram.vbs b/Chapter05/5-2_DeleteProgram.vbs new file mode 100644 index 0000000..0415575 --- /dev/null +++ b/Chapter05/5-2_DeleteProgram.vbs @@ -0,0 +1,21 @@ +strSMSServer = + +strPackageID = "LAB0000B" +strProgramName = "NET Framework 1.1 SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") +wscript.echo "Deleting " & objProgram.ProgramName +objProgram.Delete_ \ No newline at end of file diff --git a/Chapter05/5-3_DeletePrograms.vbs b/Chapter05/5-3_DeletePrograms.vbs new file mode 100644 index 0000000..e95dca1 --- /dev/null +++ b/Chapter05/5-3_DeletePrograms.vbs @@ -0,0 +1,22 @@ +strSMSServer = +strPackageID = "LAB0000B" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPrograms = objSMS.ExecQuery("Select * From SMS_Program " & _ + "WHERE PackageID='" & strPackageID & "'") +For Each objProgram In colPrograms + wscript.echo "Deleting " & objProgram.ProgramName + objProgram.Delete_ +Next + diff --git a/Chapter05/5-4_ViewingAllProgramsInAPackage.vbs b/Chapter05/5-4_ViewingAllProgramsInAPackage.vbs new file mode 100644 index 0000000..913e69d --- /dev/null +++ b/Chapter05/5-4_ViewingAllProgramsInAPackage.vbs @@ -0,0 +1,28 @@ +strSMSServer = +strPackageID = "LAB0000C" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPrograms = objSMS.ExecQuery("Select * From SMS_Program " & _ + "WHERE PackageID='" & strPackageID & "' order by ProgramName") +wscript.echo "All Programs for " & _ + GetPackageName(strPackageID) & " (" & strPackageID & ")" +For Each objProgram In colPrograms + wscript.echo vbTAB & objProgram.ProgramName +Next + +Function GetPackageName(strPckID) + Set objPackage=objSMS.Get("SMS_Package.PackageID='" & strPckID & "'") + GetPackageName = objPackage.Name +End Function + diff --git a/Chapter05/5-5_ViewingAllPackagesWithPrograms.vbs b/Chapter05/5-5_ViewingAllPackagesWithPrograms.vbs new file mode 100644 index 0000000..a7ded48 --- /dev/null +++ b/Chapter05/5-5_ViewingAllPackagesWithPrograms.vbs @@ -0,0 +1,29 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPackages = objSMS.ExecQuery("Select * From SMS_Package where " & _ + "ImageFlags = 0 order by Name") + +For each objPackage in ColPackages + wscript.echo objPackage.Name & " (" & objPackage.PackageID & ")" + ListPrograms(objPackage.PackageID) +Next + +Sub ListPrograms(strPackageID) + Set colPrograms = objSMS.ExecQuery("Select * From SMS_Program " & _ + "WHERE PackageID='" & strPackageID & "' order by ProgramName") + For Each objProgram In colPrograms + wscript.echo vbTAB & objProgram.ProgramName + Next +End Sub diff --git a/Chapter05/5-6_ModifyProgram.vbs b/Chapter05/5-6_ModifyProgram.vbs new file mode 100644 index 0000000..e58b959 --- /dev/null +++ b/Chapter05/5-6_ModifyProgram.vbs @@ -0,0 +1,22 @@ +strSMSServer = + +strPackageID = "LAB0000A" +strProgramName = "NET Framework 1.1 SP1" +strComment = "This program installs SP1 for the .NET framework" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") +objProgram.Comment = strComment +objProgram.Put_ diff --git a/Chapter05/5-7_ModifyCategoryOnMultiplePrograms.vbs b/Chapter05/5-7_ModifyCategoryOnMultiplePrograms.vbs new file mode 100644 index 0000000..f9eb23e --- /dev/null +++ b/Chapter05/5-7_ModifyCategoryOnMultiplePrograms.vbs @@ -0,0 +1,30 @@ +strSMSServer = + +strCategory = "SMS Admin" + +strPkgList = "LAB00002,LAB00006,LAB00003,LAB00005" +arrPackages = split(strPkgList,",") + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +For each strPackageID in arrPackages + Set colPrograms = objSMS.ExecQuery _ + ("Select * From SMS_Program " & _ + "WHERE PackageID='" & strPackageID & "'") + For Each objProgram In colPrograms + wscript.echo "Modifying category for:" & _ + objProgram.ProgramName + objProgram.Description = strCategory + objProgram.Put_ + Next +Next \ No newline at end of file diff --git a/Chapter05/5-8_ShowSupportedPlatforms.vbs b/Chapter05/5-8_ShowSupportedPlatforms.vbs new file mode 100644 index 0000000..54dd1c0 --- /dev/null +++ b/Chapter05/5-8_ShowSupportedPlatforms.vbs @@ -0,0 +1,41 @@ +strSMSServer = + +ANY_PLATFORM = 2^(27) 'sms doc incorrect + +strPackageID = "LAB00086" +strProgramName = "Microsoft Updates" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +'Check for "Any Platform in ProgramFlags first +if (objProgram.ProgramFlags and ANY_PLATFORM) then + wscript.echo "This program is configured to run " & _ + "on any platform" +else + for i = 0 to ubound(objProgram.SupportedOperatingSystems) + strInfo = _ + objProgram.SupportedOperatingSystems(i).Name & vbTAB + strInfo = strInfo & _ + objProgram.SupportedOperatingSystems(i).Platform & _ + vbTAB + strInfo = strInfo & _ + objProgram.SupportedOperatingSystems(i). _ + MinVersion & vbTAB + strInfo = strInfo & objProgram. _ + SupportedOperatingSystems(i).MaxVersion + wscript.echo strInfo + next +end if diff --git a/Chapter05/5-9_ShowAllExplicitPlatformsWO2K.vbs b/Chapter05/5-9_ShowAllExplicitPlatformsWO2K.vbs new file mode 100644 index 0000000..b15df09 --- /dev/null +++ b/Chapter05/5-9_ShowAllExplicitPlatformsWO2K.vbs @@ -0,0 +1,57 @@ +strSMSServer = + +strWindowsVersion = "5.00" 'looking for Windows 2000 here +ANY_PLATFORM = 2^(27) + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colPrograms = objSMS.ExecQuery _ + ("Select * From SMS_Program order by PackageID") +For Each objProgram In colPrograms + if (objProgram.ProgramFlags and ANY_PLATFORM) then + 'program is set to "any platform" - don't check further + else + ListFilteredPrograms objProgram.ProgramName, objProgram.PackageID, _ + strWindowsVersion + end if +Next + +Sub ListFilteredPrograms(strProgramName, strPackageID, strWinVer) + Set objProgram=objSMS.Get _ + ("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & _ + strProgramName & "'") + for i = 0 to ubound(objProgram.SupportedOperatingSystems) + if instr(objProgram.SupportedOperatingSystems(i). _ + MaxVersion, strWinVer) then + blnFoundOne = true + end if + next + if blnFoundOne then + wscript.echo "Package Name:" & _ + GetPackageName(strPackageID) & vbTAB & _ + "Program Name:" & strProgramName + else + 'this would capture all programs that had supported + 'platforms configured that did not contain strWinVer + end if +End Sub + +Function GetPackageName(strPckID) + Set objPackage=objSMS.Get _ + ("SMS_Package.PackageID='" & _ + strPckID & "'") + GetPackageName = objPackage.Name +End Function + + diff --git a/Chapter05/5-BonusConfigCmdLinProps.vbs b/Chapter05/5-BonusConfigCmdLinProps.vbs new file mode 100644 index 0000000..7fbd37f --- /dev/null +++ b/Chapter05/5-BonusConfigCmdLinProps.vbs @@ -0,0 +1,57 @@ +RUN_MAXIMIZED = 2^(23) +RUN_MINIMIZED = 2^(22) +HIDE_WINDOW = 2^(24) + +LOGOFF_USER = 2^(25) +SMS_RESTART = 2^(19) +PROGRAM_RESTART = 2^(18) + +strSMSServer = + +strPackageID = "LAB0000C" +strProgramName = "sdktest2" +strCategory = "Developer" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +objProgram.CommandLine = "msiexec.exe /q ALLUSERS=2 " & _ + "/m MSI4LYMT /i " & chr(34) & "SMSSDKSetup.msi" & chr(34) +intProgramFlags = objProgram.ProgramFlags +if (intProgramFlags and RUN_MAXIMIZED) then + wscript.echo "RUN_MAXIMIZED already configured!" +else + 'ensure HIDE_WINDOW and RUN_MINIMIZED are not enabled. + intProgramFlags = intProgramFlags and not HIDE_WINDOW + intProgramFlags = intProgramFlags and not RUN_MINIMIZED + wscript.echo "Configuring Program to RUN_MAXIMIZED" + intProgramFlags = intProgramFlags or RUN_MAXIMIZED +end if + +if (intProgramFlags and SMS_RESTART) then + wscript.echo "SMS_RESTART already configured!" +else + 'ensure LOGOFF_USER and PROGRAM_RESTART are not enabled. + intProgramFlags = intProgramFlags and not LOGOFF_USER + intProgramFlags = intProgramFlags and not PROGRAM_RESTART + wscript.echo "Configuring Program to SMS_RESTART" + intProgramFlags = intProgramFlags or SMS_RESTART +end if +objProgram.ProgramFlags = intProgramFlags +objProgram.Description = strCategory 'description is actually the program "category" +objProgram.Put_ + + + diff --git a/Chapter06/6-10_ModAdvert_RecurringSMS_ST_RecurMonthlyByDate.vbs b/Chapter06/6-10_ModAdvert_RecurringSMS_ST_RecurMonthlyByDate.vbs new file mode 100644 index 0000000..71f1efe --- /dev/null +++ b/Chapter06/6-10_ModAdvert_RecurringSMS_ST_RecurMonthlyByDate.vbs @@ -0,0 +1,60 @@ +strSMSServer = + +strAdvertID = "LAB20016" +'"occurs day 5 of every two months beginning now()" +'For advStartTime, 'Now()' is used to get the current +'date/time of the system. A properly fomatted date/time would +'just fine here also: e.g., "12/02/2006 12:59 AM" +advStartTime = Now() + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'''''''''''''Schedule Token Information +'Create a new instance of SMS_ST_RecurInterval +Set advNewRecurToken = objSMS.Get("SMS_ST_RecurMonthlyByDate"). _ + SpawnInstance_() +advNewRecurToken.ForNumberOfMonths = 2 +advNewRecurToken.MonthDay = 5 'set to zero for last day of month +advNewRecurToken.StartTime = ConvertToWMIDate(advStartTime) +'''''''''''''END Schedule Token Information + +retval = AddSchedToken(advNewRecurToken, strAdvertID) + +Function AddSchedToken(objSchedToken, strAdvertID) + 'enlarge the current schedule array by 1 + Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + advertArray = objAdvert.AssignedSchedule + onemore = ubound(advertArray) + 1 + redim preserve advertArray(onemore) + objAdvert.AssignedSchedule = advertArray + 'add the new assignment + objAdvert.AssignedSchedule(onemore) = objSchedToken + objadvert.AssignedScheduleEnabled = True + AddSchedToken = objAdvert.Put_ +End Function + +Function ConvertToWMIDate(strDate) + 'Convert from a standard date time to wmi date + '4/18/2005 11:30:00 AM = 2005041811300.000000+*** + strYear = year(strDate):strMonth = month(strDate) + strDay = day(strDate):strHour = hour(strDate) + strMinute = minute(strDate) + 'Pad single digits with leading zero + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour _ + & strMinute & "00.000000+***" +end function diff --git a/Chapter06/6-11_ModAdvert_RecurringSMS_ST_RecurMonthlyByWeekDay.vbs b/Chapter06/6-11_ModAdvert_RecurringSMS_ST_RecurMonthlyByWeekDay.vbs new file mode 100644 index 0000000..9c2d1b0 --- /dev/null +++ b/Chapter06/6-11_ModAdvert_RecurringSMS_ST_RecurMonthlyByWeekDay.vbs @@ -0,0 +1,67 @@ +strSMSServer = + +strAdvertID = "LAB20016" +'"Occurs the second Monday of every 4 months starting now()" +'For advStartTime, 'Now()' is used to get the current +'date/time of the system. A properly fomatted date/time would +'just fine here also: e.g., "12/02/2006 12:59 AM" +advStartTime = Now() + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'''''''''''''Schedule Token Information +'Create a new instance of SMS_ST_RecurInterval +Set advNewRecurToken = objSMS.Get("SMS_ST_RecurMonthlyByWeekday"). _ + SpawnInstance_() +advNewRecurToken.ForNumberOfMonths = 4 +advNewRecurToken.Day = 2 '2=Monday +advNewRecurToken.WeekOrder = 2 '2=Second week of month +advNewRecurToken.StartTime = ConvertToWMIDate(advStartTime) +'''''''''''''END Schedule Token Information + +retval = AddSchedToken(advNewRecurToken, strAdvertID) + +Function AddSchedToken(objSchedToken, strAdvertID) + 'enlarge the current schedule array by 1 + Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + advertArray = objAdvert.AssignedSchedule + onemore = ubound(advertArray) + 1 + redim preserve advertArray(onemore) + objAdvert.AssignedSchedule = advertArray + 'add the new assignment + objAdvert.AssignedSchedule(onemore) = objSchedToken + objadvert.AssignedScheduleEnabled = True + AddSchedToken = objAdvert.Put_ +End Function + +Function ConvertToWMIDate(strDate) + 'Convert from a standard date time to wmi date + '4/18/2005 11:30:00 AM = 2005041811300.000000+*** + strYear = year(strDate):strMonth = month(strDate) + strDay = day(strDate):strHour = hour(strDate) + strMinute = minute(strDate) + 'Pad single digits with leading zero + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour _ + & strMinute & "00.000000+***" +end function + +'1=sunday, 2=monday, ...7 =sat +''0=last week of month + +' Remarks +' Network Discovery is the only SMS component that uses the duration properties. diff --git a/Chapter06/6-12_ModAdvert_RecurringSMS_ST_RecurWeekly.vbs b/Chapter06/6-12_ModAdvert_RecurringSMS_ST_RecurWeekly.vbs new file mode 100644 index 0000000..8c5df6b --- /dev/null +++ b/Chapter06/6-12_ModAdvert_RecurringSMS_ST_RecurWeekly.vbs @@ -0,0 +1,63 @@ +strSMSServer = + +strAdvertID = "LAB20016" +'"Occurs every two weeks on Monday, beginning now()" +'For advStartTime, 'Now()' is used to get the current +'date/time of the system. A properly fomatted date/time would +'just fine here also: e.g., "12/02/2006 12:59 AM" +advStartTime = Now() + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'''''''''''''Schedule Token Information +'Create a new instance of SMS_ST_RecurInterval +Set advNewRecurToken = objSMS.Get("SMS_ST_RecurWeekly"). _ + SpawnInstance_() +advNewRecurToken.Day = 2 '2=Monday +advNewRecurToken.ForNumberOfWeeks = 2 +advNewRecurToken.StartTime = ConvertToWMIDate(advStartTime) +'''''''''''''END Schedule Token Information + +retval = AddSchedToken(advNewRecurToken, strAdvertID) + +Function AddSchedToken(objSchedToken, strAdvertID) + 'enlarge the current schedule array by 1 + Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + advertArray = objAdvert.AssignedSchedule + onemore = ubound(advertArray) + 1 + redim preserve advertArray(onemore) + objAdvert.AssignedSchedule = advertArray + 'add the new assignment + objAdvert.AssignedSchedule(onemore) = objSchedToken + objadvert.AssignedScheduleEnabled = True + AddSchedToken = objAdvert.Put_ +End Function + +Function ConvertToWMIDate(strDate) + 'Convert from a standard date time to wmi date + '4/18/2005 11:30:00 AM = 2005041811300.000000+*** + strYear = year(strDate):strMonth = month(strDate) + strDay = day(strDate):strHour = hour(strDate) + strMinute = minute(strDate) + 'Pad single digits with leading zero + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour _ + & strMinute & "00.000000+***" +end function + +'1=sunday, 2=monday, ...7 =sat +''0=last week of month diff --git a/Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogoff.vbs b/Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogoff.vbs new file mode 100644 index 0000000..a1bea4f --- /dev/null +++ b/Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogoff.vbs @@ -0,0 +1,44 @@ +ONUSERLOGOFF = 2^(10) +NO_DISPLAY = 2^(25) + +strSMSServer = + +strAdvertID = "LAB20016" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvertisement = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +intAdvertFlags = objAdvertisement.AdvertFlags +if (intAdvertFlags and ONUSERLOGOFF) then + wscript.echo "ONUSERLOGOFF flag " & _ + "already set!" +else + wscript.echo "Setting ONUSERLOGOFF flag" + intAdvertFlags = intAdvertFlags or _ + ONUSERLOGOFF +end if +if (intAdvertFlags and NO_DISPLAY) then + 'allow users to run program independent of assignment + wscript.echo "Clearing NO_DISPLAY flag" + intAdvertFlags = intAdvertFlags and not _ + NO_DISPLAY + +else + 'allow users to run program independent of assignment + ' already enabled + wscript.echo "NO_DISPLAY flag already cleared!" +end if +objAdvertisement.AdvertFlags = intAdvertFlags +objAdvertisement.Put_ diff --git a/Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogon.vbs b/Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogon.vbs new file mode 100644 index 0000000..85065e1 --- /dev/null +++ b/Chapter06/6-13-Bonus_ModAdvert_RunOnUserLogon.vbs @@ -0,0 +1,33 @@ +ONUSERLOGON = 2^(9) + +strSMSServer = + +strAdvertID = "LAB20016" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvertisement = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +intAdvertFlags = objAdvertisement.AdvertFlags +if (intAdvertFlags and ONUSERLOGON) then + wscript.echo "ONUSERLOGON flag " & _ + "already set!" +else + wscript.echo "Setting ONUSERLOGON flag" + intAdvertFlags = intAdvertFlags or _ + ONUSERLOGON + objAdvertisement.AdvertFlags = intAdvertFlags + objAdvertisement.Put_ +end if + diff --git a/Chapter06/6-13_ModAdvert_AssignImmediately.vbs b/Chapter06/6-13_ModAdvert_AssignImmediately.vbs new file mode 100644 index 0000000..daf3335 --- /dev/null +++ b/Chapter06/6-13_ModAdvert_AssignImmediately.vbs @@ -0,0 +1,31 @@ +IMMEDIATE = 2^(5) +strSMSServer = + +strAdvertID = "LAB20016" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvertisement = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +intAdvertFlags = objAdvertisement.AdvertFlags +if (intAdvertFlags and IMMEDIATE) then + wscript.echo "IMMEDIATE flag " & _ + "already set!" +else + wscript.echo "Setting IMMEDIATE flag" + intAdvertFlags = intAdvertFlags or _ + IMMEDIATE + objAdvertisement.AdvertFlags = intAdvertFlags + objAdvertisement.Put_ +end if diff --git a/Chapter06/6-14_ShowMandatoryAssignments.vbs b/Chapter06/6-14_ShowMandatoryAssignments.vbs new file mode 100644 index 0000000..fa61cf5 --- /dev/null +++ b/Chapter06/6-14_ShowMandatoryAssignments.vbs @@ -0,0 +1,108 @@ +IMMEDIATE = 2^(5) +ONUSERLOGON = 2^(9) +ONUSERLOGOFF = 2^(10) + +strSMSServer = + +strAdvertID = "LAB20015" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +wscript.echo "Mandatory Assignment(s) for " & chr(34) & _ + objAdvert.AdvertisementName & " (" & strAdvertID & ")" & _ + chr(34) + +intAdvertFlags = objAdvert.AdvertFlags +if (intAdvertFlags and IMMEDIATE) then + wscript.echo "Event Assignment to run IMMEDIATELY." +end if +if (intAdvertFlags and ONUSERLOGON) then + wscript.echo "Event Assignment to run On User Logon." +end if +if (intAdvertFlags and ONUSERLOGOFF) then + wscript.echo "Event Assignment to run On User Logoff." +end if + +for each objSched in objAdvert.AssignedSchedule + 'for a 'quick and dirty', instead of the case statement + 'below, you could just display the information in the object + 'by using objSched.GetObjectText_ + 'wscript.echo objSched.GetObjectText_ + wscript.echo objSched.Path_.Class + select case objSched.Path_.Class + case "SMS_ST_NonRecurring" + strInfo = vbTAB & "Non-Recurring Assignment: " + strInfo = strInfo & "Occurs at " & _ + WMIDateStringToDate(objSched.StartTime) + if objSched.IsGMT then + strInfo = strInfo & " GMT" + end if + + case "SMS_ST_RecurInterval" + strInfo = vbTAB & "Recurring Interval Assignment: " + strInfo = strInfo & "Every " & objSched.DaySpan & _ + " days, " & objSched.MinuteSpan & " minutes, " + strInfo = strInfo & "beginning on " & _ + WMIDateStringToDate(objSched.StartTime) + if objSched.IsGMT then + strInfo = strInfo & " GMT" + end if + + case "SMS_ST_RecurMonthlyByDate" + strInfo = vbTAB & "Recurring Monthly By Date: " + strInfo = strInfo & "Occurs on the " & _ + objSched.MonthDay & " day, every " & _ + objSched.ForNumberOfMonths & " months, " + strInfo = strInfo & "beginning on " & _ + WMIDateStringToDate(objSched.StartTime) + if objSched.IsGMT then + strInfo = strInfo & " GMT" + end if + + case "SMS_ST_RecurMonthlyByWeekday" + strInfo = vbTAB & "Recurring Monthly By Weekday: " + strInfo = strInfo & "Occurs on the " & _ + objSched.Day & " day, every " & _ + objSched.ForNumberOfMonths & " months, " & _ + "for week order " & objSched.WeekOrder & "," + strInfo = strInfo & "beginning on " & _ + WMIDateStringToDate(objSched.StartTime) + if objSched.IsGMT then + strInfo = strInfo & " GMT" + end if + + case "SMS_ST_RecurWeekly" + strInfo = vbTAB & "Recurring Monthly By Weekday: " + strInfo = strInfo & "Occurs on the " & _ + objSched.Day & " day, every " & _ + objSched.ForNumberOfWeeks & " weeks, " + strInfo = strInfo & "beginning on " & _ + WMIDateStringToDate(objSched.StartTime) + if objSched.IsGMT then + strInfo = strInfo & " GMT" + end if + + end select + wscript.echo strInfo +next + +Function WMIDateStringToDate(dtmInstallDate) +WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _ + Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _ + & " " & Mid (dtmInstallDate, 9, 2) & ":" & _ + Mid(dtmInstallDate, 11, 2) & ":" & _ + Mid(dtmInstallDate, 13, 2)) +End Function diff --git a/Chapter06/6-15_ExpireAdvert.vbs b/Chapter06/6-15_ExpireAdvert.vbs new file mode 100644 index 0000000..c4ef5fe --- /dev/null +++ b/Chapter06/6-15_ExpireAdvert.vbs @@ -0,0 +1,43 @@ +strSMSServer = + +strAdvertID = "LAB20016" +'For advExpTime, 'Now()' is used to get the current +'date/time of the system. A properly fomatted date/time would +'just fine here also: e.g., "12/02/2006 12:59 AM" +' and in this example, we're adding 5 days to the current date +' to calculate the expire time +dtmExpireDateTime = dateadd("d",5,Now()) + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") +objAdvert.ExpirationTime = ConvertToWMIDate(dtmExpireDateTime) +objAdvert.ExpirationTimeEnabled = True +'objAdvert.ExpirationTimeIsGMT = True 'if using GMT +objAdvert.Put_ + +Function ConvertToWMIDate(strDate) + 'Convert from a standard date time to wmi date + '4/18/2005 11:30:00 AM = 2005041811300.000000+*** + strYear = year(strDate):strMonth = month(strDate) + strDay = day(strDate):strHour = hour(strDate) + strMinute = minute(strDate) + 'Pad single digits with leading zero + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour _ + & strMinute & "00.000000+***" +end function \ No newline at end of file diff --git a/Chapter06/6-16_ListAllAdvertsThatHaveExpireTimesEnabled.vbs b/Chapter06/6-16_ListAllAdvertsThatHaveExpireTimesEnabled.vbs new file mode 100644 index 0000000..c2898dc --- /dev/null +++ b/Chapter06/6-16_ListAllAdvertsThatHaveExpireTimesEnabled.vbs @@ -0,0 +1,50 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colAdverts = objSMS.ExecQuery _ + ("Select * From SMS_Advertisement order by " & _ + " AdvertisementName") +For Each objAdvert In colAdverts + strExpireTime = GetExpirationDateTimeString _ + (objAdvert.AdvertisementID) + if (not strExpireTime = "") then + wscript.echo objAdvert.AdvertisementID & vbTAB & _ + objAdvert.AdvertisementName & vbTAB & strExpireTime + end if +Next + +Function GetExpirationDateTimeString(strAdvertID) + Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & _ + strAdvertID & "'") + if objAdvert.ExpirationTimeEnabled = True then + GetExpirationDateTimeString = _ + WMIDateStringToDate(objAdvert.ExpirationTime) + if (objAdvert.ExpirationTimeIsGMT) Then + GetExpirationDateTimeString = _ + GetExpirationDateTimeString & " GMT" + end if + end if +End Function + +'Utility function to convert WMI Date string to a real date +Function WMIDateStringToDate(dtmInstallDate) + '4/12/2005 3:46:04 AM = 20050412034604.000000-000 + WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & _ + "/" & Mid(dtmInstallDate, 7, 2) & "/" & _ + Left(dtmInstallDate, 4) & " " & _ + Mid (dtmInstallDate, 9, 2) & ":" & _ + Mid(dtmInstallDate, 11, 2) & ":" & _ + Mid(dtmInstallDate,13, 2)) +End Function \ No newline at end of file diff --git a/Chapter06/6-17_ChangeAdvertPriority.vbs b/Chapter06/6-17_ChangeAdvertPriority.vbs new file mode 100644 index 0000000..3813133 --- /dev/null +++ b/Chapter06/6-17_ChangeAdvertPriority.vbs @@ -0,0 +1,23 @@ +strSMSServer = + +strAdvertID = "LAB20016" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") +objAdvert.Priority = 1 +objAdvert.Put_ +'1=high +'2=normal +'3=low \ No newline at end of file diff --git a/Chapter06/6-18_RemoteClientFlagsFromDP.vbs b/Chapter06/6-18_RemoteClientFlagsFromDP.vbs new file mode 100644 index 0000000..0da7a40 --- /dev/null +++ b/Chapter06/6-18_RemoteClientFlagsFromDP.vbs @@ -0,0 +1,25 @@ +RUN_FROM_LOCAL_DISPPOINT = 2^(3) +RUN_FROM_REMOTE_DISPPOINT = 2^(7) + +strSMSServer = + +strAdvertID = "LAB20016" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvertisement = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +objAdvertisement.RemoteClientFlags = _ + RUN_FROM_LOCAL_DISPPOINT + RUN_FROM_REMOTE_DISPPOINT +objAdvertisement.Put_ diff --git a/Chapter06/6-19_RemoteClientFlagsDLFromDP.vbs b/Chapter06/6-19_RemoteClientFlagsDLFromDP.vbs new file mode 100644 index 0000000..90fb745 --- /dev/null +++ b/Chapter06/6-19_RemoteClientFlagsDLFromDP.vbs @@ -0,0 +1,26 @@ +DOWNLOAD_FROM_LOCAL_DISPPOINT = 2^(4) +DOWNLOAD_FROM_REMOTE_DISPPOINT = 2^(6) + +strSMSServer = + +strAdvertID = "LAB20016" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvertisement = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +objAdvertisement.RemoteClientFlags = _ + DOWNLOAD_FROM_LOCAL_DISPPOINT + _ + DOWNLOAD_FROM_REMOTE_DISPPOINT +objAdvertisement.Put_ diff --git a/Chapter06/6-1_CreateAdvert.vbs b/Chapter06/6-1_CreateAdvert.vbs new file mode 100644 index 0000000..fdfb2e0 --- /dev/null +++ b/Chapter06/6-1_CreateAdvert.vbs @@ -0,0 +1,24 @@ +strSMSServer = +advName = "Microsoft .NET Framework 1.1 SP1" +advCollection = "SMS000GS" +advPackageID = "LAB0000A" +advProgramName = "NET Framework 1.1 SP1" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set newAdvert = objSMS.Get("SMS_Advertisement").SpawnInstance_() +newAdvert.AdvertisementName = advName +newAdvert.CollectionID = advCollection +newAdvert.PackageID = advPackageID +newAdvert.ProgramName = advProgramName +newAdvert.Put_ diff --git a/Chapter06/6-20_ShowAdvertsConfiguredtoDandE_RemoteClientFlags.vbs b/Chapter06/6-20_ShowAdvertsConfiguredtoDandE_RemoteClientFlags.vbs new file mode 100644 index 0000000..9537064 --- /dev/null +++ b/Chapter06/6-20_ShowAdvertsConfiguredtoDandE_RemoteClientFlags.vbs @@ -0,0 +1,60 @@ +RUN_FROM_LOCAL_DISPPOINT = 2^(3) +DOWNLOAD_FROM_LOCAL_DISPPOINT = 2^(4) +DONT_RUN_NO_LOCAL_DISPPOINT = 2^(5) +DOWNLOAD_FROM_REMOTE_DISPPOINT = 2^(6) +RUN_FROM_REMOTE_DISPPOINT = 2^(7) + +RunFromLocalDP_DownloadIfRemoteDP = _ + RUN_FROM_LOCAL_DISPPOINT + DOWNLOAD_FROM_REMOTE_DISPPOINT +DownloadFromLocal_DontRunNoLocal = _ + DOWNLOAD_FROM_LOCAL_DISPPOINT + DONT_RUN_NO_LOCAL_DISPPOINT +DownloadFromLocalDP_DownloadIfRemoteDP = _ + DOWNLOAD_FROM_LOCAL_DISPPOINT + _ + DOWNLOAD_FROM_REMOTE_DISPPOINT + + +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colAdverts = objSMS.ExecQuery _ + ("Select * From SMS_Advertisement where " & _ + "RemoteClientFlags = " & _ + RunFromLocalDP_DownloadIfRemoteDP & _ + " or RemoteClientFlags = " & _ + DownloadFromLocal_DontRunNoLocal & _ + " or RemoteClientFlags = " & _ + DownloadFromLocalDP_DownloadIfRemoteDP & " order by " & _ + " AdvertisementName") + +For Each objAdvert In colAdverts + Select Case objAdvert.RemoteclientFlags + + Case RunFromLocalDP_DownloadIfRemoteDP + wscript.echo objAdvert.AdvertisementName & vbTAB & _ + "(RunFromLocalDP_DownloadIfRemoteDP)" + + Case DownloadFromLocal_DontRunNoLocal + wscript.echo objAdvert.AdvertisementName & vbTAB & _ + "(DownloadFromLocal_DontRunNoLocal)" + + Case DownloadFromLocalDP_DownloadIfRemoteDP + wscript.echo objAdvert.AdvertisementName & vbTAB & _ + "(DownloadFromLocalDP_DownloadIfRemoteDP)" + + Case Else + 'neither remote or local are configured to + ' download from DP + End Select +Next + diff --git a/Chapter06/6-21_CreateAdvertFolder.vbs b/Chapter06/6-21_CreateAdvertFolder.vbs new file mode 100644 index 0000000..12bc373 --- /dev/null +++ b/Chapter06/6-21_CreateAdvertFolder.vbs @@ -0,0 +1,30 @@ +strSMSServer = + +strNewFolderName = "Security Patches" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set newFolder = objSMS.Get("SMS_ObjectContainerNode") _ + .SpawnInstance_() +newFolder.Name = strNewFolderName +newFolder.ObjectType = 3 'advertisement +newFolder.ParentContainerNodeId = 0 +newFolder.Put_ + + +'Property value Object type +'2 Package +'3 Advertisement +'7 Query +'8 Report +'9 Software Metering diff --git a/Chapter06/6-22_MoveAdvertsBetweenFolders.vbs b/Chapter06/6-22_MoveAdvertsBetweenFolders.vbs new file mode 100644 index 0000000..898bbf3 --- /dev/null +++ b/Chapter06/6-22_MoveAdvertsBetweenFolders.vbs @@ -0,0 +1,26 @@ +strSMSServer = + +strSMSSiteCode = "LAB" +strAdvertIDs = "LAB20013,LAB20014" + +'to move more than one, separate with commas +intSourceFolder=0 'Source Folder (root node in this case) +intDestFolder=7 'Destination Folder +intObjectType=3 '3=Advertisement for type of object + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objFolder = objSMS.Get("SMS_ObjectContainerItem") +arrAdvertIDs = split(strAdvertIDs, ",") +retval = objFolder.MoveMembers _ +(arrAdvertIDs, intSourceFolder, intDestFolder, intObjectType) diff --git a/Chapter06/6-23_DisableProgram_Advert.vbs b/Chapter06/6-23_DisableProgram_Advert.vbs new file mode 100644 index 0000000..1973485 --- /dev/null +++ b/Chapter06/6-23_DisableProgram_Advert.vbs @@ -0,0 +1,32 @@ +strSMSServer = + +strPackageID = "LAB00006" +strProgramName = "Microsoft Updates Tool" +DISABLE_PROGRAM = 2^(12) + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objProgram=objSMS.Get("SMS_Program.PackageID='" & _ + strPackageID & "',ProgramName='" & strProgramName & "'") + +intProgramFlags = objProgram.ProgramFlags + +if (intProgramFlags and DISABLE_PROGRAM) then + wscript.echo "Disable Program Flag already set!" +else + wscript.echo "Disabling program now." + intProgramFlags = intProgramFlags or DISABLE_PROGRAM + objProgram.ProgramFlags = intProgramFlags + objProgram.Put_ +end if + diff --git a/Chapter06/6-24_ShowAdvertStatus.vbs b/Chapter06/6-24_ShowAdvertStatus.vbs new file mode 100644 index 0000000..d67a1dd --- /dev/null +++ b/Chapter06/6-24_ShowAdvertStatus.vbs @@ -0,0 +1,49 @@ +CONST SINCE_ADVERTISED = "0001128000080008" + +strSMSServer = + +strAdvertID = "LAB20014" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colAdvertStatus = objSMS.ExecQuery _ + ("Select * From SMS_AdvertisementStatusSummarizer where" & _ + " AdvertisementID = '" & strAdvertID & _ + "' and DisplaySchedule = '" & SINCE_ADVERTISED & "'") + for each objAS in colAdvertStatus + wscript.echo objAS.SiteCode & vbTAB & _ + objAS.AdvertisementsReceived & vbTAB & _ + objAS.AdvertisementsFailed & vbTAB & _ + objAS.ProgramsStarted & vbTAB & _ + objAS.ProgramsFailed & vbTAB & _ + objAS.ProgramsSucceeded & vbTAB & _ + objAS.ProgramsFailedMIF & vbTAB & _ + objAS.ProgramsSucceededMIF + next + + +'TABLE -- Tally Intervals -- from the SDK +' CONST SINCE_ADVERTISED = "0001128000080008" +' CONST SINCE12_00_AM = "0001128000100008" +' CONST SINCE06_00AM = "00C1128000100008" +' CONST SINCE12_00_PM = "0181128000100008" +' CONST SINCE06_00_PM = "0241128000100008" +' CONST SINCE_SUNDAY = "0001128000192000" +' CONST SINCE_MONDAY = "00011280001A2000" +' CONST SINCE_TUESDAY = "00011280001B2000" +' CONST SINCE_WEDNESDAY = "00011280001C2000" +' CONST SINCE_THURSDAY = "00011280001D2000" +' CONST SINCE_FRIDAY = "00011280001E2000" +' CONST SINCE_SATURDAY = "00011280001F2000" +' CONST SINCE_1ST_OF_MONTH = "000A470000284400" +' CONST SINCE_15TH_OF_MONTH = "000A4700002BC400" \ No newline at end of file diff --git a/Chapter06/6-2_DeleteAdvert.vbs b/Chapter06/6-2_DeleteAdvert.vbs new file mode 100644 index 0000000..7c916cc --- /dev/null +++ b/Chapter06/6-2_DeleteAdvert.vbs @@ -0,0 +1,20 @@ +strSMSServer = + +strAdvertID = "LAB20007" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") +wscript.echo "Deleting " & objAdvert.AdvertisementName +objAdvert.Delete_ diff --git a/Chapter06/6-3_DeleteMultipleAdverts_SamePackage.vbs b/Chapter06/6-3_DeleteMultipleAdverts_SamePackage.vbs new file mode 100644 index 0000000..36f4121 --- /dev/null +++ b/Chapter06/6-3_DeleteMultipleAdverts_SamePackage.vbs @@ -0,0 +1,22 @@ +strSMSServer = +strPackageID = "LAB00002" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colAdverts = objSMS.ExecQuery("Select * From SMS_Advertisement " & _ + "WHERE PackageID='" & strPackageID & "'") +For Each objAdvert In colAdverts + wscript.echo "Deleting " & objAdvert.AdvertisementName + objAdvert.Delete_ +Next + diff --git a/Chapter06/6-4_ListAdverts.vbs b/Chapter06/6-4_ListAdverts.vbs new file mode 100644 index 0000000..2d4b36a --- /dev/null +++ b/Chapter06/6-4_ListAdverts.vbs @@ -0,0 +1,21 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colAdverts = objSMS.ExecQuery _ + ("Select * From SMS_Advertisement order by " & _ + " AdvertisementName") +For Each objAdvert In colAdverts + wscript.echo objAdvert.AdvertisementName & vbTAB & _ + objAdvert.PresentTime & objAdvert.AssignedSchedule +Next diff --git a/Chapter06/6-5_ModifyAdvert.vbs b/Chapter06/6-5_ModifyAdvert.vbs new file mode 100644 index 0000000..92afda4 --- /dev/null +++ b/Chapter06/6-5_ModifyAdvert.vbs @@ -0,0 +1,23 @@ +strSMSServer = + +strAdvertID = "LAB20015" +strNewPackageID = "LAB00006" +strNewProgramName = "Microsoft Updates Tool" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") +objAdvert.PackageID = strNewPackageID +objAdvert.ProgramName = strNewProgramName +objAdvert.Put_ diff --git a/Chapter06/6-6_ModifyAdvert.vbs b/Chapter06/6-6_ModifyAdvert.vbs new file mode 100644 index 0000000..25da42f --- /dev/null +++ b/Chapter06/6-6_ModifyAdvert.vbs @@ -0,0 +1,21 @@ +strSMSServer = + +strAdvertID = "LAB20015" +strNewCollectionID = "LAB00011" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") +objAdvert.CollectionID = strNewCollectionID +objAdvert.Put_ diff --git a/Chapter06/6-7_ModAdvert_Voluntary.vbs b/Chapter06/6-7_ModAdvert_Voluntary.vbs new file mode 100644 index 0000000..a953f8e --- /dev/null +++ b/Chapter06/6-7_ModAdvert_Voluntary.vbs @@ -0,0 +1,24 @@ +NO_DISPLAY = 2^(25) + +strSMSServer = + +strAdvertID = "LAB20153" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set objAdvertisement = objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + +objAdvertisement.AdvertFlags = objAdvertisement.AdvertFlags _ + and not NO_DISPLAY +objAdvertisement.Put_ diff --git a/Chapter06/6-8_ModAdvert_Mandatory.vbs b/Chapter06/6-8_ModAdvert_Mandatory.vbs new file mode 100644 index 0000000..c8256cd --- /dev/null +++ b/Chapter06/6-8_ModAdvert_Mandatory.vbs @@ -0,0 +1,54 @@ +strSMSServer = + +strAdvertID = "LAB20016" +'For advAssignedSchedule, 'Now()' is used to get the current +'date/time of the system. A properly fomatted date/time would +'just fine here also: e.g., "12/02/2006 12:59 AM" +advAssignedSchedule = Now() + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'create a non-recurring schedule token +Set instToken = objSMS.Get("SMS_ST_NonRecurring"). _ + SpawnInstance_() +instToken.StartTime = ConvertToWMIDate(advAssignedSchedule) +retval = AddSchedToken(instToken, strAdvertID) + +Function AddSchedToken(objSchedToken, strAdvertID) + 'enlarge the current schedule array by 1 + Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + advertArray = objAdvert.AssignedSchedule + onemore = ubound(advertArray) + 1 + redim preserve advertArray(onemore) + objAdvert.AssignedSchedule = advertArray + 'add the new assignment + objAdvert.AssignedSchedule(onemore) = objSchedToken + objadvert.AssignedScheduleEnabled = True + AddSchedToken = objAdvert.Put_ +End Function + +Function ConvertToWMIDate(strDate) + 'Convert from a standard date time to wmi date + '4/18/2005 11:30:00 AM = 2005041811300.000000+*** + strYear = year(strDate):strMonth = month(strDate) + strDay = day(strDate):strHour = hour(strDate) + strMinute = minute(strDate) + 'Pad single digits with leading zero + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour _ + & strMinute & "00.000000+***" +end function \ No newline at end of file diff --git a/Chapter06/6-9_ModAdvert_RecurringSMS_ST_RecurInterval.vbs b/Chapter06/6-9_ModAdvert_RecurringSMS_ST_RecurInterval.vbs new file mode 100644 index 0000000..727d1e2 --- /dev/null +++ b/Chapter06/6-9_ModAdvert_RecurringSMS_ST_RecurInterval.vbs @@ -0,0 +1,59 @@ +strSMSServer = + +strAdvertID = "LAB20016" +'"Occurs every 10 minutes beginning now()" +'For advStartTime, 'Now()' is used to get the current +'date/time of the system. A properly fomatted date/time would +'just fine here also: e.g., "12/02/2006 12:59 AM" +advStartTime = Now() + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +'''''''''''''Schedule Token Information +'Create a new instance of SMS_ST_RecurInterval +Set advNewRecurToken = objSMS.Get("SMS_ST_RecurInterval"). _ + SpawnInstance_() +advNewRecurToken.MinuteSpan=10 +advNewRecurToken.StartTime = ConvertToWMIDate(advStartTime) +'''''''''''''END Schedule Token Information + +retval = AddSchedToken(advNewRecurToken,strAdvertID) + +Function AddSchedToken(objSchedToken, strAdvertID) + 'enlarge the current schedule array by 1 + Set objAdvert=objSMS.Get _ + ("SMS_Advertisement.AdvertisementID='" & strAdvertID & "'") + advertArray = objAdvert.AssignedSchedule + onemore = ubound(advertArray) + 1 + redim preserve advertArray(onemore) + objAdvert.AssignedSchedule = advertArray + 'add the new assignment + objAdvert.AssignedSchedule(onemore) = objSchedToken + objadvert.AssignedScheduleEnabled = True + AddSchedToken = objAdvert.Put_ +End Function + +Function ConvertToWMIDate(strDate) + 'Convert from a standard date time to wmi date + '4/18/2005 11:30:00 AM = 2005041811300.000000+*** + strYear = year(strDate):strMonth = month(strDate) + strDay = day(strDate):strHour = hour(strDate) + strMinute = minute(strDate) + 'Pad single digits with leading zero + if len(strmonth) = 1 then strMonth = "0" & strMonth + if len(strDay) = 1 then strDay = "0" & strDay + if len(strHour) = 1 then strHour = "0" & strHour + if len(strMinute) = 1 then strMinute = "0" & strMinute + ConvertToWMIDate = strYear & strMonth & strDay & strHour _ + & strMinute & "00.000000+***" +end function diff --git a/Chapter06/6-Bonus_ShowAdvertAssignmentInfo.vbs b/Chapter06/6-Bonus_ShowAdvertAssignmentInfo.vbs new file mode 100644 index 0000000..ea12e93 --- /dev/null +++ b/Chapter06/6-Bonus_ShowAdvertAssignmentInfo.vbs @@ -0,0 +1,33 @@ +on error resume next +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + strSMSSiteCode = Loc.Sitecode + end if +Next + +Set colCollections = objSMS.ExecQuery _ +("select * from SMS_Collection order by Name") +For each objCollection in colCollections + wscript.echo objCollection.Name & vbTAB & _ + GetRecurSchedule(objCollection.CollectionID) +next + +Function GetRecurSchedule(strCollID) + Set objCollection = objSMS.Get _ + ("SMS_Collection.CollectionID='" & strCollID & "'") + if objCollection.RefreshType = 1 then + GetRecurSchedule = "Manual Refresh" + else + for each objSched in objCollection.RefreshSchedule + GetRecurSchedule = objSched.GetObjectText_ + next + end if +End Function \ No newline at end of file diff --git a/Chapter06/RemoteClientflags.txt b/Chapter06/RemoteClientflags.txt new file mode 100644 index 0000000..74656d4 --- /dev/null +++ b/Chapter06/RemoteClientflags.txt @@ -0,0 +1,18 @@ +RemoteClientFlags + +When a distribution point is available locally +A Run program from distribution point +B Download program from distribution point + +When no distribution point is available locally +C do not run program +D download program from a remote distribution point +E run program from a remote distribution point + + +default: +AC = 40 +AD = 72 +AE = 136 +BC = 48 +BD = 80 diff --git a/Chapter07/7-10_DisplayMeteredFileUsageSummaryData.vbs b/Chapter07/7-10_DisplayMeteredFileUsageSummaryData.vbs new file mode 100644 index 0000000..0ea54f3 --- /dev/null +++ b/Chapter07/7-10_DisplayMeteredFileUsageSummaryData.vbs @@ -0,0 +1,67 @@ +strSMSServer = + +intDays = 10 +strProductName = "sol" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strWQL = "SELECT SMS_MeteredFiles.ProductName, " & _ + "SMS_FileUsageSummary.DistinctUserCount, " & _ + "SMS_FileUsageSummary.IntervalStart, " & _ + "SMS_FileUsageSummary.IntervalWidth, " & _ + "SMS_FileUsageSummary.SiteCode " & _ + "FROM SMS_MeteredFiles INNER JOIN SMS_FileUsageSummary " & _ + "ON SMS_MeteredFiles.MeteredFileID = " & _ + "SMS_FileUsageSummary.FileID WHERE " & _ + "datediff(day,SMS_FileUsageSummary.IntervalStart, getdate()) " & _ + "<= " & intDays & " AND " & _ + "(SMS_FileUsageSummary.IntervalWidth = 15) AND " & _ + "(SMS_MeteredFiles.ProductName = '" & strProductName & "')" + +wscript.echo "Product Name" & vbTAB & "Metered Interval" & vbTAB & _ + "Distinct Users" & vbTAB & "Site Code" +Set colMTRResults = objSMS.ExecQuery(strWQL) +for each objMTRResult in colMTRResults + wscript.echo objMTRResult.SMS_MeteredFiles.ProductName & _ + vbTAB & WMIDateStringToDate(objMTRResult. _ + SMS_FileUsageSummary.IntervalStart) & _ + vbTAB & objMTRResult.SMS_FileUsageSummary.DistinctUserCount & _ + vbTAB & objMTRResult.SMS_FileUsageSummary.SiteCode + if intPeak < objMTRResult.SMS_FileUsageSummary.DistinctUserCount then + intPeak = objMTRResult.SMS_FileUsageSummary.DistinctUserCount + strPeakInfo = WMIDateStringToDate(objMTRResult. _ + SMS_FileUsageSummary.IntervalStart) & vbTAB & _ + objMTRResult.SMS_FileUsageSummary.DistinctUserCount _ + & vbTAB & objMTRResult.SMS_FileUsageSummary.SiteCode _ + & vbCRLF + elseif intPeak = _ + objMTRResult.SMS_FileUsageSummary.DistinctUserCount then + strPeakInfo = strPeakInfo & WMIDateStringToDate(objMTRResult. _ + SMS_FileUsageSummary.IntervalStart) & vbTAB & _ + objMTRResult.SMS_FileUsageSummary.DistinctUserCount _ + & vbTAB & objMTRResult.SMS_FileUsageSummary.SiteCode _ + & vbCRLF + end if +next + +wscript.echo vbCRLF & vbCRLF +wscript.echo "Peak concurrentusage over the past " & intDays & _ + " days of metering data:" & vbCRLF & strPeakInfo + +Function WMIDateStringToDate(dtmInstallDate) + WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _ + Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _ + & " " & Mid (dtmInstallDate, 9, 2) & ":" & _ + Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _ + 13, 2)) +End Function + diff --git a/Chapter07/7-1_CreatingMeteringRule.vbs b/Chapter07/7-1_CreatingMeteringRule.vbs new file mode 100644 index 0000000..a2c33d9 --- /dev/null +++ b/Chapter07/7-1_CreatingMeteringRule.vbs @@ -0,0 +1,30 @@ +strSMSServer = + +strProdcutName = "WinZip" +strFileName = "WinZip32.exe" +strFileVersion = "*" +strLanguageID = 65535 '65535 = 'any language' + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set newMTRRule = _ + objSMS.Get("SMS_MeteredProductRule").SpawnInstance_() + +newMTRRule.ProductName = strProdcutName +newMTRRule.FileName = strFileName +newMTRRule.FileVersion = strFileVersion +newMTRRule.LanguageID = strLanguageID +newMTRRule.SiteCode = ucase(strSMSSiteCode) +newMTRRule.ApplyToChildSites = TRUE +newMTRRule.Enabled = TRUE +newMTRRule.Put_ + diff --git a/Chapter07/7-2_DeletingASoftwareMeteringRule.vbs b/Chapter07/7-2_DeletingASoftwareMeteringRule.vbs new file mode 100644 index 0000000..2290062 --- /dev/null +++ b/Chapter07/7-2_DeletingASoftwareMeteringRule.vbs @@ -0,0 +1,22 @@ +strSMSServer = + +strProductName = "WinZip" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colMTRRules = objSMS.ExecQuery _ + ("Select * From SMS_MeteredProductRule where " & _ + "ProductName = '" & strProductName & "'") +For Each objMTRRule In colMTRRules + wscript.echo "Deleting " & objMTRRule.ProductName + objMTRRule.Delete_ +Next \ No newline at end of file diff --git a/Chapter07/7-3_ViewingAllSoftwareMeteringRules.vbs b/Chapter07/7-3_ViewingAllSoftwareMeteringRules.vbs new file mode 100644 index 0000000..d31f0e2 --- /dev/null +++ b/Chapter07/7-3_ViewingAllSoftwareMeteringRules.vbs @@ -0,0 +1,23 @@ +strSMSServer = + + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colMTRs = objSMS.ExecQuery _ + ("Select * From SMS_MeteredProductRule order by " & _ + " ProductName") +for each objMTRRule in colMTRS + wscript.echo objMTRRule.ProductName & vbTAB & _ + objMTRRule.FileName & vbTAB & objMTRRule.FileVersion & _ + vbTAB & objMTRRule.SiteCode & vbTAB & _ + objMTRRule.ApplyToChildSites & vbTAB & objMTRRule.Enabled +next \ No newline at end of file diff --git a/Chapter07/7-4_ModifyMeteringRule.vbs b/Chapter07/7-4_ModifyMeteringRule.vbs new file mode 100644 index 0000000..17073e2 --- /dev/null +++ b/Chapter07/7-4_ModifyMeteringRule.vbs @@ -0,0 +1,23 @@ +strSMSServer = + +strProductName = "Sol" +strNewProductName = "Solitaire" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colMTRs = objSMS.ExecQuery _ + ("Select * From SMS_MeteredProductRule where " & _ + "ProductName = '" & strProductName & "'") +for each objMTRRule in colMTRS + objMTRRule.ProductName = strNewProductName + objMTRRule.Put_ +next diff --git a/Chapter07/7-5_DisableMeteringRule.vbs b/Chapter07/7-5_DisableMeteringRule.vbs new file mode 100644 index 0000000..ebeb98f --- /dev/null +++ b/Chapter07/7-5_DisableMeteringRule.vbs @@ -0,0 +1,22 @@ +strSMSServer = + +strProductName = "Sol" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colMTRs = objSMS.ExecQuery _ + ("Select * From SMS_MeteredProductRule where " & _ + "ProductName = '" & strProductName & "'") +for each objMTRRule in colMTRS + objMTRRule.Enabled = False + objMTRRule.Put_ +next \ No newline at end of file diff --git a/Chapter07/7-6_EnableMeteringRule.vbs b/Chapter07/7-6_EnableMeteringRule.vbs new file mode 100644 index 0000000..6ab3c60 --- /dev/null +++ b/Chapter07/7-6_EnableMeteringRule.vbs @@ -0,0 +1,28 @@ +strSMSServer = + +strProductName = "Sol" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colMTRs = objSMS.ExecQuery _ + ("Select * From SMS_MeteredProductRule where " & _ + "ProductName = '" & strProductName & "'") +for each objMTRRule in colMTRS + if not (objMTRRule.Enabled) then + wscript.echo "Enabling Rule " & strProductName + objMTRRule.Enabled = True + objMTRRule.Put_ + else + wscript.echo "Rule " & strProductName & " aready " & _ + "enabled!" + end if +next \ No newline at end of file diff --git a/Chapter07/7-7_CreateMeteringFolder.vbs b/Chapter07/7-7_CreateMeteringFolder.vbs new file mode 100644 index 0000000..e16cf81 --- /dev/null +++ b/Chapter07/7-7_CreateMeteringFolder.vbs @@ -0,0 +1,28 @@ +strSMSServer = + +strNewFolderName = "InBit Software" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set newFolder = objSMS.Get("SMS_ObjectContainerNode") _ + .SpawnInstance_() +newFolder.Name = strNewFolderName +newFolder.ObjectType = 9 'metering Folder +newFolder.ParentContainerNodeId = 0 'root folder +newFolder.Put_ + +'Property value Object type +'2 Package +'3 Advertisement +'7 Query +'8 Report +'9 Software Metering diff --git a/Chapter07/7-8_MoveMeteringRulesBetweenFolders.vbs b/Chapter07/7-8_MoveMeteringRulesBetweenFolders.vbs new file mode 100644 index 0000000..9556907 --- /dev/null +++ b/Chapter07/7-8_MoveMeteringRulesBetweenFolders.vbs @@ -0,0 +1,23 @@ +strSMSServer = + +strMeteringIDs = "LAB00008,LAB00009" +'to move more than one, separate with commas +intSourceFolder = 0 'Source Folder (root node in this case) +intDestFolder = 8 'Destination Folder +intObjectType = 9 '9=Metering Rule for type of object + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objFolder = objSMS.Get("SMS_ObjectContainerItem") +arrMeteringIDs = split(strMeteringIDs, ",") +retval = objFolder.MoveMembers _ +(arrMeteringIDs, intSourceFolder, intDestFolder , intObjectType) diff --git a/Chapter07/7-9_DisplayMonthlySummaryData.vbs b/Chapter07/7-9_DisplayMonthlySummaryData.vbs new file mode 100644 index 0000000..7140d3d --- /dev/null +++ b/Chapter07/7-9_DisplayMonthlySummaryData.vbs @@ -0,0 +1,54 @@ +strSMSServer = + +strUserName = "ramseyg" +intDays = 180 + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strWQL = "SELECT SMS_MeteredFiles.ProductName, " & _ + "SMS_MeteredUser.FullName, SMS_MonthlyUsageSummary.UsageCount, " & _ + "SMS_MonthlyUsageSummary.TSUsageCount, " & _ + "SMS_MonthlyUsageSummary.LastUsage, SMS_R_System.Name " & _ + "FROM SMS_MonthlyUsageSummary INNER JOIN " & _ + "SMS_R_System ON SMS_MonthlyUsageSummary.ResourceID = " & _ + "SMS_R_System.ResourceID INNER JOIN " & _ + "SMS_MeteredUser ON SMS_MonthlyUsageSummary.MeteredUserID = " & _ + "SMS_MeteredUser.MeteredUserID INNER JOIN " & _ + "SMS_MeteredFiles ON SMS_MonthlyUsageSummary.FileID = " & _ + "SMS_MeteredFiles.MeteredFileID " & _ + "WHERE (SMS_MeteredUser.UserName = '" & strUserName & "') " & _ + "and datediff" & _ + "(day, SMS_MonthlyUsageSummary.LastUsage, getdate()) <= " & _ + intDays & "ORDER BY SMS_MonthlyUsageSummary.LastUsage" + +wscript.echo "Product Name" & vbTAB & "Domain\UserName" & vbTAB & _ + "Usage Count" & vbTAB & "TSUsage Count" & vbTAB & _ + "ComputerName" & vbTAB & "LastUsageRecordedForMonth" + +Set colMTRResults = objSMS.ExecQuery(strWQL) +for each objMTRResult in colMTRResults + wscript.echo objMTRResult.SMS_MeteredFiles.ProductName & vbTAB & _ + objMTRResult.SMS_MeteredUser.FullName & vbTAB & _ + objMTRResult.SMS_MonthlyUsageSummary.UsageCount & vbTAB & _ + objMTRResult.SMS_MonthlyUsageSummary.TSUsageCount & vbTAB & _ + objMTRResult.SMS_R_System.Name & vbTAB & _ + WMIDateStringToDate(objMTRResult.SMS_MonthlyUsageSummary.LastUsage) +next + +Function WMIDateStringToDate(dtmInstallDate) + WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _ + Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _ + & " " & Mid (dtmInstallDate, 9, 2) & ":" & _ + Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _ + 13, 2)) +End Function + diff --git a/Chapter08/8-1_ListAllReports.vbs b/Chapter08/8-1_ListAllReports.vbs new file mode 100644 index 0000000..9c0c25a --- /dev/null +++ b/Chapter08/8-1_ListAllReports.vbs @@ -0,0 +1,30 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colReports = objSMS.ExecQuery _ + ("Select * From SMS_Report order by " & _ + " ReportID") + +For Each objReport In colReports + DisplayRptInfo(objReport.ReportID) +Next + +Sub DisplayRptInfo(intReportID) + 'SQLQuery is a lazy property, so we need to use the + 'Get method to retrieve the information + Set objRpt = objSMS.Get("SMS_Report.ReportID=" & intReportID) + wscript.echo objRpt.ReportID & vbTAB & objRpt.Name & _ + vbTAB & objRpt.DrillThroughReportID & _ + objRpt.SecurityKey & vbTAB & objRpt.MachineDetail & _ + vbCRLF & vbCRLF & objRpt.SQLQuery & vbCRLF & vbCRLF +End Sub diff --git a/Chapter08/8-2_CreateReportFolder.vbs b/Chapter08/8-2_CreateReportFolder.vbs new file mode 100644 index 0000000..6987d6e --- /dev/null +++ b/Chapter08/8-2_CreateReportFolder.vbs @@ -0,0 +1,26 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set newFolder = objSMS.Get("SMS_ObjectContainerNode") _ + .SpawnInstance_() +newFolder.Name = strNewFolderName +newFolder.ObjectType = 8 'Report +newFolder.ParentContainerNodeId = 0 +newFolder.Put_ + +'Property value Object type +'2 Package +'3 Advertisement +'7 Query +'8 Report +'9 Software Metering diff --git a/Chapter08/8-3_MoveReportssBetweenFolders.vbs b/Chapter08/8-3_MoveReportssBetweenFolders.vbs new file mode 100644 index 0000000..13fd3a6 --- /dev/null +++ b/Chapter08/8-3_MoveReportssBetweenFolders.vbs @@ -0,0 +1,24 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next +'Use the "SecuirtyKey" ID as the Report ID +strReportIDs = "LAB00001,LAB00002,LAB00004,LAB00005,LAB00023" +'to move more than one, separate with commas +intSourceFolder=0 'Source Folder (root node in this case) +intDestFolder=9 'Destination Folder +intObjectType=8 '8=Report for type of object + +Set objFolder = objSMS.Get("SMS_ObjectContainerItem") +arrReportIDs = split(strReportIDs, ",") +retval = objFolder.MoveMembers _ +(arrReportIDs, intSourceFolder, intDestFolder , intObjectType) +wscript.echo retval diff --git a/Chapter09/9-10_ListAllCollLimitQueries.vbs b/Chapter09/9-10_ListAllCollLimitQueries.vbs new file mode 100644 index 0000000..9c8e178 --- /dev/null +++ b/Chapter09/9-10_ListAllCollLimitQueries.vbs @@ -0,0 +1,20 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colQueries = objSMS.ExecQuery _ + ("select * from SMS_Query where TargetClassName <> " & _ + "'SMS_StatusMessage' and LimitToCollectionID <> '' order by Name") +for each objQuery in colQueries + wscript.echo objQuery.Name & "(" & _ + objQuery.QueryID & ")" & objQuery.LimitToCollectionID +next diff --git a/Chapter09/9-11_CreatePromptedQuery.vbs b/Chapter09/9-11_CreatePromptedQuery.vbs new file mode 100644 index 0000000..a128951 --- /dev/null +++ b/Chapter09/9-11_CreatePromptedQuery.vbs @@ -0,0 +1,19 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strQueryID = "LAB0001E" +strCollLimitID = "" + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & strQueryID & "'") +objQuery.LimitToCollectionID = strCollLimitID +objQuery.Put_ diff --git a/Chapter09/9-12_ModifyQueryPerms.vbs b/Chapter09/9-12_ModifyQueryPerms.vbs new file mode 100644 index 0000000..9e8c971 --- /dev/null +++ b/Chapter09/9-12_ModifyQueryPerms.vbs @@ -0,0 +1,30 @@ +'This script will grant the group "SMSVPC\Help Desk" read + ' permissions to Query ID "LAB00040". +strSMSServer = +strHelpDesk="SMSVPC\Help Desk" 'Domain\Group or username +strQueryID = "LAB00040" 'ID of the Query + + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colQueries = objSMS.ExecQuery _ + ("Select * From SMS_Query where QueryID = '" & _ + strQueryID & "'") +For Each objQuery In colQueries + Set objNewRight = objSMS.Get _ + ("SMS_UserInstancePermissions").SpawnInstance_() + objNewRight.UserName = strHelpDesk + objNewRight.ObjectKey = 1 '1=collection + objNewRight.InstanceKey = objQuery.QueryID + objNewRight.InstancePermissions = 1 'grant Read + objNewRight.Put_ +Next diff --git a/Chapter09/9-13_DisplayQueryInstanceInfo_MOF.vbs b/Chapter09/9-13_DisplayQueryInstanceInfo_MOF.vbs new file mode 100644 index 0000000..ce135a6 --- /dev/null +++ b/Chapter09/9-13_DisplayQueryInstanceInfo_MOF.vbs @@ -0,0 +1,21 @@ +strSMSServer = +strQueryID = "LAB0001E" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & strQueryID & "'") + +Set colQueryResults = objSMS.ExecQuery(objQuery.Expression) +For Each objResult In colQueryResults + 'use the following line to display all instance information + wscript.echo objResult.GetObjectText_ +Next diff --git a/Chapter09/9-14_DisplayQueryInstance_XML.vbs b/Chapter09/9-14_DisplayQueryInstance_XML.vbs new file mode 100644 index 0000000..190c400 --- /dev/null +++ b/Chapter09/9-14_DisplayQueryInstance_XML.vbs @@ -0,0 +1,21 @@ +Const wbemObjectTextFormatWMIDTD20 = 2 +strSMSServer = +strQueryID = "SMS012" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & strQueryID & "'") + +Set colQueryResults = objSMS.ExecQuery(objQuery.Expression) +For Each objResult In colQueryResults + wscript.echo objResult.GetText_(wbemObjectTextFormatWMIDTD20) +Next diff --git a/Chapter09/9-15_ExportCustomQueries.vbs b/Chapter09/9-15_ExportCustomQueries.vbs new file mode 100644 index 0000000..d30dd3b --- /dev/null +++ b/Chapter09/9-15_ExportCustomQueries.vbs @@ -0,0 +1,50 @@ +Const ForWriting = 2 +Set fso = CreateObject("Scripting.FileSystemObject") + +strSMSServer = + +strNEWSMSServer = "MOFSMSSERVER" +strNewSMSSiteCode = "MOFSMSSITECODE" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colQueries = objSMS.ExecQuery _ +("select * from SMS_Query where TargetClassName <> '" & _ +"SMS_StatusMessage' and QueryID not like 'SMS%'") + +for each objQuery in colQueries + wscript.echo "Exporting " & objQuery.Name & vbTAB & _ + objQuery.QueryID + Set fout = fso.OpenTextFile("C:\Scripts\sms\Queries\mofs\" & _ + objQuery.QueryID & ".MOF", ForWriting, True) + fout.writeline "//********************************" + fout.writeline "//Created by SMS Recipes Exporter" + fout.writeline "//********************************" + fout.writeline vbCRLF + 'only use the following line if planning to import MOF + 'from the command line + fout.writeline "#pragma namespace(" & chr(34) & "\\\\" & _ + strNEWSMSServer & "\\root\\SMS\\site_" & _ + strnewSMSSiteCode & chr(34) & ")" + fout.writeline vbCRLF + fout.writeline "// **** Class : SMS_Query ****" + for each strLine in split(objQuery.GetObjectText_, chr(10)) + if instr(strLine, "QueryID =") then + fout.writeline(vbTAB & "QueryID = " & chr(34) & _ + chr(34)) & ";" + else + fout.writeline cstr(strLine) + end if + next + fout.writeline "// **** End ****" + fout.close +next diff --git a/Chapter09/9-16_SampleQuery_MOF.mof b/Chapter09/9-16_SampleQuery_MOF.mof new file mode 100644 index 0000000..fb9c5ea --- /dev/null +++ b/Chapter09/9-16_SampleQuery_MOF.mof @@ -0,0 +1,21 @@ +//******************************** +//Created by SMS Recipes Exporter +//******************************** + + +#pragma namespace("\\\\MOFSMSSERVER\\root\\SMS\\site_MOFSMSSITECODE") + + +// **** Class : SMS_Query **** + +instance of SMS_Query +{ + Comments = ""; + Expression = "select MACAddresses, Name from SMS_R_System order by MACAddresses"; + LimitToCollectionID = ""; + Name = "All Systems with MAC addresses"; + QueryID = ""; + TargetClassName = "SMS_R_System"; +}; + +// **** End **** diff --git a/Chapter09/9-17_SampleSubSelect_SystemsWithoutAdobeAcrobat.txt b/Chapter09/9-17_SampleSubSelect_SystemsWithoutAdobeAcrobat.txt new file mode 100644 index 0000000..ee8817e --- /dev/null +++ b/Chapter09/9-17_SampleSubSelect_SystemsWithoutAdobeAcrobat.txt @@ -0,0 +1,13 @@ +select SMS_G_System_SYSTEM.Name + +from SMS_R_System inner join + SMS_G_System_SYSTEM on SMS_G_System_SYSTEM.ResourceID = + SMS_R_System.ResourceId + +where SMS_G_System_SYSTEM.Name not in + (select SMS_G_System_SYSTEM.Name from + SMS_R_System inner join SMS_G_System_SYSTEM on + SMS_G_System_SYSTEM.ResourceID = SMS_R_System.ResourceId + inner join SMS_G_System_SoftwareFile on + SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId + where SMS_G_System_SoftwareFile.FileName = "Acrobat.exe") diff --git a/Chapter09/9-19_SampleWQLWithGetDate.txt b/Chapter09/9-19_SampleWQLWithGetDate.txt new file mode 100644 index 0000000..2c1ff58 --- /dev/null +++ b/Chapter09/9-19_SampleWQLWithGetDate.txt @@ -0,0 +1,13 @@ +select + SMS_G_System_SYSTEM.Name, + SMS_G_System_WORKSTATION_STATUS.LastHardwareScan +from SMS_R_System inner join SMS_G_System_SYSTEM on + SMS_G_System_SYSTEM.ResourceID = SMS_R_System.ResourceId + inner join SMS_G_System_WORKSTATION_STATUS on + SMS_G_System_WORKSTATION_STATUS.ResourceID = + SMS_R_System.ResourceId +WHERE + (datediff(day, + SMS_G_System_WORKSTATION_STATUS.LastHardwareScan, + getdate()) >= 30) +Order by SMS_G_System_WORKSTATION_STATUS.LastHardwareScan DESC diff --git a/Chapter09/9-1_CreateAQuery.vbs b/Chapter09/9-1_CreateAQuery.vbs new file mode 100644 index 0000000..fb754e0 --- /dev/null +++ b/Chapter09/9-1_CreateAQuery.vbs @@ -0,0 +1,19 @@ +strSMSServer = +strQueryName = "Basic Query" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set newQuery = objSMS.Get("SMS_Query").SpawnInstance_() +newQuery.Name = strQueryName +newQuery.Expression = "select * from SMS_R_System" +newQuery.TargetClassName = "SMS_R_System" +newQuery.Put_ diff --git a/Chapter09/9-20_CreateQueryFolder.vbs b/Chapter09/9-20_CreateQueryFolder.vbs new file mode 100644 index 0000000..ba29fed --- /dev/null +++ b/Chapter09/9-20_CreateQueryFolder.vbs @@ -0,0 +1,21 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strNewFolderName = "Admin Queries" + +Set newFolder = objSMS.Get("SMS_ObjectContainerNode") _ + .SpawnInstance_() +newFolder.Name = strNewFolderName +newFolder.ObjectType = 7 'Query +newFolder.ParentContainerNodeId = 0 +newFolder.Put_ diff --git a/Chapter09/9-21_MovingQueriesBetweenFolders.vbs b/Chapter09/9-21_MovingQueriesBetweenFolders.vbs new file mode 100644 index 0000000..c930f10 --- /dev/null +++ b/Chapter09/9-21_MovingQueriesBetweenFolders.vbs @@ -0,0 +1,25 @@ +strSMSServer = +strQueryIDs = "LAB0001E,LAB0001F,LAB0002E" +'to move more than one, separate with commas + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + + +intSourceFolder=0 'Source Folder (root node in this case) +intDestFolder=10 'Destination Folder +intObjectType=7 '7=Query for type of object + +Set objFolder = objSMS.Get("SMS_ObjectContainerItem") +arrQueryIDs = split(strQueryIDs, ",") +retval = objFolder.MoveMembers _ +(arrQueryIDs, intSourceFolder, intDestFolder , intObjectType) +wscript.echo retval diff --git a/Chapter09/9-2_CreateQuery-VerifyName.vbs b/Chapter09/9-2_CreateQuery-VerifyName.vbs new file mode 100644 index 0000000..ecc5a48 --- /dev/null +++ b/Chapter09/9-2_CreateQuery-VerifyName.vbs @@ -0,0 +1,36 @@ +strSMSServer = +strQueryName = "Basic Query" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +if QueryDoesntExist(strQueryname) then + Set newQuery = objSMS.Get("SMS_Query").SpawnInstance_() + newQuery.Name = strQueryName + newQuery.Expression = "select * from SMS_R_System" + newQuery.TargetClassName = "SMS_R_System" + newQuery.Put_ +else + wscript.echo "Query named " & chr(34) & strQueryname & _ + chr(34) & " already exists!" +end if + +'function used to verify query name doesn't exist +Function QueryDoesntExist(strName) + Set colQueries = objSMS.ExecQuery _ + ("select * from SMS_Query where TargetClassName <> '" & _ + "SMS_StatusMessage" & "' and Name = '" & strName & "'") + if colQueries.Count > 0 then + QueryDoesntExist = False + else + QueryDoesntExist = True + end if +End Function diff --git a/Chapter09/9-3_ListQueries.vbs b/Chapter09/9-3_ListQueries.vbs new file mode 100644 index 0000000..0ad2eb7 --- /dev/null +++ b/Chapter09/9-3_ListQueries.vbs @@ -0,0 +1,20 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colQueries = objSMS.ExecQuery _ + ("select * from SMS_Query where TargetClassName <> " & _ + "'SMS_StatusMessage' order by Name") +for each objQuery in colQueries + wscript.echo objQuery.Name & "(" & _ + objQuery.QueryID & ")" & vbTAB & objQuery.Expression +next diff --git a/Chapter09/9-4_DeleteQuery.vbs b/Chapter09/9-4_DeleteQuery.vbs new file mode 100644 index 0000000..9699828 --- /dev/null +++ b/Chapter09/9-4_DeleteQuery.vbs @@ -0,0 +1,21 @@ +strSMSServer = +strQueryName = "Basic Query" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colQueries = objSMS.ExecQuery _ + ("select * from SMS_Query where Name = '" & strQueryName & "'") +for each objQuery in colQueries + wscript.echo "Deleting " & objQuery.Name & "(" & _ + objQuery.QueryID & ")" + objQuery.Delete_ +next diff --git a/Chapter09/9-5_DeleteMultipleQueries.vbs b/Chapter09/9-5_DeleteMultipleQueries.vbs new file mode 100644 index 0000000..4c108a5 --- /dev/null +++ b/Chapter09/9-5_DeleteMultipleQueries.vbs @@ -0,0 +1,21 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +'to delete more than one, separate with commas as shown below +strQueryIDs = "LAB00001,LAB00002,LAB00014" +arrQueryIDs = split(strQueryIDs, ",") + +for each strQueryID in arrQueryIDs + Set objQuery = objSMS.Get ("SMS_Query.QueryID='" & strQueryID & "'") + objQuery.Delete_ +next diff --git a/Chapter09/9-6_ModifyQuery.vbs b/Chapter09/9-6_ModifyQuery.vbs new file mode 100644 index 0000000..cc6c702 --- /dev/null +++ b/Chapter09/9-6_ModifyQuery.vbs @@ -0,0 +1,20 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strQueryID = "LAB0001D" + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & _ + strQueryID & "'") +objQuery.Comments = "Use this query to display all systems " & _ + "in the SMS_R_System class" +objQuery.Put_ diff --git a/Chapter09/9-8_DisplayWQL.vbs b/Chapter09/9-8_DisplayWQL.vbs new file mode 100644 index 0000000..84b1d07 --- /dev/null +++ b/Chapter09/9-8_DisplayWQL.vbs @@ -0,0 +1,16 @@ +strSMSServer = +strQueryID = "LAB0001D" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & strQueryID & "'") +wscript.echo objQuery.Expression diff --git a/Chapter09/9-9_CollectionLimitQuery.vbs b/Chapter09/9-9_CollectionLimitQuery.vbs new file mode 100644 index 0000000..f42ae3e --- /dev/null +++ b/Chapter09/9-9_CollectionLimitQuery.vbs @@ -0,0 +1,19 @@ +strSMSServer = +strQueryID = "LAB0001E" +strCollLimitID = "LAB00017" 'the collection to limit to + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & _ + strQueryID & "'") +objQuery.LimitToCollectionID = strCollLimitID +objQuery.Put_ diff --git a/Chapter10/10-1_SWInvQuery.vbs b/Chapter10/10-1_SWInvQuery.vbs new file mode 100644 index 0000000..19b5118 --- /dev/null +++ b/Chapter10/10-1_SWInvQuery.vbs @@ -0,0 +1,32 @@ +strSMSServer = + +strFileName = "Acrobat.exe" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strSQL = "select SMS_R_System.Name, " & _ + "SMS_G_System_SoftwareFile.FileName, " & _ + "SMS_G_System_SoftwareFile.FileDescription, " & _ + "SMS_G_System_SoftwareFile.FileVersion from " & _ + "SMS_R_System inner join SMS_G_System_SoftwareFile on " & _ + "SMS_G_System_SoftwareFile.ResourceID = " & _ + "SMS_R_System.ResourceId where " & _ + "SMS_G_System_SoftwareFile.FileName = '" & strFileName & "'" + +Set colSystems = objSMS.ExecQuery(strSQL) + +for each objSystem in colSystems + wscript.echo objSystem.SMS_R_System.Name & vbTAB & _ + objSystem.SMS_G_System_SoftwareFile.FileName & vbTAB & _ + objSystem.SMS_G_System_SoftwareFile.FileDescription & vbTAB & _ + objSystem.SMS_G_System_SoftwareFile.FileVersion +next diff --git a/Chapter10/10-2_ListCollectedFilesForSpecificSystem.vbs b/Chapter10/10-2_ListCollectedFilesForSpecificSystem.vbs new file mode 100644 index 0000000..9e7d497 --- /dev/null +++ b/Chapter10/10-2_ListCollectedFilesForSpecificSystem.vbs @@ -0,0 +1,42 @@ +strSMSServer = + +strComputer = "2kPro" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strSQL = "SELECT sys.Name, colFil.FileName, " & _ + "colFil.FileSize, colFil.ModifiedDate, colFil.FilePath, " & _ + "colFil.LocalFilePath, colFil.CollectionDate " & _ + "FROM SMS_G_System_CollectedFile colFil INNER JOIN " & _ + "SMS_R_System sys ON " & _ + "colFil.ResourceID = sys.ResourceID " & _ + "WHERE sys.Name = '" & strComputer & "'" + +Set colFiles = objSMS.ExecQuery(strSQL) +for each objFile in colFiles + wscript.echo objFile.sys.Name & vbTAB & _ + objFile.colFil.FileName & vbTAB & _ + objFile.colFil.FileSize & vbTAB & _ + WMIDateStringToDate(objFile.colFil.ModifiedDate) & _ + vbTAB & objFile.colFil.FilePath & vbTAB & _ + objFile.colFil.LocalFilePath & vbTAB & _ + WMIDateStringToDate(objFile.colFil.CollectionDate) +next + +Function WMIDateStringToDate(dtmInstallDate) + WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & _ + "/" & Mid(dtmInstallDate, 7, 2) & "/" & _ + Left(dtmInstallDate, 4) & " " & _ + Mid (dtmInstallDate, 9, 2) & ":" & _ + Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _ + 13, 2)) +End Function diff --git a/Chapter10/10-3_ListSpecificFileForAllSystems.vbs b/Chapter10/10-3_ListSpecificFileForAllSystems.vbs new file mode 100644 index 0000000..f09e58d --- /dev/null +++ b/Chapter10/10-3_ListSpecificFileForAllSystems.vbs @@ -0,0 +1,29 @@ +strSMSServer = + +strFileName = "dbcfg.ini" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strSQL = "SELECT sys.Name, colFil.FileName, " & _ + "colFil.LocalFilePath, colFil.RevisionID " & _ + "FROM SMS_G_System_CollectedFile colFil INNER JOIN " & _ + "SMS_R_System sys ON " & _ + "colFil.ResourceID = sys.ResourceID " & _ + "WHERE colFil.FileName = '" & strFileName & "'" + +Set colFiles = objSMS.ExecQuery(strSQL) + +for each objFile in colFiles + wscript.echo objFile.sys.Name & vbTAB & _ + objfile.colFil.FileName & vbTAB & _ + objFile.colFil.LocalFilePath +next diff --git a/Chapter10/10-4_ExtractCollectedFilesForAllSystems.vbs b/Chapter10/10-4_ExtractCollectedFilesForAllSystems.vbs new file mode 100644 index 0000000..410efa4 --- /dev/null +++ b/Chapter10/10-4_ExtractCollectedFilesForAllSystems.vbs @@ -0,0 +1,37 @@ +Const OverwriteExisting = TRUE + +strSMSServer = + +strFileName = "dbcfg.ini" +strTargetPath = "\\smsvpc\fileanalysis" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strSQL = "SELECT sys.Name, colFil.FileName, " & _ + "colFil.LocalFilePath, colFil.RevisionID " & _ + "FROM SMS_G_System_CollectedFile colFil INNER JOIN " & _ + "SMS_R_System sys ON " & _ + "colFil.ResourceID = sys.ResourceID " & _ + "WHERE colFil.FileName = '" & strFileName & "'" + +Set colFiles = objSMS.ExecQuery(strSQL) + +for each objFile in colFiles + wscript.echo objFile.sys.Name & vbTAB & _ + objfile.colFil.FileName & vbTAB & _ + objFile.colFil.LocalFilePath + Set objFSO = CreateObject("Scripting.FileSystemObject") + objFSO.CopyFile objFile.colFil.LocalFilePath , _ + strTargetPath & "\" & objFile.sys.Name & "__" & _ + objfile.colFil.RevisionID & "__" & _ + objfile.colFil.FileName, OverwriteExisting +next diff --git a/Chapter10/10-5_SearchINIForSpecificData.vbs b/Chapter10/10-5_SearchINIForSpecificData.vbs new file mode 100644 index 0000000..56dbb8e --- /dev/null +++ b/Chapter10/10-5_SearchINIForSpecificData.vbs @@ -0,0 +1,45 @@ +Const ForReading = 1 +strSMSServer = + +strFileName = "dbcfg.ini" +strDataToCheck = "DBServername=MYPRODSERVER" +intCount = 0 +Set objFSO = CreateObject("Scripting.FileSystemObject") + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strSQL = "SELECT sys.Name, colFil.FileName, " & _ + "colFil.LocalFilePath, colFil.RevisionID " & _ + "FROM SMS_G_System_CollectedFile colFil INNER JOIN " & _ + "SMS_R_System sys ON " & _ + "colFil.ResourceID = sys.ResourceID " & _ + "WHERE colFil.FileName = '" & strFileName & "' " & _ + "ORDER BY colFil.CollectionDate" + +Set colFiles = objSMS.ExecQuery(strSQL) + +for each objFile in colFiles + intCount = intCount + 1 + wscript.echo "Checking " & objFile.sys.Name & ". . ." + Set objReadFile = objFSO.OpenTextFile _ + (objFile.colFil.LocalFilePath, ForReading) + strContents = objReadFile.ReadAll + if instr(ucase(strContents), ucase(strDataToCheck)) = 0 then + strInfo = strInfo & objFile.sys.Name & vbTAB & _ + objFile.colFil.RevisionID & vbCRLF + end if +next + +wscript.echo vbCRLF & intCount & " Files Checked" & vbCRLF +wscript.echo "The following computers do not have " & _ + strServerName & "in the file " & strFileName +wscript.echo strInfo diff --git a/Chapter11/11-9_HWInvQuery.vbs b/Chapter11/11-9_HWInvQuery.vbs new file mode 100644 index 0000000..a451041 --- /dev/null +++ b/Chapter11/11-9_HWInvQuery.vbs @@ -0,0 +1,28 @@ +strSMSServer = "SMSVPC" +strComputer = "2KPRO" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +strWQL = "select arp.*, sys.Name from SMS_R_System sys " & _ + "inner join SMS_G_System_ADD_REMOVE_PROGRAMS arp on " & _ + "arp.ResourceID = sys.ResourceId where sys.Name = '" & _ + strComputer & "' order by arp.DisplayName" + +Set colARPs = objSMS.ExecQuery(strWQL) + +wscript.echo "Add/Remove Programs information for " & strComputer +for each objARP in colARPs + wscript.echo objARP.arp.DisplayName & vbTAB & _ + objARP.arp.InstallDate & vbTAB & objARP.arp.Publisher +next + + diff --git a/Chapter12/12-1_TurnOffPermissionRequired.mof b/Chapter12/12-1_TurnOffPermissionRequired.mof new file mode 100644 index 0000000..67a862d --- /dev/null +++ b/Chapter12/12-1_TurnOffPermissionRequired.mof @@ -0,0 +1,16 @@ +#pragma namespace("\\\\.\\root\\ccm\\policy\\machine\\requestedconfig") + +[CCM_Policy_PartialPolicy(true)] +instance of CCM_RemoteToolsConfig + +{ + + + +PolicySource = "local"; +Type = 1; + +[ccm_policy_override(TRUE)] +PermissionRequired = false; + +}; diff --git a/Chapter12/12-2_RemoveLocalRemoteToolsPolicies.vbs b/Chapter12/12-2_RemoveLocalRemoteToolsPolicies.vbs new file mode 100644 index 0000000..192a086 --- /dev/null +++ b/Chapter12/12-2_RemoveLocalRemoteToolsPolicies.vbs @@ -0,0 +1,12 @@ +strComputer = "." +Set objWMIService = GetObject _ + ("winmgmts:{impersonationLevel=impersonate}!\\" & _ + strComputer & "\root\ccm\Policy\Machine\RequestedConfig") +Set colLocalPolicy = objWMIService.ExecQuery _ + ("Select * from CCM_RemoteToolsConfig " & _ + "where policysource = 'local'") + +for each objPolicy in colLocalPolicy + objPolicy.Delete_ +next + diff --git a/Chapter13/13-1_ModifyShortcuts.vbs b/Chapter13/13-1_ModifyShortcuts.vbs new file mode 100644 index 0000000..09134b3 --- /dev/null +++ b/Chapter13/13-1_ModifyShortcuts.vbs @@ -0,0 +1,31 @@ +strNewAccess = ucase("c:\program Files\microsoft " & _ + "office\office11\msaccess.EXE") + +strComputer = "." 'connecting to local computer + +Set objWMIService = GetObject _ + ("winmgmts:\\" & strComputer & "\root\cimv2") +Set colFiles = objWMIService. _ + ExecQuery("Select * from CIM_DataFile where Extension = 'lnk'") + For Each objFile in colFiles + CheckShortcut(objFile.Name) + Next + +Sub CheckShortcut(strName) + wscript.echo strName + 'this actually looks inside the shortcut and modifies + ' "targetpath" as needed. This only affects the target, + ' not the arguments after the target. + Set WshShell = wscript.CreateObject("WScript.Shell") + 'using create is a bit confusing. If it already exists, + ' CreateShortcut edits instead of creates. + Set oShellLink = WshShell.CreateShortcut(strName) + + If InStr(1, UCase(oShellLink.TargetPath), _ + UCase("MSACCESS.EXE")) Then + oShellLink.TargetPath = strNewAccess + oShellLink.IconLocation = strNewAccess + End If + oShellLink.Save +end sub + \ No newline at end of file diff --git a/Chapter13/13-2_FindFileAndReplace.vbs b/Chapter13/13-2_FindFileAndReplace.vbs new file mode 100644 index 0000000..8eb3206 --- /dev/null +++ b/Chapter13/13-2_FindFileAndReplace.vbs @@ -0,0 +1,29 @@ +Const OverwriteExisting = TRUE +strComputer = "." +'Because of CIM_DataFile, split File Name and Extension into +' two variables +strFileName = "Foo" +strFileExt = "doc" +strNewFileName = "Foo2.doc" + +'use this to obtain the current path to the VBScript +Set objFso= createobject("Scripting.FileSystemObject") +strScriptPath = objFso.GetParentFolderName(WScript.ScriptFullName) + +Set objWMIService = GetObject("winmgmts:" _ + & "{impersonationLevel=impersonate}!\\" & _ + strComputer & "\root\cimv2") + +'WQL query - notice we're only looking for files on C: +Set colFiles = objWMIService.ExecQuery _ + ("Select * from CIM_Datafile where FileName = '" & _ + strFileName & "' and Extension = '" & strFileExt & _ + "' and drive = 'C:'") + +For Each objFile in colFiles + 'rename file + objFile.Rename(objFile.Name & ".bak") + 'copy the new file + objFSO.CopyFile strScriptPath & "\" & strNewFileName,_ + objFile.Drive & objFile.Path, OverwriteExisting +Next diff --git a/Chapter13/CreateShortcutOnAllUsersDesktop.ipf b/Chapter13/CreateShortcutOnAllUsersDesktop.ipf new file mode 100644 index 0000000..36cdd2b --- /dev/null +++ b/Chapter13/CreateShortcutOnAllUsersDesktop.ipf @@ -0,0 +1,67 @@ +Document Type: IPF +item: Global + Version=6.0 + Title English=Icon To All Users Desktop + Flags=01000100 + Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + LanguagesList=English + Default Language=2 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=9 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00010100000000000010110000011010 + Message Font=MS Sans Serif + Font Size=8 + Disk Filename=SETUP + Patch Flags=0000000000000001 + Patch Threshold=85 + Patch Memory=4000 + FTP Cluster Size=20 + Variable Name1=_SYS_ + Variable Default1=C:\WINDOWS\system32 + Variable Flags1=00001000 + Variable Name2=_SMSINSTL_ + Variable Default2=C:\Program Files\Microsoft SMS Installer + Variable Flags2=00001000 +end +item: Remark + Text=Define variables for ease-of-use +end +item: Set Variable + Variable=IEXPLORE + Value=c:\Program Files\Internet Explorer\iexplore.exe +end +item: Set Variable + Variable=URL + Value=www.microsoft.com/technet +end +item: Set Variable + Variable=URLCOMMENTS + Value=Launch Microsoft Technet +end +item: Remark +end +item: Remark + Text=Obtain the path to the All Users Desktop +end +item: Get Registry Key Value + Variable=ALLUSERSDSKTP + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Value Name=Common Desktop + Flags=00000100 +end +item: Remark +end +item: Remark + Text=Create the Icon (OverWrite if it already exists) +end +item: Create Shortcut + Source English=%IEXPLORE% + Destination English=%ALLUSERSDSKTP%\Launch TechNet.lnk + Command Options English=%URL% + Description English=%URLCOMMENTS% + Key Type English=1536 + Flags=00000001 +end diff --git a/Chapter13/CreateShortcutOnEachUsersDesktop.ipf b/Chapter13/CreateShortcutOnEachUsersDesktop.ipf new file mode 100644 index 0000000..7879a82 --- /dev/null +++ b/Chapter13/CreateShortcutOnEachUsersDesktop.ipf @@ -0,0 +1,122 @@ +Document Type: IPF +item: Global + Version=6.0 + Title English=Create Shortcut on Each Users Desktop + Flags=01000100 + Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + LanguagesList=English + Default Language=2 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=9 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00010100000000000010110001011010 + Message Font=MS Sans Serif + Font Size=8 + Disk Filename=SETUP + Patch Flags=0000000000000001 + Patch Threshold=85 + Patch Memory=4000 + FTP Cluster Size=20 + Variable Name1=_SYS_ + Variable Default1=C:\WINDOWS\system32 + Variable Flags1=00001000 + Variable Name2=_SMSINSTL_ + Variable Default2=C:\Program Files\Microsoft SMS Installer + Variable Flags2=00001000 +end +item: Remark + Text=Obtain the path to the All Users Desktop +end +item: Get Registry Key Value + Variable=ALLUSERSDSKTP + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Value Name=Common Desktop + Flags=00000100 +end +item: Remark +end +item: Remark + Text=Parse string ALLUSERSDSKTP to extract Profile Paths +end +item: Parse String + Source=%ALLUSERSDSKTP% + Pattern=\All Users + Variable1=PROFILEPATH + Variable2=TMPJUNK + Flags=00000010 +end +item: Remark +end +item: Remark + Text=Get the TEMP environement variable +end +item: Get Environment Variable + Variable=SYSTEMP + Environment=TEMP +end +item: Remark +end +item: Remark + Text=Install the icon file locally +end +item: Install File + Source=\\MySMSServer\SourceFiles\GoogleLaunch\GoogleLocal.ico + Destination=%SYSWIN%\GoogleLocal.ico + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Execute Command to create %temp%\users.txt, and wait... +end +item: Execute Program + Pathname=cmd.exe + Command Line=/c dir /b /ad "%PROFILEPATH%">%SYSTEMP%\users.txt + Flags=00000010 +end +item: Remark +end +item: Remark + Text=Read each line of users.txt, and use the username to comlete the path +end +item: Remark + Text= to the user's desktop +end +item: Read/Update Text File + Variable=USERNAME + Pathname=%SYSTEMP%\users.txt +end +item: If/While Statement + Variable=USERNAME + Value=Administrator + Flags=00000101 +end +item: If/While Statement + Variable=USERNAME + Value=All Users + Flags=00000101 +end +item: Create Shortcut + Source English=c:\Program Files\Internet Explorer\iexplore.exe + Destination English=%PROFILEPATH%\%USERNAME%\Desktop\GoogleLocal.lnk + Command Options English=http://www.google.com/local + Icon Pathname English=%SYSWIN%\googlelocal.ico + Description English=Launch Google Local! + Key Type English=1536 + Flags=00000001 +end +item: End Block +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Delete File + Pathname=%SYSTEMP%\users.txt +end +item: Remark +end diff --git a/Chapter13/CreateShortcutOnEachUsersQuickLaunch.ipf b/Chapter13/CreateShortcutOnEachUsersQuickLaunch.ipf new file mode 100644 index 0000000..5c057e1 --- /dev/null +++ b/Chapter13/CreateShortcutOnEachUsersQuickLaunch.ipf @@ -0,0 +1,126 @@ +Document Type: IPF +item: Global + Version=6.0 + Title English=Create Shortcut on Each Users Quick Launch + Flags=01000100 + Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + LanguagesList=English + Default Language=2 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=9 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00010100000000000010110001011010 + Message Font=MS Sans Serif + Font Size=8 + Disk Filename=SETUP + Patch Flags=0000000000000001 + Patch Threshold=85 + Patch Memory=4000 + FTP Cluster Size=20 + Variable Name1=_SYS_ + Variable Default1=C:\WINDOWS\system32 + Variable Flags1=00001000 + Variable Name2=_SMSINSTL_ + Variable Default2=C:\Program Files\Microsoft SMS Installer + Variable Flags2=00001000 +end +item: Set Variable + Variable=QLAUNCH + Value=Application Data\Microsoft\Internet Explorer\Quick Launch +end +item: Remark + Text=Obtain the path to the All Users Desktop +end +item: Get Registry Key Value + Variable=ALLUSERSDSKTP + Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders + Value Name=Common Desktop + Flags=00000100 +end +item: Remark +end +item: Remark + Text=Parse string ALLUSERSDSKTP to extract Profile Paths +end +item: Parse String + Source=%ALLUSERSDSKTP% + Pattern=\All Users + Variable1=PROFILEPATH + Variable2=TMPJUNK + Flags=00000010 +end +item: Remark +end +item: Remark + Text=Get the TEMP environement variable +end +item: Get Environment Variable + Variable=SYSTEMP + Environment=TEMP +end +item: Remark +end +item: Remark + Text=Install the icon file locally +end +item: Install File + Source=\\MySMSServer\SourceFiles\GoogleLaunch\GoogleLocal.ico + Destination=%SYSWIN%\GoogleLocal.ico + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Execute Command to create %temp%\users.txt, and wait... +end +item: Execute Program + Pathname=cmd.exe + Command Line=/c dir /b /ad "%PROFILEPATH%">%SYSTEMP%\users.txt + Flags=00000010 +end +item: Remark +end +item: Remark + Text=Read each line of users.txt, and use the username to comlete the path +end +item: Remark + Text= to the user's quick Launch +end +item: Read/Update Text File + Variable=USERNAME + Pathname=%SYSTEMP%\users.txt +end +item: If/While Statement + Variable=USERNAME + Value=Administrator + Flags=00000101 +end +item: If/While Statement + Variable=USERNAME + Value=All Users + Flags=00000101 +end +item: Create Shortcut + Source English=c:\Program Files\Internet Explorer\iexplore.exe + Destination English=%PROFILEPATH%\%USERNAME%\%QLaunch%\GoogleLocal.lnk + Command Options English=http://www.google.com/local + Icon Pathname English=%SYSWIN%\googlelocal.ico + Description English=Launch Google Local! + Key Type English=1536 + Flags=00000001 +end +item: End Block +end +item: End Block +end +item: End Block +end +item: Remark +end +item: Delete File + Pathname=%SYSTEMP%\users.txt +end +item: Remark +end diff --git a/Chapter13/FindFileAndReplace.ipf b/Chapter13/FindFileAndReplace.ipf new file mode 100644 index 0000000..1b5913a --- /dev/null +++ b/Chapter13/FindFileAndReplace.ipf @@ -0,0 +1,74 @@ +Document Type: IPF +item: Global + Version=6.0 + Flags=01000100 + Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + LanguagesList=English + Default Language=2 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=9 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00010100000000000010110001011010 + Message Font=MS Sans Serif + Font Size=8 + Disk Filename=SETUP + Patch Flags=0000000000000001 + Patch Threshold=85 + Patch Memory=4000 + FTP Cluster Size=20 +end +item: Remark +end +item: Remark + Text=File to find +end +item: Set Variable + Variable=FINDFILE + Value=Foo.doc +end +item: Set Variable + Variable=FOUNDFILE +end +item: Remark +end +item: Remark + Text=While Loop (perform loop at least once) +end +item: If/While Statement + Variable=FOUNDFILE + Flags=00110001 +end +item: Remark +end +item: Search for File + Variable=FOUNDFILE + Pathname List=%FINDFILE% + Flags=00000001 +end +item: Remark +end +item: If/While Statement + Variable=FOUNDFILE + Flags=00000001 +end +item: Rename File/Directory + Old Pathname=%FOUNDFILE%\%FINDFILE% + New Filename=%FINDFILE%.Bak +end +item: Install File + Source=\\smsserver\soruces\FooDoc\Foo2.doc + Destination=%FOUNDFILE%\Foo2.doc + Flags=0000000000000010 +end +item: End Block +end +item: Remark +end +item: End Block +end +item: Remark +end +item: Remark +end diff --git a/Chapter13/FindFileAndReplace_II.ipf b/Chapter13/FindFileAndReplace_II.ipf new file mode 100644 index 0000000..cfa913e --- /dev/null +++ b/Chapter13/FindFileAndReplace_II.ipf @@ -0,0 +1,111 @@ +Document Type: IPF +item: Global + Version=6.0 + Flags=01000100 + Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + LanguagesList=English + Default Language=2 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=9 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00010100000000000010110001011010 + Message Font=MS Sans Serif + Font Size=8 + Disk Filename=SETUP + Patch Flags=0000000000000001 + Patch Threshold=85 + Patch Memory=4000 + FTP Cluster Size=20 +end +item: Remark +end +item: Remark + Text=File to find +end +item: Set Variable + Variable=FINDFILE + Value=Foo.doc +end +item: Set Variable + Variable=FOUNDFILE +end +item: Remark +end +item: Remark + Text=While Loop (perform loop at least once) +end +item: If/While Statement + Variable=FOUNDFILE + Flags=00110001 +end +item: Remark +end +item: Search for File + Variable=FOUNDFILE + Pathname List=%FINDFILE% + Flags=00000001 +end +item: Remark +end +item: If/While Statement + Variable=FOUNDFILE + Flags=00000001 +end +item: Rename File/Directory + Old Pathname=%FOUNDFILE%\%FINDFILE% + New Filename=%FINDFILE%.Bak +end +item: End Block +end +item: Remark +end +item: End Block +end +item: Remark +end +item: Set Variable + Variable=FOUNDFILE +end +item: Remark + Text=While Loop (perform loop at least once) +end +item: If/While Statement + Variable=FOUNDFILE + Flags=00110001 +end +item: Remark +end +item: Search for File + Variable=FOUNDFILE + Pathname List=%FINDFILE%.bak + Flags=00000001 +end +item: Remark +end +item: If/While Statement + Variable=FOUNDFILE + Flags=00000001 +end +item: Rename File/Directory + Old Pathname=%FOUNDFILE%\%FINDFILE%.Bak + New Filename=%FINDFILE%.Bak.Old +end +item: Install File + Source=C:\scripts\sms\swdist\Foo2.doc + Destination=%FOUNDFILE%\Foo.doc + Flags=0000000000000010 +end +item: End Block +end +item: Remark +end +item: End Block +end +item: Remark +end +item: Remark +end +item: Remark +end diff --git a/Chapter13/HKCU_RegMod.ipf b/Chapter13/HKCU_RegMod.ipf new file mode 100644 index 0000000..f748309 --- /dev/null +++ b/Chapter13/HKCU_RegMod.ipf @@ -0,0 +1,108 @@ +Document Type: IPF +item: Global + Version=6.0 + Flags=01000100 + Languages=0 0 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + LanguagesList=English + Default Language=2 + Copy Default=1 + Japanese Font Name=MS Gothic + Japanese Font Size=9 + Start Gradient=0 0 255 + End Gradient=0 0 0 + Windows Flags=00010100000000000010110001011010 + Message Font=MS Sans Serif + Font Size=8 + Disk Filename=SETUP + Patch Flags=0000000000000001 + Patch Threshold=85 + Patch Memory=4000 + FTP Cluster Size=20 +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark + Text=Install the File to be Run when the user logs in +end +item: Install File + Source=c:\temp\CLAIM_HKCUMOD.EXE + Destination=%SYSWIN%\CLAIM_HKCUMOD.exe + Flags=0000000000000010 +end +item: Remark +end +item: Remark + Text=Add/Update Registry keys in ActiveSetup +end +item: Edit Registry + Total Keys=1 + Key=SOFTWARE\Microsoft\Active Setup\Installed Components\CLAIM_HKCUMOD + New Value=%SYSWIN%\CLAIM_HKCUMOD.EXE /s + Value Name=StubPath + Root=2 +end +item: Edit Registry + Total Keys=1 + Key=SOFTWARE\Microsoft\Active Setup\Installed Components\CLAIM_HKCUMOD + New Value=1 + Value Name=Version + Root=2 +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end +item: Remark +end diff --git a/Chapter13/foo2.doc b/Chapter13/foo2.doc new file mode 100644 index 0000000000000000000000000000000000000000..916c5799216c45de2eea4e52669a1424c573aa26 GIT binary patch literal 10752 zcmeHN&u<$=6#jO-cI=dFw7to(R-Bl+IkkqQI_su7=}_)1&WSZ2!X$UsNong z0jDnayC$(dtpGJ1O9w`$MyHN0A6+)KRhLZAiD#bx@?U$VXe~UB!f?+cb2HgC_|OPv z8!pA8vW#oh_uKB|GmXBF<4hi(vz@qY*Y5*2SpTNc|G)Ay{qTc!T{g&j*zP{t-(&1s zM8Cv(f%PZlAVzllHous8-TdWO^kZY3)}Q5ZzqW3K zxXs7M@wTV^?(K2w zytWDgjqmwZN!R7Mr3iTTIsafw-8yG2fB>II{Q2(g{}!04ZA;PX!gGsDFXtDR-*|p8 z-PX=1AW><9#M*u&kLhY!f@hK#$=;+@b3InRIIK?PNmaSorb zt~LS6Lz&iZ9_Q98O>EKi-A6 zhq`d`xQ|mT9}oQ%V33~VZE#I*uNZIsYHwan-d;^#jyme)xt09%uIcBH@sn8X$4|%) zEi2TABgMPnHS|%{i2;tS#L-Dp-ZO6I8iEa&eSR_VqUq{sdoQ;Z>46noP8bfiDWDSXYpA{)!%#=oQCjbYTF)N!65O4@M1RMem0f)ejM?jkw{W#X%Mf*_gKlPsv?Y#8Ajtsfp=I&zACRXnYJ6QB4 zU-kzq;RYWEWs;6_P#Xx( z>5X{p=3q&DA9eFAig6I9xgj6rmVAPmjm3=S)&bwd*ZNf+QCl-P&9?fplI&+V`YN}Y z@w1YR=5m1Xbq`q#n#GLj72d}8cw(dDj~SdK3R5&}4uc%;UK_jF_)WanMUj+~a@W1< z=>Lg;$JtNt3tpp--@7~;!|>!-wK7{N&E?Njs^j^A%Gky7#PpnbCJc{AN0k;cBp0l` R(2IMo{qiZ*j&?Kx{{ZhgE#LqE literal 0 HcmV?d00001 diff --git a/Chapter15/15-1_DisplayStatusMessageQuery.vbs b/Chapter15/15-1_DisplayStatusMessageQuery.vbs new file mode 100644 index 0000000..22914ad --- /dev/null +++ b/Chapter15/15-1_DisplayStatusMessageQuery.vbs @@ -0,0 +1,19 @@ +strQueryID = "SMS577" +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set objQuery = objSMS.Get("SMS_Query.QueryID='" & _ + strQueryID & "'") +wscript.echo objQuery.Expression +wscript.echo objQuery.GetObjectText_ +wscript.echo objQuery.GetText_(2) \ No newline at end of file diff --git a/Chapter15/15-2_DisplayStatusMessageQueries.vbs b/Chapter15/15-2_DisplayStatusMessageQueries.vbs new file mode 100644 index 0000000..8a80d70 --- /dev/null +++ b/Chapter15/15-2_DisplayStatusMessageQueries.vbs @@ -0,0 +1,20 @@ +strSMSServer = + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colQueries = objSMS.ExecQuery _ + ("select * from SMS_Query where TargetClassName = " & _ + "'SMS_StatusMessage' order by Name") +for each objQuery in colQueries + wscript.echo objQuery.Name & "(" & _ + objQuery.QueryID & ")" & vbTAB & objQuery.Expression +next diff --git a/Chapter15/15-3_ExportStatusMessagesToMOF.vbs b/Chapter15/15-3_ExportStatusMessagesToMOF.vbs new file mode 100644 index 0000000..cef3922 --- /dev/null +++ b/Chapter15/15-3_ExportStatusMessagesToMOF.vbs @@ -0,0 +1,50 @@ +Const ForWriting = 2 +Set fso = CreateObject("Scripting.FileSystemObject") +strSMSServer = +strNEWSMSServer = "SMSVPC" +strNewSMSSiteCode = "LAB" +strFileLoc = "C:\scripts\" + +Set objLoc = CreateObject("WbemScripting.SWbemLocator") +Set objSMS= objLoc.ConnectServer(strSMSServer, "root\sms") +Set Results = objSMS.ExecQuery _ + ("SELECT * From SMS_ProviderLocation WHERE ProviderForLocalSite = true") +For each Loc in Results + If Loc.ProviderForLocalSite = True Then + Set objSMS = objLoc.ConnectServer(Loc.Machine, "root\sms\site_" & _ + Loc.SiteCode) + end if +Next + +Set colStatQueries = objSMS.ExecQuery _ +("select * from SMS_Query where TargetClassName = '" & _ +"SMS_StatusMessage' and QueryID not like 'SMS%'") + +for each objStatQuery in colStatQueries + wscript.echo "Exporting " & objStatQuery.Name & vbTAB & _ + objStatQuery.QueryID + Set fin = fso.OpenTextFile(strfileLoc & _ + objStatQuery.QueryID & ".MOF", ForWriting, True) + fin.writeline "//********************************" + fin.writeline "//Created by SMS Recipes Exporter" + fin.writeline "//********************************" + fin.writeline vbCRLF + 'only use the following line if planning to import MOF + 'from the command line + fin.writeline "#pragma namespace(" & chr(34) & "\\\\" & _ + strNEWSMSServer & "\\root\\SMS\\site_" & _ + strnewSMSSiteCode & chr(34) & ")" + fin.writeline vbCRLF + fin.writeline "// **** Class : SMS_Query ****" + fin.writeline "[SecurityVerbs(140551)]" + for each strLine in split(objStatQuery.GetObjectText_, chr(10)) + if instr(strLine, "QueryID =") then + fin.writeline(vbTAB & "QueryID = " & chr(34) & _ + chr(34)) & ";" + else + fin.writeline cstr(strLine) + end if + next + fin.writeline "// **** End ****" + fin.close +next diff --git a/Chapter16/16-10_InitiateDDR_COM.vbs b/Chapter16/16-10_InitiateDDR_COM.vbs new file mode 100644 index 0000000..46e1549 --- /dev/null +++ b/Chapter16/16-10_InitiateDDR_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Discovery Data Collection Cycle" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-11_InitiateFileCOLL.vbs b/Chapter16/16-11_InitiateFileCOLL.vbs new file mode 100644 index 0000000..30fb101 --- /dev/null +++ b/Chapter16/16-11_InitiateFileCOLL.vbs @@ -0,0 +1,9 @@ +Const FILECOLL = "{00000000-0000-0000-0000-000000000010}" +strComputer = "." + +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = FILECOLL +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16-12_InitiateFileCOLL_COM.vbs b/Chapter16/16-12_InitiateFileCOLL_COM.vbs new file mode 100644 index 0000000..46e1549 --- /dev/null +++ b/Chapter16/16-12_InitiateFileCOLL_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Discovery Data Collection Cycle" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-13_InitiateSWM.vbs b/Chapter16/16-13_InitiateSWM.vbs new file mode 100644 index 0000000..1160a9f --- /dev/null +++ b/Chapter16/16-13_InitiateSWM.vbs @@ -0,0 +1,9 @@ +Const SWM = "{00000000-0000-0000-0000-000000000022}" +strComputer = "." + +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = SWM +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16-14_InitiateSWM_COM.vbs b/Chapter16/16-14_InitiateSWM_COM.vbs new file mode 100644 index 0000000..bfd1db8 --- /dev/null +++ b/Chapter16/16-14_InitiateSWM_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Software Metering Usage Report Cycle" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-15_InitiateUserPol_COM.vbs b/Chapter16/16-15_InitiateUserPol_COM.vbs new file mode 100644 index 0000000..ab02b4b --- /dev/null +++ b/Chapter16/16-15_InitiateUserPol_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Request & Evaluate User Policy" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-16_InitiateWIUpdate.vbs b/Chapter16/16-16_InitiateWIUpdate.vbs new file mode 100644 index 0000000..1889953 --- /dev/null +++ b/Chapter16/16-16_InitiateWIUpdate.vbs @@ -0,0 +1,8 @@ +Const WIU = “{00000000-0000-0000-0000-000000000032}” +strComputer = "2kPro" +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = WIU +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16-17_InitiateWIUpdate_COM.vbs b/Chapter16/16-17_InitiateWIUpdate_COM.vbs new file mode 100644 index 0000000..8d9fdea --- /dev/null +++ b/Chapter16/16-17_InitiateWIUpdate_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="MSI Product Source Update Cycle" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next diff --git a/Chapter16/16-18_InitiateClientRepair.vbs b/Chapter16/16-18_InitiateClientRepair.vbs new file mode 100644 index 0000000..b7d44a9 --- /dev/null +++ b/Chapter16/16-18_InitiateClientRepair.vbs @@ -0,0 +1,5 @@ +strComputer = "2kPro" +Set smsClient = GetObject("winmgmts://" & strComputer & _ + "/root/ccm:SMS_Client") +Set result = smsClient.ExecMethod_("RepairClient") +wscript.echo "Repair Initiated on " & strComputer diff --git a/Chapter16/16-19_InitiateClientRepair_CommandLine.vbs b/Chapter16/16-19_InitiateClientRepair_CommandLine.vbs new file mode 100644 index 0000000..a65b417 --- /dev/null +++ b/Chapter16/16-19_InitiateClientRepair_CommandLine.vbs @@ -0,0 +1,6 @@ +Set objArgs = WScript.Arguments +StrComputer = objArgs(0) +Set smsClient = GetObject("winmgmts://" & strComputer & _ + "/root/ccm:SMS_Client") +Set result = smsClient.ExecMethod_("RepairClient") +wscript.echo "Repair Initiated on " & strComputerName diff --git a/Chapter16/16-1_GetClientComponents_COM.vbs b/Chapter16/16-1_GetClientComponents_COM.vbs new file mode 100644 index 0000000..b9d8688 --- /dev/null +++ b/Chapter16/16-1_GetClientComponents_COM.vbs @@ -0,0 +1,15 @@ +Set oCPAppletMgr=CreateObject("CPApplet.CPAppletMgr") +Set oClientComponents=oCPAppletMgr.GetClientComponents +For Each oClientComponent In oClientComponents + strInfo = oClientComponent.DisplayName + Select Case oClientComponent.State + Case 0 + strInfo = strInfo & vbTAB & "(Installed)" + Case 1 + strInfo = strInfo & vbTAB & "(Enabled)" + Case 2 + strInfo = strInfo & vbTAB & "(Disabled)" + End Select + strinfo = strInfo & vbTAB & oClientcomponent.Version + wscript.echo strInfo +Next diff --git a/Chapter16/16-20_GetAssignedSite.vbs b/Chapter16/16-20_GetAssignedSite.vbs new file mode 100644 index 0000000..a4e0b5c --- /dev/null +++ b/Chapter16/16-20_GetAssignedSite.vbs @@ -0,0 +1,6 @@ +strComputerName = "." +Set smsClient = GetObject("winmgmts://" & strComputerName & _ + "/root/ccm:SMS_Client") +Set result = smsClient.ExecMethod_("GetAssignedSite") +WScript.Echo "Client is currently assigned to site " & _ + result.sSiteCode diff --git a/Chapter16/16-21_GetAssignedSite_COM.vbs b/Chapter16/16-21_GetAssignedSite_COM.vbs new file mode 100644 index 0000000..aaa2100 --- /dev/null +++ b/Chapter16/16-21_GetAssignedSite_COM.vbs @@ -0,0 +1,3 @@ +Set smsClient = CreateObject("Microsoft.SMS.Client") +WScript.Echo "Client is currently assigned to site " & _ + smsClient.GetAssignedSite diff --git a/Chapter16/16-22_DiscoverAssignedSite.vbs b/Chapter16/16-22_DiscoverAssignedSite.vbs new file mode 100644 index 0000000..7ec8ac6 --- /dev/null +++ b/Chapter16/16-22_DiscoverAssignedSite.vbs @@ -0,0 +1,11 @@ +'Requires a restart of the SMS Agent Host Service +strComputerName = "2kPro" +Set objWMIService = GetObject("winmgmts://" & _ + strComputerName & "/root/ccm") +Set objSMSClient = objWMIService.ExecQuery _ + ("Select * from SMS_Client") + +for each objClient in objSMSClient + objClient.EnableAutoAssignment = 1 + objClient.Put_ 0 +next \ No newline at end of file diff --git a/Chapter16/16-23_DiscoverAssignedSite_COM.vbs b/Chapter16/16-23_DiscoverAssignedSite_COM.vbs new file mode 100644 index 0000000..84f6cfe --- /dev/null +++ b/Chapter16/16-23_DiscoverAssignedSite_COM.vbs @@ -0,0 +1,3 @@ +Set SMSClient = CreateObject("Microsoft.SMS.Client") +WScript.Echo "Client is now assigned to " & _ + SMSClient.ReAssignSite diff --git a/Chapter16/16-24_SetAssignedSite.vbs b/Chapter16/16-24_SetAssignedSite.vbs new file mode 100644 index 0000000..38e44f3 --- /dev/null +++ b/Chapter16/16-24_SetAssignedSite.vbs @@ -0,0 +1,23 @@ +strComputer = "2kPro" +strSMSSite = "XXX" +Set objSMS = GetObject("winmgmts://" & strComputer & _ + "/root/ccm") +Set objSMSClient = objSMS.Get("SMS_Client") +set objParams = objSMSClient.Methods_("SetAssignedSite"). _ + inParameters.SpawnInstance_() +objParams.sSiteCode = strSMSSite +objSMS.ExecMethod _ + "SMS_Client", "SetAssignedSite", objParams + + + + +' sSiteCode = "XXX" + +' sMachine = "." + +' Set oCCMNamespace = GetObject("winmgmts:{impersonationLevel=impersonate}//" & sMachine & "/root/ccm") + +' Set smsClient = oCCMNamespace.Get("SMS_Client") + +' smsClient.SetAssignedSite sSiteCode, oParams diff --git a/Chapter16/16-26_GetCacheSize.vbs b/Chapter16/16-26_GetCacheSize.vbs new file mode 100644 index 0000000..141d97d --- /dev/null +++ b/Chapter16/16-26_GetCacheSize.vbs @@ -0,0 +1,10 @@ +'Requires a restart of the SMS Agent Host Service +strComputer = "2kpro" +Set objSMS = _ + GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _ + strComputer & "/root/ccm/SoftMgmtAgent") +Set objCacheConfig = objSMS.ExecQuery _ + ("Select * from CacheConfig") +for each objCache in objCacheConfig + wscript.echo objCache.Size +next diff --git a/Chapter16/16-27_GetCacheSize_COM.vbs b/Chapter16/16-27_GetCacheSize_COM.vbs new file mode 100644 index 0000000..a9fb81c --- /dev/null +++ b/Chapter16/16-27_GetCacheSize_COM.vbs @@ -0,0 +1,4 @@ +Set oUIResource = CreateObject("UIResource.UIResourceMgr") +Set objCacheInfo = oUIResource.GetCacheInfo +wscript.echo objCacheInfo.TotalSize + diff --git a/Chapter16/16-28_SetCacheSize.vbs b/Chapter16/16-28_SetCacheSize.vbs new file mode 100644 index 0000000..ddfdbe6 --- /dev/null +++ b/Chapter16/16-28_SetCacheSize.vbs @@ -0,0 +1,11 @@ +'Requires a restart of the SMS Agent Host Service +strComputer = "2kpro" +Set objSMS = _ + GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _ + strComputer & "/root/ccm/SoftMgmtAgent") +Set objCacheConfig = objSMS.ExecQuery _ + ("Select * from CacheConfig") +for each objCache in objCacheConfig + objCache.Size = 25 + objCache.Put_ 0 +next diff --git a/Chapter16/16-29_SetCacheSize_COM.vbs b/Chapter16/16-29_SetCacheSize_COM.vbs new file mode 100644 index 0000000..826fda7 --- /dev/null +++ b/Chapter16/16-29_SetCacheSize_COM.vbs @@ -0,0 +1,4 @@ +Set oUIResource = CreateObject("UIResource.UIResourceMgr") +Set objCacheInfo = oUIResource.GetCacheInfo +objCacheInfo.TotalSize = 15 + diff --git a/Chapter16/16-2_GetClientComponents.vbs b/Chapter16/16-2_GetClientComponents.vbs new file mode 100644 index 0000000..03364a8 --- /dev/null +++ b/Chapter16/16-2_GetClientComponents.vbs @@ -0,0 +1,8 @@ +strComputerName = "." +Set objSMS = GetObject("winmgmts://" & strComputerName & _ + "/root/ccm") +Set objSMSComponents = objSMS.ExecQuery _ + ("Select * from CCM_InstalledComponent") +for each objComponent in objSMSComponents + wscript.echo objComponent.Name & vbTAB & objComponent.Version +next \ No newline at end of file diff --git a/Chapter16/16-30_RerunAdvert.vbs b/Chapter16/16-30_RerunAdvert.vbs new file mode 100644 index 0000000..cfdcf4b --- /dev/null +++ b/Chapter16/16-30_RerunAdvert.vbs @@ -0,0 +1,43 @@ +strComputerName = "2KPro" +strAdvID = "LAB20001" +set objSMS = GetObject("winmgmts://" & _ + strComputerName & _ + "/root/ccm/policy/machine/actualconfig") +Set objScheds = objSMS.ExecQuery _ + ("select * from CCM_Scheduler_ScheduledMessage") +For each objSched in objScheds + 'locate ScheduleMessageID that contains strAdvID + If Instr(objSched.ScheduledMessageID, strAdvID) > 0 then + strMsgID = objSched.ScheduledMessageID + exit for + End If +Next +'strMsgID now contains proper Advertisement + +Set objSWDs = objSMS.ExecQuery _ +("select * from CCM_SoftwareDistribution where " & _ + "ADV_AdvertisementID = '" & strAdvID & "'" ) +for each objSWD in objSWDs + strOrigBehavior = objSWD.ADV_RepeatRunBehavior + 'strOrigBehavior now contains original Repeat Behavior + 'Now temporarily set RepeatRunBehavior to RerunAlways + objSWD.ADV_RepeatRunBehavior = "RerunAlways" + objSWD.Put_ 0 +Next + +set objCCM = GetObject("winmgmts://" & strComputerName & _ + "/root/ccm") +Set objSMSClient = objCCM.Get("SMS_Client") +objSMSClient.TriggerSchedule strMsgID + +'sleep for 5 seconds, for advert to start +wscript.sleep 5000 + +Set objScheds = objSMS.ExecQuery _ +("select * from CCM_SoftwareDistribution where " & _ + "ADV_AdvertisementID = '" & strAdvID & "'" ) +for each objSched in objScheds + 'Set RepeatRunBehavior back to original config + objSched.ADV_RepeatRunBehavior = strOrigBehavior + objSched.Put_ 0 +Next \ No newline at end of file diff --git a/Chapter16/16-31_RerunAdvert_COM.vbs b/Chapter16/16-31_RerunAdvert_COM.vbs new file mode 100644 index 0000000..ce52b53 --- /dev/null +++ b/Chapter16/16-31_RerunAdvert_COM.vbs @@ -0,0 +1,9 @@ +Set uiResource = CreateObject("UIResource.UIResourceMgr") +Set programList = uiResource.GetAvailableApplications +For each p in programList + wscript.echo p.Name + If p.Name = "SMS 2003 SDK V3" then + uiResource.ExecuteProgram p.ID, p.PackageID, True + Exit For + End if +Next diff --git a/Chapter16/16-32_GetCurrentMP_PMP.vbs b/Chapter16/16-32_GetCurrentMP_PMP.vbs new file mode 100644 index 0000000..e3da881 --- /dev/null +++ b/Chapter16/16-32_GetCurrentMP_PMP.vbs @@ -0,0 +1,18 @@ +strComputerName = "2kPro" +Set objSMS = GetObject("winmgmts://" & strComputerName & _ + "/root/ccm") +Set objAuthority = objSMS.ExecQuery _ + ("Select * from SMS_Authority") + +For Each authority In objAuthority + wscript.echo "SMS Site: " & _ + Replace(authority.Name, "SMS:", "") + wscript.echo "MP: " & authority.CurrentManagementPoint +Next + +Set colProxyMPs = objSMS.ExecQuery _ + ("Select * from SMS_MPProxyInformation") +For Each objProxyMP in colProxyMPs + wscript.echo "Proxy MP: " & objProxyMP.Name +Next + diff --git a/Chapter16/16-33_DisplayLastHWSWInvDates.vbs b/Chapter16/16-33_DisplayLastHWSWInvDates.vbs new file mode 100644 index 0000000..3b4c608 --- /dev/null +++ b/Chapter16/16-33_DisplayLastHWSWInvDates.vbs @@ -0,0 +1,40 @@ +strComputerName = "." + +'first, get the time zone bias +Set objWMIService = GetObject("winmgmts:\\" & strComputerName & _ + "\root\cimv2") +Set colTimeZone = objWMIService.ExecQuery _ + ("Select * from Win32_TimeZone") +For Each objTimeZone in colTimeZone + intBias = cint(objTimeZone.Bias ) +Next + +Set objSMS = GetObject("winmgmts://" & strComputerName & _ + "/root/ccm/invagt") +Set colInvInfo = objSMS.ExecQuery _ + ("Select * from InventoryActionStatus") + +for each objInvInfo in colInvInfo + + select case objInvInfo.InventoryActionID + case "{00000000-0000-0000-0000-000000000001}" + strInv = "Hardware Inventory" + case "{00000000-0000-0000-0000-000000000002}" + strInv = "Software Inventory" + case "{00000000-0000-0000-0000-000000000010}" + strInv = "File Collection" + case "{00000000-0000-0000-0000-000000000003}" + strInv = "Discovery Data Record" + end select + wscript.echo strInv & vbTAB & _ + convDate(objInvInfo.LastCycleStartedDate, intBias) & _ + vbTAB & convDate(objInvInfo.LastReportDate, intBias) +next + +Function convDate(dtmInstallDate, intBias) + convDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _ + Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _ + & " " & Mid (dtmInstallDate, 9, 2) & ":" & _ + Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, 13, 2)) + convDate = DateAdd("N",intBias,convDate) +End Function diff --git a/Chapter16/16-34_DisplayAdverts.vbs b/Chapter16/16-34_DisplayAdverts.vbs new file mode 100644 index 0000000..150a7ec --- /dev/null +++ b/Chapter16/16-34_DisplayAdverts.vbs @@ -0,0 +1,18 @@ +strComputer = "." +Set objSMS = GetObject("winmgmts:\\" & strComputer & _ + "\root\ccm\Policy\Machine\ActualConfig") +Set colSW = objSMS.ExecQuery _ + ("Select * from CCM_SoftwareDistribution") +wscript.echo colSW.count & " Advertisements" +for each oSW in colSW + wscript.echo oSW.PRG_HistoryLocation & vbTAB & _ + oSW.ADV_AdvertisementID & vbTAB & oSW.PKG_PackageID & _ + vbTAB & oSW.PRG_ProgramID & vbTAB & _ + oSW.ADV_ActiveTime & vbTAB & oSW.ADV_ExpirationTime & _ + vbTAB & oSW.ADV_MandatoryAssignments & vbTAB & _ + oSW.PKG_Name & vbTAB & oSW.PRG_ProgramName & vbTAB & _ + oSW.PRG_PRF_AfterRunning & vbTAB & _ + oSW.PRG_CustomLogoffReturnCodes & vbTAB & _ + oSW.PRG_MaxDuration & vbTAB & _ + oSW.PRG_PRF_UserLogonRequirement +next \ No newline at end of file diff --git a/Chapter16/16-35_DisplayAdverts_COM.vbs b/Chapter16/16-35_DisplayAdverts_COM.vbs new file mode 100644 index 0000000..0e82eca --- /dev/null +++ b/Chapter16/16-35_DisplayAdverts_COM.vbs @@ -0,0 +1,8 @@ +Set UI = CreateObject("UIResource.UIResourceMgr") +Set programList = UI.GetAvailableApplications + +For each program in programList + wscript.echo program.PackageID & vbTAB & program.ID & _ + vbTAB & program.Name & vbTAB & program.PackageName & _ + vbTAB & program.Version +Next diff --git a/Chapter16/16-36_DisplayRunningAdverts.vbs b/Chapter16/16-36_DisplayRunningAdverts.vbs new file mode 100644 index 0000000..a83046d --- /dev/null +++ b/Chapter16/16-36_DisplayRunningAdverts.vbs @@ -0,0 +1,10 @@ +strComputer = "." +Set objSMS = GetObject("winmgmts://" & strComputer & _ + "/root/ccm/SoftMgmtAgent") +Set colER = objSMS.ExecQuery _ + ("Select * from CCM_ExecutionRequest") +for each oER in colER + wscript.echo oER.ProgramID & vbTAB & oER.State & vbTAB & _ + oER.ProcessID & vbTAB & oER.AdvertID & vbTAB & _ + oER.IsAdminContext +next \ No newline at end of file diff --git a/Chapter16/16-37_DisplayAdvertHistory.vbs b/Chapter16/16-37_DisplayAdvertHistory.vbs new file mode 100644 index 0000000..b31356f --- /dev/null +++ b/Chapter16/16-37_DisplayAdvertHistory.vbs @@ -0,0 +1,49 @@ +Const HKEY_LOCAL_MACHINE = &H80000002 +' Only show adverts that have occurred within the last 90 days +Const intMaxDays = 90 +strComputer = "." + +'this is the base key path +strKeyPath = "SOFTWARE\Microsoft\SMS\Mobile Client\" & _ + "Software Distribution\Execution History\System" +'connect to the registry provider +Set oReg=GetObject _ + ("winmgmts:{impersonationLevel=impersonate}!\\" & _ + strComputer & "\root\default:StdRegProv") + +oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys + +'this first for-each loop is used to enumerate each package +' key +For Each PackageID In arrSubKeys + oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath & "\" & _ + PackageID, arrSubKeys2 + 'the second for-each loop is used to enumerate each + ' GUID key within a package key + For Each GUID in arrSubKeys2 + SearchStrKeyPath = strKeyPath & "\" & PackageID & _ + "\" & GUID + oReg.GetStringValue HKEY_LOCAL_MACHINE, _ + SearchStrKeyPath, "_ProgramID", strProgramID + oReg.GetStringValue HKEY_LOCAL_MACHINE, _ + SearchStrKeyPath, "_RunStartTime", strRunStartTime + oReg.GetStringValue HKEY_LOCAL_MACHINE, _ + SearchStrKeyPath, "_State", strState + oReg.GetStringValue HKEY_LOCAL_MACHINE, _ + SearchStrKeyPath, "SuccessOrFailureCode", _ + strSuccessOrFailure + oReg.GetStringValue HKEY_LOCAL_MACHINE, _ + SearchStrKeyPath, "SuccessOrFailureReason", _ + strSuccessOrFailureReason + + 'Only display data for advert starts < 90 days + If not DateDiff _ + ("d",strRunStartTime, now()) > intMaxDays Then + wscript.echo strProgramID & vbTAB & _ + strRunStartTime & vbTAB & strState & vbTAB & _ + strSuccessOrFailure & vbTAB & _ + strSuccessOrFailureReason + End If + Next +Next + diff --git a/Chapter16/16-3_ForceHardwareInv.vbs b/Chapter16/16-3_ForceHardwareInv.vbs new file mode 100644 index 0000000..f5507a1 --- /dev/null +++ b/Chapter16/16-3_ForceHardwareInv.vbs @@ -0,0 +1,18 @@ +Const HWINV = "{00000000-0000-0000-0000-000000000001}" +strComputer = "." + +FullInv = Msgbox("Full Inventory?", vbYesNo) + +If FullInv = vbYes then + Set objSMS = GetObject("winmgmts://" & strComputer & _ + "/root/ccm/invagt") + objSMS.Delete "InventoryActionStatus.InventoryActionID=" _ + & Chr(34) & HWINV & Chr(34) +End If + +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = HWINV +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16-4_ForceHardwareInv_COM.vbs b/Chapter16/16-4_ForceHardwareInv_COM.vbs new file mode 100644 index 0000000..85997eb --- /dev/null +++ b/Chapter16/16-4_ForceHardwareInv_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Hardware Inventory Collection Cycle" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-5_ForceSoftwareInv.vbs b/Chapter16/16-5_ForceSoftwareInv.vbs new file mode 100644 index 0000000..edf8de8 --- /dev/null +++ b/Chapter16/16-5_ForceSoftwareInv.vbs @@ -0,0 +1,18 @@ +Const SWINV = "{00000000-0000-0000-0000-000000000002}" +strComputer = "." + +FullInv = Msgbox("Full Inventory?", vbYesNo) + +If FullInv = vbYes then + Set objSMS = GetObject("winmgmts://" & strComputer & _ + "/root/ccm/invagt") + objSMS.Delete "InventoryActionStatus.InventoryActionID=" _ + & Chr(34) & SWINV & Chr(34) +End If + +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = HWINV +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16-6_SoftwareInv_COM.vbs b/Chapter16/16-6_SoftwareInv_COM.vbs new file mode 100644 index 0000000..68a6353 --- /dev/null +++ b/Chapter16/16-6_SoftwareInv_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Software Inventory Collection Cycle" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-7_RefreshMachinePolicy.vbs b/Chapter16/16-7_RefreshMachinePolicy.vbs new file mode 100644 index 0000000..12c177f --- /dev/null +++ b/Chapter16/16-7_RefreshMachinePolicy.vbs @@ -0,0 +1,9 @@ +Const MachinePol = "{00000000-0000-0000-0000-000000000021}" +strComputer = "2kPro" + +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = MachinePol +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16-8_RefreshAndEvalMachinePolicy_COM.vbs b/Chapter16/16-8_RefreshAndEvalMachinePolicy_COM.vbs new file mode 100644 index 0000000..f5980b2 --- /dev/null +++ b/Chapter16/16-8_RefreshAndEvalMachinePolicy_COM.vbs @@ -0,0 +1,8 @@ +set mgr = CreateObject("CPApplet.CPAppletMgr") +set actions=mgr.GetClientActions +for each action in actions + if action.name="Request & Evaluate Machine Policy" then + action.PerformAction + wscript.echo action.Name & " Initiated" + end if +next \ No newline at end of file diff --git a/Chapter16/16-9_InitiateDDR.vbs b/Chapter16/16-9_InitiateDDR.vbs new file mode 100644 index 0000000..121fdf9 --- /dev/null +++ b/Chapter16/16-9_InitiateDDR.vbs @@ -0,0 +1,9 @@ +Const DDR = "{00000000-0000-0000-0000-000000000003}" +strComputer = "." + +Set objCCM = GetObject("winmgmts://" & strComputer & "/root/ccm") +Set objClient = objCCM.Get("SMS_Client") +Set objSched = objClient.Methods_("TriggerSchedule"). _ + inParameters.SpawnInstance_() +objSched.sScheduleID = DDR +objCCM.ExecMethod "SMS_Client", "TriggerSchedule", objSched diff --git a/Chapter16/16_25_SetAssignedSite_Adv.vbs b/Chapter16/16_25_SetAssignedSite_Adv.vbs new file mode 100644 index 0000000..865a7dc --- /dev/null +++ b/Chapter16/16_25_SetAssignedSite_Adv.vbs @@ -0,0 +1,14 @@ +strComputerName = "." +Set smsClient = GetObject("winmgmts://" & strComputerName & "/root/ccm:SMS_Client") + +Set result = smsClient.ExecMethod_("GetAssignedSite") +WScript.Echo "Client is currently assigned to site " & result.sSiteCode + +Set inParam = smsClient.Methods_.Item("SetAssignedSite").inParameters.SpawnInstance_() +inParam.sSiteCode = "LAB" +Set result = smsClient.ExecMethod_("SetAssignedSite", inParam) + +Set result = smsClient.ExecMethod_("GetAssignedSite") +WScript.Echo "Client is now assigned to " & result.sSiteCode + + diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..636dda0 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,27 @@ +Freeware License, some rights reserved + +Copyright (c) 2006 Greg Ramsey and Warren Byle + +Permission is hereby granted, free of charge, to anyone obtaining a copy +of this software and associated documentation files (the "Software"), +to work with the Software within the limits of freeware distribution and fair use. +This includes the rights to use, copy, and modify the Software for personal use. +Users are also allowed and encouraged to submit corrections and modifications +to the Software for the benefit of other users. + +It is not allowed to reuse, modify, or redistribute the Software for +commercial use in any way, or for a user’s educational materials such as books +or blog articles without prior permission from the copyright holder. + +The above copyright notice and this permission notice need to be included +in all copies or substantial portions of the software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS OR APRESS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..b4aaf9f --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +#Apress Source Code + +This repository accompanies [*SMS 2003 Recipes*](http://www.apress.com/9781590597125) by Greg Ramsey and Warren Byle (Apress, 2006). + +![Cover image](9781590597125.jpg) + +Download the files as a zip using the green button, or clone the repository to your machine using Git. + +##Releases + +Release v1.0 corresponds to the code in the published book, without corrections or updates. + +##Contributions + +See the file Contributing.md for more information on how you can contribute to this repository. diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..28d5e22 --- /dev/null +++ b/README.txt @@ -0,0 +1 @@ +No additional information is required for these scripts. \ No newline at end of file diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..f6005ad --- /dev/null +++ b/contributing.md @@ -0,0 +1,14 @@ +# Contributing to Apress Source Code + +Copyright for Apress source code belongs to the author(s). However, under fair use you are encouraged to fork and contribute minor corrections and updates for the benefit of the author(s) and other readers. + +## How to Contribute + +1. Make sure you have a GitHub account. +2. Fork the repository for the relevant book. +3. Create a new branch on which to make your change, e.g. +`git checkout -b my_code_contribution` +4. Commit your change. Include a commit message describing the correction. Please note that if your commit message is not clear, the correction will not be accepted. +5. Submit a pull request. + +Thank you for your contribution! \ No newline at end of file