Sms Admin
Sms Admin
Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. 1994-2003 Microsoft Corporation. All rights reserved. Microsoft, MS-DOS, Windows, Windows NT, Active Directory, Intellimirror, Microsoft Press, Win32, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Contents
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Technical Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Online Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix Product Documentation Available for SMS . . . . . . . . . . . . . . . . . . . . . . . . . xx Keeping Your Technical Knowledge Current . . . . . . . . . . . . . . . . . . . . . . . xxi Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi PART 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 CHAPTER 1 Scenarios and Procedures for Deploying SMS 2003 . . . . . . . . . . . . . 3 Overview of the Deployment Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Client Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 SMS Deployment Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Part 1: Hierarchy-Specific Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Upgrade Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Options for Client Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Active Directory Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Network Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Part 2: Site-Specific Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Site Configuration Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Client Configuration Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Part 3: SMS 2003 Deployment Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 New Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Central Site Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Client Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Management Point Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
iv Contents
In-Place Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . In-Place Upgrade Deployment Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrade Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Side-by-Side Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Post-Installation Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 2 Collecting Hardware and Software Inventory . . . . . . . . . . . . . . . . . . Hardware Inventory Administrative Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling and Disabling Hardware Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . Scheduling Hardware Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling and Disabling MIF Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Hardware Inventory Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editing SMS_def.mof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distributing SMS_def.mof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upgrading SMS and SMS_def.mof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Inventory Administrative Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling and Disabling Software Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . Scheduling Software Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Software Inventory Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring File Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing Inventory Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Controlling Software Inventory on Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Resource Explorer to View Inventory Data . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Hardware Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Hardware Inventory History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Software Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Collected Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reviewing the Inventory Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Considerations for Collecting Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hardware and Software Inventory Behavior When Clients Cannot Connect to the SMS Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collection of User Context Information . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 3 Advanced Inventory Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Resource Explorer from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . Extending Hardware Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Hardware Inventory Extensions . . . . . . . . . . . . . . . . . . . . . . . . . Propagating Hardware Inventory Extensions Throughout the SMS Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33 33 35 38 40 43 45 45 46 47 48 49 51 51 52 53 54 54 56 57 58 59 59 60 61 61 62 65 66 66 67 68 69 70 70
Contents v
MIF Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Customizing with NOIDMIF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Creating a Class by Using a NOIDMIF File . . . . . . . . . . . . . . . . . . . . . . . . . 72 Customizing with IDMIF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Requirements of IDMIF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 MOF Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Understanding the Relationship Between the Hardware Inventory Agent and WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Customizing with MOF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Scripted Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Changing or Removing Hardware Inventory Extensions . . . . . . . . . . . . . . . . . 86 Common MOF Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Finding Computers That Are Laptops . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Finding Computer Serial Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Finding Hotfix Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Collecting Windows Installer Information . . . . . . . . . . . . . . . . . . . . . . . . . 91 Collecting SQL Server Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 CHAPTER 4 Managing Collections and Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Working with Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Understanding Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Collections that Provide Management Scope . . . . . . . . . . . . . . . . . . . . . . 98 Subcollections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Collections in the SMS Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Collection and Resource Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Creating and Managing Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Managing Resources in Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Working with Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Understanding SMS Database Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Understanding SMS Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 SMS Object Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Required SMS Query Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Optional SMS Query Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 WMI Query Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Creating and Managing SMS Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Creating and Editing Query Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
vi Contents
..................................... .....................................
125 126 126 128 131 133 133 133 135 136 137 139 139 140 141 145 145 146 146 147 154 155 155 159 159 161 163 164 165 165 167 168 169 169 170 171
Configuring the Software Distribution Agent . . . . . . . . . . . . . . . . . . . . . . . . . Preparing CAPs, Management Points, and Distribution Points . . . . . . . . . . Preparing Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preparing Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMS Administrator Console Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . Package Access Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Legacy Client Software Installation Account . . . . . . . . . . . . . . . . . . . . . . Advanced Client Network Access Account . . . . . . . . . . . . . . . . . . . . . . . Configuring the Software Distribution Component . . . . . . . . . . . . . . . . . . . . Managing Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Managing Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create Package Source Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create a New Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create a Setup Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modify an Existing Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delete a Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Managing Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Create a New Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modify an Existing Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Delete a Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distributing Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Advertisements with Assigned Programs . . . . . . . . . . . . . . . . . Assigned Program Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advertisements to Advanced Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . Disabling or Rerunning Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ensuring Package and Advertisement Integrity . . . . . . . . . . . . . . . . . . . . . . . Maintaining Packages and Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring Software Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Status Summaries for Packages at Their Sites and Distribution Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring Package Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring Advertised Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Status MIFs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents vii
Using Software Distribution Tools and Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . Running Advertised Programs on SMS Clients . . . . . . . . . . . . . . . . . . . . . . . . . . Running Advertised Programs on Either Client . . . . . . . . . . . . . . . . . . . . Running Advertised Programs on Advanced Clients . . . . . . . . . . . . . . . Running Advertised Programs on Legacy Clients . . . . . . . . . . . . . . . . . . Software Distribution Common Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Distribution Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 6 Managing Software Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Management Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About Software Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About Service Packs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Challenges in Managing Software Updates . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Management Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . How Software Update Management Works . . . . . . . . . . . . . . . . . . . . . . . . . . Basic Components Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Underlying Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Management Advanced Features . . . . . . . . . . . . . . . . Software Update Management Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preparing for Software Update Management Tasks . . . . . . . . . . . . . . . . . . . Task 1: Review the System Requirements for the Software Update Management Components . . . . . . . . . . . . . . . . . . . . . Task 2: Prepare the Test Environment . . . . . . . . . . . . . . . . . . . . . . . . . . Task 3: Prepare the Production Environment . . . . . . . . . . . . . . . . . . . . . Task 4: Deploy the Software Update Inventory Tools . . . . . . . . . . . . . . . Tasks for Authorizing and Distributing Software Updates . . . . . . . . . . . . . . Task 1: Prepare the Package Source Folder . . . . . . . . . . . . . . . . . . . . . . Task 2: Plan the Software Update Packages . . . . . . . . . . . . . . . . . . . . . Task 3: Evaluate and Prioritize the Software Updates . . . . . . . . . . . . . . Task 4: Isolate and Test the Software Updates . . . . . . . . . . . . . . . . . . . Task 5: Create the Software Updates Packages . . . . . . . . . . . . . . . . . . . Notes on Deploying Microsoft Office Updates . . . . . . . . . . . . . . . . . . . . Task 6: Customize the Package and Advertisement Settings . . . . . . . . Task 7: Test the Software Update Packages . . . . . . . . . . . . . . . . . . . . . Task 8: Expedite Delivery of New or Urgent Updates (optional) . . . . . .
172 174 175 176 180 182 186 189 190 190 191 191 192 193 194 195 196 197 198 198 203 205 206 220 221 221 224 225 225 231 240 241 243
viii Contents
Monitoring Software Update Distributions . . . . . . . . . . . . . . . . . . . . . . . . . . Tools for Monitoring Software Update Distributions . . . . . . . . . . . . . . . . Software Update Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Status Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tasks for Monitoring Software Update Processes . . . . . . . . . . . . . . . . . . . . Task 1: Audit the Enterprise for Current Security Vulnerabilities . . . . . Task 2: Monitor the Status of Software Update Distributions . . . . . . . . Task 3: Check the Health of Software Update Management Components . . . . . . . . . . . . . . . . . . . . . Task 4: Troubleshoot Software Update Installation Errors . . . . . . . . . . Software Update Management Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . General Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setup: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inventory Synchronization: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Inventory: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . Software Update Distribution: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . Software Update Installation: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . End-User Experience: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scheduling: Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . About Scheduling Software Update Installation Advertisements . . . . . About Updating Distribution Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Processing Load Added to SMS Client Computers by the Software Update Management Components . . . . . . . . . . . . . . . . . . . . . Inventory Data Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scan Component Bandwidth Considerations . . . . . . . . . . . . . . . . . . . . . Scan Component Completeness Considerations . . . . . . . . . . . . . . . . . . Status Message Processing Considerations . . . . . . . . . . . . . . . . . . . . . . Instantaneous Loading Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . General Cumulative Effect of Scan Tools . . . . . . . . . . . . . . . . . . . . . . . . Resolving Network Issues for Mobile Clients . . . . . . . . . . . . . . . . . . . . . CHAPTER 7 Creating Software Installation Packages with SMS Installer . . . . SMS Installer Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMS Installer Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMS Installer Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
244 245 246 247 248 249 249 250 252 253 254 254 255 256 257 258 260 261 262 262 265 265 266 266 266 267 268 269 269 269 269 271 272 272 274
Contents ix
Installing and Starting SMS Installer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repackage Installation Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reference Computer Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running Repackage Installation Wizard . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Repackage Installation Wizard . . . . . . . . . . . . . . . . . . . . . . Custom Configuration for Repackaging Scans . . . . . . . . . . . . . . . . . . . . Watch Application Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Scripts with the Script Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Script Editor User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation Script Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using an Installation Script to Wrap an Existing Setup . . . . . . . . . . . . . . . . . Testing SMS Installer-generated Executable Files . . . . . . . . . . . . . . . . . . . . . . . Distributing SMS Installer-generated Executable Files . . . . . . . . . . . . . . . . . SMS Installer-generated Executable File Compilation . . . . . . . . . . . . . . . . . PART 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 8 Software Metering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How Software Metering Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changes to Software Metering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring and Using Software Metering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enabling Software Metering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Excluding Advanced Clients from Software Metering . . . . . . . . . . . . . . . . . . Creating Software Metering Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Metering Rule Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scheduling Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Security Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding and Deleting Software Metering Rules . . . . . . . . . . . . . . . . . . . . Enabling and Disabling Software Metering Rules . . . . . . . . . . . . . . . . . . Using Rules in Multitiered Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . Software Metering Rules with the Same Name . . . . . . . . . . . . . . . . . . . Using Software Metering with Terminal Services . . . . . . . . . . . . . . . . . . Using Software Metering Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Summarization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Metering Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Software Metering Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
275 287 288 289 290 291 292 293 294 295 303 303 305 305 307 309 310 310 311 312 312 313 314 315 316 317 317 318 318 321 322 323 324 324 325
x Contents
Scheduling Software Metering Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Distributing and Inventorying Programs to Be Monitored . . . . . . . . . . . Configuring a Data Collection Schedule . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Software Metering Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . Addressing Privacy Concerns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 9 Remote Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMS Remote Tools Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remote Assistance and Terminal Services Overview . . . . . . . . . . . . . . . . . . . . . Installing, Enabling, and Configuring SMS Remote Tools . . . . . . . . . . . . . . . . . . Enabling and Configuring the SMS Remote Tools Client Agent on the SMS Site Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installing SMS Remote Tools on Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation on Clients Running Windows 2000 or Later . . . . . . . . . . . . Installation on Clients Running Windows NT 4.0 . . . . . . . . . . . . . . . . . . Preinstallation Testing for Clients Running Windows NT 4.0 or Later . Installation on Clients Running Windows 98 . . . . . . . . . . . . . . . . . . . . . Confirming SMS Remote Tools Installation . . . . . . . . . . . . . . . . . . . . . . . Configuring Site-wide Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Providing Remote Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using SMS Remote Tools to Support Clients . . . . . . . . . . . . . . . . . . . . . . . . . Establishing an SMS Remote Tools Connection . . . . . . . . . . . . . . . . . . . Remotely Controlling Clients by Using SMS Remote Tools . . . . . . . . . . Conducting Two-Way Conversations with Client Users . . . . . . . . . . . . . . Diagnosing Client Hardware and Software Problems . . . . . . . . . . . . . . . Testing Network Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Running Commands and Programs on Remote Clients . . . . . . . . . . . . . Transferring Files to and from Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . Restarting Remote Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using SMS Remote Tools at a Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advanced Features of SMS Remote Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Role of Wuser32.exe on Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client Security Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client Hardware Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
326 328 328 328 329 330 331 332 333 335 335 336 337 337 338 339 339 340 345 345 346 348 350 350 351 351 352 352 353 354 355 356 357
Contents xi
Video Acceleration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Video Acceleration on Clients Running Windows 2000 or Later . . . . . . Video Acceleration on Clients Running Windows NT 4.0 . . . . . . . . . . . . Improving the Performance of SMS Remote Tools . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 10 Maintaining and Monitoring the Network . . . . . . . . . . . . . . . . . . . Using Network Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Capturing Network Traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examining Captured Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Network Monitor Experts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using SMS Network Diagnostic Tools on Remote Computers . . . . . . . . . . . . . . Capturing Traffic on Remote Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Network Trace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 11 Creating Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Understanding Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Prompts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working with Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Managing Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Modifying SQL Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . Building an SQL Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SQL Server Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working with Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Managing Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PART 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 12 Determining Product Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . Using SMS for Product Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compliance Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compliance Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Viewing Product Compliance Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Product Compliance Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Product Compliance Data Manually . . . . . . . . . . . . . . . . . . . . . Customizing Product Compliance Data Automatically . . . . . . . . . . . . . . . . .
359 360 361 362 367 369 370 372 373 373 375 376 377 379 380 381 381 382 384 385 404 405 409 415 415 421 423 424 424 425 426 427 427 429
xii Contents
CHAPTER 13 Maintaining and Monitoring SMS Systems . . . . . . . . . . . . . . . . . . 433 Maintenance and Monitoring Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 Maintenance and Monitoring Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maintenance and Monitoring Resources . . . . . . . . . . . . . . . . . . . . . . . . Performance Monitor Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using SMS Performance Monitor Counters . . . . . . . . . . . . . . . . . . . . . . . Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Predefined Site Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . Custom Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daily Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daily Site Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Daily Site Monitoring Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weekly Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weekly Site Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Weekly Site Monitoring Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Periodic Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Periodic Site Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Periodic Site Monitoring Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event-driven Maintenance Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maintenance Throughout the Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maintenance Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attaching One Site to Another (Creating a Child Site) . . . . . . . . . . . . . . Swapping the Computer of a Site Server . . . . . . . . . . . . . . . . . . . . . . . . Rebuilding the Computer of a Remote SMS Site Database Server . . . . Moving the SMS Site Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resetting a Site by Running SMS Site Reset . . . . . . . . . . . . . . . . . . . . . CHAPTER 14 Using the SMS Status System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Understanding Status Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status Messages Defined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status Message Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other Message Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Status Message Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interpreting System Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status Summarizer Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Counts and States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Display Intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 434 437 437 437 438 443 444 444 444 448 448 450 451 451 454 456 458 459 460 460 461 462 463 465 466 466 467 469 469 471 472 472 472
Contents xiii
Status Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Launching the Status Message Viewer and Other Tools . . . . . . . . . . . . Replication of Status Summaries Up the Site Hierarchy . . . . . . . . . . . . Monitoring and Troubleshooting with System Status . . . . . . . . . . . . . . . . . . Site Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Package Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advertisement Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring the SMS Status System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Status Reporting Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tuning Status Message Configuration with Status Filter Rules . . . . . . . When to Use Status Filter Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Status Filter Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample Status Filter Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Status Summarizers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deleting Status Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the SMS Status System with the Windows Event Log . . . . . . . . . . . . . . . . CHAPTER 15 Backup and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planning for Backup and Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preparing for Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backing Up a Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Backup SMS Site Server Task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backing Up a Site Using the Backup SMS Site Server Task . . . . . . . . . Using SMSbkup.ctl to Control the Backup SMS Site Server Task . . . . . Using AfterBackup.bat to Archive a Backup Snapshot . . . . . . . . . . . . . . Scheduling Considerations for the Backup SMS Site Server Task . . . . Enabling and Configuring the Backup SMS Site Server Task . . . . . . . . Verifying Success of the Backup SMS Site Server Task . . . . . . . . . . . . . Backing Up a Secondary Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backing Up the Central Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoring Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Third-Party Backup Tools to Back Up SMS Sites . . . . . . . . . . . . . . . . . Recovering a Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determining Whether a Site Recovery Operation Is Necessary . . . . . . . Supported Configurations and Recovery Scenarios . . . . . . . . . . . . . . . . The Recovery Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
473 474 474 475 476 477 484 488 489 490 491 491 492 496 500 500 501 503 504 504 508 509 513 515 522 523 525 526 527 528 528 530 530 531 531 532
xiv Contents
Recovery and Repair Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Recovery Expert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SMS Site Repair Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ACL Reset Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hierarchy Maintenance Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Preparing for a Site Recovery Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Traffic Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Security Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing the Site After Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX A Using SMS to Distribute Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Overview of Office XP Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Office XP Operating System Requirements . . . . . . . . . . . . . . . . . . . . . . . Important Concepts and Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Package Definition Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . System Files Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multilingual User Interface Packs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows Installer Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows Installer Transform Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Windows Installer Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How Office XP Uses Patches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Windows Installer Install on Demand Feature . . . . . . . . . . . . . . . Windows NT 4.0 Low Rights Installation Issues . . . . . . . . . . . . . . . . . . . . . . Using the SMS Administrative Rights Installation Context . . . . . . . . . . . . . . Office Resource Kit Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Office XP CD and Administrative Installation Source Issues . . . . . . . . . . . . Deploying Office XP in an Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Business Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Enterprise Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planning the Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Basic Planning Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determine the Systems and Sites That Will Be Upgraded . . . . . . . . . . . Determine SFU Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plan for Clients Without Administrative Credentials . . . . . . . . . . . . . . . .
533 534 534 537 538 538 539 541 542 545 547 548 549 550 551 551 552 552 553 553 554 555 556 556 557 558 558 559 559 560 560 561 561 561 562
Contents xv
Determine Which Clients Require Upgrades Prior to Installing Office XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plan Installation Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Plan the Strategy for Collections and Program Advertisements . . . . . . Prepare and Customize the Office Source . . . . . . . . . . . . . . . . . . . . . . . Deploying Office XP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maintaining and Updating Your Office XP Installation . . . . . . . . . . . . . . . . . . . . Distributing an Office XP Public Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performing Administrative Patching of an Office XP Public Update . . . Client Patching of an Office Public Update . . . . . . . . . . . . . . . . . . . . . . . Distributing an Office XP Service Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Updating Office XP Installation Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Updates Using the Custom Maintenance Wizard . . . . . . . . . . Applying the .cmw File to the Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Resilient Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Frequently Asked Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX B Windows Management Instrumentation . . . . . . . . . . . . . . . . . . . . . Introduction to WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . How SMS Uses WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Understanding WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WMI Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WMI Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WMI Schemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparing WMI to SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WMI Browsing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CIM Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WBEMTest.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Visual Studio .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WMI Command-line Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Other WMI Browsing Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing WMI Setup and Upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using WMI Management Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Backing Up WMI Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Understanding WMI Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using MOF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
563 564 564 566 566 577 577 578 579 579 580 580 580 580 582 587 588 590 591 591 593 595 597 598 598 599 600 600 601 601 602 602 603 604 604
xvi Contents
Troubleshooting WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WMI Troubleshooting Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Verifying the State of the CIM Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connectivity Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resource Consumption Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Programming Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Learning More About WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX C Scripting SMS Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Understanding Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Writing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating and Running a Simple Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Developing Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripting in Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connecting to WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getting SMS Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reporting Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying Distribution Point Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Retrieving Lazy Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advanced Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Working with SMS Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Collection Creation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Class-Specific Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removing Rules from a Collection and Deleting Collections . . . . . . . . . Deleting Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modifying Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unlocking Advertisements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Assignments to an Advertisement . . . . . . . . . . . . . . . . . . . . . . . . Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Packages and Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sending Packages to Distribution Points . . . . . . . . . . . . . . . . . . . . . . . . Security Rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
606 606 608 610 610 611 611 613 615 617 618 620 622 622 623 624 626 628 628 629 631 633 634 636 637 637 638 638 641 642 642 643 643 644 646
Contents xvii
Working with SMS Site Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reporting Site Component Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adjusting Component Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting the Site Comment for a Secondary Site . . . . . . . . . . . . . . . . . . . . . . Embedding Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adjusting Client Agent Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adding Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Site Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Managing Status Filter Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripting Console Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripting Client Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating DDRs for clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creating Status MIF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripting Advanced Client Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Debugging Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using Scripts on Web Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Understanding Support Implications of Scripted Solutions . . . . . . . . . . . . . . . . Learning More . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . APPENDIX D Using SMS in International Organizations . . . . . . . . . . . . . . . . . . . Planning and Deploying Your Multilingual Site Hierarchy . . . . . . . . . . . . . . . . . . Planning Multilingual Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Supported Localized Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Site Hierarchy Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Site Server Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . International Client Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multilingual Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Local Language Display Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . SQL Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deploying Multilingual Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample Deployment Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planning and Deploying International Client Packs . . . . . . . . . . . . . . . . . . . . . . .
647 649 650 651 652 653 654 656 658 658 662 664 665 667 667 669 670 671 672 675 676 676 677 679 680 684 684 687 688 689 690 690 692
xviii Contents
Planning ICP Deployments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ICP Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ICP Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Deploying ICPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ICP Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INDEX
..............................................................
Getting Started
Welcome to Microsoft Systems Management Server (SMS) 2003, a Windows-based product designed to make it easier for your organization to manage, support, and maintain a distributed network of computer resources. The following sections will familiarize you with the wide range of technical information about SMS 2003. With this information, you can plan your SMS 2003 deployment, understand the features SMS 2003 offers, and how you can use those features to benefit your organization.
Technical Resources
SMS 2003 includes comprehensive product documentation and other technical resources that help you deploy and use SMS.
Online Library
All the information you need for deploying and using SMS 2003 is provided in the SMS Online Library. The Online Library includes the following: u u An electronic version of the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. Information about how to order printed books for SMS, including the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide and the Microsoft Systems Management Server 2003 Operations Guide. Information about where to find electronic versions of the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide and the Microsoft Systems Management Server Operations Guide. SMS Help, which provides information about how to use the SMS Administrator console to manage your sites.
xx Getting Started
u u
Release Notes, which contain critical information about SMS. Links to the SMS Web site at http://www.microsoft.com/smserver/default.asp. On this site, you can find SMS-related information, such as technical papers, product news, and software updates. The SMS Web site also provides specific information about how to use SMS with other Microsoft products, such as Microsoft Windows XP and Office XP. From the Start menu, click Programs, click Systems Management Server, and then click SMS Online Library. Or Right-click SMS Online Library in the SMS Administrator console tree and click Run Online Library.
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide Microsoft Systems Management Server 2003 Operations Guide
These books are available in several different formats: u u u Help on the product CD (Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide only) .Pdf files can be downloaded from the Web Searchable content on Microsoft TechNet
For more information about accessing these resources, see the information about the Online Library in the previous section. Help is also provided for all SMS features, including the SMS Administrator console. To access Administrator Help in the SMS 2003 Administrator console, press F1, or right-click any item and select Help from the pop-up menu.
Document Conventions
The following conventional terms, text formats, and symbols are used throughout this book.
Convention Bold Description Indicates the actual commands, words, or characters that you type in a dialog box or at the command prompt. Also indicates named user interface elements (Program Properties dialog box, for example.) Indicates a placeholder for information or parameters that you must provide. For example, if the procedure asks you to type filename, you must type the actual name of a file. An italic typeface also indicates new terms and the titles of other resources in the Systems Management Server documentation set. Indicates an acronym, key, or macro name. You can use lowercase letters when you type directory names or filenames in a dialog box or at the command prompt indicated. Represents examples of screen text or entries that you might type at the command line or in initialization files. Indicates a procedure. Indicates an unordered list of related information (not a procedure).
Italic
ALL UPPERCASE
Monospace
P A R T
Deploying SMS
This part of the Microsoft Systems Management Server 2003 Operations Guide introduces indepth technical information that will enhance your ability to use specific Systems Management Server 2003 features.
C H A P T E R
In This Chapter
u u u u u Overview of the Deployment Process Part 1: Hierarchy-Specific Questions Part 2: Site-Specific Questions Part 3: SMS 2003 Deployment Scenarios Post-installation Considerations
New deployment of SMS 2003 This scenario represents a fresh installation of SMS 2003 in an organization where no previous SMS installation exists, or where you plan to remove any previous installations of SMS. In this scenario, you do not need to consider any existing SMS 2.0 hierarchy and can develop and implement a new SMS 2003 site hierarchy. It is still important to properly evaluate the existing environment and design the SMS hierarchy appropriately. In-place upgrade of SMS 2003 This scenario represents an upgrade of an existing SMS 2.0 hierarchy. In this scenario, you plan to maintain the existing SMS hierarchy, the existing CAP and distribution point roles, and the existing SMS site boundaries. SMS clients remain assigned to their current SMS sites. In this scenario, you need to consider whether a new SMS 2003 site can manage your current SMS client computers. It might be that SMS 2003 cannot support some of your existing client computers. In this case, you might choose to maintain an SMS 2.0 site indefinitely called a holding site to support those clients. Consequently, you need also to be aware of any interoperability issues between the SMS 2.0 site and the SMS 2003 site that can affect your SMS hierarchy. Holding sites and interoperability issues are described later in this chapter.
Side-by-side upgrade of SMS 2003 This scenario represents an implementation of a new SMS 2003 hierarchy that you plan to migrate existing SMS clients to. You can choose to implement a side-by-side upgrade to: u u u u u Use new or updated server hardware. Reflect changes made in your organizational structure. Compartmentalize the usage of different SMS 2003 features, for example, managing mobile clients in an SMS site separate from that which is managing desktop clients. Take advantage of the increased scalability of SMS 2003 Advanced Client and reduce the overall number of SMS sites in your hierarchy. Maintain a functioning SMS site and managed clients while rolling out a new SMS infrastructure.
Client Support
This chapter categorizes SMS clients into three classes to distinguish how SMS supports them. Table 1.1 describes the type of client maintained in each class. Table 1.2 describes the Microsoft Windows operating systems supported by clients in each class. Table 1.1 SMS Client Classes
Class Class A Description Supported by SMS 2003 sites. Clients in this class generally run SMS 2003 Advanced Client, but can also run the SMS 2003 Legacy Client, and the SMS 2.0 client. Supported by SMS 2003 sites, but the client operating systems do not run the SMS 2003 Advanced Client. Clients in this class generally run the SMS 2003 Legacy Client, but can also run the SMS 2.0 client. Supported only by SMS 2.0 sites. Clients in this class run the SMS 2.0 client.
Class B
Class C
Table 1.2 Windows Operating Systems Supported by Each SMS Client Class
Operating system Windows Server 2003 family Windows 2000 family Windows XP Professional Windows XP Home Windows NT 4.0 Service Pack 6 (with Internet Explorer 5.0 or later) Class A X X X N/A N/A X N/A Class B Class C
(continued)
Table 1.2 Windows Operating Systems Supported by Each SMS Client Class (continued)
Operating system Windows NT 4.0 Service Pack 5 and earlier Windows Millennium Edition Windows 98 (with Internet Explorer 5.0 or later) Windows 98 Windows 95 X X X Class A Class B Class C X X
Class C computers are not capable of supporting either the Legacy Client or the Advanced Client because of operating system incompatibility. If SMS 2.0 sites currently manage these clients, you must decide whether you need to continue supporting these clients. If so, then you need to manage them with an SMS 2.0 site until you can upgrade them to either the Legacy or Advanced Client, or no longer need to maintain them as SMS clients. This kind of SMS 2.0 site is known as a holding site. Holding site SMS installs client software for Class A and Class B clients according to the methods outlined in Chapter 17, Discovering Resources and Deploying Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. Because SMS 2003 sites do not support Class C computers, SMS 2003 does not install any SMS client software on Class C computers. If Class C computers previously were SMS 2.0 site clients, they effectively become orphaned clients in an SMS 2003 site. A holding site is a designated SMS 2.0 site in the SMS 2003 site hierarchy that manages Class C computers. The holding site is a child site of an SMS 2003 site. The site boundaries of the holding site overlap with those of the SMS 2003 site or sites that have Class C computers. For those computers that reside in the overlapping boundaries of SMS 2.0 and SMS 2003 sites, SMS determines which client type to install according to the Logon Script-initiated Client Installation command (Capinst.exe) and the computers operating system. In this case, Class C clients automatically become clients of the SMS 2.0 holding site rather than becoming orphaned. Your decision to install the SMS 2003 Advanced Client or the SMS 2003 Legacy Client supported by Class A and Class B computers depends on more than the supported operating system.
Resources
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about the distinction between SMS 2003 client types: Chapter 4 Entire chapter recommended
For more information about the interoperability between SMS 2003 and SMS 2.0 sites and the effect on clients: Chapter 11 Chapter 10 Entire chapter recommended Entire chapter recommended For more information about planning your client deployment:
Figure 1.1 Main components of the SMS 2003 site deployment process
Start
Part 1: Hierarchy Specific Questions Upgrade Questions Active Directory Questions High Level Network Questions
Part 1
This part of the deployment process outlines hierarchy-specific questions for your consideration, including the following: u u u u Do you have an existing SMS 2.0 site? Do you plan to upgrade your existing site? Is Active Directory implemented in your environment? How does your network infrastructure relate to the location of servers and user computers?
Part 2
This part of the deployment process follows Part 1 and outlines site-specific questions for your consideration, including the following: u u u u Are you implementing a central site or a child site? How many clients are reporting to the SMS site? What client types do you need to manage? What client installation methods do you plan to use?
Part 3
This part of the deployment process follows Part 2. The answers to the questions posed in Parts 1 and 2 determine which of the three SMS 2003 deployment scenarios you might implement, and the steps required for each scenario.
New installation
u u u u u u u u u u u Are you managing Advanced Clients at this site? Are you managing Legacy Clients at this site? Are you configuring roaming boundaries? What client installation methods are you using? What are the results of running the Deployment Readiness Wizard? Do you need to migrate an existing custom SMS_def.mof file? Do you require a holding site? Do you plan to consolidate your existing SMS site infrastructure? Are you installing a new SMS central site? Are you implementing roaming boundaries? What client installation methods are you using?
In-place upgrade
Side-by-side upgrade
Each part and scenario is described more fully in subsequent sections of this chapter.
Resources 1
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about SMS sites, and how they are attached to build an SMS hierarchy: Chapter 2 Entire chapter recommended
For more information about how core features of SMS work, how you can use each of those features to benefit your organization, and how these features are integrated to perform common tasks in an organization: Chapter 3 Entire chapter recommended For more information about the SMS client, and the client discovery and installation methods provided by SMS: Chapter 4 Entire chapter recommended For more information about SMS security features, including security modes, accounts and groups, and object-level security: Chapter 5 Entire chapter recommended
This section contains the following topics: u u u Upgrade Questions Active Directory Questions Network Questions
Upgrade Questions
The first flowchart, shown in Figure 1.2, lists questions to ask that help you determine whether you need to upgrade an existing installation of SMS, and what kind of installation is appropriate.
Note
All down arrows in each flowchart represent a positive response to a question box. All right arrows represent a negative response to a question box.
Start
Part 1: Hierarchy Specific Questions
Read Resources - 1
Read Resources - 2
In-place upgrade
Side-by-side upgrade
New install
Read Resources - 3
You can also choose to remove your existing SMS installation altogether. In this case, remove SMS first, and then see the Active Directory Questions section later in this chapter. See the documentation for your previous version of SMS for details about how to remove SMS. If you choose to remove SMS and your SMS hierarchy consists of several SMS sites, you must remove SMS from every site. It is recommended that you begin with the lowest level sites in the hierarchy first, ending with the central site. At a minimum, you need to have performed the following steps: u u u u u u u Remove the SMS site from the existing hierarchy. Remove all clients that are assigned to the SMS site. Remove all client software from client computers. Remove all SMS site system roles from servers. Remove SMS site server software by running SMS Setup. Remove all SMS-specific registry keys from the SMS site server. For more information, see article 217044 in the Microsoft Knowledge Base at http://support.microsoft.com. Remove all SMS-specific accounts from the local SMS site server and from the sites Windows domain unless you want to reuse those accounts for the new SMS 2003 site.
One way that you can remove all clients assigned to a site in addition to all client software from client computers is to remove all site boundaries, and then wait one day (23 hours) for the clients to initiate the uninstall process.
Note
You must account for clients that are offline when you remove the site boundaries. These will not begin the uninstall process until they are online again.
If you have an existing installation of SMS, and you plan to migrate SMS clients from the existing installation to SMS 2003, you must familiarize yourself with the relevant interoperability considerations related to SMS 2.0 and SMS 2003 sites, and with planning issues relating to an upgrade from SMS 2.0 to SMS 2003. Resources 2
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For a detailed discussion of interoperability issues with SMS 2.0: Chapter 6 Chapter 11 Interoperability of SMS 2.0 Features with SMS 2003 Features Entire chapter recommended For a detailed discussion of general planning issues related to upgrading from SMS 2.0:
Read Resources - 4
No Side-by-side? Yes
Yes
For both in-place and side-by-side deployment scenarios, if you have clients that are in the Class C category described in the Client Support topic earlier, you must decide whether you want to continue managing these clients with SMS. If so, then you need to implement a holding site for those clients. If not, then remove the SMS client software from those clients so that they do not become orphaned. Clients that are in the Class A and Class B categories become members of the SMS 2003 site according to the client installation method you select for the site, and the site boundaries and roaming boundaries you configure.
Resources 4
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For a detailed discussion about holding sites: Chapter 11 In-Place Hierarchy Upgrades Example Scenario 1 Example Scenario 2 Deciding When to Upgrade a Flat Hierarchy Installing the Advanced Client Installing the Legacy Client Configuring Site Boundaries and Roaming Boundaries
For detailed information about configuring SMS site boundaries: Chapter 10 For detailed information about how to configure logon scripts to separate Class C from Class A and B computers during logon script initiated installation: Chapter 6 Client Discovery and Installation
In the case of a side-by-side migration, you should understand the extra scalability you get by using the Advanced Client. This does not mean that for Advanced Clients, different site systems can be on different networks. An SMS site still must be well connected. Resources 5
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about altering your hierarchy as you upgrade, and the performance advantages you get from using the Advanced Client: Chapter 11 Chapter 9 Side-By-Side Hierarchy Upgrades Entire chapter recommended
If you plan to consolidate your SMS site as part of a side-by-side migration, the next step is to do the consolidation. In this case, add the boundaries of old SMS sites to the boundaries of the consolidated site. Use SMSMan.exe with the /F switch or referencing a script to assign computers to the consolidated site. When you finish assigning the computers to the consolidated site, remove SMS software from the old SMS sites.
Read Resources - 6 No Do you need to manage computers across multiple forests? Yes
Read Resources - 7
In the case of all three deployment scenarios, if you are implementing SMS 2003 in an Active Directory environment, you have the benefit of implementing advanced security, the preferred security mode. You must understand how SMS 2003 uses Active Directory and know the requirements for using advanced security. In particular, you should understand how to extend the Active Directory schema for SMS, how to use Active Directory site names for your SMS site boundaries and roaming boundaries, and how to manage SMS clients that roam from SMS site to SMS site. Extending the Active Directory schema is a forest-wide action. If you extend the schema for one SMS site in the forest, the schema is extended for use by all SMS sites in the forest.
Resources 6
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about extending the Active Directory schema: Chapter 10 Chapter 15 Chapter 2 Active Directory Considerations Extending the Active Directory Schema Site Boundaries Roaming and Roaming Boundaries
For detailed information about configuring Active Directory site boundaries and client roaming:
If you need to use SMS across multiple forests, there are several issues for you to consider. Be aware that a single SMS site cannot span multiple Active Directory forests, although it can span multiple domains within a single forest. Also, all SMS site systems must be in the same Active Directory forest as the SMS site server. There are also considerations across forests in the following areas: u u u u Site-to-site communications Client communications Secure key exchange Client global roaming
Resources 7
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about supporting SMS 2003 across multiple forests: Chapter 8 Active Directory Considerations
Network Questions
The flowchart in Figure 1.5 lists the questions to consider when you are deploying SMS that are specific to your network infrastructure.
Read Resources - 8
Read Resources - 9
You need to consider your network infrastructure when designing your SMS site and hierarchy. Some SMS site tasks can consume considerable bandwidth. It is also recommended that SMS site systems and SMS clients be well-connected. The speed and bandwidth usage of your network is a significant consideration when deploying your SMS site. The resources described in Resources 8 help you to determine speed and bandwidth usage and whether your SMS site systems and SMS clients are well-connected. It is important that you plan for the appropriate number of SMS sites and site systems that your network can accommodate. You might also consider upgrading or reconfiguring your network infrastructure as well. Resources 8
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For information about network considerations when planning your SMS site: Chapter 7 Chapter 8 Analyze Your Environment Business Considerations For information about how to determine the appropriate number of sites:
Resources 9
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For information about network boundaries for SMS sites: Chapter 2 Chapter 8 Site Boundaries Roaming and Roaming Boundaries Technical Considerations Planning Site Boundaries and Roaming Boundaries Network Considerations
For information about capacity planning issues to consider that are related to the network: Chapter 9
Start
Part 2: Site Specific Questions For each site identified
Yes
Read Resources - 10
Read Resources - 11
No Will this site have clients reporting directly to it? Yes Part 3 D Read Resources 12 Repeat for next site
Based on your answers to the questions listed in Part 1, you determine the number of SMS sites and their configuration. You then decide whether the SMS site is a primary site or a secondary site. The resources listed in Resources 1 help you to make this determination.
The topmost SMS site in your SMS hierarchy is the central site. The SMS central site is always an SMS primary site. There are issues for you to consider that are specific to the SMS central site. The SMS site database at the central site stores aggregate inventory and software metering data and status from the SMS hierarchy, and collects details about any collections, packages, or advertisements created at the central site. At the central site, you can view and manage all sites and computers in the SMS hierarchy. Because all status and client data flows up in the hierarchy to the central site, adding a large number of clients to this site can diminish central site server performance and client performance. Consequently, especially in large organizations, the central site should not manage clients. The SMS central site generally maintains the server locator point for the SMS hierarchy. Because the SMS central site database contains data from other SMS sites below it in the SMS hierarchy, you might install the reporting point site system on the central site server. Each primary site you deploy, including the central site, uses a site database to hold the data collected from the site. Management points, server locator points, and reporting points also use the SMS site database. See the Getting Started chapter in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide for a complete list of requirements for the SMS site database. On the Windows Server 2003 family of servers, the following components used by certain SMS 2003 site systems are not enabled by default: u u u u Background Intelligent Transfer Service (BITS) Internet Information Services (IIS) Web Distributed Authoring and Versioning (WebDAV) extensions for IIS Active Server Pages (ASP)
If you are deploying SMS 2003 site systems to Windows Server 2003 servers, you must enable the appropriate component for the appropriate SMS site system. Table 1.3 describes which of these components you must enable for each SMS site system. Table 1.3 Windows Server 2003 Components to Enable for SMS 2003 Site Systems
SMS site system Distribution point Management point Reporting point Server locator point Windows Server 2003 component to enable Enable IIS Enable WebDAV extensions for IIS Enable IIS Enable BITS Enable IIS Enable ASP Enable IIS
For a primary site and a secondary site, you need to decide which security mode to run: advanced security or standard security. Advanced security is the preferred mode because it takes advantage of local system and computer accounts that are automatically maintained by the operating system. For example, SMS runs its server components in the local system security context, or using the computer account instead of a user account. Also, SMS parent and child site servers running advanced security can use each others computer account to send information to back and forth. Standard security requires more user accounts to manage the same processes. If the SMS site is managing clients, there are client-specific issues to consider when choosing the appropriate security mode. For example, if you plan to use Legacy Clients in your advanced security SMS site, you must create at least one SMS Client Connection Account before installing the Legacy Clients. Advanced Clients might require the Advanced Client Network Access Account when an advertised program needs to access a share on a server other than the distribution point or when the distribution point or content server is in a Windows NT 4.0 domain or in another forest. Resources 10
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about the role of a primary site and the central site, and considerations for configuring site systems for the central site: Chapter 8 Chapter 10 Determining the Locations and Types of Site Servers Advantages of Multiple Sites Deploying Central and Administrative Sites
Resources 11
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about the SMS site database, and considerations for planning for and configuring the SMS site database: Chapter 10 SMS Site Database Server Considerations Preparing Site System Computers Modeling Principles for Sizing and Capacity Planning Server Activities Estimating the Number of Clients and Objects Determining SMS Site Database Server Requirements
For detailed information about capacity planning considerations related to the SMS site database: Chapter 9
Resources 12
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about Advanced and Standard security, and the affect each mode has on the SMS site and SMS clients: Chapter 5 Chapter 8 Chapter 12 SMS Security Modes Active Directory Considerations Primary and Secondary Site Decisions Security Considerations for Site and Hierarchy Design Tightening SMS Security
Read Resources - 14
Read Resources - 15
Part 3
If the SMS site manages client computers, you need to determine whether the SMS site manages Advanced Clients, Legacy Clients, or both. Each client type has its own considerations. For example, Advanced Clients use the management point to obtain Advanced Client policy and configuration information, and to send client data to the SMS site database. Legacy Clients use the CAP to obtain configuration information and send client data to the SMS site database. Because the Legacy Client is based on the earlier technology of the SMS 2.0 client, it relies heavily on domain accounts to carry out key tasks on the SMS client computer such as installing software in an administrative context when the logged-on user account does not have the appropriate security credentials. The Advanced Client, though, is engineered to use the local system security context and the computer account to carry out these same key tasks, making the Advanced Client a much more secure. It is strongly recommended that you install the Advanced Client as the preferred client on all your SMS client computers running the Windows 2000 or later operating system.
WARNING
Microsoft currently plans to discontinue support for the SMS Legacy Client on computers running the Windows 2000 or later operating system platforms with the release of SMS 2003 SP1.
Although Advanced Clients are only assigned to primary sites, you can install management points on both primary and secondary sites. A management point on a secondary site is known as a proxy management point. It is used for roaming Advanced Clients if roaming boundaries are enabled for the primary site. When you install an SMS 2003 secondary site, and that secondary site does not have a proxy management point installed, the secondary sites boundaries are added to the roaming boundaries of the primary site. An SMS 2.0 secondary sites boundaries are also added to the roaming boundaries of the parent site. However, if an SMS 2003 secondary site has a proxy management point installed, that secondary sites boundaries are not added to the roaming boundaries of the primary site. Advanced Clients located at a secondary site and reporting to a management point at a parent primary site across a WAN link might have an effect on the available bandwidth of the WAN link between the secondary site and its parent primary site. Significant network traffic can be produced when client status and hardware or software inventory data is sent to the parent primary site. Because an Advanced Client can be assigned only to a primary site, network traffic generated by Advanced Client policy requests also reduces the available bandwidth between the two sites. Proxy management points increase bandwidth efficiency by servicing roaming clients that are within the secondary sites roaming boundaries. You need to determine whether your Advanced Clients can benefit from a proxy management point in an SMS secondary site. Resources 13
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about the Advanced and Legacy Client types: Chapter 4 SMS Clients
Resources 14
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about CAPs, management points, proxy management points, and their role in the SMS hierarchy: Chapter 8 Chapter 9 Planning Site Boundaries and Roaming Boundaries Sizing SMS Component Servers
For considerations related to capacity planning for CAPs and management points:
Resources 15
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about managing roaming clients: Chapter 2 Roaming and Roaming Boundaries
You need to select an installation technique for installing the SMS client software on computers that the SMS site manages. SMS client installation techniques include: u u Using the Client Push Installation method in the SMS 2003 Administrator console. Initiating a program file at the client to install the client software, as follows: u u u u u Logon Script-initiated Client Installation. Manually running a program file. Using Windows Group Policy. Using SMS software distribution or some other software distribution mechanism to advertise and run a program file.
Installing the Advanced Client on a computer master image, and imaging that computer to other computers.
Resources 16
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about each client installation technique: Chapter 10 Chapter 17 Chapter 5 Chapter 12 Chapter 17 Client Deployment Planning Installing and Configuring SMS Clients SMS Accounts and Groups Planning SMS Accounts Installing and Configuring SMS Clients
For detailed information about SMS accounts required for client installation:
For a primary site and a secondary site, you need to decide which security mode to run: advanced security or standard security. For more information, see the Site Configuration Questions section earlier in this chapter.
Some of the steps described in the following sections pertain to one or more scenarios. Instead of repeating these steps for each scenario, the flowcharts associated with each scenario identify which flowcharts refer to a specific set of steps. For example, each scenario refers to the installation of management points. When you get to that point in the flowchart for each scenario, the scenario flowchart indicates that you should refer to the management point installation flowchart for steps specific to the installation of a management point.
New Installation
After completing Parts 1 and 2, you might determine that you are deploying SMS 2003 for the first time, or that you do not have an existing SMS 2.0 site or SMS 2.0 clients that you wish to upgrade or migrate. In this case, you are deploying SMS 2003 as a new installation, and are following the deployment plan you developed in Parts 1 and 2.
Start
Part 3: New Installation Read Resources - 17
Read Resources - 18
Yes
E Client Installation
It is recommended that you install a server locator point and a reporting point site system at the central site because site database information propagates from child sites to the central site. In large organizations, central sites typically do not manage SMS clients. If the site does manage SMS clients, then you need to set the boundaries appropriately. If you are managing Advanced Clients at the central site, and you intend to use global roaming throughout the SMS hierarchy, for example, you need to extend the Active Directory schema for SMS when you install the central site. After you have extended the Active Directory schema for SMS, it is extended for use by all SMS sites in the hierarchy in that Active Directory forest.
Note
There are other reasons for extending the Active Directory schema. For example, you might extend the Active Directory schema to take advantage of trusted root key exchange. The resources referenced in Resources 18 describe the reasons for extending the Active Directory schema.
Resources 17
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For a step by step description of the installation of an SMS site: Chapter 15 Entire chapter recommended
Resources 18
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about extending the Active Directory schema: Chapter 10 Chapter 15 Extending the Active Directory Schema for SMS Extending the Active Directory Schema
Client Installation
The flowchart in Figure 1.9 lists the steps and questions to consider when you install the SMS Legacy and Advanced Clients.
No Using logon installation for Legacy Clients? Yes Yes Managing Advanced Clients?
No
Push clients
Read Resources - 20
Next site
If you are installing the Legacy Client using Logon Script-initiated Client Installation, the user logon scripts need to include Capinst.exe and identify the location of the client installation files. If you are installing the Advanced Client using Logon Script-initiated Client Installation, you need to install a management point to support those clients and modify the logon script accordingly. At this point, the flowchart in Figure 1.9 directs you to those specific steps (shown in Figure 1.10). After completing those steps, you return to this flowchart.
Note
If you are planning to install the Advanced Client software on computers using any installation method, you need to install a management point to support those computers as SMS clients.
If you are using the Client Push Installation method for either the Legacy or Advanced Client, you need to implement the correct accounts for the appropriate client types. For example, the Legacy Client requires a Client Connection Account and a Client Push Account. The Advanced Client requires an Advanced Client Network Access account and a Client Push account. There are two methods of pushing SMS client software to a computer Client Push Installation and the Client Push Installation Wizard. Client Push Installation is started after you have configured and enabled it, and then when computers that require installation with Client Push Installation are discovered. Client Push Installation can also be started from a collection or resource by using the Client Push Installation Wizard. Table 1.4 describes the differences between Client Push Installation and the Client Push Installation Wizard. Table 1.4 Client Push Installation Methods
Client Push Installation Pushes client types: Legacy Client, Advanced Client, or Platform dependent. The option selected defines the site default. Ensures that all discovered computers within the site boundaries are installed with the SMS client. Does not push the client software again to existing SMS clients. When enabled, runs until disabled by the SMS administrator. Client Push Installation Wizard Pushes Legacy Client, Advanced Client, or Platform dependent. Allows the installation of the SMS client on any computer that is found in the SMS Administrator console (for advanced clients, irrespective of whether they are within the sites roaming boundaries). Supports pushing the client software again to existing clients for changes to site assignment and client component updates. Requires the SMS administrator to run the wizard.
Resources 19
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about how to configure logon scripts: Chapter 17 Logon Script-initiated Client Installation
Resources 20
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about other methods of deploying SMS clients: Chapter 17 Installing and Configuring SMS Clients
Read Resources - 21
Yes
Read Resources - 22
There is only one default management point for each SMS site. If you need to support multiple management points, you need to set up Windows Network Load Balancing between the management points. You might also choose to enable Microsoft SQL Server database replication between the SMS site database and the management point to reduce the load on the SMS sites computer that is running SQL Server, and facilitate faster response from management point servers. You can configure the SMS 2003 site to use the Logon Script-initiated Client Installation method, and configure the SMS 2.0 site to run Capinst.exe from the SMS 2003 site. The logon scripts for the domain can contain a Capinst.exe command to install a Legacy Client or an Advanced Client. Use Capinst.exe with the /AutoDetect=<script> switch to determine which client type to install. For example, if the script you reference returns a value of 1, Capinst.exe installs the Advanced Client. Resources 21
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about how to configure management points and how to use NLB to support multiple management points: Chapter 8 Management Point for Advanced Clients
Resources 22
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about the command line options available to you when configuring a logon scriptinitiated installation: Chapter 17 Logon Script-initiated Client Installation
In-Place Upgrade
After completing Parts 1 and 2, you might determine that you can upgrade an existing SMS 2.0 site directly to SMS 2003 an in-place upgrade. This section describes the in-place upgrade method of deploying SMS 2003. When you deploy SMS 2003 using the in-place upgrade method, the SMS site server and its site systems do not change their roles. An SMS site server that is assigned the CAP role remains a CAP after the upgrade has been completed. Also, SMS clients do not change their site assignments.
Start
Part 3 - In-place Upgrade
No Global Roaming?
Configure Boundaries
You need to run the Deployment Readiness Wizard for every site that you intend to upgrade from SMS 2.0 to SMS 2003. The Deployment Readiness Wizard helps you determine what needs to be done to prepare your SMS 2.0 site for an upgrade. If the wizard finds errors, you must correct them and then run the wizard again before the upgrade can continue. After you correct all identified problems, you can upgrade the SMS site.
Customizations that you make to the SMS 2.0 SMS_def.mof file for hardware inventory are not migrated when you upgrade to SMS 2003. You must manually include those customizations in the SMS 2003 SMS_def.mof file that is created during the upgrade process. If you want to preserve the customizations you made to the SMS 2.0 MOF file, you need to save the existing file, and then merge it with the new file generated after the upgrade is complete. If you plan to maintain a mixed-version hierarchy, consider using a standard SMS_def.mof throughout your hierarchy. Differences between the SMS_def.mof files at different sites in the hierarchy can lead to conflicting hardware inventory data. To prevent conflicts, ensure that each site in the hierarchy uses the same hardware inventory definitions. Resources 23
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For detailed information about running the Deployment Readiness Wizard, and other considerations when planning to upgrade an SMS site from SMS 2.0 to SMS 2003: Chapter 11 Chapter 14 Resolve Issues Found by the Deployment Readiness Wizard SMS 2003 Deployment Readiness Wizard
Resources 24
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about how to standardize the SMS_def.mof files in your hierarchy: Chapter 6 Hardware Inventory
Upgrade Site
The next step shown in the flowchart in Figure 1.11 is to upgrade the site. The flowchart in Figure 1.12 lists the steps required to complete this part of the upgrade process.
Read Resources - 25
No Can upgrade all clients at once? Y es Upgrade site server Upgrade site server Disable upgrade on appropriate clients
When you upgrade an SMS site from SMS 2.0 to SMS 2003, Class A and Class B clients assigned to that site automatically migrate to SMS 2003 Legacy Client. If you are upgrading from an SMS 2.0 site, you might have clients that fall into Class C as defined earlier in this chapter. Class C clients are not supported by SMS 2003, and they will become orphaned after the upgrade is complete. The DRW will generate a warning message if it finds that the SMS 2.0 client is installed on any computers in the SMS site that run Windows 2000 or later operating systems. When you upgrade the SMS 2.0 site to SMS 2003, the Legacy Client is installed on those computers. This client is supported on Windows 2000 and later platforms primarily to assist with your migration of these clients to the Advanced Client rather than as a long-term enterprise solution. It is strongly recommended that you install the Advanced Client as soon as possible after the upgrade is complete so as to take advantage of the enhanced security and other benefits provided by the Advanced Client on these platforms.
In fact, the SMS 2003 status message system is designed to periodically notify you that such client configurations Legacy Clients installed on computers running Windows 2000 or later exist within your SMS site and should be upgraded to the Advanced Client. In addition, you can run the report or query named Computers Recommended for Advanced Client Upgrade that displays a list of these computers. You can use the query to create a collection to which you can advertise the Advanced Client installation to facilitate upgrading all your Legacy Clients to the preferred Advanced Client. Class C clients require a holding site until they can be upgraded to a level supported by SMS 2003, or until you decide that you do not need to manage them. The holding site must be configured before you upgrade to SMS 2003. The Class C clients must be configured so that they do not attempt to migrate automatically to SMS 2003 clients. These are the basic steps to configure a holding site: 1. Deploy or choose an SMS 2.0 site that is a child of SMS site containing Class C clients. If Class C clients exist throughout the SMS hierarchy, you might make the holding site a child site of the central site. Overlap the boundaries between the SMS site that you are upgrading and the holding site. Allow the SMS clients to become assigned to both sites. Check the members of collections for both sites. When the members of collections for both sites are the same, this step is completed. Wait until replication is complete between the holding site and its parent. Check the members of collections for both sites. When the members of collections for both sites are the same, this step is completed. Upgrade the parent site to SMS 2003. If the parent site is a central site, install a server locator point in the upgraded SMS site.
2. 3.
4.
5. 6.
If your organization manages large numbers of Class A, B, and C clients, you might not be able to migrate all your clients at one time. In this case, use software distribution to run the Client Upgrade tool to disable migration on those clients that you are not ready to upgrade. When you are ready to upgrade those clients, you can use software distribution to run the Client Upgrade tool again to enable migration. Resources 25
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For a detailed discussion about holding sites and other site upgrade considerations: Chapter 11 Chapter 14 Upgrade Strategies Upgrading Primary Site Servers Upgrading Secondary Site Servers Performing Post-Upgrade Tasks
For a detailed discussion about the steps for upgrading an SMS site:
At this point in the upgrade process, you return to the flowchart shown in Figure 1.11. The next question to consider is whether the site you are upgrading is a central site. If so, you can return to the flowchart shown in Figure 1.8. If not, you still need to consider whether you want to manage Advanced Clients at the site and whether you want to use global roaming as discussed in the Client Installation section earlier in this chapter, and then configure the roaming boundaries appropriately. Then you can proceed to install the Advanced Client software, following the steps and considerations listed in the flowchart shown in Figure 1.9.
Side-by-Side Upgrade
After completing Parts 1 and 2, you might determine that an in-place upgrade might not be the appropriate deployment method. You might intend to consolidate some or all of your existing SMS 2.0 sites, to change the structure of your existing SMS hierarchy, or to upgrade some or all of your server hardware. In this scenario, you can choose to deploy SMS 2003 using the side-byside upgrade method. This section describes the side-by-side upgrade method of deploying SMS 2003. When you deploy SMS 2003 using the side-by-side upgrade method, you begin with the central site. You can either upgrade the existing SMS 2.0 central site to SMS 2003, or you can keep the existing central site and make it a child of a new SMS 2003 central site. In either case, you should implement an SMS 2003 site to act as a transition site for migrating existing SMS 2.0 clients that are Class A clients to the SMS 2003 Advanced Client. Resources 26
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information about transition sites and other site upgrade considerations: Chapter 11 Side-By-Side Hierarchy Upgrades
The flowchart in Figure 1.13 lists the steps required to deploy SMS 2003 using a side-by-side upgrade.
Start
Part 3: Side-by-side Updgrade No New central site? Yes Go to flowchart: Upgrade Specific
Extend active directory schema Attach new cnetral site to existing central site
If you are upgrading the existing SMS 2.0 central site to SMS 2003, you follow the same basic steps that you would follow if you were upgrading the central site using an in-place upgrade. Those upgrade steps are listed in the flowchart shown in Figure 1.12. If you are implementing a new central site, the process is similar to the one you follow for installing a new central site shown in the flowchart in Figure 1.8. However, after you have created the new SMS 2003 central site, you make the existing SMS 2.0 central site a child of the SMS 2003 central site. Then you can proceed to consolidate or upgrade your existing sites, install new SMS clients, and migrate existing SMS clients to the new SMS hierarchy as you designed it in Parts 1 and 2. Consolidate sites in the following manner: u u Make the site boundaries of the existing sites the roaming boundaries for the new site. Use software distribution to target Class A computers of the existing SMS hierarchy to install the Advanced Client software. You can use the predefined SMS package SMSClient.sms. Configure a holding site for any Class C clients that you must continue to manage
Post-Installation Considerations
After you upgrade a site, you must perform several additional tasks. You perform most of them from the SMS Administrator console. These tasks include: Status filter rules after upgrading the site server to Windows Server 2003 If you have configured status filter rules to send a network message when an event occurs, and you upgrade the site server to Windows Server 2003, the status filter rules will no longer run. By default, the messenger service in Windows Server 2003 is disabled. To allow these status filter rules to run, enable and start the Messenger service. Database maintenance and consistency checks It is a good idea to back up your upgraded site and to perform database consistency checks. For more information, see Chapter 13, Maintaining and Monitoring SMS Systems. This is a good time to schedule the backup task. For more information about backup and recovery, see Chapter 15, Backup and Recovery. Differences between the SMS_def.mof files at different sites of the same version in the hierarchy can lead to conflicting hardware inventory data. To prevent conflicts, you should make sure that each site of the same version in the hierarchy uses the same hardware inventory definitions. For more information about how to standardize the SMS_def.mof files in your hierarchy, see Chapter 6, Understanding Interoperability with SMS 2.0, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. For more information about how to restore your customized SMS_def.mof files after you upgrade, see Chapter 2, Collecting Hardware and Software Inventory.
Post-Installation Considerations 41
Site configuration You must configure the site settings for all new SMS 2003 sites. This applies to newly installed SMS 2003 sites and to sites upgraded to SMS 2003 from SMS 2.0. Configuration settings from SMS 2.0 are preserved during an upgrade. For example, you must configure the site boundaries and enable client installation methods to upgrade clients and populate the SMS site database. In general, perform post-upgrade tasks in the following order: 1. Configure all site settings. u u u 2. Assign new site system roles. Specify the IP subnets or Active Directory sites that define your site boundaries. Enable resource discovery methods.
Finally, after planning the strategy for upgrading your SMS hierarchy, you must plan for features you want to use in SMS 2003. You must determine if your SMS 2.0 clients use features that are not supported SMS 2003. You also must determine if there are any requirements you must meet for new SMS 2003 features. Resources 27
Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
For more information post-upgrade planning for SMS features: Chapter 11 Post-upgrade Migration Planning
C H A P T E R
Overview
You can employ several SMS features to use the data that SMS collects by using hardware inventory and software inventory. For example: u You can build queries that include computers based on their hardware configuration or installed software. The queries are useful to technical analysts and others who want to proactively prevent problems by checking for computers with configuration problems, such as insufficient disk space. You can build collections with queries that include computers based on their hardware configuration or installed software. Those collections can then be used to advertise software packages to computers that require the software and are capable of supporting it. You can produce reports that display useful hardware configuration or installed software details. The reports are useful to managers, systems analysts, and others who need to make decisions based on information about the current computer infrastructure. You can use the SMS Resource Explorer to view the complete inventory data for individual computers. This view of individual computers is especially useful when remotely troubleshooting computer problems.
SMS software inventory can also collect files, not just details about the files, from SMS client computers. With file collection, you specify a set of files to be copied from clients to the SMS site that the clients are assigned to. Chapter 3, Understanding SMS Features, of the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide introduces hardware and software inventory in more detail. That chapter also explains inventory resynchronization, delta inventory collection, and similar topics that are key to the successful use of the SMS inventory features.
This chapter prepares you to implement and use SMS inventory. In the future, you might have some special requirements when using the Resource Explorer, or you might want SMS to collect information about your computers that requires special extensions to the inventory collection processes. At that time, you should read Chapter 3, Advanced Inventory Collection.
In This Chapter
u u u u Hardware Inventory Administrative Tasks Software Inventory Administrative Tasks Using Resource Explorer to View Inventory Data Other Considerations for Collecting Inventory
The Viewing Hardware Inventory section later in this chapter describes how to view collected inventory data by using Resource Explorer.
Note
Hardware inventory can use considerable network capacity. The network capacity required to run hardware inventory depends on the number of SMS clients you have, how frequently you schedule hardware inventory, and the size of the inventory data you collect. If you expect hardware inventory to slow network activity significantly, consider running this process during nonpeak hours.
In the details pane, right-click Hardware Inventory Client Agent and click Properties. To enable hardware inventory, select Enable hardware inventory on clients. To disable hardware inventory, clear Enable hardware inventory on clients. Then, set the schedule for hardware inventory and the maximum custom Management Information Format (MIF) file size. MIF files are used by SMS to extend SMS inventory collection and to provide detailed software distribution status. For more information about using MIF files to collect supplemental inventory information, see Chapter 3, Advanced Inventory Collection. When the hardware inventory agent is installed and enabled on Legacy Clients, hardware inventory is collected after 10 minutes and then according to the hardware inventory schedule that you specify in the agent. When the hardware inventory agent is enabled on Advanced Clients, hardware inventory only runs according to the hardware inventory schedule you specify.
Important
If an Advanced Client roams to a secondary site and connects to a proxy management point, its inventory is propagated to the primary parent site of the secondary site. If the SMS addresses at the secondary site are configured to forward the inventory data to the parent site after the roaming Advanced Client has returned to its assigned site and reported inventory directly, an inventory resynchronization can be caused for the client. If many clients do this, significant network and server activity could result. To avoid this problem, set the inventory schedule to be less frequent than site-to-site communications.
Forcing hardware inventory does not disrupt the normal hardware inventory cycle if it is set to run on a full schedule (at a specific time and day, for example). In that case, the regularly scheduled hardware inventory still runs at the time scheduled in the hardware inventory agent. However, if inventory is set to run on a simple schedule of once per day, for example, then the next inventory cycle is run 24 hours from the time the inventory is forced, and every 24 hours thereafter.
Caution
When NOIDMIF collection is disabled, the data collected using NOIDMIFs is deleted from the SMS site that the clients are assigned to.
Important
If you modify the SMS_def.mof file or create custom MIF files (as described in Chapter 3, Advanced Inventory Collection) to add information to inventory, consider the performance effects. Adding certain information (for example, adding the Win32_LogEvent, Win32_Account, or Win32_Directory classes) can slow network and system performance appreciably.
Advanced Clients download new hardware inventory rules when Advanced Client policy is refreshed. By default, this is once per hour. Legacy Clients download new hardware inventory rules when their client refresh cycle is run. By default, this is once every 25 hours. When the clients have the new hardware inventory rules, the next hardware inventory is collected according to the modified SMS_def.mof file, as long as it is syntactically correct. Otherwise, the previous version of SMS_def.mof is used. Do not place custom SMS_def.mof files on Legacy Clients or CAPs. If you do, those files are used temporarily and then overwritten. At each daily client refresh cycle, the SMS_def.mof on the SMS site server is compared with the copy on the client, and if these copies are different, the copy on the server is replicated to the client, overwriting any custom SMS_def.mof file that exists on the client. Copies of the SMS_def.mof file also exist on Legacy Clients, but you should not modify them. The SMS client automatically updates these copies when necessary.
If you make changes to the SMS_def.mof, you must back up the file before upgrading the site to a newer version of SMS. If Microsoft has not made any changes to the SMS_def.mof in the new version of SMS, you can restore your SMS_def.mof. You can determine whether Microsoft has made any changes to the SMS_def.mof by comparing it to the original SMS_def.mof of the previous version of SMS. If Microsoft has made changes to the SMS_def.mof, you must apply your changes to the new version of the SMS_def.mof. For example, when a service pack is available for SMS 2003, you should compare its SMS_def.mof with the SMS_def.mof that was originally installed with SMS 2003. If there are no differences, you can restore your SMS_def.mof in place of the one that is included in the service pack. Otherwise, you should apply your changes to the version in the service pack. Keep a backup copy of the SMS_def.mof file. You can configure the Backup SMS Site Server procedure in the SMS Administrator console. The SMS_def.mof file is backed up as part of this task. Or, you can back up the SMS_def.mof file separately, ideally whenever you change the SMS_def.mof file. For more information about how SMS_def.mof is preserved during upgrades, see the Distributing SMS_def.mof section later in this chapter. For more information about using the backup task, see Chapter 15, Backup and Recovery.
Note
The Advanced Client does not use a copy of SMS_def.mof on the client. However, SMS_def.mof is stored in the SMS site database as soon as changes are made, and then converted into Advanced Client policy. Editing SMS_def.mof is the means for configuring hardware inventory for all clients in SMS, although you do not find SMS_def.mof on Advanced Clients.
Editing SMS_def.mof
To edit SMS_def.mof file, use a text file editor to change the class and property reporting settings. Each property and class has an SMS_Report flag. To include a property or class in inventory, set the SMS_Report flag to TRUE. To remove a property or class from inventory, set the SMS_Report flag to FALSE. SMS_def.mof starts with the definition of namespaces, base classes, and providers that are needed by the Hardware Inventory Agent and WMI. The rest of the file defines the classes that the Hardware Inventory Agent can collect data about. The syntax of the SMS_def.mof is the same as any other MOF file. However, it also includes class and property qualifiers that are used by the Hardware Inventory Agent.
Note
Group names can use double-byte character set names. If this is done, the SMS_def.mof file must be saved as a Unicode file.
Class Qualifiers: u u u SMS_Report is an optional Boolean value indicating whether or not the class is to be collected by SMS inventory. Its default value is FALSE. SMS_Group_Name is an optional name of the property group to be used when collecting the class. By default, it is the WMI class name as it appears in SMS_def.mof. SMS_Class_ID is a required SMS class identifier string associated with the property group. The class identifier is a three-part string delimited by vertical bars. The first part is the vendor, the second part is a group name, and the third part is a version number. SMS_Namespace is an optional Boolean value indicating whether the provider for this class is located in the root\CIMv2\SMS namespace. This must be set to TRUE for any class whose data is provided directly to the SMS reporting class. If SMS_Namespace is set to FALSE, or not specified, the data is collected from the root\CIMV2 namespace or the namespace specified in using the Namespace class qualifier. Namespace is an optional value indicating where the hardware inventory agent should look for the data class. Namespace only applies to Advanced Clients. Legacy Clients ignore this class qualifier. SMS_Report is an optional Boolean value (TRUE, FALSE) indicating whether or not the property is to be included in SMS inventory. The default is FALSE. For key properties, this qualifier is ignored on Legacy Clients. Keys are always reported on Legacy Clients. SMS_Units is an optional string that informs the Hardware Inventory Agent to perform a conversion between data provided by WMI into a form SMS can use. If the data is in a normal property, the property is rejected. If the data is in a key property, the instance is rejected. For example, SMS cannot use 64-bit integers, so in the case of disk size, the qualifier SMS_Units(Megabytes) is used. The agent translates the WMI value in bytes into the appropriate representation in MB. This qualifier is ignored for non-integer properties. Another example is using the DateString value for the SMS_Units qualifier for WMI datetime intervals. These are in the format ddddddddHHMMSS.mmmmmm:000. SMS requires the DateString qualifier to convert and use WMI time-intervals. Possible SMS_Units values: u u u u KB divides by 1024 MB divides by (1024 1024) HexString converts number to hex strings. For example, decimal value 161 is converted to string 0A1. DecimalString SMS cannot use 64-bit integers, so this converts WMI uint64 values to string values
Property Qualifiers: u
u u
Seconds divides time values in milliseconds by 1000 DateString converts time interval strings. For example, a DateTime value of 00000008061924.000000:000 turns into the string 8 Days 08:15:55 Hours.
For information about the specific classes and properties in the SMS_def.mof file, see the SMS SDK. The SMS SDK is available as part of the Platform SDK, which is available from Microsoft Developer Network (MSDN), or at http://www.microsoft.com/smserver.
Distributing SMS_def.mof
Whenever the SMS_def.mof file is changed on a primary site server (including when SMS is upgraded, if the SMS_def.mof has changed in the newer version of SMS), SMS loads its contents into the SMS database so that Advanced Clients can request them as policy from the management point. The SMS_def.mof is also downloaded to CAPs so that Legacy Clients can acquire it. This is also done at secondary sites. Both clients download the changes during their daily client refresh cycles. While SMS_def.mof is loaded into the SMS site database, SMS backs up the SMS_def.mof to the \SMS\data\hinvarchive folder. If the SMS_def.mof is valid, it is backed up as SMS_def.mof.bak. If an SMS_def.mof.bak already exists, SMS_def.mof.bak is first backed up as SMS_Def.mof.bk0. If an SMS_def.mof.bk0 already exists, it is first backed up as SMS_def.mof.bk1. This continues to SMS_def.mof.bk4. If the SMS_def.mof is not valid, it is backed up as SMS_def.mof.bad.bak. If an SMS_def.mof.bad.bak already exists, SMS_def.mof.bad.bak is first backed up as SMS_Def.mof.bad.bk0. If an SMS_def.mof.bad.bk0 already exists, it is backed up as SMS_def.mof.bad.bk1. This continues to SMS_def.mof.bad.bk4.
Note
If you are upgrading to SMS 2003, carefully compare the SMS 2003 SMS_def.mof to your previous SMS_def.mof. Numerous changes have been made to the SMS 2003 SMS_def.mof to include additional useful classes, to reflect changes in WMI, and to remove less useful classes.
When a Legacy Client receives new hardware inventory rules, it generates a complete hardware inventory instead of a delta inventory of changes only. The SMS site server deletes data for the client for any classes not included in the complete inventory from the client (which also means that the classes were not included in the new SMS_def.mof). The history data for any such classes is not deleted. If you had made customizations to hardware inventory, the data for those customizations is lost when you upgrade to SMS 2003 (and its new SMS_def.mof) until you reimplement those customizations and allow time for the clients to run the next hardware inventory cycle. The Advanced Client does not generate a full inventory when it receives new hardware inventory rules. It always generates a delta inventory.
Note
The SMS 2003 SMS_def.mof includes some classes that you might have added as hardware inventory extensions (for example, a list of the installed programs in the Add or Remove Programs icon in Control Panel). If you have made hardware inventory extensions in SMS 2.0, you should review the SMS 2003 SMS_def.mof to see if it includes your extensions. If it does, you do not need to re-implement your extensions.
You can avoid losing the data from your hardware inventory customizations (and one of the two full inventory cycles) by disabling the hardware inventory client agent before beginning the SMS site upgrade. When the upgrade is completed, reimplement your customizations in the SMS 2003 SMS_def.mof, and then enable the Hardware Inventory Client Agent. SMS clients still generate one full hardware inventory because of the Microsoft changes to SMS_def.mof, but the data for your customizations is not temporarily lost, and a second full hardware inventory is not required.
Important
If you implemented your SMS 2.0 hardware inventory extensions without changing the SMS_def.mof, be sure to adjust those extensions so that the reporting classes are included in the SMS_def.mof. The data class definition and population can still be included in your customization. For more information, see Chapter 3, Advanced Inventory Collection.
u u
The Viewing Software Inventory section later in this chapter describes how to view collected inventory data by using Resource Explorer.
Note
Software inventory can use considerable network capacity. The amount of network capacity used depends on the number of SMS clients you have, how frequently you schedule software inventory, and the size of the files you collect (if any). If you expect that software inventory will significantly affect network activity, consider running this process during nonpeak hours.
In the details pane, right-click Software Inventory Client Agent, and then click Properties. To enable software inventory, select Enable software inventory on clients. To disable software inventory, clear Enable software inventory on clients. When the software inventory agent is installed and enabled on Legacy Clients, software inventory is collected after 20 minutes and then according to the software inventory schedule. When the software inventory agent is enabled on Advanced Clients, it runs only according to the software inventory schedule.
Forcing software inventory does not disrupt the normal software inventory cycle. The regularly scheduled software inventory still runs at the time scheduled in the Software Inventory Agent.
Important
The Software Inventory Agent supports both system and user environment variables, but the user environment variables are for the security context the agent runs in, not the context of the currently logged on user. Also, the value of the environment variable must not contain an environment variable. For example %temp% cannot be used if its value is %Windir%\temp.
4.
Set Exclude encrypted and compressed files if you do not need to inventory them. By default, this option is enabled. This setting is particularly important if you are collecting product details during software inventory. Product details are contained within the files, so encrypted and compressed files must be decrypted and decompressed, which can use considerable computer resources on the SMS clients. If the local system account (or a group that contains the local system account) is not given administrative rights to the encrypted files, SMS cannot decrypt them. Repeat steps 2 through 4 for all the inventory rules you require. Additional rules impose additional workload on the clients and might create additional network traffic or workload on the SMS servers. You should carefully consider the need for each additional rule. There is a maximum limit of 64 rules. Set the level of reporting details you want to collect using software inventory by setting File details and Product details. If you set Product details, the following properties are collected for each file: u u u u Manufacturer name Product name Product version Product language
5.
6.
If you set File details, the following properties are collected for each file: u u u u File name File path File size Modified date
If you set both File details and Product details, the following properties are also collected for each file: u u File description File version
Note
File details are obtained by scanning folder entries. Product details are obtained by opening the files. File details are more efficient because fewer disk reads are required. Also, because the files do not need to be loaded into memory to obtain the product details, they do not have to be scanned by antivirus software that might be running on the clients. However, because it is much harder to hide files by changing the product name than by changing the file name, collecting product details can provide more accurate results if your users might try to hide programs by renaming them.
You cannot clear both the Product details and File details options. At least one of these sets of details must be collected.
Note
The value of the environment variable must not contain an environment variable. For example %temp% cannot be used if its value is %Windir%\temp.
3.
By default, all hard disks on the SMS clients are scanned for files to collect. If you want to scan a particular folder or folder tree, click the Set button. In the Path Properties dialog box, click Variable or path name, and then specify a folder or folder tree. A variable is an environment variable, such as %Windir%. By setting Search subdirectories, you can also specify whether subfolders should be searched.
4.
Set Exclude encrypted and compressed files if the desired files are not encrypted or compressed. If the local system account (or a group that contains the local system account) is not given administrative rights to encrypted files, SMS cannot decrypt or collect them. Excluding these files also makes the collection process more efficient. Set the Maximum size (KB) for the files to be collected. This is the maximum size of the file or files collected for this rule. If the total size of the files collected by this rule exceeds this value, none of the files are collected.
5.
Note
When SMS sends a large volume of collected files across the network, network performance can suffer. To minimize this problem, you can use the Maximum Size (KB) option, restrict the path so that you collect only copies of files from the desired folder tree, or schedule software inventory when network traffic is lightest. The sum of the Maximum Size (KB) options is indicated as the Maximum traffic per client (MB) value on the File Collection tab. Also, during the collection process SMS makes a temporary copy of the files being collected. Sufficient disk space must be available for the copies. If multiple file collection rules apply to a file, and it is within the size limitation of one rule but not another, the file is not collected. Be aware that collecting all .dll files from each client can create considerable network traffic.
However, the product name and manufacturer name are sometimes misspelled or recorded inconsistently in headers. For example, Microsoft, Microsoft Corporation, and Micorsoft might all be found in different header blocks yet refer to software created by the same manufacturer Microsoft Corporation. In SMS, inventory name conversion rules are used to map misspellings or inconsistencies in the inventoried software product or manufacturer names. You can use conversion rules to map the misspelled and inconsistent names to any name you choose. For example, in SMS Resource Explorer, the manufacturer name is one of the nodes that software is grouped under, so if each variation of one manufacturer was left as is, there could be a lot of nodes for each manufacturer, even though they are essentially the same. The same is true when running queries or reports where software is grouped by manufacturer name. To avoid this, set inventory names.
4.
Note
Skpswi.dat also applies to file collection. Disks with a Skpswi.dat file are not scanned to find files that are to be collected. SMS automatically excludes the Recycle Bin from inventory on all SMS clients.
You might find that software inventory scans folders that include secondary copies of files. This is especially true if you scan compressed folders, which includes the operating system DLL cache and service pack uninstall folders. If you do not want to inventory such folders, place a Skpswi.dat file in those folders on your SMS clients.
Note
There might be some delay between the collection of hardware inventory data and its appearance in Resource Explorer, depending on where the client is in relation to the SMS site server that Resource Explorer is using, and network or SMS Sender delays.
To view an SMS clients hardware inventory with Resource Explorer, navigate to a collection containing the client in the SMS Administrator console.
Systems Management Server X Site Database (site code - site name) X Collections X collection containing client
In the details pane, right-click the client whose information you want to view, point to All Tasks, and then click Start Resource Explorer. A new window for Resource Explorer opens and displays information about the selected client. Hardware inventory data is under the Hardware node. You can also open Resource Explorer from queries in the SMS Administrator console. The properties returned by the queries must include the resource identifier and resource type. In the details pane, right-click the client whose information you want to view, point to All Tasks, and then click Start Resource Explorer. A new window for Resource Explorer opens and displays information about the selected client. SMS keeps historical hardware inventory records for the number of days you specify in the Delete Aged Inventory History site maintenance task. For a complete description of this and other database maintenance tasks, see Chapter 13, Maintaining and Monitoring SMS Systems.
Note
If you double-click a row in the results pane of the Resource Explorer, a properties dialog box is displayed. This dialog box gives a vertical list of the properties and values for that row. This view might be easier to read than the horizontal list in the results pane.
In Resource Explorer, information about files whose product details have been collected are listed under the manufacturers name that developed the software in the Product Details folder, and information about files without product details are listed in the File Details folder. To view the inventory of the clients software products that you selected when you configured the Software Inventory Client Agent, start Resource Explorer, double-click Software, and then click Product Details. The clients software inventory appears in the details pane. If you want to view the inventory of files not associated with products (such as .vbs files), click File Details. The inventory of files without product details that are associated with the client appear in the details pane.
Note
Software inventory does not have history. It indicates only the current state of files found on the clients. Files that were inventoried for the client at one time but were later deleted do not appear in the list.
The information collected for each file includes: u u u u u File name File path File size Modified date Collection date
You can view the contents of a collected file by right-clicking the file name and selecting View File from the All Tasks menu. You can save the file to your local disk by right-clicking the file name and selecting Save from the All Tasks menu. By default, Resource Explorer displays collected files using Notepad. You can have Resource Explorer display the collected files using another program by adding the string value Viewer to the following registry key and setting it to the name of the program you want to be used to view collected files: HKLM\SOFTWARE\Microsoft\SMS\AdminUI\ResourceExplorer You must include the path to the program if the program is not available in folders listed in the Resource Explorer users path environment variable.
Property
(continued)
Property
Software Hardware DisplayName configuration inventory details (services, for example) CPU type (such as Itanium) CPU model (such as Pentium IV) CPU speed Operating system SMS client type (Advanced Client vs. Legacy Client) Hardware ProcessorType inventory Hardware Name inventory Hardware Current_Clock inventory _Speed Hardware Caption inventory Discovery ClientType
Services
SMS_G_System_SER VICE
v_GS_SERVICE
Processor
SMS_G_System_Proc v_GS_PROCESSOR essor SMS_G_System_Proc v_GS_PROCESSOR essor SMS_G_System_Proc v_GS_PROCESSOR essor SMS_G_System_OPE RATING_SYSTEM v_GS_OPERATING_ SYSTEM v_R_System
Processor
Not in the SMS_R_System Resource Explorer. Available as a property of the resource. Add or Remove Programs Product Details
Software Hardware All installed via inventory Add/Remove Programs Software inventory product details Software inventory All
(continued)
Data Software inventory file details if product known Software inventory file details if product not known Software inventory collected files
Property
Software inventory
All
File Details
SMS_G_System_Unk nownFile
v_GS_UnknownFile
Software inventory
All
Collected Files
SMS_G_System_Coll ectedFile
v_GS_CollectedFile
Last software Software inventory inventory collection date and time Last file collection date and time Last hardware inventory collection date and time Hardware history NOIDMIF details Software inventory
LastScanDate
SMS_G_System_Last SoftwareScan
v_GS_LastSoftware Scan
LastCollected FileScanDate
SMS_G_System_Last SoftwareScan
v_GS_LastSoftware Scan
v_GS_WORKSTATIO N_STATUS
(continued)
Data
Property
SMS_G_ + Not applicable. architecture name Resource Explorer does not display nonsystem resources. SMS_Group _Name property in the reporting class definition SMS_G_System_ + the second part of the SMS_Class_ID property in the reporting class definition
MOF details
Any time included in inventory data is the local time at the client, without correction for differences in the time zones or daylight saving time between the server and the client. The Add or Remove Programs class or view can contain more items than Add or Remove Programs in Control Panel. This is because some items are marked as not being able to be removed with Add or Remove Programs, so they are not displayed to the users.
Note
In some unusual cases, SMS might report values for properties, such as CPU type, that are not accurate. In most cases, SMS obtains the values from WMI. So in the case of CPU type, this might be due to the fact that the CPU type is newer than the version of WMI that you are running. Updating WMI (by updating the operating system, possibly with a service pack) might correct the inaccuracy. When first developing a report or other feature that depends on inventory data, you should review the data closely to ensure that no such issues apply to the data you are using.
Hardware and Software Inventory Behavior When Clients Cannot Connect to the SMS Site
SMS clients might not always be able to connect to a CAP or a management point, such as when no CAPs or management points are available. If an SMS client cannot connect to its assigned site, it continues to run hardware and software inventory as configured. The inventory data is collected on the client until a connection is reestablished with a client access point or management point. Remember that inventory data collected after the first inventory include changes in the inventory only. So those outstanding inventories are usually neither large nor redundant.
C H A P T E R
In This Chapter
u u Using Resource Explorer from the Command Line Extending Hardware Inventory
where: u u n is the ResourceID of the SMS client that you want to display inventory for. <namespace path> is the path to the Windows Management Instrumentation (WMI) namespace that contains the SMS client data.
For example, the following command displays inventory data for the client associated with ResourceID=1:
mmc c:\sms\bin\i386\explore.msc -s -sms:ResourceID=1 sms:Connection=\\<MyServer>\root\sms\<SMS_site code>
where: u u <WQL Query> is a valid WMI Query Language (WQL) query that returns the ResourceID of the SMS client that you want to display inventory for. <namespace path> is the path to the WMI namespace that contains the SMS client data.
For example, the following command opens Resource Explorer with inventory data for the client named MyComputer that belongs to the SMS site ABC having a primary site server named MyServer:
mmc c:\sms\bin\i386\explore.msc -s -sms:ResExplrQuery="SELECT ResourceID FROM SMS_R_SYSTEM WHERE Name = "MyComputer" sms:connection=\\MyServer\root\sms\site_ABC
Your query might return more than one instance, but Resource Explorer uses only the first instance that is returned.
Using a Collection
Using Resource Explorer from the command line enforces the same security as using Resource Explorer from the SMS Administrator console. If you do not have Read Resource collections class rights to view the resource, you must specify a collection that grants you the proper credentials to view the resource. Use the following syntax to specify the resource to display in Resource Explorer.
mmc explore.msc -s -sms:CollectionID=<Collection ID> -sms:ResourceID=n sms:Connection=<namespace path>
where: u u u u <Collection ID> identifies the collection that the resource belongs to, such as SMS00001. n is the ResourceID of the SMS client that you want to display inventory data for. <namespace path> is the path to the WMI namespace that contains the SMS client data. <WQL Query> is a valid WQL query that returns a ResourceID of the SMS client that you want to display inventory data for.
Note
Because SMS hardware inventory can collect details about the software on your computers, you can think of the hardware inventory extension options as also giving you the option to extend software inventory, although the extensions do not affect the software inventory subsystem itself.
Also, you can write scripts that dynamically create either MIF or MOF extensions. MIF extensions are based on an older standard than MOF standards. MIF extensions are less flexible than MOF extensions, and do not provide the benefits that WMI provides. MIF extensions are most appropriate for relatively static data. MOF extensions are appropriate for both static and dynamic data. MOF extensions are generally preferred, but if you already have a MIF-based extension, or if you find MIFs simpler, then you might choose to use MIF extensions. The one thing that MIF extensions can do that MOF extensions cannot do is to create new architectures, such as new types of resources, and data for those architectures. However, you can also define new architectures by using custom discovery data records (DDRs). For information about on how to create new architectures using DDRs, see Appendix C, Scripting SMS Operations. Hardware inventory extensions are collected at the same time that normal hardware inventory is collected. If you want to start hardware inventory on demand (for testing purposes, for example), see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
MIF Extensions
MIF is part of the Desktop Management industry standard. The MIF standard defines how text files can be used to represent computer management information. Because MIF is an industry standard, programs that store management data in MIF files do not need to be SMS-specific. However, SMS can collect the MIFs and store them in the SMS site database, where you can use their data in the same ways that you use default SMS inventory data. You can also create MIF files by using a text editor. When you have defined a MIF file that stores the data you require, you can use that file as a template so that similar data is defined in the same manner. For example, when you are setting up a new computer, you can copy the template file to the new computer, edit the data contained within the file to reflect the new computer, and then save the new file. SMS collects the file and stores the information in the SMS site database, along with the other inventory data for that computer. Your MIF file might contain information about a users phone number, job title, office number, and similar details that SMS cannot automatically determine. For SMS, standard MIF files are called NOIDMIF files. These files do not contain a unique identifier for the data. They have no ID. SMS automatically associates NOIDMIF file data with the computer that the NOIDMIF files are collected from. SMS also supports IDMIF MIF files. These files do contain a unique ID, and are not associated with the computer they are collected from. IDMIF files can be used to collect inventory data about devices that are in the vicinity of a computer, but not actually associated with it. For example, a shared network printer, video cassette recorder, photocopier, or similar equipment is not associated with any specific computer, but you might want to record data about it for asset management purposes. This data is stored in separate tables in the SMS site database. IDMIF extensions (or custom DDRs) can also be used to create new tables in the SMS site database that you might need for reporting purposes. For example, you might have asset management data that is not strongly tied to individual computers. This data is not appropriate for NOIDMIF files or MOF extensions, but you want to join it with SMS data for reporting purposes.
Caution
Removing IDMIF extensions from clients does not cause the associated data to be removed from the SMS site servers.
NOIDMIF files must be stored in the following folder on Legacy Clients: %Windir%\MS\SMS\Noidmifs The safest method on both clients is to use the folder that the following registry subkey points to: HKLM\Software\Microsoft\SMS\Client\Configuration\Client Properties\ NOIDMIF Directory If the classes defined in the NOIDMIF files do not already exist on the primary site server, the site servers Inventory Data Loader creates the new classes on the existing architectures. After that, inventory for that client includes the new classes by processing the NOIDMIF file each time inventory is run. For example, if a NOIDMIF file creates a class called Asset Number, that custom MIF file causes the Inventory Data Loader to create the class Asset Number. Each time inventory is run, the Hardware Inventory Client Agent processes the NOIDMIF file again and replaces any values that have changed. If the NOIDMIF file is removed from the destination folder, all the classes and properties are deleted the next time hardware inventory runs, except from the history.
The next time hardware inventory runs, the NOIDMIF file is included in the process, and the new properties and classes are added to the SMS site database.
(continued)
(continued)
Start Attribute Name = "Computer Asset Number" ID = 1 Type = String(10) Value = "414207" End Attribute End Group End Component
Note
The value is stored as a string because, in some reporting tools, commas are automatically inserted for integer values, which can cause the format of the asset number to change.
You can create NOIDMIF files by using the MIFgen tool included in the Microsoft BackOffice 4.5 Resource Kit, or you can create them by using any text editor. To create such a NOIDMIF file using a text editor, use the following procedure.
To create a NOIDMIF file to add the Wide World Importers Asset Numbers class
1. Type the following line to begin the NOIDMIF file:
Start Component
You must always add a component and name the component when you create a NOIDMIF file. 2. Type the following line to name the component:
Name = "System Information"
By using a general name such as System Information, this component becomes more flexible. You can then use it to add any information you want to maintain for this client by adding new groups to the existing NOIDMIF file. 3. Type the following line to add the Display Name for the new Wide World Importers Asset Numbers class:
Start Group Name = "Wide World Importers Asset Numbers"
The Name property is the string that administrators see in Resource Explorer to refer to this class. Wide World Importers Asset Numbers is a DMTF group class. When SMS first loads this group, it creates a WMI class called SMS_G_wide_world_asset_numbers. After you add properties, even if you add only a single property, you need to add a group to contain your new properties.
4.
Type the following line to give the Wide World Importers Asset Numbers class a group ID number:
ID = 1
Use any method to determine the unique ID number for each group and property, if the ID number is unique for groups within this component. 5. Type the following line to add the wideWorldImportersAssetNumbers class:
Class = "wideWorldImportersAssetNumbers"
The Class information is used for processing and is never seen by administrators. 6. Type the following line to add the key property:
Key = 1
This entry indicates that the first property listed is the key. Key properties are unique properties that identify instances of a certain class. Whenever you have more than one instance of a class, you must include at least one key property, or the subsequent instances of the class overwrite the previous instances. If no key properties are defined for a NOIDMIF file on a client running a 32-bit operating system, all the properties are designated as key by the inventory process. This does not occur for IDMIF files or for NOIDMIF files on clients running 16-bit operating systems. 7. Type the following lines to add the first property:
Start Attribute Name = "Computer Asset Number" ID = 1 Type = String(10) Value = "414207" End Attribute
You must set an ID number for this property, name the property, and then specify a data type. The ID number you choose must be unique within the group. Only three data types are recognized by the system: integer, string, and specially formatted DateTime string. You must also specify a valid value for the data type you selected. When you use a NOIDMIF file to define a new class, the class is inventoried at the next cycle, because the NOIDMIF file is processed on the client. When you customize hardware inventory by using NOIDMIF files, you must leave the NOIDMIF in the NOIDMIFS folder on the client. The custom MIF file is used at each hardware inventory cycle when the extended classes and properties are collected. If the NOIDMIF file is not found on the client during hardware inventory, the extended classes and properties are deleted and you must submit the NOIDMIF file again by replacing it in the NOIDMIFS folder on the client.
The NOIDMIF file in this example is manually created and its values are static. The values are updated only when someone edits the file. SMS hardware inventory then collects the updated file and updates the corresponding data in the SMS site database.
Also, if you create any class that has more than one instance, you must include at least one key value within the class, to avoid having each instance overwrite previous instances.
Important
The formatting of the comments must be exactly the same as that given here. The only part that you can change is the part in italics. The < and > characters must be included.
IDMIF files must be stored in the following folder on Advanced Clients: %Windir%\System32\CCM\Inventory\Idmifs IDMIF files must be stored in the following folder on Legacy Clients: %Windir%\MS\SMS\Idmifs The safest method on both clients is to use the folder the following registry key points to: HKLM\Software\Microsoft\SMS\Client\Configuration\Client Properties\IDMIF Directory The following is an example of a simple IDMIF file:
//Architecture<Widget> //UniqueId<414207> Start Component Name = "System Information" Start Group Name = "Widget Group" ID = 1 Class = "Widget" Key = 1 Start Attribute Name = "Widget Asset Number" ID = 1 Type = String(10) Value = "414207" End Attribute End Group End Component
MOF Extensions
Management Object Format (MOF) is part of the Web-based Enterprise Management (WBEM) industry standard. The Microsoft implementation of WBEM is called Windows Management Instrumentation (WMI). The MOF standard defines how text files can be used to represent computer management information, objects that define computer management information, and related structures.
Because WBEM is an industry standard, programs that store management data in WBEM, which is implemented as WMI in Microsoft Windows operating systems, do not need to be SMSspecific. However, SMS can collect the WMI data and store it in the SMS site database where you can use the data in the same ways that you use default SMS inventory data.
Understanding the Relationship Between the Hardware Inventory Agent and WMI
Understanding the relationship between the SMS Hardware Inventory Client Agent and WMI is important to understand the classes that must be defined in MOF extensions to hardware inventory. This understanding must be based on a knowledge of WMI. For an introduction to WMI, see Appendix B, Window Management Instrumentation. By default, the SMS Hardware Inventory Client Agent retrieves data from the WMI CIMv2 namespace. The agent does not retrieve all the data from the CIMv2 namespace. Instead, it retrieves specific data based on hardware inventory rules stored in the CCM\policy\machine\actualConfig namespace on the Advanced Client and the CIMv2\SMS namespace on the Legacy Client. The Advanced Client stores the rules as instances in the InventoryDataItem class. The Legacy Client stores the rules as qualifiers on classes that mirror the classes in the CIMv2 namespace. The hardware inventory rules are defined in the SMS_def.mof file, as described in Configuring Hardware Inventory Rules section in Chapter 2, Collecting Hardware and Software Inventory. The SMS_def.mof file provided on the SMS site server is automatically propagated to all SMS clients and automatically compiled on those clients. For Advanced Clients, the SMS_def.mof is changed into Advanced Client policy that is made available to the Advanced Clients. For Legacy Clients, the SMS_def.mof is propagated in its native form and compiled on the SMS clients. The compilation of SMS_def.mof places the hardware inventory rules in the SMS_def.mof into the CIMv2\SMS namespace. The classes in the CIMv2 namespace are called data classes because they contain the data that the Hardware Inventory Client Agent collects. The instances in the Advanced Client CCM\policy\machine\actualConfig namespace are called reporting instances because those classes instruct the Hardware Inventory Client Agent as to which data classes and properties should be collected and then reported to the SMS site. The classes in the Legacy Client CIMv2\SMS namespace are called the reporting classes.
Figure 3.1 illustrates the relationships among the namespaces used by the Legacy Client hardware inventory agent. Figure 3.1 The relationships among the SMS hardware inventory namespaces and the Legacy Client hardware inventory agent
SMS_def.mof
MOFComp
Inventory Data
root\CIMv2\SMS\SMS_Class\classes
\root\CIMv2\SMS\Delta
root\CIMv2 Instances
WMI
WMI Provider
Changes to the SMS_def.mof file are propagated to all SMS clients (both Advanced and Legacy Clients) by way of the normal Legacy Client maintenance components of SMS. When the Hardware Inventory Client Agent runs, it checks whether the SMS_def.mof file has changed on the Legacy Client. If so, it uses MOFComp.exe to compile the SMS_def.mof into the root\CIMv2\SMS namespace, under the SMS_Class superclass. The Hardware Inventory Client Agent then scans the root\CIMv2\SMS namespace for classes that are flagged to be reported, and looks in the \root\CIMv2 namespace for classes with the same name. WMI provides the instances for those classes, often by using WMI Providers that work with the underlying systems, such as the operating system, to provide the data. If providers are not used to provide the data, the data is statically defined as instances for the classes. Statically defined instances are updated by scripts or programs, or by compiling MOF files.
Note
The Hardware Inventory Client Agent does not look for data classes in the \root\CIMv2 namespace in these two scenarios: u u If the class has the SMS_Namespace qualifier set to true If the Namespace qualifier has been used
Only Microsoft uses the SMS_Namespace qualifier. For more information about the Namespace qualifier, see the Using MOF Extensions with Namespaces Other Than root\CIMv2 section later in this chapter.
The Hardware Inventory Client Agent compares the collected data with the data in the \root\CIMv2\SMS\Delta namespace to determine what data has changed and therefore should be reported. If a full inventory is requested, as with a resynchronization request, all the collected data is reported. The inventory data is then provided to the Legacy Clients copy queue manager, which uploads the data to a client access point (CAP) at each of the clients assigned sites (if they have hardware inventory enabled). For the Advanced Client, inventory data is sent up the SMS hierarchy to the assigned management point.
MOFs that store static data must do two things: 1. 2. Define the data class. Define the data (instances), as in this example:
#pragma namespace ("\\\\.\\root\\CIMv2") class Static_MOF { [key] string user; string office; string phone_number; }; instance of Static_MOF { user = "John Smith"; office = "Building 4, Room 26"; phone_number = "(425) 707-9791"; }; instance of Static_MOF { user = "Denise Smith"; office = "Building 4, Room 26"; phone_number = "(425) 707-9790"; };
After you edit the MOF file on the client computer to enter the data, the file must be compiled by using the Mofcomp.exe command, as in this example:
Mofcomp.exe <path>\SMS_def.mof
You can edit and compile the file repeatedly, but because it is a manual process, you might not want to use this process for data that changes frequently. Also, SMS_def.mof must be extended to include a reporting class for the collected data. For example, add the following MOF to SMS_def.mof:
#pragma namespace ("\\\\.\\root\\CIMv2\\sms") [ SMS_Report (TRUE), SMS_Group_Name ("Static AssetInfo MOF"), SMS_Class_ID ("MICROSOFT|Static_MOF|1.0")] class Static_MOF : SMS_Class_Template { [SMS_Report(TRUE), key] string user; [SMS_Report(TRUE)] string office; [SMS_Report(TRUE)] string phone_number; };
Also, SMS_def.mof must be extended to include a reporting class for the collected data. After you edit the MOF file to enter the data, the file must be compiled using the MOFcomp.exe tool. You can edit and compile the MOF file repeatedly, but because the data is automatically collected, you would do this only to correct errors with the MOF. The examples in the Common MOF Extensions section later in this chapter are all examples of MOF extensions for dynamic data. Adjusting an example to serve your needs might be easier than reading the relevant WMI SDK documentation.
The Hardware Inventory Client Agent on the Advanced Client can access namespaces other than root\CIMv2 by using a reporting class qualifier. When defining your MOF extensions, add the Namespace qualifier to your hardware inventory rules. The following example demonstrates using the Namespace qualifier:
#pragma namespace ("\\\\.\\root\\CIMv2\\sms") [SMS_Report(TRUE), SMS_Group_Name("Registered GUIDs"), SMS_Class_ID("Microsoft|Registered GUIDs|1.0"), Namespace("\\\\\\\\.\\\\root\\\\WMI")] class RegisteredGuids : SMS_Class_Template { [SMS_Report(TRUE), key] string InstanceName; [SMS_Report(TRUE)] boolean Active; [SMS_Report(TRUE)] uint32 GuidType; [SMS_Report(TRUE)] uint32 LoggerId; [SMS_Report(TRUE)] uint32 EnableLevel; [SMS_Report(TRUE)] uint32 EnableFlags; [SMS_Report(TRUE)] boolean IsEnabled; };
u u
u u u
The reporting class must be based on the SMS_Class_Template class. The SMS_Class_Template clause, as illustrated in the example MOFs, ensures this. Providers must be defined only once in a MOF. If you merge MOFs, remove redundant hardware inventory rules. When creating reporting hardware inventory rules, consider using the data class definition as a starting point. Use Wbemdump.exe or MOF Generator in CIM Studio to export the data class definition to a MOF file. Both of these tools are included in the Windows Management Instrumentation SDK. Then edit that MOF file to put the class in the CIMv2\SMS namespace and add in the qualifiers that SMS requires. Use SMS_def.mof as your source for examples. Test MOF extensions on individual clients in a lab environment before deploying more broadly. This testing allows you to ensure the MOF accomplishes exactly what you want. You should watch to ensure that the MOF does not return too much data. However, the reporting class changes must be added to the site-wide SMS_def.mof. Otherwise, the site does not load the data. Your testing should be done in your test lab before being deployed on any clients in the production environment. For clients that fail to return data for the extension you create, use Wbemtest.exe or CIM Studio, as described in Appendix B, Windows Management Instrumentation, to ensure that the data class contains instances. If the data class does not contain instances but should contain extensions, correct the problem with the data class part of your extension. On the Legacy Client, review the Hinv32.log on any clients that fail to return data for your hardware inventory extension. A CLASS - Process Class: line should be listed for your extension, and there should be no error messages related to your class after it. If you do see error messages, correct the problem with the reporting class part of your extension. On the Advanced Client, review the Inventoryagent.log file. In particular, look at the Inventory: Query = lines.
The data class you create does not have any SMS-specific requirements. Create the data class by using the documentation for the provider that provides the class data, the WMI SDK, and any other WMI documentation. The WMI registry provider has three variations, as instance, property, and event providers. Use the variant that is appropriate for your requirement. The Power_Mgmt MOF in the Finding Computers That Are Laptops section later in this chapter is an example of a registry property provider MOF. The Hotfixes MOF in the Finding Hotfix Information section later in this chapter is an example of a registry instances provider. The registry instances provider is appropriate when you need to collect an unpredictable but consistently formatted set of registry values under a predetermined registry key. But most registry entries do not fit this description. They are trees of keys that have predictable names and inconsistent data types or names. For more information about the WMI registry provider, see the WMI SDK.
Ensure that all reporting classes are included in the SMS_def.mof. Data for reporting classes that are only defined at the Advanced Clients is ignored at the site server.
Scripted Extensions
Some details are difficult or impossible to collect using MIF or MOF hardware inventory extensions. In those cases, consider writing a script to collect the details using any of the many techniques available to script, and then add the details to the SMS hardware inventory. Scripts can write static or dynamic MIF or MOF files. Scripts that write MIF files use exactly the same techniques as any script that writes text files. Those techniques are well documented in many sources, so this chapter does not describe how to write scripts that write MIF files. If a script writes to a MOF file, the MOF file then has to be compiled, so it is more efficient to write the MOF data directly to WMI. The rest of this section describes how to write scripts that write to WMI. The WMI principles are the same as those described in the Common MOF Extensions section later in this chapter. Scripts that write hardware inventory extension data to WMI must do three things: 1. 2. 3. Create the data class, if it does not exist already. Collect the data. Write the data to WMI.
In addition, SMS_def.mof must be extended to include a reporting class for the collected data. For example, add the following MOF to SMS_def.mof:
#pragma namespace("\\\\.\\ROOT\\CIMV2\\sms") [SMS_ReporT(TRUE), SMS_Group_Name("Asset Wizard Results"), SMS_Class_ID("MICROSOFT|ASSETWIZARD|1.0")] class SMS_AssetWizard_1 : SMS_Class_Template { [SMS_Report(TRUE),key] uint32 Type; [SMS_Report(TRUE)] string ContactFullName; [SMS_Report(TRUE)] string ContactEmail; [SMS_Report(TRUE)] string ContactPhone; [SMS_Report(TRUE)] string ContactLocation; [SMS_Report(TRUE)] string SysLocationSite; [SMS_Report(TRUE)] string SysLocationBuilding; [SMS_Report(TRUE)] string SysLocationRoom; [SMS_Report(TRUE)] string SysUnitManufacturer; [SMS_Report(TRUE)] string SysUnitModel; [SMS_Report(TRUE)] string SysUnitAssetNumber; [SMS_Report(TRUE)] boolean SysUnitIsLaptop; };
The Microsoft Systems Management Server 2003 Software Development Kit includes a Visual Basic program, Asset Wizard, which prompts the user for various details, such as the users office number and telephone number. It then adds the details to the SMS hardware inventory. The next example adds the same details to the SMS hardware inventory, but from a script. The example illustrates all the steps to write to WMI except for collecting the data. In this example, the data is in the script itself. You can use any technique to collect the data that is supported by scripting.
Set loc = CreateObject("WbemScripting.SWbemLocator") Set WbemServices = loc.ConnectServer(, "root\CIMv2") On Error Resume Next Set WbemObject = WbemServices.Get("SMS_AssetWizard_1") 'If this call failed, we need to make the SMS_AssetWizard_1 data class If Err Then 'Retrieve blank class Set WbemObject = WbemServices.Get 'Set class name WbemObject.Path_.Class = "SMS_AssetWizard_1" 'Add Properties (8 = CIM_STRING, 11 = CIM_BOOLEAN) WbemObject.Properties_.Add "Type", 19 WbemObject.Properties_.Add "ContactFullName", 8 WbemObject.Properties_.Add "ContactEmail", 8 WbemObject.Properties_.Add "ContactPhone", 8 WbemObject.Properties_.Add "ContactLocation", 8 WbemObject.Properties_.Add "SysLocationSite", 8 WbemObject.Properties_.Add "SysLocationBuilding", 8 WbemObject.Properties_.Add "SysLocationRoom", 8 WbemObject.Properties_.Add "SysUnitManufacturer", 8 WbemObject.Properties_.Add "SysUnitModel", 8 WbemObject.Properties_.Add "SysUnitAssetNumber", 8 WbemObject.Properties_.Add "SysUnitIsLaptop", 11 'Add key qualifier to Type property WbemObject.Properties_("Type").Qualifiers_.Add "key", True WbemObject.Put_ End if On Error Goto 0 Set WbemServices = loc.ConnectServer(, "root\CIMv2") Set WbemObject = WbemServices.Get("SMS_AssetWizard_1").SpawnInstance_ ' Store property values (the data!) WbemObject.Type = 0 WbemObject.ContactFullName = "John Smith" WbemObject.ContactEmail = "JSmith" WbemObject.ContactPhone = "(425) 707-9791" WbemObject.ContactLocation = "Redmond" WbemObject.SysLocationSite = "Campus"
(continued)
(continued)
WbemObject.SysLocationBuilding = "24" WbemObject.SysLocationRoom = "1168" WbemObject.SysUnitManufacturer = "Dell" WbemObject.SysUnitModel = "GX1" WbemObject.SysUnitAssetNumber = "357701" WbemObject.SysUnitIsLaptop = False 'WMI will overwrite the existing instance WbemObject.Put_
u u u
If you remove a hardware inventory extension, you might want to remove these entries. To remove the client-side classes, remove the reporting hardware inventory rules from SMS_def.mof and use the deleteclass pragma to remove the data and reporting classes on the clients like this:
#pragma namespace("\\\\.\\root\\CIMv2") #pragma deleteclass("Static_MOF", NOFAIL)
Caution
Do not remove the data class if your hardware inventory extension did not create it. Do not remove the data class data if the data is dynamic and can be deleted. (If the provider, such as the Registry provider, does not support deletion, your attempt to delete the data is ignored.)
#pragma namespace("\\\\.\\root\\CIMv2\\sms") #pragma deleteclass("Static_MOF", NOFAIL)
If you have only Advanced Clients in your SMS hierarchy, you can remove the reporting class by removing it from the SMS_def.mof at each SMS site. SMS automatically removes the relevant reporting policies from the Advanced Clients, so the classes are no longer reported.
To remove the tables on the SQL Servers, use Delgrp.exe from the Microsoft BackOffice 4.5 Resource Kit on each of the primary sites. To remove the tables on many site servers, you can distribute the Delgrp.exe tool (with appropriate parameters) by using SMS software distribution. An example of a command using Delgrp.exe is:
Delgrp "MICROSOFT|STATIC_MOF|1.0"
The server-side classes are automatically removed as soon as the SQL Server tables are removed. You can make changes to a hardware inventory extension by removing the previous extension, and then implementing the extension with the changes. You can also make changes without removing the previous extension, but if any data has been collected with the previous extension, the new extension causes new class and table names to be created. The old data is purged by the SMS site database maintenance tasks, but in the meantime, both sets of data are available, possibly causing confusion.
u u
Win32_ComputerSystem.Manufacturer. If you purchase your laptops from a different vendor than your desktop computer and server vendor, this value might reliably identify your laptops. This class and property are enabled for reporting by default. Win32_ComputerSystem.Model. You might need to check for a variety of different models to include all of your laptops. This class and property are enabled for reporting by default. Static record. You could define your own property in a MIF or MOF and set it when the computer is originally set up for use in the production environment. Power scheme. Laptops usually use the Portable/Laptop power scheme (number 1). This is a registry entry, so you can use the following MOF to collect power scheme data, which uses the WMI property registry provider:
#pragma namespace("\\\\.\\root\\CIMv2") // Registry property provider instance of __Win32Provider as $PropProv { Name ="RegPropProv" ; ClsID = "{72967901-68EC-11d0-B729-00AA0062CBB7}"; ImpersonationLevel = 1; PerUserInitialization = "FALSE"; }; instance of __PropertyProviderRegistration { Provider =$PropProv; SupportsPut =TRUE; SupportsGet =TRUE; }; [DYNPROPS] class Power_Mgmt { [key] string index = "current"; sint32 CurrentPowerPolicy; }; [DYNPROPS] instance of Power_Mgmt { [PropertyContext("local|HKEY_CURRENT_USER\\Control Panel\\PowerCfg|CurrentPowerPolicy"), Dynamic, Provider("RegPropProv")] CurrentPowerPolicy; };
u u u
Note
If you have only Legacy Clients you can include the previous MOF directly in the SMS_def.mof. In this scenario, remove the registry provider definition because it is already defined in SMS_def.mof.
Many Windows hotfix installations are recorded in the registry. SMS collects the values from those registry keys using the following MOF:
#pragma namespace("\\\\.\\root\\CIMv2") // Instance provider instance of __Win32Provider as $InstProv { Name = "RegProv" ; ClsId = "{fe9af5c0-d3b6-11ce-a5b6-00aa00680c3f}" ; }; instance of __InstanceProviderRegistration { Provider = $InstProv; SupportsPut = TRUE; SupportsGet = TRUE; SupportsDelete = FALSE; SupportsEnumeration = TRUE; }; [dynamic, provider("RegProv"), ClassContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Hotfix") ] class HotFixes { [key] string QNumber; [PropertyContext("Installed")] uint32 Installed; };
This example demonstrates using the WMI registry instance provider. The Add or Remove Programs example in the SMS_def.mof is also an example that demonstrates using the WMI registry instance provider. Also, add the following MOF to SMS_def.mof:
#pragma namespace("\\\\.\\root\\CIMv2\\sms") [SMS_Report(TRUE), SMS_Group_Name("Hotfixes"), SMS_Class_ID("MICROSOFT|HOTFIXES|1.0")] class HotFixes : SMS_Class_Template { [SMS_Report(TRUE),key] string QNumber; [SMS_Report(TRUE)] uint32 Installed; };
Note
Although the example provided in this section applies to hotfixes, you might be able to apply the same methodology to other software and tools released to customers between major software release dates. This includes security patches, critical updates, service packs, and other interim updates. For more information, see your program documentation.
For those hotfixes that do not modify this registry key, you can modify your hotfix installation procedure to add this registry entry. The registry instance provider is useful when the registry keys you are collecting have: u u u u A known parent registry key in the registry. Consistent value names. An unknown number of instances. Key names that are not known ahead of time.
Note
This example is included to illustrate the instance version of the WMI Registry Provider. For reporting on hotfixes, consider using comprehensive solutions available from Microsoft, including SMS Feature Packs.
The WMI registry property provider cannot be used to collect such registry values because the registry property provider requires that the key names be known at the time the MOF is created, and that the number of instances is also known. The primary benefit of the WMI registry property provider is that registry entries from different locations in the registry can be combined in the class.
(continued)
(continued)
class Win32_Product : SMS_Class_Template { [SMS_Report(TRUE), key] string IdentifyingNumber; [SMS_Report(TRUE), key] string Name; [SMS_Report(TRUE)] string Vendor; [SMS_Report(TRUE), key] string Version; [SMS_Report(TRUE)] string PackageCache; [SMS_Report(TRUE)] string InstallDate; [SMS_Report(TRUE)] string InstallLocation; };
The Windows Installer data classes are predefined in the CIMv2 namespace, so you do not need to define the data class.
(continued)
(continued)
{ Provider = $DataProv; SupportsPut = True; SupportsGet = True; SupportsDelete = True; SupportsEnumeration = True; QuerySupportLevels = {"WQL:UnarySelect"}; }; [union, ViewSources{"Select * from MSSQL_Database"}, ViewSpaces{"\\\\.\\root\\MicrosoftSQLServer"}, Dynamic : ToInstance, provider("MS_VIEW_INSTANCE_PROVIDER")] class SQL_Databases { [PropertySources("Size") ] sint32 Size; [PropertySources("SQLServerName"), key ] string SQLServerName; [PropertySources("Name"), key ] string Name; [PropertySources("SpaceAvailable") ] sint32 SpaceAvailable; };
This MOF demonstrates how to collect data from WMI namespaces other than CIMv2 on Legacy Clients. Similar MOFs can collect management information about Microsoft Exchange, Microsoft Office, and many other systems that have WMI providers that populate their own namespaces. Collecting data from namespaces other than CIMv2 on Legacy Clients is done using the WMI View Provider to create a view class in the CIMv2 namespace based on the class of interest in the other namespace. For more information about the WMI View Provider, see the WMI SDK. For more information about the collecting data from namespaces other than CIMv2 on Advanced Clients, see the Using MOF Extensions with Namespaces Other Than root\cimv2 section earlier in this chapter.
C H A P T E R
Note
All predefined collections and queries that come with SMS 2003 are based on unauthenticated client discovery data, not on inventory data.
Chapter 17, Discovering Resources and Installing Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide, introduced the concepts of resources and resource discovery. This chapter describes how to manage your SMS resources using collections and queries.
In This Chapter
u u Working with Collections Working with Queries
Understanding Collections
Collections are sets of resources that are grouped together because they satisfy one or more rules. You can use collections to group resources in a logical order instead of the physical order of groups such as sites. Collections also provide a manageable view into the SMS site database by partitioning the data into useful categories. Collections gather resources according to userdefined criteria. You define and set membership rules for each collection. Membership rules are the criteria by which SMS determines whether a resource is a member of a particular collection. A membership rule is based on one of the following: SMS query You can create membership rules based on a query (query rules). The resources returned from the query become members of the collection. Specific resource or group You can create membership rules that target individual resources, such as a list of users, user groups, or SMS clients (direct rules). The targeted resources become permanent members of the collection. By targeting individual resources, you can gather a diverse group of resources.
Note
When you create a collection based on a query, SMS imports the query statement and stores it along with the other information about the collection. If you subsequently modify the query, the collection is not automatically updated. To update the collection, you must re-import the modified query statement.
After you set the membership rules for a collection, you can use the collection as a target for software distribution and other management tasks. A resource can be a member of as many collections as you think are appropriate. You can define the rules for collections at any time. You do not need to wait until resources are discovered.
Note
Updating a collection membership list does not automatically refresh the view of the collection in the details pane of the SMS Administrator console. Instead, an hourglass appears next to the name of the collection in the console tree as a reminder to refresh the view. To refresh the view of an updated collection, select the collection and press F5.
When hardware and software configurations on individual computers change, SMS removes those computers from collections or adds new computers to collections according to the membership rules of the collections. By keeping collections current, SMS ensures that your software distributions always go to all the computers that meet your collection criteria, including those computers that were added to the network after you created the collection. In a similar manner, if a computer no longer meets the criteria for a collection, then it no longer receives software targeted to that collection. For example, if a computer is moved to a different group or no longer has the minimum free disk space specified in the collection criteria, it might be removed from the collection.
Note
Some predefined collections and queries found in SMS 2.0 are not present in SMS 2003.
u u
In this way, Northwind Traders can group their clients and servers by physical location in a manner that is most efficient for their network. At the same time, by creating collections that match their management structure, they can allow the administration to be based on logical rules instead of physical location. They also increase the security of each department by organizing them in this way.
Subcollections
In addition to resources, collections can contain other collections, which are called subcollections. Subcollections are not members of the containing collection. A collection can be a subcollection of multiple collections. This is important because it means that multiple instances of a collection can appear throughout the hierarchy. This also means that you can delete one instance of a collection and still have other instances of that same collection appear elsewhere as subcollections. Subcollections do not inherit the attributes of the parent collection. Membership rules of collections and subcollections are completely separate. The query that creates a collection is completely separate from the query that creates the subcollection. Subcollections function in the same way as nested distribution lists within an e-mail system. The nested distribution list has its own identity and is simply a convenient way of gathering the diverse set of groups that form the distribution list. In the same way, subcollections are a convenient way to gather several diverse groups of resources into a single group to be acted on in some way.
Any operation that you can perform on a collection you can also perform on its subcollections. If collection A contains collection B as a subcollection, then operations that you performed on collection A also can be performed on collection B. For example, software advertised to collection A also can be advertised to collection B, and to any subcollections of collection B. You can create a subcollection in two ways: u u By creating a new collection under an existing collection. By linking a collection to another existing collection.
Note
When you create a linked collection at a child site by specifying a collection propagated from a parent site, the linked collection cannot be removed at the child site because it is locked. However, you can delete the linked collection at the parent site, which also deletes all instances of the collection at the child site.
It is possible for you to add new resource classes on a parent site and not add those same resource classes on its child sites. You then can create a collection on the parent site with membership rules that define resources within the extended resource classes. When such collections are propagated down to a child site that does not also contain the extended resource classes, the collection still runs. It returns all resources defined by the membership rules for resource classes that are found on the child site. However, because such collections contain membership rules that are not evaluated by the child site, SMS generates a detailed status message for each such rule and a milestone status message at the end of the collection evaluation. These messages are generated only once per day for each such collection. Secondary child sites receive the list of collection members that belong to their secondary sites, but they do not receive membership rules because they do not maintain a site database. When a primary site collection is re-evaluated, the primary site sends updated membership lists to its secondary sites to replace outdated lists.
Collection Limiting
Collection limiting is a method of restricting the scope of a query or a collection membership rule. A query that is limited to a collection only returns resources that are in the specified collection, even if other resources in the SMS site database match the query criteria. While collection limiting can be used to filter query results, it is most often used as part of resource security. You might have a requirement to limit the permissions of some administrators to work with only a specific group of resources. You can do this by creating a collection or collections that contain the targeted resources, and then specifying the permissions so that the administrators can manage only a specific collection or collections. In previous versions of SMS, to view instances of a secured resource, a user had to limit to a collection for which they had instance-level Read permission. To view inventory, or inventory history, a user had to limit to a collection for which they had Read Resource permission. If the user did not specify collection limiting, they did not see any results. SMS 2003 uses automatic collection limiting. Although you can still explicitly specify collection limiting, if you do not, then SMS 2003 limits the resources that are returned to members of all collections for which the user has appropriate rights. If a user queries against resources and collection limiting is not specified, then the user sees only those resources that are members of collections to which the user has Read permission. If a user queries against inventory data, the user sees only the inventory for resources that belong to collections to which the user has Read Resource permission.
2. 3.
Right-click Collections, point to New, and then click Collection. In the Collection Properties dialog box, use the tabs to complete the property settings for your new collection.
For more information about creating a new collection, see the SMS Help.
Note
You cannot create a new collection with the same name as an existing collection.
To modify a collection
1. 2. 3. In the SMS Administrator console, navigate to Collections. Right-click a collection, and then click Properties. In the <Collection name> Collection Properties dialog box, change the appropriate properties.
For more information about creating a new collection, see the SMS Help. If you modify membership rules, SMS prompts you to update the resource list of the collection. If you target a collection for an advertisement, and then subsequently modify the membership rules for that collection, it affects the software distribution to the clients in that collection. Clients that are removed from the collection do not receive the advertisement. New clients do receive the advertisement.
Creating Subcollections
By creating subcollections, you can include or exclude the subcollections in a given operation on the collection. For example, when you create an advertisement that specifies a collection that has subcollections, you can decide whether or not to distribute to each of the subcollections. You can create a subcollection in two ways: u u 1. 2. 3. By linking the collection to another existing collection By creating a new collection under an existing collection In the SMS Administrator console, navigate to Collections. Right-click the collection for which you want to create a subcollection, point to New, and then click Link to Collection. In the Browse Collection dialog box, select the collection that you want to add as a subcollection.
Note
After you create subcollections, when you view Collections in the SMS Administrator console tree, the same collection name appears in more than one place. In each instance, the name refers to the same collection.
Deleting a Collection
You can delete collections by using the SMS Delete Collection Wizard; however, when you delete a collection: u u u u Resources in the collection are not deleted from the SMS site database. SMS administrators whose security rights are limited to the resources in the deleted collection can no longer view those resources. Advertisements to the collection are deleted. Queries and query-based membership rules that are limited to the collection are no longer limited. Queries that are no longer limited to collections do not prompt you for a limiting collection when run. Singularly dependent subcollections of the collection are deleted. For more information, see the Subcollections section earlier in this chapter.
Note
A collection can be a subcollection of multiple collections. This is important because it means that multiple instances of a collection can appear throughout the hierarchy. If you delete one instance of a collection, other instances of that collection might still appear elsewhere as subcollections.
The wizard cautions you about the effects of deleting a collection and provides information about the objects listed earlier in this section.
To export collections
1. In the SMS Administrator console, navigate to Collections and right-click Collections. Or In the SMS Administrator console, navigate to Collections and right-click the collection that you want to export. 2. 3. Point to All Tasks, and then click Export Objects. Complete the Export Object Wizard, and then click Finish.
For more information about completing the Export Object Wizard, see the SMS Help.
To import collections
1. 2. 3. In the SMS Administrator console, navigate to Site Database. Right-click Site Database, point to All Tasks, and then click Import Objects. Complete the Import Object Wizard, and then click Finish.
For more information about completing the Import Object Wizard, see the SMS Help.
Caution
Do not import a collection with a name that is the same as the name of an existing collection. If you do so, the properties of the existing collection are replaced without warning. To avoid this, you can open the MOF file by using any text file application and check the object names against the name of existing objects in the SMS site database.
When you update a collection on demand, the resource list for the collection is updated, and SMS also sends the collections definition down to any child sites to be updated. Updating all collections on demand might decrease system performance during the process.
Note
To display all resources for each collection in the details pane, enter 0 in the Limit box.
Deleting a Resource
Sometimes resources are no longer needed in collections, and it might be useful to delete them.
Caution
When you delete a resource from a collection, all information about the resource is removed from the SMS site database, including all discovery, inventory, and history data. The resource is also deleted from all other collections that it is a member of. This results in the client being unmanaged. Advanced Client policy is not removed, so Advanced Clients might continue running SMS tasks and might report status to their assigned management point.
A deleted resource might be rediscovered and, if it still meets the membership rules, be added back to the collection.
To delete a resource
1. 2. 3. 4. In the SMS Administrator console, navigate to Collections. Double-click the collection containing the resource you want to delete. Right-click the resource and click Delete. In the Confirm Delete dialog box, click Yes to confirm the deletion of the resource.
Note
If the deleted collection is large, and if the resources still exist and are rediscovered, this could take some time and might decrease system performance during the process.
Caution
When you delete a resource from a collection, all information about the resource is removed from the SMS site database, including all discovery, inventory, and history data. The resource is also deleted from all other collections that it is a member of.
Most of the queries that you create are based on the discovery class SMS_R_System and on the set of inventory classes that begin with SMS_G_System. The SMS_R_System class contains discovery data for all discovered SMS system resources, such as clients, printers, routers, users, and user groups. This class includes properties (attributes) such as IPAddress, OperatingSystemNameandVersion, and Name (system name). The set of SMS_G_System classes contain inventory data for the same SMS resources, such as the SMS_G_System_LOGICAL_DISK attribute class. This class contains information about a clients logical disk drive, such as Availability, Name, FileSystem, and FreeSpace. The ResourceID property links the SMS_R_System class and the SMS_G_System classes. If you configure hardware inventory on your SMS site, the Hardware Inventory Client Agent gathers information about the hardware on each client. If you configure software inventory, the Software Inventory Client Agent collects information about specific file types and collects the files you specify. SMS passes this information through the client access point (CAP) or management point to the site server and incorporates hardware and software information into the SMS site database. When the data is available, you can use a query to obtain data from the SMS site database about clients that meet certain criteria; for example, all clients that have less than 256 MB of RAM installed.
When you create a query by using the SMS Query Builder, you can use the attributes of only one SMS object type at a time. By default, the System Resource object type is selected. You can use the <unspecified> object type to query against more than one SMS object type at a time. For more information, see the Creating Queries Against Multiple SMS Object Types section later in this chapter. The following are brief descriptions of SMS object types that are available for building queries: Advertisement This object type consists of a single attribute class with attributes representing the data in an SMS advertisement. SMS advertisements are used to alert users that software distributions are available. Package This object type consists of a single attribute class with attributes representing the data in an SMS package. Packages are basic units of software distribution, including programs and the source files required to run them. Program This object type consists of a single attribute class with attributes representing the data in an SMS program. Programs are software distribution command lines that install the software or that run the program or command. Site This object type consists of a single attribute class with attributes representing an SMS site object. Software metering rule This object type consists of a single attribute class with attributes related to product compliance. This object can help you to enforce product compliance by identifying clients that are not in compliance. System resource This object type consists of many attribute classes that together characterize the discovery and inventory data of a system resource (a networked client). Discovery data consists of a single attribute class called System, and the inventory data consists of the other classes of the System Resource object type, such as Logical Disk. User group resource This object type consists of a single attribute class representing the discovery data for User Group objects. User resource This object type consists of a single attribute class representing SMS users in an SMS hierarchy. Unspecified When you do not specify an object type, you can only create a query by using WQL in the Query Language view. This can be useful for creating free-form WQL queries to run against classes other than those listed above, or to run against more than one SMS class. For more information about SMS object classes, attributes, and properties, see the Microsoft Systems Management Server 2003 Software Development Kit. Another way to understand the SMS classes is to browse them, as described in Appendix B, Windows Management Instrumentation. You can also create new object types, also called classes, and attributes that you can use for queries. For more information, see Chapter 2, Collecting Hardware and Software Inventory.
Note
Only resource-related object types, such as System Resource, User Resource, and User Group Resource, can be limited to a collection or used to create a query-based membership rule for a collection. For more information about limiting a query to a collection, see the SMS Help.
Attribute class This element is a container object that groups related attributes. The attributes of an object type are organized into one or more attribute classes. The attribute classes that you can select include all attribute classes belonging to the object type for the current query. In the Select Attribute dialog box, which is described later in this chapter, you can select from a list of attribute classes for the object type you selected for this query, and then select an attribute of that class. Attribute This element is the specific property for which the query searches. In the Select Attribute dialog box, you can select from the list of attributes for the attribute class you have chosen.
You can use this expression in a query to search for all clients in your site with more than 1.5 GB of free disk space. The SMS criterion types are: Null value Compares the query attribute to null or not null. Simple value Compares the query attribute to a constant value that you specify.
Note
In the Criterion Properties dialog box, you can click Values, and if a list of values exists for the attribute you chose, that list appears in a dialog box.
Prompted value SMS prompts you for a value when the query is run. You can use this criterion type to create a query for which you can supply a different value each time than you run it, instead of being limited to a single, static value. Attribute reference Compares the query attribute to another attribute that you specify. Subselected values Compares the query attribute to the results that are returned by another query, which you browse to specify. List of values Compares the attribute to a list of constant values that you specify. When you create a query expression using a criterion type, you compare an attribute that you specify with a value that you select. Constant values must have a data type that is appropriate for the attribute to which it is being compared. A data type defines the format of a value and the possible range of values. For example, the NetBIOSName attribute is stored as a string, and the DiskStorageSize attribute is stored as a number. There are four data types that are used by SMS: numerical, string, date/time, and parameterized. Each query attribute stores data by using one of these data types. When specifying query attributes, the criterion value that you can specify depends on the data type of the query attribute. For relational operators that perform LIKE comparisons such as is like or is not like, you can use wildcard characters within the string. For a list of the wildcards and guidelines for specifying the appropriate criterion value for each of the four data types, see the SMS Help.
Numerical operators
You must specify a numeral that the query uses to evaluate the expression. If you specify a value that is not numerical, the query fails.
By using this expression within a query, you can search for all clients on your site that have Pentium III processors and free disk space greater than 1.5 GB. This expression is shown as it appears in the Query Design view, which is not the same as the WQL statement in the Query Language view.
The logical operators permitted in SMS are as follows: AND This operator joins two expressions and finds all objects that satisfy both of the expressions joined by AND. You can use AND to narrow the list of objects you want to find. For example, you can search for all clients running Microsoft Windows 2000 Professional and that have more than 1.5 GB of free disk space. OR This operator joins two expressions and finds all objects that satisfy either of the expressions joined by OR. You can use OR to assemble more than one set of objects in a single group. For example, you can search for all clients running Windows 2000 Professional or Windows 2000 Server. NOT This operator applies to one expression and finds all objects that do not satisfy the expression following the NOT. You can use NOT to narrow the list of objects you want to find. For example, using AND with NOT you can find all clients that have Pentium III processors with 1.5 GB free disk space and do not have Windows 2000 Professional installed.
You can group a set of expressions within parentheses to make complex expressions easier to understand or to force a certain order of evaluation. For example, when more than one OR expression occurs within a complex query, use parentheses to indicate which expressions you want evaluated first. For more information about group parentheses, see SMS Help.
Working with Queries 115 select * from SMS_R_System inner join SMS_G_System_SYSTEM on SMS_R_System.ResourceID = SMS_G_System_SYSTEM.ResourceID
There are four types of attribute-class joins: Inner join Displays only matching results always used by joins that are created automatically. Left outer join Displays all results for the base attribute and only the matching results for the join attribute. Right outer join Displays all results for the join attribute and only the matching results for the base attribute. Full join Displays all results for both the base attribute and the join attribute.
Important
Join operations are an advanced function of the WQL language. Before configuring or modifying a join operation, be sure you obtain a good working knowledge of WQL syntax for various types of class joins.
2.
Right-click the query that you want to run or update, and then click Run Query. Or Select the query and press F5. The query results appear in the console details pane.
You also can run a query and limit the number of items that the query returns.
Predefined Queries
SMS 2003 includes a set of predefined queries that you can use to accomplish common resource management tasks. For example, the Systems by Last Logged On User query locates the systems where a specified user name is the last user logged on.
Note
When a site is upgraded to SMS 2003, Legacy Client Status Message Queries replace SMS 2.0 Client Status Message Queries.
For more information about Status Message Queries, see the SMS Help.
Note
You cannot create a new query with the same name as an existing query.
For more information about creating queries, see the SMS Help.
To delete a query
1. 2.
Note
To import a MOF file by using the Import Object Wizard, the file must be in the Unicode file format. All MOF files that are exported by the Export Object Wizard are in the Unicode file format.
To export queries
1. In the SMS Administrator console, navigate to and right-click Queries. Or Navigate to Queries and right-click the query that you want to export. 2. 3. Point to All Tasks and click Export Objects. Complete the Export Object Wizard, and then click Finish. For more information about completing the Export Object Wizard, see the SMS Help.
To import queries
1. 2. 3. In the SMS Administrator console, navigate to Site Database. Right-click Site Database, point to All Tasks, and then click Import Objects. Complete the Import Object Wizard, and then click Finish. For more information about completing the Import Object Wizard, see the SMS Help.
Caution
Do not import a query with a name that is the same as the name of an existing query. If you do so, the properties of the existing query are replaced without warning. To avoid this, you can open the MOF file by using any text file application and check the object names against the name of existing objects in the SMS site database.
This section describes how to create and edit query statements by using the Query Statements Properties dialog box in Query Design view.
Important
Use the Query Language view only if you have a good working knowledge of WQL. If you enter a query that is not valid (for example, one that is not syntactically correct), you will get an error message. If the query statement that you edit uses features of WQL that are not supported in the Query Design view, you cannot return to the Query Design view. However, you can still save and run the query.
For information about using WQL, see the SMS SDK and the Windows Management Instrumentation SDK, which are available from the MSDN Web site at http://msdn.microsoft.com.
4. 5.
Select the Name attribute class from the Attribute list and click OK. If you want to sort the query results by using this attribute, in the Sort list, select Ascending or Descending.
Note
Sorting and grouping of array attributes are not supported. If you select any of the following array attributes, then the results data cannot be sorted based on those attributes: u System Resource: Agent Name, Agent Site, Agent Time, IP Addresses, IP Subnets, IPX Addresses, IPX Network Numbers, MAC Addresses, Resource Names, SMS Assigned Sites, SMS Installed Sites, System Roles User Resource: Agent Name, Agent Site, Agent Time, SMS Assigned Sites Package: Icon Program: Icon
u u u
To create the criteria for the example query, perform the steps in the following procedures.
Note
There are four data types for SMS queries: numerical, date/time, string, and parameterized. Each data type has its own list of relational operators. Only the list of operators that applies to the selected attributes data type is displayed. For more information, see the SMS Relational Operators section earlier in this chapter.
Note
The SMS Provider can run out of memory while caching a large result set. To avoid this, and to maintain performance, the Query Builder limits the number of values displayed in the Values dialog box to the first 2000. You can override this by changing registry settings. For more information, see article number 269201 in the Microsoft Knowledge Base at http://support.microsoft.com.
For more information about attribute classes, attributes, and values, see the SMS Criterion Types and Values section earlier in this chapter.
Often, your query requires more than one criterion. In the previous example, the query returns all clients that have Pentium III processors. To modify the search to include those Pentium III processors that have 1.5 GB of free disk space, you must add another criterion. You can add as many criteria as you want, and each one further limits (AND, NOT) or expands (OR) the query. In the example, create a second criterion with the following properties, repeating the instructions in the previous steps if necessary: u Criterion type of Simple Value
u u u u
Attribute class of Logical Disk Attribute of Free Space Operator of is greater than Value of 1500
Choose parentheses
In the example, there are no parts of the criteria expression that require grouping. Grouping with parentheses is used to clarify the meaning of expressions and to cause the expression or expressions within the parentheses to be evaluated first. If your query statement requires parentheses, highlight the expression or expressions that you want to place within the parentheses and click the Parentheses button. By following these steps, you have created the following expression, shown as it appears on the Criteria tab in the Query Design view:
Processor.Name is like "%Pentium III%" and Logical Disk.FreeSpace (MBytes) is greater than 1500
To view the full query in the Query Language view, click Show Query Language in the Query Statement Properties dialog box. To configure the query to return only clients running Windows 2000 Professional with Pentium III processors and that have greater than 1.5 GB of free disk space, you must limit the query to the All Windows 2000 Professional Systems collection.
Note
When you limit a query to a collection, the query is limited only to the collection you specify and is not limited by any subcollections of the specified collection.
For more information about limiting collections, see the SMS Help.
C H A P T E R
Distributing Software
Chapter 3, Understanding SMS Features, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide introduced the concepts behind Microsoft Systems Management Server (SMS) 2003 software distribution, including: u u u The general benefits of automating software distribution using SMS. The major components involved in SMS software distribution. The issues that software distribution can face, and that a proper deployment of SMS can minimize.
Software distribution consists of a series of specific but flexible tasks. This chapter describes those tasks, the preparations you must make to perform the tasks, and the procedures to distribute software.
In This Chapter
u u u u u u u u Preparing to Distribute Packages Managing Packages Managing Advertisements Monitoring Software Distributions Using Software Distribution Tools and Wizards Running Advertised Programs on SMS Clients Software Distribution Common Practices Software Distribution Best Practices
2.
Right-click Advertised Programs Client Agent, and then click Properties. In the Advertised Programs Client Agent Properties dialog box, use the General tab to perform these tasks: u u To enable software distribution to clients, select the Enable software distribution to clients check box. To disable software distribution to clients, clear the Enable software distribution to clients check box.
Provide a countdown when scheduled programs are set to run On the Notification tab, you can enable a countdown dialog box when scheduled programs are about to run, and you can configure the countdown length. By default, the countdown runs for five minutes. Valid entries range from one to 60 minutes. The countdown starts at the time the advertisement is scheduled for, and the program runs when the user starts the program or when the countdown ends. Play countdown sounds On the Notification tab, you can set the system to play sounds during the countdown period. This setting applies to Legacy Clients only. Advanced Clients do not play sounds for any SMS events. Show a status icon on the notification area for all system activity On the Notification tab, you can set the notification area of the operating system taskbar to show a status icon when new advertisements are received. For more information, see the Running Advertised Programs on SMS Clients section later in this chapter.
For information about creating new CAPs and configuring CAPs, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. To add or change CAPs or distribution points, navigate to Site Systems in the SMS Administrator console.
Systems Management Server X Site Database (site code - site name) X Site Hierarchy X site code - site name X Site Settings X Site Systems
Note
SMS 2003 does not automatically create management points when you install a site. You must create management points as required to provide access to all computers running the Advanced Client.
For information about creating SMS site systems, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Note
If there is not enough space on any distribution point drive to store the package, the software distribution process stops.
On this share, each package is stored in a separate folder that is identified by the package ID number. If the drive becomes full and another drive is available, SMS automatically creates an additional distribution point share on the available drive and puts the package there.
To make it easier to identify and organize related packages, you can instead have SMS store packages in a share distribution folder, whose name you specify. To control which drive either the default or custom package folder is created on, assign the distribution point role to a server share. For more information, see the Set Package Properties section later in this chapter, and the SMS Help.
Note
Distribution point groups are useful at the site the SMS Administrator console is connected to.
If you want to use a regular set of distribution points, you can create a group of all these distribution points, and then assign packages to the distribution point group, instead of to the individual distribution points.
Note
Distribution point groups cannot be used to remove distribution points from packages or to refresh packages on distribution points.
Before you distribute software, examine all of the distribution point groups at your site, and then add or remove distribution points if necessary. Configure all of the distribution point groups you want to use at the preliminary stage of the process, and then select from existing distribution point groups when you distribute software. You can create as many distribution point groups as you need. For more information about distribution point groups, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Preparing Collections
Before you distribute software, examine all of the collections in your SMS hierarchy and adjust them if necessary. Prepare the collections you want to use at the preliminary stage of the process so you can select from existing collections when you distribute software. When you distribute a software package, you must identify the target collection of client computers, users, or groups that will receive the advertisement. Each advertisement specifies a single target collection, but you can also choose whether to distribute to subcollections of the target collection. A variety of commonly used collections is provided with SMS 2003. For optimal results, create collections that reflect how your organization organizes users, user groups, and computers for software distribution. After a collection is created, you can use it whenever it represents the appropriate target group for your package. When client computers are added, removed, or changed within sites, SMS evaluates the collections so that each collection is always current. The collection evaluations are performed on a schedule that you can modify. Changes in collections are automatically reflected in their corresponding advertisements. You will probably maintain collections for groups of computers that perform similar work. Create collections that represent specific user groups or administrative groups if they are often used as criteria for software distribution. For more information about creating and working with collections, see Chapter 4, Managing Collections and Queries.
Important
SMS 2.0 or SMS 1.2 16-bit clients that are identified by user accounts or user groups in your collections will not receive programs sent to them using the software distribution feature. Only 32-bit clients can receive software distribution programs based on user accounts and user groups.
Collections that contain query-based membership rules are evaluated at the site where they are created, and at any child sites to that site. For this reason, query-based collections are useful for guaranteeing that the advertised program is targeted to all computers that meet the criteria.
Note
Query-based collections are not appropriate for situations that require a greater degree of control. For example, if you have a limited number of licenses for a particular software application, you would not want to use query-based collections to distribute that software. Instead, you can use a collection with assigned resources for the advertisement target.
Examine each collection and subcollection. If you find a collection that includes the complete list of client computers you want to target for the distribution, you do not have to create a new collection. Otherwise, create a new collection. For more information about creating or modifying a collection, see Chapter 4, Managing Collections and Queries. To examine the properties of any collection, right-click the collection and click Properties.
Note
To create a collection, you must have Create permission for collections. To advertise a program to a collection, you must have Advertise permission for collections. For more information, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Subcollections
The organization of collections and subcollections is similar to nested distribution lists in an e-mail program. Any collection can be made a subcollection of any other collection, because the query that creates the subcollection is entirely separate from the query that creates the collection. When you create an advertisement that specifies a collection that has one or more subcollections, you can decide whether to distribute to the subcollections. For more information about subcollections, see Chapter 4, Managing Collections and Queries. To include subcollections in a software distribution, navigate to your advertisement in the SMS Administrator console.
Systems Management Server X Site Database (site code - site name) X Advertisements
Right-click the advertisement you want to modify and click Properties. u u To include members of subcollections in an advertisement, on the General tab, select Include members of subcollections. To exclude members of subcollections in an advertisement, on the General tab, clear Include members of subcollections.
Preparing Security
Before distributing software, ensure that administrators and users have sufficient rights to run the programs you advertise. For more information about permissions, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Usually, you do not have to restrict access to the package source files, but if the files contain sensitive information, package access accounts can provide greater security. Also, if you must protect the files from sophisticated users who navigate to a distribution point and run programs that have not been advertised to them, use package access accounts. You can specify the following access levels to user groups or accounts that have permission to access to the package. Table 5.2 Security Access Levels for Packages
Access level No Access Read Description Prevents the account from reading, writing, or deleting files in the package folder on the distribution point. Enables the account to view and copy files, run programs, change directories within the shared folder, and read extended attributes of files. By default, SMS grants the generic Users account a Read permission to the package folder on the distribution point. Enables the account to change the contents and extended attributes of files and to delete files. Change permission is required for applications that write information back to the package folder on the distribution point. Enables the account to write the contents and extended attributes of files and to delete files. By default, the generic Administrators account has full control so that the SMS components can access the package folder on the distribution point.
Change
Full Control
By default, SMS creates generic Users package access accounts with Read access to the package shared folder on distribution points. If you specify your own package access accounts, ensure that all users who you intend to receive the advertisement are covered by the package access accounts you specify. Client computers without access to the package directories on distribution points will fail when attempting to run the advertisement. As shown in Table 5.3, SMS creates the following generic package access accounts by default for each package. Table 5.3 Package Access Accounts
Generic account Users Administrators Read Full Control Rights
These generic package access accounts are mapped to operating system-specific accounts, and the appropriate rights on each operating system are applied to the package folder on the distribution point. Table 5.4 Package Account Rights
Generic account Users Administrators Local Users Local Admins Operating system group
Administrators can delete or modify these default access accounts. However, it is recommended that the Administrators account not be removed because it is required when SMS components update and modify the package. If you prefer not to use the generic package access accounts, you can set up your own accounts and specify one or more users or groups to be granted access to the package files on the distribution points. When the package is sent to distribution points, SMS will set security on the distribution point shared folder (...\SMSpkgdriveletter$ by default). To specify a package access account, navigate to Access Accounts in the SMS Administrator console.
Systems Management Server X Site Database (site code - site name) X Packages X package X Access Accounts
Right-click Access Accounts, click New, and then click the kind of access account you want to create. You can create an operating system access account, or create a generic access account, which is mapped to an account on each of the systems, as described previously. The generic access account option is useful if you have deleted one or more of the generic access accounts. In the Access Account Properties dialog box, set the user or user group account that is allowed to access a package on the packages distribution points.
Important
If you remove a user from a group, it is necessary for the user to log off for the security changes to take effect. Otherwise, the user will still receive the advertisement.
To delete a package access account, navigate to Access Accounts, right-click the account you want to delete, and then click Delete.
Note
This option can also fail in some cases, when the advertised program requires access to network resources other than the distribution point folder from which it is run.
Legacy Clients use the Legacy Client Software Installation account to support advertised programs on clients that require a special security context. Use this account when the advertised program meets the following criteria: u u u The program must access network resources other than the distribution point from which it was run. The program is not an application coded to use SMS or other explicit connection mechanisms. The program requires administrative rights.
You must create the Legacy Client Software Installation account manually. Because this account is used to gain access to network resources required by the programs that are part of a package, you must: u u Create the account as a domain user account. Grant the account the rights needed to access the required network resources.
You can specify the Legacy Client Software Installation Account by navigating in the SMS Administrator console tree to Site Settings, pointing to Component Configuration, and then clicking Software Distribution. Then, for programs that require this account, configure the program by selecting its Properties dialog box, clicking the Environment tab, and then clicking Use Software Installation Account.
You can specify the Advanced Client Network Access account by navigating from the SMS Administrator console tree to Site Settings, pointing to Component Configuration, and then clicking Software Distribution. Then, for programs that require this account, configure the program by selecting its Properties dialog box, clicking the Environment tab, and then clicking Use Software Installation Account.
u u u 1.
2. 3.
Right-click Software Distribution and select Properties. Use the Properties dialog box to complete these configuration tasks: On the General tab, you can set a concurrent processing thread limit for the package. By default, the processing thread limit is three, but valid entries range from one through seven threads. As you allow more threads, SMS can process more packages concurrently. For most installations, the default value is best. However, in cases where the site servers load and network bandwidth permit, you might want to increase the number of threads.
Note
Only one package will be compressed at a time, and only one will be decompressed at a time.
Note
Retries can generate significant network traffic. Generally, the lighter the network traffic, the more often you can set the number of retries.
Set the number of retries for updating CAPs and management points
On the Retry Settings tab, you can set the number of retries for the Advertisement Manager to distribute advertisements and package information to CAPs and management points. The available settings are the same as those for distributing package source files to distribution points.
Managing Packages
Every package consists of three tasks that you must create and manage: the package definition, the program that carries out the package tasks, and the process of distributing the packages to distribution points that are accessible by SMS clients that need to run the program that is targeted to them. This section describes the following three tasks: u u u Creating and managing packages Creating and managing programs Distributing packages
2.
Managing software distribution packages includes the following procedures: u u u Creating package source directories Creating a new package Creating a setup script
u u
Note
To create a package, you must have Create or Administer permissions for Packages.
Package Compression
SMS automatically compresses package source files when it sends the package to other SMS sites. By default, files distributed within the originating site are not compressed. When compressed packages are set to other sites, the other sites decompress the package, and then distribute it to the distribution points. If the source files are on removable media such as CDs you can have SMS create a compressed version of the source files. SMS stores the compressed file and uses it instead of the original source files as a source for distribution. To create a compressed version of the source files for your package, navigate to the package you want to compress from the SMS Administrator console. Right-click the package and select Properties. Click the Data Source tab and enter the source folder, if one has not already been specified. Then select Use a compressed copy of the source directory.
Caution
Changing the data source between using a compressed copy or the source folder for an existing package causes the package to be updated on the sites distribution points. Copies of the package at distribution points at child sites are not updated. If the files in the data source have changed in any way, the hash value used for the package will not match the hash value for copies that Advanced Clients download from those child sites. Those Advanced Clients will not be able to run the advertised programs that use the package. If you change the data source and the package files might have changed, and you must update all distribution points before changing the package data source.
Caution
Do not specify a folder on a distribution point shared folder as a package source folder. This can cause an infinite loop of processing, resulting in excessive server load and possibly excessive network load. It will also cause the package source to be lost if the distribution point is removed.
You can also specify that the package be regularly updated on the distribution points.
Important
If you schedule weekly updates and you choose a day of the week, ensure that your start date matches the day of the week you choose. This helps ensure successful scheduling.
Specify the shared folder for package source files on the distribution point (optional, and applicable if there are package source files) To specify whether to access the distribution folder through the common SMS package shared folder, or to specify your own shared folder name for this package, change the settings in the Data Access tab. When packages are stored in the common SMS package shared folder, each package is stored in a separate folder under this shared folder and is identified by its package ID number.
To make it easier to organize and track packages on distribution points, and to access the packages through means other than SMS, you can specify that SMS store a package in a shared distribution folder. Then you can create a hierarchy of directories to store related packages. For the shared folder name, you can assign either a shared folder that is unique among all packages, or a shared folder and a path, where the path must be unique among all packages. Table 5.5 Examples of Shared Folder Names
Shared folder name\shared folder and path name Windows 2000 Windows 2000\Windows 2000 Server SP3 Windows 2000\Windows 2000 Professional Resulting path on distribution point \\Dpservername\Windows 2000 \\Dpservername\Windows 2000\Windows 2000 Server SP3 \\Dpservername\Windows 2000\Windows 2000 Professional
To control which drive the default or custom package folder is created on, assign the distribution point role to a server shared folder instead of a server. For distribution points on server shared folder, if a shared folder name is entered for a package, it is treated as a path beneath the distribution point shared folder (\\MyServer\MyShare). Table 5.6 Examples of Package Shared Folder Names for Windows 2000
Package shared folder name Windows 2000 Windows 2000 Server SP3 Resulting path on distribution point \\MyServer\MyShare\Windows 2000 \\MyServer\MyShare\Windows 2000\ Windows 2000 Server SP3
Note
Any shared folder name (or shared folder name and a path name) you create can be up to 64 characters, including backslashes (\).
Specify how to handle connected users at update time (optional) On the Data Access tab, you can specify: u Whether and how to disconnect all users from distribution points when package source files on those distribution points are updated. Not disconnecting users can lead to SMS not being able to update any distribution files that are open. However, disconnecting users can cause the user activities to fail. How many times SMS tries to update the package source files before disconnecting users. Whether to give users a grace period before they are disconnected.
u u
Disconnecting users at update time ensures that advertised programs that have started running do not use a combination of files from the original version of the package and the updated version of the package, which could have unpredictable results. However, disconnecting users while an advertised program is running will cause that advertised program to fail. The users that must be disconnected from the shared folder are sent a popup message warning them that they should stop using the distribution point. They are also notified when the update is completed so that they can resume using the distribution point. However, a user on the site server is not notified.
Note
Windows XP client computers do not get the notification of the disconnect.
Users on Advanced Clients that are downloading the advertised program to their download cache before implementation do not run a downloaded package that contains both original and updated files. If Advanced Client receives a new download SMS policy for the updated package, the current download of content is stopped, and a new download of content is started based on the new policy. If the Advanced Client does not receive a new download SMS policy, the download finishes but is rejected because a hash check will show that the downloaded package is not the same as the package that should have been downloaded. Specify sending priority and preferred sender (optional) When packages are distributed between sites, you must use senders. Senders are SMS thread components that use an existing connectivity system to communicate with other sites. Use this option to choose a sending priority and a preferred sender. To set this option, use the Distribution Settings tab. For most installations, the default settings are best. However, if your package is very large or if a specific sender is faster or more convenient, designate a particular sender. For example, the Standard Sender handles large packages much more efficiently than a RAS sender does. For more information about senders, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. Set up Status Reporting (optional) Use the Reporting tab to specify custom values used to match advertisements of programs from packages with their installation status Management Information Format files. Installation status Management Information Format files (MIFs) are generated by software distribution programs to supply information about the success or failure of their installation on 32-bit clients.
SMS clients, or programs distributed with SMS software distribution, typically generate installation status MIFs using the package details from the General tab. However, if the programs distributed with SMS software distribution create status MIFs that include name, version, or other values that do not match the values from the General tab, you must specify those values in the Reporting tab. If the installation status MIFs cannot be matched to values specified on the General or Reporting tab of any packages, the MIFs will be discarded, and you will not be able to determine the status of those advertisements.
2.
Right-click the package and click Properties. Use the package Properties dialog box to change the settings described in the Set Package Properties section earlier in this chapter.
Note
To modify a package, you must have Modify or Administer permissions for packages.
Delete a Package
When packages are no longer needed, delete the package to leave space for new packages. When you delete a package: u u u u u All the programs within the package and all the advertisements for the package are also deleted. The package source files are deleted from the distribution points. Any compressed versions of the package source are deleted. Any package access accounts you have created specifically for the package are deleted. SMS security rights to the package are deleted.
After a package is deleted, new users or client computers joining the site will no longer receive notification or be able to run advertisements that reference programs in the package. If there is a chance that new users or client computers can use the advertisement and install the software, it makes sense to keep a packages programs advertised and on the distribution points until the programs are retired or replaced.
To delete a package
1. From the SMS Administrator console, navigate to Packages.
Systems Management Server X Site Database X Packages
2. 3.
Right-click the package you want to delete, and then click Delete. Complete the Delete Package Wizard.
Note
To delete a package, you must have Delete or Administer permissions for packages.
When you remove a distribution point from the list, the distribution points copy of the package source files is automatically deleted.
u u
To perform any of these tasks, navigate to Programs under the package you want to associate with the program in the SMS Administrator console.
Systems Management Server X Site Database (site code - site name) X Packages X package X Programs
General tab
On the General tab, you can set any of the following options that apply to your package: Identify the program (name required) Name the program, and optionally, write a comment or select an icon for it. Users can view the comment, so the comment can include any information relevant to users. For example, you might include a comment instructing users to call the help desk if they have any questions about the program. You can use the programs icon to allow users to quickly find the advertisement in a list of available advertised programs. You can also define a convention to use certain icons for certain kinds of advertised programs (such as tasks, applications, system software, or other categories). Command Line (required) Specify the programs command line. This field can contain up to 255 characters. You can type in the command line or browse to the file you want to run. When a program is run on a client computer, SMS first searches the package source files for the file in the programs command line. If the file is not found or if the package does not contain source files, SMS uses a defined set of search paths in order. The command line can be a Windows Installer package, in which case Windows Installer runs the package. The command line can also be any file name with a valid file extension. Any command line parameters in the command line are applied to the program that is used to run the file.
The command line does not: u u u u u Use Dynamic Data Exchange (DDE). Apply security policy restrictions that would otherwise prevent files from being run using their file extension associations (such as .vbs). Use shell extension handlers. Open shortcut files or URLs. Run commands that are intrinsic to the operating system command prompt. For example, copy is not a valid SMS program command line. However, such commands can be included in a batch file, and the batch file can be used as the command line.
Start In (optional) Specify a folder to start the program in. By default, the path of the distribution folder on the distribution point is added to the front of the folder path. You can also specify a full path or a fully qualified name of a remote folder. If an absolute path is specified, it must exist on or be accessible by every targeted client computer, or the program will fail. Run (optional) Set the mode in which the program is run. Choose Normal, Minimized, Maximized, or Hidden. By default, the program runs in Normal mode. Normal, Minimized, and Maximized are the display size. Hidden means that no window is displayed for the advertised program. After running (optional) Specify what happens after the program has completed. You can choose one of the following options: u u No action requiredNo restart or logoff occurs after the program executes. This is the default mode. (On 16-bit clients, this is the mode supported.) SMS restarts computerAfter the program runs successfully, if a user is logged on, SMS prompts the user that the system must be restarted. If no user is logged on, SMS restarts the computer. If the program finishes and returns a Windows Installer return code of ERROR_SUCCESS_REBOOT_REQUIRED, the computer is restarted.
Caution
Unsaved data changes on the computer will be lost.
Program restarts computerThe program restarts the client computer. The Advertised Programs Client Agent uses this option on client computers to enable the special status handling required when a program restarts itself.
SMS logs user offWhen the program finishes successfully, if a user is logged on, SMS prompts the user to log off. This option is useful if the program requires that users log off and then log on again before it can complete. If the program finishes and returns a Windows Installer return code of ERROR_SUCCESS_LOGOFF_REQUIRED, the user is logged off without notification.
Category (optional) The user can find the advertised program in the All Categories and Whats New categories, or an optional category that you specify. Advertised programs appear under the Whats New category for up to 14 days, or until they are run.
Requirements tab
On the Requirements tab, you can set any of the following options that apply to your program: Set Estimated Disk Space (optional) You can set the estimated disk space. By default, it is set to Unknown. This value appears in the advertised programs properties on the clients, and helps the user decide if and when to run the advertised program. Estimated disk space is also used to calculate the estimated download time that is displayed to users when advertised programs are downloaded before being run. Users cannot view the Estimated disk space if they select the advertised program in Add or Remove Programs. Set Maximum Allowed Run Time You can set the maximum allowed run time in minutes. By default, this value is set to Unknown. This value appears in the advertised programs properties on the client computer, and helps the user decide if and when to run the advertised program. If you leave the maximum allowed run time as unknown, SMS sets the actual maximum allowed run time as 12 hours. If you set the Maximum allowed run time, SMS stops monitoring the advertised program if the program uses more than this amount of time on the client. This allows SMS to continue with other software distribution functions, such as running other advertised programs. SMS does not: u u u u u Stop the program. Free up any drives that have been mapped for the advertised program. Free up any network connections made for the advertised program. Remove security rights granted to the SMS Client Token account, if any. Free up operating system resources used by SMS when running advertised programs.
If you do not set the Maximum allowed run time, SMS continues to monitor the program until it ends, or the computer reboots. Users cannot view the Maximum allowed run time if they select the advertised program in Add or Remove Programs.
Specify Client Platforms Where Program Can Run (optional) Select the setting to run the program without checking for any specific platform, or you can select a setting to specify platforms where the program can run. Set Additional Requirements to Appear in Advertised Programs in Control Panel (optional) Enter text that will appear in Advertised Programs in Control Panel with your advertisement. For example, you can tell users to shut down other applications before running this program. These requirements are not enforced.
Environment tab
On the Environment tab, you can set any of the following options that apply to your package: Only when a user is logged on (optional) Select this Program can run option to prevent the program from running if a user is not logged on. This is the default setting. This option is valid for client computers running Windows NT 4.0, Windows 2000, Windows XP, or operating systems in the Windows Server 2003 family. If the advertised program does not require administrative privileges (as set under Run mode), the advertised program is run in the users context and the package is accessed on the distribution point by using the users account. Only when no user is logged on (optional) Select this Program can run option to prevent the program from running until the user logs off the computer. This option is valid for client computers running Windows NT 4.0, Windows 2000, Windows XP, or operating systems in the Windows Server 2003 family. This option forces the program to run using the Client User Token account on Legacy Clients, or the local system account on Advanced Clients. If you have defined package access accounts, make sure the local Administrator or client network connection accounts can access the package folder on distribution points. If a user logs on while the installation is running, installation continues. The package is accessed on the distribution point using the SMS Client Connection Account on Legacy Clients, and the computer account on Advanced Clients.
Note
Programs that that are set to run when no user is logged on, but that are not assigned, are rejected as not valid by Advanced Clients and appropriate status messages are reported. Legacy Clients run these advertised programs when the user logs off.
Whether or not a user is logged on (optional) Select this Program can run option to enable the program to run regardless of logged on user status. This option forces the program to run by using the Client User Token Account on Legacy Clients, or the local system account on Advanced Clients.
Run mode Select whether the program will run with the logged on users rights or with administrative credentials. Run with administrative rights is automatically selected when Program can run is set to Whether or not a user is logged on or Only when no user is logged on. Run with administrative rights is optional if Program can run is set to Only when a user is logged on. If Run with administrative rights is selected but Use Software Installation Account is not selected, then the program is run in the context of the Client User Token Account on Legacy Clients, or the local system account on Advanced Clients. The Client User Token Account is given administrative credentials for the program being run. For more information about security, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Important
If the advertised program is a Windows Installer package, the advertised program will fail on Windows NT 4.0 clients when the package is run with administrative credentials. SMS does not support running Windows Installer packages with administrative credentials on Windows NT 4.0 clients.
If Program can run is set to Whether or not a user is logged on or Only when no user is logged on, you can set the program to be run using the Software Installation Account. The Client User Token Account and local system account cannot access other computers. If your advertised program must access other computers, use the Software Installation Account. The distribution point is accessed using the SMS Client Connection Account on Legacy Clients or the computer account on Advanced Clients, so you do not have to use a Software Installation Account to connect to the distribution point. If Program can run is set to Only when no user is logged on and Run with administrative rights is selected, you can specify whether the program requires user interaction with the program when it runs with the Allow users to interact with this program (less secure) option. If you do not select Allow users to interact with this program (less secure), the program runs in an administrative context and no user interface is displayed to the user. Leave this option unselected for all programs that do not display any user interface or that display a user interface but do not require the user to interact with the program. If you select Allow users to interact with this program (less secure), the user interface for the program is visible to the logged-on user and that user can interact with the program. Select this option only for programs that must run in an administrative context and that require the user to interact with the program.
It is strongly recommended that you use Windows Installer-based setup programs with peruser elevated privileges for installations that require administrative credentials but must be run in the context of a user that does not have administrative credentials. Using Windows Installer per-user elevated privileges provides for the most secure way of deploying applications with this requirement.
Important
If you advertise a program that is set to Run with administrative rights and you do not select Allow users to interact with this program (less secure), the program might fail if it displays a user interface that requires a user to make a selection or click a button. In such a case, the user interface that the user is required to interact with is not visible to the user and can never be responded to. The program waits for user interaction until the programs Maximum allowed run time that is configured in the advertisement is exceeded. After the Maximum allowed run time is exceeded, the programs process is terminated on the client. If no Maximum allowed run time is specified, the programs process is terminated after 12 hours.
Note
During the period from when the program starts to run until the programs process is terminated, SMS will not start any other pending software distribution programs.
Set Drive Mode (optional) Set the type of connection used for accessing distribution points. Options are Runs with UNC name, Requires drive letter, or Requires specific drive letter. Use the latter option if the program or your environment requires a specific drive letter. Reconnect to distribution point at logon (optional) Selecting this option causes the computer to reconnect the drive to the distribution point by using the specified drive mode each time the user logs on. This option is disabled by default. This option allows the program to complete installation steps, if required. If the Advanced Client uses the Network Access account to establish the network connection, or if the advertised program is set to run with administrative credentials, the network connection will be remembered by the operating system when the user logs on, but the operating system will not be able to re-establish the connection. The operating system will display an error message indicating the network connection could not be re-established. You should not use this option if the Advanced Client uses the Network Access Account to establish the network connection, or if the advertised program is set to run with administrative credentials.
Advanced tab
On the Advanced tab, you can set any of the following options that apply to your program: Run another program first (optional) On the Advanced tab, select this option to indicate that this program requires another program to run. This option is useful to force dependencies, and for coordinating the installation of user and system-specific portions of an applications installation. Select the name of the desired package and program from the drop-down lists. This feature is not supported on 16-bit clients. You can also specify that the other program is run every time the program being defined is run by setting Run every time this dependent program runs. This option is useful if the results of the other program must be updated every time the program being defined is run. For more information about running advertised programs with dependencies, see the Program Dependency and Running Advertised Programs on SMS Clients sections later in this chapter.
Note
If the program that you specify to run on a client computer fails, the dependent program will not run, and the Advertised Programs Client Agent generates an advertisement failure status message.
When the program is assigned to a computer (optional) Select from these runtime preferences, which take effect when programs are assigned: Run once for the computer (optional) Selecting this option causes the program to run once on the computer. This is the default setting. This option applies to programs that are advertised to computers. Run once for every user who logs on (optional) Selecting this option causes the program to run once for each new user who logs on. Suppress program notifications The notification area icons and messages, and the countdown notifications, are not displayed for this program. Disable this program on computers where it is advertised (optional) If you select this option, SMS disables installation of the program on client computers. The program is still sent to distribution points, and it is still advertised, but it is not displayed as being available through any advertisements. This is the preferred method for temporarily halting advertisements because it applies to all advertisements of the program and does not require client computers to refresh their list of advertised programs to take effect. When you disable this option, the program can run. For more information about these options, see the SMS Help.
Maintaining a valid network source path for installed Windows Installer programs is valuable when the user needs to make an addition to their installed components. It is also valuable when a product repair is triggered, or when the original files are required as part of the patching process. This feature is not available for Legacy Clients. There is no interoperability with previous versions of SMS.
2.
In the Program Properties dialog box, you can modify any of the fields described.
Delete a Program
Deleting a program also deletes all of the advertisements for that program. After you delete a program, new client computers entering the site will not receive notification of the program and cannot run the program. One of the advantages of SMS is that, without any administrator intervention, new client computers entering a site receive notification of all advertised programs for which they meet the collection criteria. This approach can save administrators time. In some cases, such as when new users must run the program, it makes more sense to keep a program advertised and on the distribution point until the program is retired or replaced.
To delete a program
1. Navigate to Programs in the SMS Administrator console, right-click the program you want to delete, and then click Delete.
Systems Management Server X Site Database (site code - site name) X Packages X package X Programs
2.
The Delete Program Wizard appears. You can use the wizard to make the decision if it is appropriate to delete your program.
Distributing Packages
To run an advertised program that uses source files, clients must have access to at least one distribution point for the package. You must specify at least one distribution point for each package you create that contains source files. Packages that do not use source files do not need distribution points set. When you specify distribution points for a package, SMS places a copy of the package source files on each distribution point specified. SMS can also update package source files on distribution points according to your schedule, or you can update them manually. If the target collection includes client computers that are members of different Windows domains in a site, either place the package on a distribution point in each domain, or set up a trust relationship between the domains at the site.
Caution
Do not place any files directly on the SMSPKGx$ shared folder, which is used by SMS. Files placed on the shared folder will be deleted when the package is deleted or moved. If you want to share folder files on a server that has a distribution point role, you must use a different shared folder.
SMS client software can use any distribution point at a site that the client computer can access. Distributing packages to distribution points can require considerable network capacity, depending on the size of the package and network availability. Consider the timing of package distribution tasks and the number of distribution points to be updated at one time when doing package distribution tasks. SMS sender addresses can be used to control site-to-site network activity, but within the sites, the activities will occur as soon as possible.
u u
Update all distribution points with a new package source version. Remove the package from selected distribution points.
You can use the Manage Distribution Points Wizard to specify distribution points for your packages.
2.
Right-click Distribution Points, select All Tasks, and click Manage Distribution Points.
You can perform the following tasks with the Manage Distribution Points Wizard:
Specify distribution points for a package and copy the package to the distribution points (required).
1. 2. 3. Select Copy the package to new distribution points and click Next. The Copy Package screen displays all of the distribution points in the site and its child sites that do not currently have the package. Select the distribution points or distribution point groups you want to use. When you complete the wizard, the process of copying the package to the selected distribution points begins. If you do not see the distribution points you want, you must create them as directed in the Preparing Distribution Points section earlier in this chapter. Use this option if one or more distribution points become corrupted, or if you want to manually force copying the current package source version to a distribution point. If a compressed copy of the package is kept at the originating site, that copy will be used for the package refresh. The package source will not be used. If a compressed copy of the package is not kept at the originating site, the package source will be used, but it will be presumed to be the same version of the files. The package version number will not be incremented. The package will not be redistributed to child sites. Instead, they will be refreshed from their local copies.
To copy the current package source version to one or more distribution points
1. 2. Select Refresh the package on selected distribution points and click Next. The Refresh Package screen lists all of the distribution points that can be refreshed for this package. Then, select the distribution points you want to refresh.
Update all distribution points with a new package source version (optional) Selecting this option increments the source version and source date displayed on the Data Source tab of the package properties. When you first copy the package source file to the distribution point, it receives a version number of 1. Each time you update the files on the distribution point, the version number is incremented by 1. If a compressed copy of the package is kept at the originating site, that compressed copy will be updated from the package source files. If the package is assigned to distribution points in child sites, the new package source files will be compressed and sent to the child site for an update of the child site distribution points.
2. 3.
Select Update all distribution points with a new package source version and click Next. When you finish the wizard, the package at the distribution point is updated.
Remove a package from a distribution point (optional) To remove a package from a distribution point, navigate to the Managing Distribution Points Wizard. Select Remove the package from selected distribution points, and then click Next. Select the distribution points you want to remove. When you finish the wizard, the process of removing the files from the distribution points begins. If a package is removed from all distribution points for a child site, the package will also be removed from the site server. If a compressed copy of a package is kept at the originating site, and that package is removed from all distribution points, the compressed package will remain at the originating site server. For more information, see the Delete a Package section earlier in this chapter.
Delta Replication
When SMS 2003 updates the source files for a package, and the source files have already been distributed to child SMS 2003 sites, it sends the parts of the package that have changed since the last time the package was sent (originally, as an update, or as a refresh). Delta replication minimizes the network traffic between sites, especially when the package is large and the changes are relatively small.
Note
A file is considered to be changed if it has been renamed, moved, or its contents have changed.
Delta replication also occurs within each site to its distribution points. The files that have changed are transferred to the distribution points. The originating site keeps the differences between the current version of a package and the previous five versions. If a child site has one of the previous five versions of the package, the originating site will send the appropriate changes to the child site. If the child site has an older version of the package, the originating site will send the entire package. If the originating site sends the changed files for a package but the child site no longer has the package, or the package has been altered at the child site, the child site will send a status message to the originating site reporting the problem.
Note
If the SMS addresses to your child sites are closed when you are making changes to a packages source, do not update the distribution points multiple times before the time the addresses are opened. Each update will include the files from the previous update because the child sites will not yet have the previous update. The updates will include redundant files, wasting network bandwidth.
Managing Advertisements
After you create and distribute the package, you can advertise a program associated with that package to a target collection in your SMS site. This section describes the following tasks associated with managing advertisements: u u u u Creating advertisements Disabling or rerunning advertisements Ensuring package and advertisement integrity Maintaining packages and advertisements
Creating Advertisements
When you are ready to make a program in a package available to clients, you advertise the program to a target collection. In an advertisement, you specify: u u u u The package and program to run on the client. The target collection. The schedule for the programs advertisement to clients. When or whether the program is assigned.
SMS uses collections to determine which clients receive an advertisement for a program. Typically, you use a single collection many times as the target for many programs. If a client system or logged-on user is in the target collection, depending on the settings you specify in your advertisement, one of the following events occurs: u u SMS notifies the user that a program is available and takes no further action. The user can run the program immediately, schedule it to run later, or not run it at all. SMS notifies the user that a program is available. If the program has not been run by its scheduled time, SMS runs the program. The user can run the program immediately, schedule it to run before the assignment time, or do nothing and allow it to run at the scheduled time. SMS does not notify the user of the program and runs it at a scheduled time or after a specified event.
To run the program either as specified by a user or on an assigned schedule, the clients Advertised Program Manager components connect to one of the distribution points specified in the advertised package. For more information about collections, see the Preparing Collections section earlier in this chapter, and Chapter 4, Managing Collections and Queries. There are two ways to create an advertisement: u Use the Distribute Software Wizard. This wizard guides you through the all the steps of performing a software distribution, including creating the advertisement. u Create an advertisement. From the SMS Administrator console, you can create an advertisement by using any existing collection, package, and program.
To advertise programs
1. Navigate from the SMS Administrator console to Advertisements.
Systems Management Server X Site Database (site code - site name) X Advertisements
2. 3.
Right-click Advertisements, and then click Advertisement from the New menu. When the Advertisement Properties dialog box appears, complete it by performing these tasks:
Identify the Advertisement (required) On the General tab, type a name for the advertisement. This is the name that users see. Specify the software, what to do with it, and the target (required) On the General tab, select the Package, Program, and Collection. If you have defined access accounts for the specified package, ensure that all members of the target collection have permissions through one of the package access accounts. Set the Advertisement Start Time (optional) On the Schedule tab, set the date and time the program will be advertised and made available to clients. By default, this option is set to the current date and time, and the program is available to run on the client immediately. When you coordinate this setting with the assignment information, you can set up different scenarios for running the program on the client. For more information, see the Assigned Program Scenarios section later in this chapter. Set the Advertisement Expiration (optional) To remove a program from the list of available programs after a specified period of time, click the Schedule tab, and then select Advertisement will expire. When a program expires, it is no longer run according to assignment schedules, and it no longer appears in the Advertised Programs Wizard, Advertised Programs Monitor, Run Advertised Programs, or Add or Remove Programs. The program is not deleted from the distribution points.
Note
If the expiration time is set to the past and the program has started running on the Advanced Client, scheduler does not send the expiration message. Content will be downloaded to the client, but the program will not run as expected. Ensure that expiration time is set to a time in the future.
Set the Advertisement Priority (optional) On the Schedule tab, set the priority of an advertisement to control when it is sent to child sites. This priority is used with sender addresses to determine when the advertisement is sent to child sites.
Note
To advertise a program to clients, you must have these permissions: Read security access for the package that contains the program Advertise security access for the target collection Administer or Create security access for advertisements
For more information about the options used to advertise a program, see the SMS Help. For more information about processing at the client during software distribution, see the Running Advertised Programs on SMS Clients section later in this chapter.
Note
Advertised programs that are Windows Installer programs are listed in Add or Remove Programs in Control Panel. If these advertised programs have mandatory assignments, they will not display the Remove button in Add or Remove Programs. Users cannot remove mandatory Windows Installer programs.
Scheduled assignments
If you click Schedule when you create an assignment, you can use the Schedule dialog box to specify when the program is set to run. The start date and time can be in the clients time zone or in Coordinated Universal Time (UTC, formerly Greenwich Mean Time). You can also specify a recurring schedule if one is appropriate for your program.
As soon as possible This option causes the assigned program to run after it reaches the client, and as soon as all required conditions are met. This event can occur immediately after the advertisement is received, for example, if the program is specified to run when no user is logged on, or after the current user logs off. The client has no control over this setting. Assign on logon The next time the currently logged on user logs on to the client, this setting causes the program to run automatically. The user has no control over this setting. For all users that are not currently logged on, the users must log on to receive the advertised program. After they log off and later log on again, the advertised program will run. Assign on logoff When the user logs off the client, this setting causes the program to run automatically. The user has no control over this setting. For all users that are not currently logged on, the users must log on to receive the advertised program, and then log off to run it. Assignments are not mandatory over slow links This setting suspends assignments for Legacy Clients on a slow link. By default, this check box is selected. Slow links are considered to be 40 Kbps or slower between the client and the distribution point. Allow users to run the program independently of assignments By default, advertisements with assignments are not visible to users. Selecting this option allows the assigned program to appear among the programs listed under Advertised Programs, Run Advertised Programs, or Add or Remove Programs in Control Panel. The user can run the program manually at any time before the time scheduled in the assignment. By default, this option is disabled.
Note
Unless this allow users to run the program independently of assignments option is selected, the assigned program is invisible to the user and is run without the users control.
Most assigned programs are not displayed to users. Because users have no control over assigned programs, these programs usually do not appear in the Advertised Programs Wizard or the Advertised Programs Monitor. However, you can select the Allow user to run the program independently of assignments option. If you do, users can run the program voluntarily at any time until the programs scheduled run time. If the user does not run the program before the scheduled time, it runs without user intervention.
Recurring Assignment
Some assigned programs must be run on a recurring schedule. An example of a recurring assignment is a virus scan program that is distributed and then assigned to run every night at midnight. In this case, you would create two programs within the virus scan package. Your first program would install the virus scan program, and the second program would run the virus scan program. The first program can run immediately or with any of the other options that reflect your sites requirements. Do not assign the second program as soon as possible. Instead, set a recurring schedule, such as every 24 hours at midnight. You could also create an additional program that would check for and install any updates to the virus scan program. Then you could assign the third program at an appropriate, recurring schedule.
Program Dependency
The scanning program can be made dependent on the installation program and advertise the virus-scanning program at the recurring interval you prefer. The first time the scanning program is scheduled to run, the dependency will cause the installation program to run. The scanning program will run as soon as the installation program stops running, and then on its recurring schedule.
When an advertisement contains both scheduled and event-driven assignments, the resulting assignment is cumulative. For example, if you create a recurring assignment of once per day at 9:00 A.M. and also create an assignment at logon, the client will run the program the next time a logon occurs after 9:00 A.M, and at every subsequent logon.
Important
You can disable and re-enable a program at the site where the advertisement is created. Disabling or re-enabling a program at another site is not effective.
You can force an advertisement to be rerun by right-clicking an advertisement and selecting the task to rerun the advertisement. This will add an assignment to the advertisement to run the advertisement as soon as possible.
Note
You can rerun an advertisement if there are two or more assignments for a specific time.
You can do each of these tasks without using the task menu. Disabling and enabling a program is an option in the programs Properties dialog box. Adding an assignment is an option in any advertisements Properties dialog box.
Note
When you click the Advertisements node in the SMS Administrator console, you will see a list of all advertisements. The last column indicates whether the advertisements are enabled or not.
Verify distribution point coverage. If the package has source files, ensure that at least one distribution point is assigned to the package for each site in which the specified collection has members. Also, ensure that enough distribution points have been assigned to accommodate the load. Consider restricting access to the distribution point. If you want to restrict access to the package source on distribution points, do so by creating package access accounts. Specify the accounts broadly enough to cover all members of the collection. Then, either remove access from or delete the generic Users package access accounts.
Caution
Never delete the generic Administrators access account. It is used by SMS components to install and update the package on distribution points.
For more information, see the Package Access Accounts section earlier in this chapter. Check server capacity. Ensure that enough disk space is available on: u u u The site server where the package is created. Any site servers that receive the package. Specified distribution points.
To check the capacity of the servers, you can check the free disk space in the Site System Status node of the SMS Administrator console, or you can run queries as described in Chapter 4, Managing Collections and Queries. Test the programs. SMS cannot ensure that your programs will run after you distribute them. Before you finalize your software distribution: u u Test the programs by running them without SMS at a test computer. Test the distribution itself by creating a test package, and then having SMS copy the package to the distribution points. Create a test advertisement, and then run the program commands you previously tested on the test computer from a client. Run a sample distribution of the tested packages to a child site and run the program commands on a client of the child site.
Consider time zones and time settings. If you advertise your software package to run at a predetermined time, then the program will run at that time within the clients time zone unless you set the package to run at UTC. When you create advertisements, consider the effect of time zones on your advertisement. Also, be sure to synchronize the time settings on your clients with the time settings on your servers, especially if distributions are set to run immediately.
Periodic Updates
Some packages require periodic updates. For example, if you distributed a virus scan program to be run on a regular schedule, then as virus data files are updated, the package should be updated. In this case, if you have an assigned program for all your clients that runs each night at midnight, and if the source files are kept at the distribution point, then to update the package, you must update the source files at the distribution points. After you do, all of your clients will run the new virus scan the next time the application runs. If instead of distributing the files to the distribution points, you installed the files on each client, you must advertise a program that reinstalls the files. You do not have to change the advertisement that runs the virus scan. You must update the files on each client to have your clients run the new virus scan software on the same schedule.
If the package is refreshed on the distribution point instead of being updated, the behavior is the same, except that the Advanced Client is not required to receive an updated download SMS policy.
Package Removal
When all of your clients have installed the package, you might be able to safely remove the package from the distribution points. Before you remove a package, consider whether you should leave it on the distribution points for new clients or for clients that might require the package again (for example, for Windows Installer install-on-demand). When you remove a package from all distribution points, the package still exists at the originating site. To delete the original package, use the Delete Package Wizard. Although you might choose to keep a package at the originating site, you might want to delete one or more programs that exist in the package. To make this deletion, use the Delete Program Wizard. For more information about deleting packages, see the Delete a Program section earlier in this chapter.
Note
You can determine which advertisements are targeted at an individual client by viewing the Advertisements tab in the client Properties dialog box of a client in a collection in the SMS Administrator console.
Using Status Summaries for Packages at Their Sites and Distribution Points
The Status System includes five console items describing the status of software distributions: u u u u u Package status summary Advertisement status summary Package detailed information Advertisement detailed information Per-site package detailed information
In addition, you can view informational, warning, and error messages from each of these items. The Package status summarizer level provides a quick view of how many distribution points have successfully made the package available, how many are still retrying, and how many have failed. If the numbers do not look right, you can double-click any package to see more information, or right-click and select Show Messages to see the informational, warning, and error messages that have been generated. The Package detailed information console item provides site-by-site information for each site where the package was distributed. If you need more detailed information, you can double-click any site to see a distribution point-by-distribution point description. Or, you can right-click at any of these levels and select Show Messages to view the informational, warning, and error messages generated by the package at that level.
2.
To view the status messages associated with the package as a whole, select the package you want in the results pane, right-click, and select Show Messages. To view all of the status messages associated with that package, click All. To view selected messages, click Errors, Warnings, or Info.
3.
To view package status information for a specific site, select the package you want in the console tree to display its information about a site-by-site basis. The package status information for each site appears in the details pane. To view the status messages associated with a particular site for the package you selected, select the site you want in the details pane, right-click, and then select Show Messages. To view all the status messages associated with that site for that package, click All. To view selected messages, click Errors, Warnings, or Info. To view package status information for a specific distribution point, select the package you want, and then select the site you want in the console tree. The package status information for each distribution point for the selected package and site appears in the details pane. To view the status messages associated with a particular distribution point for the selected package, select the distribution point you want in the details pane, right-click the distribution point, and then select Show Messages. To view all the status messages associated with the distribution point for the package, click All. To view selected messages, click Errors, Warnings, or Info.
4.
5.
6.
2.
To view advertisement status messages, in the details pane, select the advertisement you want, right-click it, and then select Show Messages. To view all the status messages associated with the advertisement, click All. To view selected messages, click Received, Failures, Program Started, Program Errors, or Program Success. To view advertisement status information, select the advertisement you want in the SMS Administrator console tree. The advertisement status information appears in the details pane.
3.
Advertised program success is divided into four columns: Program Errors, Program Success, Program Errors (MIF), and Program Success (MIF). If your advertised program generates status MIFs, you should use the Program Errors (MIF) and Program Success (MIF) columns. The advertised programs that generate status MIFs might also have results in the Program Errors and Program Success columns, but the Program Errors (MIF) and Program Success (MIF) columns are more accurate for advertised programs that generate status MIFs.
Important
Status for advertised programs that generate status MIFs that are run at SMS 2.0 clients reporting to SMS 2.0 sites appears in the Program Errors and Program Success columns. If the advertised programs generate both normal status and status MIFs, the status might include duplicate records for those clients.
Ismif32.dll is installed on every SMS 2003 client that has software distribution enabled, so it can always be used to create status MIFs. The following example demonstrates how to create a status MIF from a Windows Installer script using Ismif32.dll:
item: Call DLL Function Pathname=%WIN%\ismif32.dll Function Name=InstallStatusMIF Argument List=41filename Argument List=41publisher Argument List=41product Argument List=41version Argument List=41language Argument List=41serialnumber
(continued)
(continued)
Argument List=41The install failed for no good reason! Argument List=010 Return Variable=0 Flags=00100000 end
When viewing advertisement status in the SMS Administrator console, you will find that the messages have different identifier codes and description strings if they are based on a status MIF rather than SMSs default advertisement status reporting. Status messages 10009 (success) and 10007 (failure) are based on status MIFs, and will have the additional information included with the status MIFs. Status messages 10008 and 10006 are the default advertisement status messages for success and failure, respectively. The status MIFs generated on the clients must be saved in either the system %temp% or %Windir% directories. %Windir% is used if the user has sufficient privileges to write to that folder; otherwise the files are placed in the %temp% folder. The preprogrammed status MIF generation tools will automatically place status MIFs in these directories. If you generate status MIFs by using other techniques, you must ensure the status MIFs are placed in these directories. The SMS client confirms that the status MIF it finds is meant for the advertised program that has just run by comparing the details in the status MIF with the details of the programs package, such as name and version. By default, SMS uses the details set on the General tab of the packages Properties dialog box. Not all possible values have to be specified in the status MIF, but any values specified must be exactly matched by the values in the packages Properties dialog box. For SMS to collect two status messages for an advertised program, the After running option in the programs Properties dialog box must be set to Program restarts computer. Status MIFs must have a file creation date after the advertised program starts running on the computer. Status MIFs cannot be created before running an advertised program. If multiple status MIFs are available, SMS will use the most recent one.
SMS Installer does not create the package, distribution points, or advertisements within SMS, so you must use another method to perform these tasks. SMS Installer creates a package definition file that can be imported into SMS with either the Distribute Software Wizard or the Create Package from Definition Wizard. For more information about SMS Installer, see Chapter 7, Creating Software Installation Packages with SMS Installer. Distribute Software Wizard The Distribute Software Wizard automates the complete software distribution process. With this wizard, you can accomplish all the steps needed to distribute software. You can also use this wizard to perform the following individual software distribution-related tasks: u u u u u u u u Create a package and program manually. Create a package and program from an existing package definition. Specify package source file options. Specify distribution points for the package. Select an existing target collection. Create a new collection. Add a resource to a new or existing collection of resources. Create an advertisement.
Each of these tasks might not apply to all software distributions. To open the Distribute Software Wizard, navigate to it by right-clicking Systems Management Server, or any collection, resource, package, or program in the SMS Administrator console. Right-click the item you chose in the SMS Administrator console, select All Tasks, and then click Distribute Software. The panes that appear depend on how you started the wizard. For example, if you start the Distribute Software Wizard by selecting a package from Packages in the SMS Administrator console, the wizard is set to use the selected package. When the Distribute Software Wizard creates an advertisement, it sets the advertisement to not run when no local distribution point is available. If you want the advertised program to be downloaded before running, or to run from a remote distribution point, you must modify the advertisement after using the wizard. The Distribute Software Wizard requires appropriate security rights. For more information, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. Create Package from Definition Wizard This tool uses a package definition file to create a package. You can use the package definition files included in SMS, create one by using SMS Installer, or create a package definition file yourself. For more information about package definition files, see the Import a Package Definition File section earlier in this chapter.
Manage Distribution Points Wizard For information about this wizard, see the Distributing Packages section earlier in this chapter. Advertised Programs Wizard For information about this wizard, see the Running Advertised Programs on SMS Clients section later in this chapter. Advertised Programs Monitor For information about this Control Panel item, see the Running Advertised Programs on SMS Clients section. Run Advertised Programs For information about this Control Panel item, see the Running Advertised Programs on SMS Clients section. Program Download Monitor For information about this Control Panel item, see the Running Advertised Programs on SMS Clients section. Add or Remove Programs For information about this Control Panel item, see the Running Advertised Programs on SMS Clients section and the operating system Help. Delete Package Wizard For information about this wizard, see the Delete a Package section earlier in this chapter. Delete Program Wizard For information about this wizard, see the Delete a Program section earlier in this chapter. Delete Collections Wizard For information about this wizard, see Chapter 4, Managing Collections and Queries.
Similarly, when an advertisement becomes available on a CAP used by targeted Legacy Clients, and those clients can also find the relevant package on a distribution point, then the Legacy Clients will assess whether they should run the program and then proceed to do so, if appropriate.
Assessment of the advertisement and program to determine if they are currently relevant to each client
Advertisements are assessed by the clients to determine whether they are enabled, active, and not expired. Programs are assessed to determine whether they are enabled, active, and relevant to the operating system or service pack being run on the client. These assessments are performed whenever the client reevaluates advertised programs, which by default is once per hour.
Categories
Both Legacy Client and Advanced Client can use Categories. All advertised programs will appear in the All Programs category. Any advertised programs that have been advertised in the last 14 days will also appear in the Whats New category.
To run the Program Download Monitor, click the Program Download Monitor icon in Control Panel. The Program Download Monitor displays a list of active downloads on the client.
For information about how to specially configure software distribution agent settings on Advanced Clients using administrator options, see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. The download cache can be managed on Advanced Clients by using the Systems Management item in Control Panel, if the user has administrative credentials on the computer.
Program dependencies
You can set advertised programs to run another program first. If the other program has already run, the advertised program proceeds immediately.
Note
If you delete a program dependency, the parent program and advertisement are disabled.
If any of the programs require packages to be downloaded, the package download message is displayed to the end user (if appropriate) and the packages are listed together. The Program Download Monitor also lists all the packages to be downloaded. The cache must have sufficient space for all the packages. The program that is lowest in the dependency chain is downloaded and run, and then the next program in the chain is downloaded and run. If any of the programs in the list of dependent programs does not run successfully, the sequence of programs after that program is stopped. The programs can be retried at any time.
Downloads resume automatically when the computer is started up again and a network link can be established to a distribution point with the package. If a download is started but then interrupted, the download must resume within seven days or the download is automatically cancelled. If an advertised program expires or is disabled while being downloaded, the download finishes, but the advertised program is not run. It is possible that an advertised programs package will be downloaded, the advertised program will start to run, and then a new download SMS policy will arrive at the client indicating that an updated package is now available. In this case, the advertised program will continue to run.
When a download is finished without using the BITS protocol, and the download is resumed, it starts at the beginning of the file that was being downloaded at the time the download was interrupted. This is also true if the download resumes from a different distribution point, even if the different distribution point uses BITS. For this reason, packages should not be based on a small number of large files, if possible. In the case of an SMS Installer or Windows Installer package, the instructions can be kept in a separate file and the source files in the package should be kept separately, instead of being included in the SMS Installer or Windows Installer file. If the software is provided in large files, then investigate whether the software has an administrative installation or similar option that allows expanding the large files into a folder tree with many separate files. The SMS package will then use that expanded version of the software as the package source. For more information about checkpoint restart while downloading packages, see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
After SMS unlocks the package, it cannot be locked again unless it is discarded and then downloaded again. When a package must be downloaded but the cache cannot accommodate the package, SMS checks the other packages in cache to determine whether deleting any or all of the oldest packages will free enough space to place the new package into the cache. If deleting any or all of the oldest packages does not free enough space, the new package is not placed into the cache. This might be the case if there is a package that is currently locked. If deleting any or all of the oldest packages does free enough space in the cache, SMS does so, and places the new package into the cache. Users with administrative credentials on the computers they are using can manage the download cache. Users can change the size or location of the cache, or delete all current contents. These options are in the Temporary Program Download Folder section of the Advanced tab of the Systems Management item in Control Panel. The download cache can also be managed with scripts. For more details about scripting client operations, see Appendix C, Scripting SMS Operations, and the SMS 2003 SDK. You can avoid managing the download cache on clients by: u u Setting the cache size to be sufficiently large for the packages that will be downloaded. Scheduling downloads so that they do not occur too frequently.
Not using the download option for packages that can be run directly from the distribution points.
When a new advertised program is available, the New advertised programs available icon appears in the user taskbar notification area. When an advertised program runs on the client, the Advertised program running icon appears in the user taskbar notification area. When an advertised program counts down to run on the client, the Advertised program about to run icon appears in the notification area.
To run the Advertised Programs Monitor, the user can perform one of the following at the client:
The Advertised Programs Monitor displays a list of all scheduled programs, all programs that are currently running, and all programs that have already run at the client. The run status of each program appears in the Scheduled to Run and Last Run columns.
The user can change the Advertised Programs Client Agent settings by selecting System from the Advertised Programs Monitor menu, and then clicking Options.
Users can also see advertised program properties from the notification dialog box when the advertised program is ready to run.
Program dependencies
Advertised programs can be set to run another program first. If the other program has already run, then the advertised program proceeds immediately. Otherwise, the other program is automatically run. The exception is if the other program requires that another program be run first, in which case this other program will be run first. If any of the programs in the list of dependent programs does not run successfully, the sequence of programs after that program is stopped. The programs can be retried at any time.
A better approach is to create a permanent collection and advertisement for the purpose of reinstalling the application. Then when a user requests a package reinstallation, you have to add the user or a specific computer to the collection. You do not have to create a collection or advertisement. The users or computers already in the collection will not receive the package again, because they received it when they requested it. Only the user just added to the collection will receive the package.
Rerunning an advertisement
If you make changes to a package or program after its advertisements have been run on some clients, you can send an e-mail message to the relevant users to rerun the program. If the advertisement was an assigned advertisement without the option for the users to run the advertisement, you can add a new assignment to the advertisement. The option to rerun an advertisement applies if the advertisement was assigned to run at a scheduled time, instead of on an event (such as logoff). The new assignment will force the advertisement to run again on all the clients in the advertisements collection. If you must rerun an advertised program on clients where it failed, you can create a new advertisement to target the same clients or users again. The advertised program will not run again on those clients that successfully ran the program using the first advertisement.
Note
If you delete an advertisement for a package and program, or allow it to expire, and then create a new advertisement for the same package and program, the new advertisement will not run on clients that ran the previous advertisement.
Advertisements with assignments other than As soon as possible, Logon, or Logoff can be rerun on all clients by right-clicking the advertisement, selecting All Tasks, and then clicking Rerun Advertisement. This creates a new assignment with the current time for the advertisement.
u u
You can modify source lists after the application is installed by applying a transform. You cannot modify the source list values after installation if the client is using Windows Installer 1.0. Advanced Clients verify that .msi packages are Windows Installer packages before attempting to run them. If not, a message is displayed on the client indicating that the file is not a valid Windows Installer package. Windows Installer packages can have .exe extensions. However, you must use the .msi version of such Windows Installer packages if you want to take advantage of the Windows Installer elevated rights. For more information about using Windows Installer packages, see the Windows Installer documentation.
Running an advertised program in the user context but with administrator rights
In some cases, you might run an advertised program with administrative credentials but in the users context, even if the user does not have administrative credentials. This is the case if the setup must perform tasks that require administrative credentials, but it must also perform tasks that can be done in the users context, such as adding icons to the users desktop. Running advertised programs with administrative credentials but in the users context can be done automatically if the advertised program is a Windows Installer script (.msi file). In addition, the advertised program must be set as requiring administrative credentials and to require user input.
If the advertised program is not a Windows Installer program, installation can be split into two phases that can then be coordinated by using the dependent program feature. The first phase installation program would run under the SMS administrative. The second phase installation program would run under the logged-on user security context to update shortcuts for the loggedon user profile and user-specific registry settings.
For more information, see the Create a New Program section earlier in this chapter. In addition, the program can be designed to not require any user input.
Table 5.7 Approximate Bandwidth for Typical Slow Network Links 128 Kbps
131,072 16,384 58,982,400 3,686 13,271,040
28.8 Kbps
29,941 9,830 1,229
9.6 Kbps
4,423,680
Using the previous estimates, the following distribution latencies apply. Table 5.8 Estimated Time to Transfer Packages Over Slow Network Links
Package size 1 MB 5 MB 10 MB 20 MB 100 MB 400 MB 128 Kbps 0 D 0:01.04 0 D 0:05.20 0 D 0:10.40 0 D 0:21.20 0 D 1:46.40 0 D 7:06.40 28.8 Kbps 0 D 0:04.44 0 D 0:23.42 0 D 0:47.24 0 D 1:34.49 0 D 7:54.04 1 D 7:36.18 9.6 Kbps 0 D 0:14.13 0 D 1:11.07 0 D 2:22.13 0 D 4:44.27 0 D 23:42.13 1 D 22:48.53
Ensure that your tests simulate the user experience as closely as possible. Use non-privileged accounts if your users do not have privileges. Problems caused by a software installation might not be immediately apparent. Verify all aspects of the functionality of tested computers, and allow time for problems to be found. Testing should begin on computers in a test lab, but later testing should include user computers, or clones of user computers, so that the testing is realistic.
C H A P T E R
This chapter begins with an overview of the software update management process, followed by an overview of each of the software update management components. The chapter then describes the tasks associated with performing a software update inventory, authorizing and distributing software updates to clients, and tracking and maintaining the software update management system.
In This Chapter
u u u u Software Update Management Overview Software Update Management Tasks Software Update Management Best Practices Performance Considerations
Update Rollup
Service packs are particularly important for software update management because they apply a new baseline for the installed components against which future software updates are applied. It is imperative that you update the service packs for the systems in your enterprise to defend against any potential security problem. However, in the interim between service packs, the most important thing you can do to maintain a secure system is to make sure that the computers in your enterprise are running the most current security updates.
u u
Some updates might not be necessary to your enterprise and you can ignore them. Some updates could create problems (for example, break other line-of-business applications) for your enterprise if you used them. Receiving information about the latest software updates and vulnerabilities. Auditing your enterprise for applicable software updates. Assessing and authorizing available software updates. Deploying authorized software updates within your enterprise in a timely, accurate, and efficient manner. Tracking update deployment across your enterprise.
You should update this information regularly, and it should be readily available to those involved in your software update management process.
Read the white papers listed in Table 6.2 for information and guidelines for establishing a software update management process in your enterprise by using SMS and the Feature Pack tools. These white papers are available at the Microsoft Solutions for Management Web site at http://www.microsoft.com/solutions/msm. Table 6.2 Software Update Management White Papers
Title Definition Provides architectural guidance for deploying software updates, service packs, and Quick Fix Engineering (QFE) fixes by using SMS and the Feature Pack tools. This white paper provides conceptual information, best practices, and detailed procedures that are related to distributing and managing software updates by using SMS, including essential maintenance tasks and team role responsibilities. This document provides operational guidance for deploying software updates, service packs, and QFE fixes by using SMS. It describes the daily, weekly, monthly, and as-needed tasks that have to be completed to deploy patches into a live production environment.
Patch Management Using SMS/Architecture Guide Patch Management Using SMS/Deployment Guide
1. 2.
Be informed about the latest security developments and technology. You can be informed by reading, using Web sites, and joining newsgroups to get the latest information. Use the SMS software update management components to streamline and automate some of the functions associated with security update inventory, deployment and management tasks, such as: u u u Conducting an audit of applicable and installed security updates for all the computers in your enterprise. Authorizing and deploying the updates to the appropriate computers. Tracking the inventory and update installation status and progress for all the computers in your enterprise.
u u u
When the advertisement for the software update package runs on SMS client computers, the Software Updates Installation Agent runs with the configuration options that were specified by the administrator in creating the program for the package. When software updates are installed, either automatically or as requested by the user of the computer (depending on program settings), the agent first runs the scan component for the relevant software updates inventory tool to determine which of the software updates to be installed are applicable and missing from the client computer. If the destination computer is running the SMS Advanced Client, the agent can also be configured to run a local notification and scheduling process on the client computer (the persistent notification icon). For more information about this icon, see the Software Update Management Advanced Features section later in this chapter.
Each action taken by the Software Updates Installation Agent is logged, and it is also recorded in the form of SMS status messages. These status messages provide a near-real-time record of the compliance level of the computer with respect to the software updates that are contained in the package. In particular, software updates that have been installed, but which are not yet in effect pending a system restart, are recorded as such. The above description covers the basic operation of the software update management components. However, several new advanced features have been added to the software update inventory tools for SMS 2003 which allow you to perform more complex tasks. These features are described in the following section.
Underlying Technology
The software update inventory tools use the following existing technology to provide you with a better software update management solution: Security Patch Bulletin Catalog (MSSecure.XML) This is the security updates database that the Microsoft Baseline Security Analyzer (MBSA) and the Security Update Inventory Tool use to determine which security updates are installed on your computers and which are applicable. The Security Update Inventory Tool synchronization component automatically downloads the latest version of this database on a regular basis and distributes it to the computers in your enterprise by using SMS distribution points. For more information about MSSecure.XML, see the Microsoft Web site at http://www.microsoft.com/technet. Microsoft Baseline Security Analyzer (MBSA) MBSA runs on Microsoft Windows operating systems and scans for applicable security updates in the operating system, and in other products, such as Microsoft Internet Explorer, Microsoft Windows Media Player, and Microsoft SQL Server. The Security Update Inventory Tool includes MBSA technology in its scan component. The Security Update Inventory Tool synchronization component automatically downloads the latest version of this tool on a regular basis and distributes it to the computers in your enterprise by using SMS distribution points. For more information about the MBSA, see the Microsoft Web site at http://www.microsoft.com/technet/security/tools/Tools/mbsahome.asp. Microsoft Office Update Tool (Invcm.exe) The Microsoft Office Inventory Tool for Updates uses the Microsoft Office Update Tool with the Microsoft Office Update Database (Invcif.exe) to analyze your client computers for applicable updates to Microsoft Office programs. The data gathered by the Microsoft Office Update Tool is then converted into a format that is compatible with the SMS site database. The Microsoft Office Inventory Tool for Updates synchronization component automatically downloads the latest version of the Microsoft Office Update Tool on a regular basis and distributes it to the computers in your enterprise by using SMS distribution points. Microsoft Office Update Database (Invcif.exe) This is the database of software updates that the Microsoft Office Update Tool and the Microsoft Office Inventory Tool for Updates use to determine which office updates are installed on your computers and which are applicable. The Microsoft Office Inventory Tool for Updates synchronization component automatically downloads the latest version of this database on a regular basis and distributes it to the computers in your enterprise by using SMS distribution points. For more information about the Microsoft Office Update Tool, see http://support.microsoft.com?kbid=312982.
Persistent Notification
The persistent notification icon is a feature that allows a user on a computer that is running the SMS Advanced Client to receive notifications and schedule software update installations independent of the software update advertisement. This allows for better compliance by allowing users to install updates at their convenience, and it reduces system load because the advertisement does not have to be scheduled as often. If this feature is enabled by the SMS administrator for a software updates program or package, an icon appears in the notification area (formerly called the system tray) whenever a user is logged on and there are pending, uninstalled software updates. When the computer is in compliance, the notification area icon does not appear. Users can use the notification area icon to: u u u Check for upcoming installations. Schedule installations and restarts to occur at convenient times of the day. Install software updates immediately.
If the computer is running the Legacy Client, the persistent notification settings are ignored. You can enable this feature for a package or program on the third Configure Installation Agent Settings page of the Distribute Software Updates Wizard.
You can now run the synchronization component to obtain catalogs of software updates in an automated, unattended way, even through a firewall that requires authentication of a domain user account. You can also optionally specify a user name and password of an account that is authenticated through the firewall, in addition to the IP address of a specific proxy server. For more information, see the Configure the Synchronization Host section later in this chapter.
Scheduled Installations
To accommodate the special requirements of servers, which often can be maintained only at certain hours on certain days, you can now configure the Distribute Software Updates Wizard and the Software Updates Installation Agent to limit the time that a software update is installed to a specific time period. Outside of this time period, no installation is performed. If the SMS client is offline during the time period when the advertisement is scheduled, the restricted time period prevents the SMS client from attempting to catch up and apply the software updates at the wrong time.
Authorizing and distributing software updates This is a recurring task that you perform as often as is required by the size and rate of change of the sites you are administering.
Tracking software update compliance In this task you monitor the software update installation process, check compliance levels for critical updates and troubleshoot software update installation problems.
Task 1: Review the System Requirements for the Software Update Management Components
The software update management feature of SMS 2003 consists of a series of interacting components, some of which are installed by default when you install the SMS Administrator console on the site server. Other components require a separate download and installation. Table 6.3 lists the software update management components and their installation details.
Table 6.3 Installation Details for the Software Update Management Components
Component Distribute Software Updates Wizard Software Updates Installation Agent Software updates reports Security Update Inventory Tool Microsoft Office Inventory Tool for Updates Installation Installed by default with SMS Administrator console. Installed by default with SMS Administrator console. Installed by default with SMS Administrator console. Available by download from Microsoft Downloads Center. Separate installation on site server. Available by download from Microsoft Downloads Center. Separate installation on site server.
The Getting Started chapter of the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide outlines the system requirements for site servers and other site systems that are running SMS 2003. These system requirements are the same for all of the software update management components that are installed by default when you install SMS 2003. The following sections outline the system requirements for the software update inventory tools (Security Update Inventory Tool and the Microsoft Office Inventory Tool for Updates.)
Note
The Security Update Inventory Tool and the Microsoft Office Inventory Tool for Updates are separate tools; each tool can be installed and deployed without the other.
Component Installer
File name
Runs on
Platform Microsoft Windows NT 4.0 SP6a or later Windows NT 4.0 SP4 or later Windows NT 4.0 SP6a or later
Scan Synchronizatio n
5.0 or later
1 See the About the Microsoft XML dependency for the software update inventory tools section later in this chapter. 2 See the Preinstallation requirements for the synchronization component section later in this chapter for the special
System requirements for the Microsoft Office Inventory Tool for Updates
The Microsoft Office Inventory Tool for Updates is packaged in an installation program named OfficePatch_xxx.exe, where xxx is the locale extension for the package. Run this installation program on the site server that is at a level in the SMS hierarchy that contains all of your destination clients for Office software update scans. Table 6.5 shows the installation requirements for the installation program and the two client components. Note that the minimum supported client operating system requirement is different from that of the Security Update Inventory Tool. Table 6.5 Installation Requirements for the Microsoft Office Inventory Tool for Updates
Internet Explorer version Not applicable 5.0 or later Other dependency MSXML 3.0 SP41 MSXML 3.0 SP4
(continued)
Table 6.5 Installation Requirements for the Microsoft Office Inventory Tool for Updates (continued)
Internet Explorer version Other dependency MSXML 3.0 SP4
Component
File name
Runs on
Synchronization Syncxml.exe
1 See the About the Microsoft XML dependency for the software update inventory tools section later in this chapter.
Also, see the System Requirements section of the product release notes for the most current information about the Microsoft XML version. 2 See the Preinstallation requirements for the synchronization component section later in this chapter for the special requirements for this SMS client computer.
About the Microsoft XML dependency for the software update inventory tools
The software update inventory tool scan components (Security Update Inventory Scan Tool and Microsoft Office Inventory Scan Tool for Updates) both require MSXML, version 3.0 SP2 to run on SMS client computers. If this application is not found, the scan components install it. The tools detect older versions by looking for Msxml3.dll having a version earlier than 8.40.9419.0 in the %Windir%\system32 folder of the SMS client computer. If you have applications that are not compatible with this version of MSXML and want to bypass this upgrade, you can preinstall the Msxml3.dll and Msxml3r.dll files on client computers before you deploy the inventory scan programs, or you can change the scan tool program command-line by using the following procedure. This prevents the automated upgrade to MSXML 3.0 SP4 if it is not required in your environment.
Important
Versions of MSXML that are earlier than version 3.0 SP2 have not been extensively tested for use by the scan component and are not recommended.
2.
In the results pane, right-click the program you want to modify, and then click Properties.
3.
Or
O_scan.exe /s /cache /noxml
For more information about configuring the synchronization component, see the Configure the Synchronization Host section later in this chapter.
To learn how to convert a file system from FAT to NTFS, refer to the help available by typing convert /? at the command prompt.
Client Requirement
One client is sufficient for minimum test purposes. However, if you want to have a representative sample of how the tools will work with all of the systems used in your enterprise, it is recommended that you have at least one Advanced Client and one Legacy Client for each representative configuration in your environment. For example, if you have computers that are running Windows 2000 SP3 and Windows NT 4.0 SP6a, you should have a client computer for each of these operating systems in your test configuration. If you do not currently use a certain operating system (for example, Windows XP) in your enterprise, but you plan to use it in the future, it is recommended that you add a computer that is running that system to your test configuration. This allows you to become familiar with how the software update management components and software updates work with the operating system before you deploy it in your enterprise. Setting up this type of extended client test configuration allows you to become familiar with software update management in many different ways. By using more than one operating system, you can: u u u u Review the specific software updates that Microsoft has published for those operating systems. Start to get familiar with update management practices for each system. Learn how the updates work with different operating systems, in a controlled environment. Learn how to find information about specific updates for specific operating systems when you need it.
For more information about configuring SMS client computers, see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Note
The above hardware inventory setting suggestions are for test purposes only. The actual frequency with which you run the hardware inventory in a fullscale deployment of the tools depends on the needs of your enterprise and performance considerations associated with the generation of additional hardware inventory data.
For more information about configuring the Hardware Inventory settings, see Chapter 2, Collecting Hardware and Software Inventory. For more information about specific performance issues associated with these tools, see the Performance Considerations section later in this chapter.
Modify the Advertised Program Client Agent polling interval. By default, the software distribution system on a client computer checks for software distribution activity every hour. For test purposes, to avoid unnecessary delays, you can increase the polling frequency to an interval of five or ten minutes.
Note
In a test environment, a short polling interval causes few system resource usage problems. However, when deploying the tools to a larger system, the polling interval should be increased, for example, to a four-hour interval to prevent performance problems.
For more information about configuring the SMS software distribution settings, see Chapter 5, Distributing Software. For more information about specific performance issues associated with these components, see the Performance Considerations section later in this chapter.
As mentioned in the Software Distribution Settings section earlier in this chapter, both SMS software distribution and the software update management components have countdown and notification features for assigned programs. To prevent duplicate countdowns and notifications, disable these features for software distribution on the SMS primary site. The countdown and notification features that are provided by the software update management components can be changed or eliminated as needed.
Note
There might be other software distribution practices occurring in your enterprise that use the SMS countdown and notification features. You should review these before you make the recommended changes; however, that review should also take into account the countdown and notification features that are provided by the software update management components.
Security updates are updates to Microsoft operating systems and other systems software. If you want to manage security updates, begin by deploying the Security Update Inventory Tool. Office updates are software updates to Microsoft Office software. If you want to manage Office updates, begin by deploying the Microsoft Office Inventory Tool for Updates. Note that you can install either tool independent of the other.
(continued)
Package Software update inventory tool package toolname (sitecode) The main package for distributing Security Update Inventory Tool client components to SMS client computers. The package node contains subnodes for access accounts, distribution points, and programs. Under the Programs subnode, the distribution package contains the three programs described below by default:
Programs Scan component program toolname (sitecode) The generic program for running the scan component on SMS client computers in a production environment. By default, this program runs the scan component with the following command line for the Security Update Inventory Tool:
s_scan.exe /s /cache
A special program for running the scan component on SMS client computers in an expedited manner in a test environment. For performance reasons, you should not use the program in a production environment. By default, this program runs the scan component with the following command line for the Security Update Inventory Tool:
s_scan.exe /s /cache /kick
(continued)
Advertisements Scan component advertisement toolname (sitecode) Advertisement for distributing the scan component to client computers. Scheduled to run every seven days by default. By default, this advertisement runs the standard (not expedited) scan component program. Advertisement for the synchronization component. Scheduled to run every seven days by default.
If you plan to run the synchronization host in unattended mode, you must do the following: u
For more information about configuring the synchronization component, see the Configure the Synchronization Host section later in this chapter.
In addition, you should review the preinstallation requirements for the Security Update Inventory Tool. The following sections provide general information about the options available on some of the pages of the Security Update Inventory Tool Installer. For more detailed steps, see the documentation for the tool available at the Microsoft Downloads Web site at http://www.microsoft.com/smserver/downloads.
3.
Step through the installation wizard to install the tool components, noting the following: u The Scan Tool Download page of the wizard prompts you to download the security bulletin file (Mssecure.cab), which is a required dependency of the Security Update Inventory Tool.
Note
If you are installing the Security Update Inventory Tool on a computer that does not have Internet access, you can download the file manually from http://www.microsoft.com/smserver/downloads and then copy it to the installation folder of the Security Update Inventory Tool (the default folder is C:\Program Files\Security Update\1033. You might be required to create this folder).
The Distribution Settings page of the installation wizard allows you to configure the default objects that are created by the installation wizard. These objects include packages, programs, collections, and advertisements that you must have to deploy the Security Update Inventory Tool to your SMS client computers. For more information about these default objects, see Table 6.6. On this page you can also specify whether or not you want setup to assign the distribution package to all of the distribution points in your site. If you choose not to have this done, the package is not assigned to any distribution points, and you can use the standard package management features of the SMS Administrator console to assign the package to the distribution points of your choice. The last part of this page prompts you to assign a name to these objects. You should choose a name that allows you to clearly identify the tool and software update type you are installing, and that allows you to distinguish this instance of the tool from instances that are installed on other sites in the hierarchy.
Caution
Renaming these objects after they are created might cause some parts of the software update inventory process to fail.
On the Database Updates page of the installation wizard, specify the name of an Internet-connected SMS client computer to run the Security Updates Sync Tool task. The computer that you specify here is the synchronization host, and it requires authenticated Internet access through the firewall. For more information about configuring synchronization component access through the firewall, or for installation on sites without Internet access, see the Configure the Synchronization Host section later in this chapter. Setup places the specified computer into a collection and creates a weekly advertisement to download, install, and distribute updated versions of the synchronization component and database. By default, the advertisement is assigned on a weekly basis within the security context of the user who is currently logged on and running the Installer.
If you do not supply a computer name and leave the text field blank, setup creates only the synchronization component program, but not the collection or advertisement. u On the Test Computer page of the installation wizard, specify a test computer to be added to the test collection that setup creates (the pre-production collection). By default, the test collection is specified as the value of the Limit to collection property of the main collection. In most cases you will want to add more computers to this test collection after you complete the installation process. For more information, see the Task 2: Prepare the Test Environment section earlier in this chapter.
In addition, you should review the preinstallation requirements for the Microsoft Office Inventory Tool for Updates. The following notes provide general information about the options that are available on some of the pages of the Security Update Inventory Tool Installer. For more detailed steps, see the documentation for the tool available at the Microsoft Downloads Web site at http://www.microsoft.com/smserver/downloads.
3.
Step through the installation wizard to install the tool components, noting the following: u The Office Update Inventory Tool page prompts you to download the Office Update Inventory files (Invcif.exe and Invcm.exe), which contain the latest tool and catalog for scanning Microsoft Office.
Note
If you are installing the Microsoft Office Inventory Tool for Updates on a computer that does not have Internet access, you can download the file manually at http://www.microsoft.com/smserver/downloads and then copy it to the installation folder of the Microsoft Office Inventory Tool for Updates (the default folder is C:\Program Files\OfficePatch\. You might be required to create this folder).
The Distribution Settings page allows you to configure the default objects that are created by the installation wizard. These objects include packages, programs, collections, and advertisements that you need to deploy the Microsoft Office Inventory Tool for Updates to your SMS client computers. For more information about these default objects, see Table 6.6, Software Update Inventory Tool Default Objects, earlier in this chapter. On this page you can also specify whether or not you want setup to assign the distribution package to all of the distribution points in your site. If you choose not to have this done, the package is not assigned to any distribution points, and you can use standard package management features of the SMS Administrator console to assign the package to the distribution points of your choice. The last part of this wizard page prompts you to assign a name to these objects. You should choose a name that allows you to clearly identify the tool and software update type you are installing, and that will allow you to distinguish this instance of the tool from instances that are installed on other sites in the hierarchy.
Caution
Renaming these objects after they are created might cause some parts of the software update inventory process to fail.
On the Database Updates page, specify the name of an Internet-connected SMS client computer to run the Microsoft Office Inventory Sync Tool for Updates task (the synchronization component). The computer that you name here is the synchronization host, and it requires authenticated Internet access through the firewall. For more information about configuring the synchronization component, or for installation on sites without Internet access, see the Configure the Synchronization Host section earlier in this chapter.
The installation wizard places the specified computer into a collection and creates a weekly advertisement to download, install, and distribute updated versions of the synchronization component and database. By default, the advertisement is assigned on a weekly basis within the security context of the user who is currently logged on and running the installation wizard. If you do not supply a computer name and leave the text field blank, the installation wizard creates only the synchronization component program, but not the collection or advertisement. u On the Test Computer page, specify a test computer to be added to the test collection that the installation wizard will create (the pre-production collection). By default, the test collection is specified as the value of the Limit to collection property of the main collection. In most cases you will want to add more computers to this test collection after you complete the installation process. For more information, see the Task 2: Prepare the Test Environment section earlier in this chapter.
u u
The logged-on user must have read/write permission to the package source folder for the scan component. The logged-on user must have access to the package object (if the synchronization component will dynamically update the distribution points). You (or another administrator with the proper credentials) must be constantly logged on to the synchronization host for the synchronization component to work. If you are logged off for an extended period of time (for example, on vacation) there could be a delay of software update compliance and a backlog of newly released software updates on your return.
1.
During software update inventory tool installation, place the synchronization component on the same computer as the package source folder. The package source folder is the location you specify in the Select Destination Directory page of the Security Update Inventory Tool Installer or the Microsoft Office Inventory Tool for Updates Installer. Grant the local Administrators group read/write access to this folder.
2.
3.
In the SMS Administrator console, navigate to the Programs item for the software update inventory tool (Security Update Scan Tool or Microsoft Office Inventory Tool for Updates).
Systems Management Serve X Site Database (site code - site name) X Packages X package X Programs
4.
Right-click the program for the synchronization component, click Properties, on the General tab, modify the command line as follows:
Syncxml.exe /s /unattend /site <site server> /code <site code> /target <package source> /package <packageID>
u 5. 6.
On the Environment tab, under Program can run, select Whether or not a user is logged in.
Modify the properties for the package to update distribution points on a schedule. You can configure this by using the Package Properties Data Source tab. On the synchronization host, start Internet Explorer and open the Internet Options dialog box. On the Advanced tab, select Use HTTP 1.1 through proxy connections, and then click OK to save the changes. Ensure that the firewall/proxy settings for the synchronization host allow anonymous access. If not, use the procedure below to specify an authentication account for the synchronization host to use in authenticating through the firewall. Ensure that the source directory for the scan component package is located on the synchronization host. This is because the SMSCliToknLocalAcct& account does not have permissions to update this directory over the network.
7.
8.
Note
If the synchronization host is also a site server, you can remove the /unattend parameter from the command line for the synchronization component program, and you can skip step 5.
PatchDownloader.dll is also used by the Distribute Software Updates Wizard to download software update files.
Note
When you use the following procedure, PatchDownloader.dll always uses the specified account to authenticate.
2.
Where username is the credential of an account with access permissions through the firewall. If port is not specified, port 80 is used by default. The program will prompt you for the password. To remove the configuration, use the /clean option.
Important
For security reasons, make sure that the account you specify does not have more security credentials than are necessary to connect through the firewall.
The procedure below describes another method for expediting the testing of the software update inventory tools. This method is recommended for a small collection of reference computers only.
Important
Using the expedited program causes a full hardware inventory cycle and can cause serious network and performance issues if it is used in your production environment.
2. 3. 4. 5.
In the contents pane, right-click the advertisement for the scan component, and then click Properties. In the Advertisement Properties dialog box, click the General tab. In the Program list, select the expedited program:
toolname (expedited)
Click OK. SMS sends the updated program data to the client access points in the site.
Ensure that the synchronization component of each software update inventory tool is properly configured on the server. The synchronization component downloads the software update database or catalog from the Internet and makes it available to the clients through SMS distribution points. For more information about configuring this component, see the Configure the Synchronization Host section earlier in this chapter. Verify that the SMSCliToknLocalAcct& account on the site server computer has firewall authentication access and can download updated catalogs. To do this, grant the SMSCliToknLocalAcct& account access to the package source directory. Verify that the advertisement for the synchronization component runs correctly to distribute the updated catalogs to the client computers. To do this, view the status messages for the advertisement and check the file dates on the package source folder files and distribution point folders. Verify that the correct SMS distribution points are automatically updated to include the latest catalogs. To do this, view the status messages for the advertisement and check the file dates on the package source folder files and distribution point folders. For more information about viewing status messages, see the Software Update Status Messages section later in this chapter. If the SMSCliToknLocalAcct& account does not have WMI permissions to the package object, the distribution points require a separate, recurring, scheduled update for the latest catalogs, which you configure and add manually. If this is the case, use the /unattend option in the command-line interface for the synchronization component to verify that the distribution points are not updated by the synchronization component since the scheduled update would be in effect. For more information about configuring this component, see the Configure the Synchronization Host section earlier in this chapter.
Note
Security bulletin catalog data on the Internet is typically updated on a weekly basis, so the time you select for the synchronization tasks should immediately follow that schedule to ensure that the latest updates catalog is available to your enterprise. In the same manner, the distribution of the latest catalog update to each client computer should be scheduled to follow the catalog synchronization for the distribution points. For more information, see the Scheduling: Best Practices section later in this chapter.
For these reasons, it is important that you protect this folder in the following ways: 1.
u 2.
Back up the folder according to a regular schedule, as determined by the backup policy for your enterprise. For more information, see Chapter 15, Backup and Recovery.
You can minimize the number of software updates you need to distribute, and thus the package size, by keeping your client computers current with the latest service pack. For more information, see the About Service Packs section earlier in this chapter. The Dynamic Package Configuration feature, new with SMS 2003, allows you to specify multiple programs for a single package, and to attach multiple authorization lists. This means, for example, that you can perform a phased rollout of a newly authorized software update, distributing it first to a test collection, next to a small group of early adopters, and only then to the enterprise at large, all from the same package. Another way that you can use this feature is to create a separate program for servers that specifies no automated system restarts and another program for workstations that requires automated system restarts at installation time. For more information, see the Configure Installation Agent Advanced Options section later in this chapter. The Distribute Software Updates Wizard only lists a software update for approval and inclusion in a package if the update is requested by at least one client computer. You can avoid this limitation by using a reference computer. For more information, see the Configure Installation Agent Advanced Options section later in this chapter.
Table 6.7 lists possible strategies for software update packages: Table 6.7 Software Update Package Strategies: Benefits and Drawbacks
Package strategy Single package containing all authorized software updates; one package for each software update type Detail Create a single package for all Security updates and another package for all Office updates. Modify the package periodically by approving newly released software updates to add to the package. Benefit Less overhead in creating a single package. Can be useful for organizations with homogeneous environments, such as most clients running the same operating system and service pack. Drawback Cannot easily be used to retire product versions or service pack levels. Can result in large packages, performance problems (especially for mobile clients over slow links).
(continued)
Table 6.7 Software Update Package Strategies: Benefits and Drawbacks (continued)
Package strategy Multiple packages organized by operating system or service pack level Detail Create a package for each operating system version and service pack level. Create a corresponding collection for each package. Benefit Easily accommodates retiring product versions or service pack levels. Smaller packages being distributed to each client. Accommodates heterogeneous environments with multiple client operating system versions. Easily accommodates a phased deployment process. Minimizes size of packages in most active use. Maintains single Definitive Software Library package for new resources coming online Can be efficient way of maintaining mobile clients. Drawback More administrative overhead in creating and managing packages. Need to mirror operating systembased collections in test environment.
Administer and maintain the base package that contains all authorized updates for update type. The program is configured not to run when no local distribution point is available. Weekly or as dictated, the administrator also creates dated packages containing only new software updates. Program properties are set to Download and Execute when no local distribution point is available.
More administrative overhead in creating and managing clients. Multiple patch packages can lead to multiple system restarts if systems have been offline. Potential for overloading local software cache on mobile clients.
(continued)
Table 6.7 Software Update Package Strategies: Benefits and Drawbacks (continued)
Package strategy Packages organized by criticality of software update Detail Critical security updates. Non-critical mandatory updates. Optional updates. Benefit Recommended by Microsoft Solutions Framework. Drawback Administrative overhead caused by Microsoft not having a listing that contains all Critical Security Updates. Requires multiple advertisements for same users.
For guidance in deciding which security updates you should apply to avoid an adverse effect in your particular circumstances and in how rapidly you need to take action on given software updates, see the Microsoft Security Response Center Security Bulletin Severity Rating System at http://www.microsoft.com/technet/security/topics/rating.asp.
Important
Be aware that when you authorize a software update for distribution with the Distribute Software Updates Wizard and save the changes to the package, it is very difficult to undo the action. The authorization data (such as time approved and the fact of the approval) persists in several places in the SMS data store. You can, however, stop an authorized update from being distributed by running the Distribute Software Updates Wizard again to modify the package, and then clearing the check box next to the software update in the authorized updates list. To then uninstall a previously installed software update from client computers, you must create a collection query for client computers with the update installed and use SMS software distribution features to distribute an uninstall program for the software update. For these reasons, it is highly recommended that you evaluate and test each software update thoroughly before you authorize it for distribution to your enterprise.
Important
You must administer a software update package from the site on which it was created.
Table 6.8 provides a detailed list of the administrative credentials you should have to run the wizard. Table 6.8 Required Credentials to Run the Distribute Software Updates Wizard
Class Site Package Read Read, Create, and Distribute Credential Detail Required to run the wizard Required to create packages with the wizard
(continued)
Table 6.8 Required Credentials to Run the Distribute Software Updates Wizard (continued)
Class Advertisement Collections Credential Read and Create Read, Create, and Advertise Detail Not required if you do not use the wizard to create advertisements Not required to create packages; required to advertise packages to a collection
The following sections cover some of the information you must provide when you are completing the wizard. For detailed, page-by-page instructions, see the Help that is available when you click Help on the first page of the wizard.
Important
You must specify the correct command-line parameters for each software update. If you include even an extra space when you enter the commandline parameters it might cause the installation of that software update to fail.
Because software updates can come from a wide range of sources with a wide array of behaviors, it is recommended that you proceed with the installation of an update even if it appears to have become unresponsive. However, if a software update is permitted to remain unresponsive for a long period of time, it could leave the system in a vulnerable and inconsistent state. Therefore, it is necessary to set the time-out value to allow an unresponsive update to be disabled. The default setting is 30 minutes. If you enter a value of zero in this setting, the software update is not given any time to be installed. To avoid this problem, you should provide at least 10 minutes for this time-out value as a recommended minimum. u Installation grace period radio buttons These three radio buttons on the third page allow you to specify the grace period, if any, that you want to allow users. Variable installation grace periods allow you to prioritize critical updates and provide a flexible installation schedule for less critical updates. There are three types of grace period settings available: u u u Require updates to be installed as soon as they are advertised Use this for highpriority, critical updates. This setting makes update installation mandatory. Users can postpone updates indefinitely Use this for low-priority updates. This setting allows users an infinite amount of time to install the updates. Allow users to postpone installation for: Use this for intermediate priority updates. This setting allows you to create a customized installation schedule.
If you select the last option, you can set the basis for the grace period either according to the time the update is detected as applicable to the computer or according to the time it was authorized. The grace period can either be enforced per update, or it can be enforced for an entire package of updates. This allows you to include critical and non-critical updates in the same package.
When this box is cleared, end users can receive notifications. The nature of the notifications and the actions that are available to the end user depend on the type of client (Legacy Client or Advanced Client) that is running on the user's computer and the other software update installation settings you specify in the wizard. When this box is checked, end users are not notified of impending or in-progress software update installations and the software updates are silently installed, subject to the default actions you have defined on this page of the wizard. If the installation requires a system restart, the user interface that appears is the operating system's progress dialog box that indicates that a system restart is being initiated.
Important
If you choose to enable silent installations by keeping this check box checked, you should carefully review the other software update installation settings you have configured, such as installation grace period and restart behavior, to make sure that the end result is the behavior you require. For example, if you check this check box but then specify that the software updates computer restart can be postponed indefinitely, then the software updates in the package are never completely installed if they need a computer restart and the computer is not restated.
Notify users about update activity This check box on the third page is applicable to the SMS Advanced Client only and enables users of the Advanced Client to receive regular notifications of impending software update installations and to postpone or schedule software update installations locally. The notifications occur every three hours. This setting can be used in conjunction with the Perform unattended installation of software updates setting and users of SMS Advanced Client computers will receive only reminders that relate to computer restart activity which you might choose to enforce after a future deadline is reached. In more secure environments, this can provide optimal balance of the productivity needs of the user, and the enforcement needs of the administrator.
2.
For urgent updates, you can configure the Software Updates Installation Agent to force a restart even if the user has unsaved data on the desktop.
Caution
This option causes possible data loss on client computers.
Note
When you click Browse to view a list of available collections on this page, be aware that the displayed list contains all collections, whether or not you have privileges to successfully advertise to that collection.
In an update to an administrative installation, the software update installation files must have access to the product code and installation source files of the original installation share in order for the software update to successfully install on client computers. Although most Microsoft Office Update files can be downloaded automatically by using the Distribute Software Updates Wizard, many of them are not ready to deploy without further manual steps. These steps can include decompressing the files and downloading and configuring a special tool, Ohotfix.exe. For more information about using this tool, see the following procedure.
About Ohotfix.exe
Ohotfix.exe is a software program that is designed to help administrators deploy Microsoft Office update files within their organizations. Ohotfix.exe works by reading a series of deployment instructions that are contained in an .ini file, and then using those instructions to apply the software update to the computer. Ohotfix.exe can also check applications on the computer to determine which updates need to be applied, and it can order a group of update files so that an installation is optimized.
3.
Edit Ohotfix.ini using a text editor such as Microsoft Notepad. Instructions on the settings you must provide in the Ohotfix.ini file are contained within the file itself. In particular, however, make sure you specify the following settings to ensure quiet installation:
ShowSuccessDialog=0 OHotfixUILevel=q MSiUILevel=q
4.
In the package source folder for each Office update you want to distribute, open a command prompt and extract each Office update file using a command such as the example below:
C:\path to update file\MyUpdate.exe /c /t:C:/path to update file
Note
Copy the extracted Office update files to the same folder containing the Exe file for the update, and then delete the Exe file.
5.
Run the Distribute Software Updates Wizard again and modify the package containing the Office update files you want to distribute. In the Software Updates Status page, select each Office update that you want to distribute, and then click Properties.
6.
In the dialog box that opens, click Import next to the Program text box and then select Ohotfix.exe. Click OK. You will see an error message stating that the binary you selected does not match the binaries suggested for this software update. Click Yes to proceed.
7.
Click OK again to close the Software Update Properties dialog box. You will see another error informing you that command-line parameters are not specified for this software update. Click OK.
Note
Although the SMS status system reports these three status conditions for updates to Microsoft Office applications, the software update reports do not. You can, however, create a custom report that shows software updates that are in the AdminApplicable status. To learn how to create a custom report, see Create Custom Software Updates Reports in the SMS Administrator console Help.
2.
Using the Distribute Software Updates Wizard, create a separate package that contains only administrative updates. Note that when you authorize these software updates for inclusion in the package, you must manually download the necessary files from the Office download site. To do so, click the link to download the update. On the Web page that opens, search for the instructions on downloading the administrative update. Configure an advertisement for the package and distribute it to the administrative update collection. For the computers that are running client installations, create another collection that excludes any computer with an AdminApplicable status by using a query such as the following:
select * from SMS_R_System inner join SMS_G_System_PATCHSTATE on SMS_G_System_PATCHSTATE.ResourceID = SMS_R_System.ResourceId where SMS_G_System_PATCHSTATE.Status != "AdminApplicable"
3. 4.
5. 6.
Using the Distribute Software Updates Wizard, create a separate package that contains only client updates. Configure an advertisement for the package and distribute it to the client update collection.
2. 3.
In the details pane, right-click the program that you want to modify, and then click Properties. In the Program Properties dialog box, follow the instructions on the Windows Installer tab to provide the source location for the package.
After you have specified the source file location for the program package, you can authorize software updates for distribution to SMS client computers that are running that program. When you authorize a software update to a Windows Installer program by using the Distribute Software Updates Wizard, you can now specify file names in the Windows Installer file format (.msi or .msp). Using the Distribute Software Updates Wizard, you can create or modify the package that you want to contain the software updates. To do so, use the following procedure.
4.
5.
Note, however, that when the command runs on the client, the actual command-line that the Software Update Installation uses in this case would be:
msiexec.exe /i <patch.msp> /q REBOOT=ReallySuppress
Where <patch.msp> is the Windows Installer file you specify in the Program box. For more information about Windows Installer command-line options, see MSDN at http://msdn.microsoft.com/library/default.asp?url=/library/enus/msi/setup/command_line_options.asp.
Note
For ease of deployment and tracking, place the reference computer in its own collection.
2.
If you have not already done so, deploy the software update inventory scan component to the reference computer. Make sure that the latest version of the software updates catalog is available (for example, Mssecure.cab).
Note
You can download the file manually. For example, for the Security Update Inventory Tool, download the file at http://www.microsoft.com/smserver/downloads and then copy it to the installation folder of the Security Update Inventory Tool (the default folder is C:\Program Files\Security Update\1033.)
3.
Run the Distribute Software Updates Wizard to either modify an existing package or to create a new package. The content of this package is unimportant; you are only using it to force the Software Updates Installation Agent to output the local version of PatchAuthorize.xml that you will use as a reference template. Make sure, however, that the package is of the same software update type as the software updates that you are concerned with.
4.
Step through the wizard to configure the package. Make sure you specify the following items: u u u You must select at least one software update for authorization to complete the wizard. On the last Configure Installation Agent Settings page, select the Create reference computer templates during processing check box. On the Advertise updates page, select the Advertise check box. Under Collection, browse to the collection that contains your reference computer.
5.
After you complete the wizard, right-click the advertisement that was created for the new package, point to All tasks, and then click Re-run advertisement . When the advertisement runs, the Software Updates Installation Agent creates a file called <type>_PatchAuthorize.xml (where type is the software update type) in the system temp folder of the reference computer where you ran the advertisement (for example, C:\winnt\system32\temp). This file contains a master list of all the software updates that are detected on the reference computer, whether installed, applicable, or authorized.
6.
You can import this new authorization list into a new or existing software updates package to distribute software updates to SMS client computers in your production environment based on this authorization list. To learn how to do this, see the Specify a New Software Updates Authorization List section later in this chapter.
Important
Be careful when you use this feature with the persistent notification feature. For example, it is possible that notifications will appear outside of the scheduled time period when installations are actually allowed, leading to potential end-user confusion. In general, scheduled installations are designed to be used in silent installations that require no user interaction. For more information, see the Configure user interaction section earlier in this chapter.
3.
In Wait <N> minutes maximum for all updates and then defer remaining items type the number of minutes you want to allow for the software update installation after the advertisement begins to run. Step through the rest of the wizard, and then click Finish on the last page. Follow the steps to create an advertisement for the package you just created or modified. On the Schedule tab in the Advertisement Properties dialog box, under Advertisement Start time, specify the start time for the scheduled software update installation. The start time you specify will be the time that the scheduled installation begins.
4. 5.
To use the dynamic package configuration feature, first run the Distribute Software Updates Wizard in the usual way to create the default program for the package. Then use the procedure below to create a second program. You can create as many programs as you want for a given package.
After you create the new program object, any settings you then configure with the wizard apply to that program. Any software updates that you authorize are added to the package but are approved for authorization for that program only. You can also use the wizard to configure an advertisement for that program, and assign the advertisement to the collection of your choice. For example, you can use a reference computer template to generate a new authorization list that lists a software vulnerability that has not yet been reported by client computers in your enterprise. You can use the procedure in the following section to attach the new authorization list to the program, authorize the new security update for the vulnerability, and then create an advertisement and assign the advertisement to your test collection.
2. 3. 4. 5.
Important
When you merge a software updates authorization list, items in the newly merged list take precedence over duplicate items in the existing list.
Also consider that Advanced Clients have the option of the persistent notification feature, which provides a local reminder at three-hour intervals, independent of the advertisement schedule. You should therefore configure the advertisement schedule based on the number of Legacy Clients in your environment and the need to simulate a reminder-like behavior for those clients.
Verify that the per-update grace period enforcement leaves unexpired patches in an optional state. To do this, create a package that contains multiple updates, and configure per-update grace period enforcement by using the Configure Installation Agent Settings page in the Distribute Software Updates Wizard. Allow the grace period to expire, and then verify that the only updates that have mandatory installation status are those whose grace period has expired. The non-expired updates should be available for installation, but not mandatory; they are installed only if the user clicks Install Now. If the countdown timer reaches zero and the agent initiates the installation process, the updates for which the installation grace period has not expired are not be installed automatically.
Verify default action. Ensure the specified failsafe time-out, installation countdown, postponement and default installation actions occur properly if no user interaction is provided. To configure these settings, use the Distribute Software Updates Wizard or the Software Updates Installation Agent command-line syntax. Both SMS and the Feature Pack tools support notification and countdown features for assigned programs. When using the Feature Pack tools to deploy software updates, it is recommended that you disable the SMS versions of the countdown and notification features to prevent confusion. If the SMS versions of these features remain active, end users see two sets of countdowns and two sets of notifications for each assigned program.
Verify branding. To test whether your branding is appearing properly, create a file, named Summary.htm, in the package source folder, and place some branded content in it. Then, verify that your client computer properly displays the branding. Note that embedded objects such as graphics do not appear on computers that are running Windows NT 4.0. Branding is specific to each package, so when you configure branding for a package all updates in the package share the branding. Different packages can have different branding, for example, Critical Updates in one package, and Office Updates in another package, each with different branding.
Verify failsafe time-out behavior. Test the failsafe time-out behavior by using the Parameters field and clicking Syntax on the wizard properties page to configure an update that does not suppress user input (that is, it requires user input to install) and then verify that the update is terminated after the time-out has been reached. Also, after that update terminates, verify that the Software Updates Installation Agent attempts to install the remaining updates in the package.
Examine status data. Verify whether the status data for updates is accurate by checking to see if the TimeApplied value is correct for all installed updates processed by the Software Updates Installation Agent. This information can be viewed in the inventory schema found within the SQL View: v_GS_PATCHSTATE, from the SMS Resource Explorer or from the sample reports included with the Reporting add-in.
Verify system restart behavior. You can configure system restart behavior by using the Configure Installation Agent Settings page in the Distribute Software Updates Wizard or the Software Updates Installation Agent command-line interface. You can configure different post-installation system restart behavior for workstations and servers in your enterprise. Based on the settings you configured, ensure that restart detection will function as you expect for each computer role. To do this, configure different system restart settings for different updates, and then monitor the behavior of the system installing the update. When a system restart is required, the closure of active applications can be configured with a countdown to restart. This provides users with the opportunity to save their work. Alternatively, applications can be closed and the system can be restarted without a grace period. Verify that application closure during post-installation system restart will function as you expect.
2.
The following procedure describes a method for initiating a one-time forced re-run of a software update package advertisement prior to the next recurrence date for the advertisement. Clients process new advertisements according to their polling interval settings. For this reason, you might choose to use a new package or a new program to expedite the delivery of an urgent update. Existing advertisements observe their recurrence schedule (weekly by default) and are the primary deployment method for normal operations.
3.
4.
You can use the same tools that you use to monitor software distribution to monitor the progress of a software update distribution in your enterprise. These tools, such as the Package Status summary and the Advertisement Status Summary, are described in Chapter 5, Distributing Software. In addition to these tools, SMS 2003 provides a number of tools and features that are specific to software update management. These tools and features are described in the following section.
(continued)
(continued)
Table 6.10 Software Update Management Components in the SMS Status System (continued)
Component Software update synchronization component Description Reports events and errors related to the software update inventory synchronization component. Note that this component name does not distinguish which software update inventory tool is in use, although the specific software update type is specified in the body of the message.
OfficeSyncXml.log
Log file for the synchronization component; used for troubleshooting firewall and authentication issues.
Security Updates Scan Tool (S_scan.exe) Microsoft Office Inventory Scan Tool for Updates (O_scan.exe)
SecurityPatch.log
Log file maintained by scan component on SMS client computer. Log file maintained by scan component on SMS client computer.
OfficePatch.log
(continued)
Table 6.11 Software Update Installation Client Log Files and Locations (continued)
Component Software Updates Installation Agent File name PatchInstall.log Location System Temp folder of the SMS client computer. Description Package installation log file maintained by the Software Updates Installation Agent on the SMS client computer. Installation log maintained by software update installers. Contains information about actual software update installation.
<qnumber>.log
u u
These reports can help you obtain such information as: u u u Service coverage How many systems are currently in compliance for the software update. Impact How many systems require the software update. Exposure How many systems are currently out of compliance for the update.
Many of these reports list the distribution status of each specific software update. The distribution status property is an optional property of software update status messages, and indicates the current status of the installation of a specific software update on a specific client computer. Table 6.12 shows the distribution status categories and their meanings.
Note
The software update reports use slightly different terminology than software update status messages when referring to distribution status.
Retrying
Postponed
Failed
Uninstalled
Note
Software updates for Microsoft Office applications can have a third status in Resource Explorer, AdminApplicable. This status applies to software updates to client installations that are being managed from an administrative shared folder. For more information, see the Notes on Deploying Microsoft Office Updates section earlier in this chapter.
Be aware, however, that the information displayed in Resource Explorer is only as accurate as the most recent hardware inventory data.
For example: u
Establish baselines
An important part of the software update management process is creating initial standard installations of operating system versions, applications, and hardware for computers in your enterprise, called baselines. A baseline is the configuration of a product or system established at a specific point in time. An application or software baseline, for example, provides the ability to rebuild a computer to a specific state. Baselines provide the basis for finding and fixing potential problems and simplifying the software update management process considerably, both by reducing the number of software updates you must deploy in your enterprise and by increasing your ability to monitor compliance. After performing the initial audit of your enterprise, you should use the information that is obtained from the audit to define an operational baseline for the IT components within your production environment. A number of baselines might be required, depending on the different types of hardware and software deployed into production. For example, certain laptop computers require a software update to prevent them from hanging when they enter hibernation or standby mode when running Windows XP. A baseline for these laptops should include this software update. In large organizations, it is often helpful to divide the computers in your enterprise into asset categories and keep each category at a standard baseline by using the same versions of software and software updates. You can then use these asset categories in prioritizing a software update distribution.
The Software Updates Installation Agent includes an option to generate a reference computer template that contains the baseline of software updates from a reference computer. For more information, see the Use a reference computer to expedite approval processing section earlier in this chapter.
Co-locate the synchronization component and the scan component package source folder
When you are running the synchronization component in unattended mode, ensure that the computer hosting the package source folder for the scan component is also the computer that runs the synchronization component. This ensures that the synchronization component has proper credentials to access the package source folder. Be careful, however, to control the access to this folder to prevent unauthorized changes. For more information, see the Task 1: Prepare the Package Source Folder section earlier in this chapter.
u u
Reuse existing packages and collections when authorizing new software updates for distribution to stationary computers
A single software update package can contain multiple software updates, and these updates can be for multiple operating systems, versions, and client locales. At installation time, the Software Updates Installation Agent determines which software updates are applicable to a given SMS client computer, and installs only those updates. For this reason, it is best to organize your software update packages according to predetermined criteria, and then modify those packages when new software updates are authorized. When adding new software updates to a package, you can create a separate program for the new items to distribute them to the pre-production collection, and then merge the software updates into the main program after they have been tested.
Use a new package when authorizing selected software updates for distribution to mobile or remote computers
To conserve bandwidth for mobile computers and help increase compliance for critical software updates, consider creating separate packages for mobile computers that contain only the software updates that are authorized in the current week. Set the package advertisement properties on this Weekly New Updates package to download and run.
Organize software update packages and collections by operating system and service pack level
Create one software update package that contains all software updates for a specific operating system and service pack, and then create a collection that contains SMS client computers that are running that operating system and service pack. Do this for each operating system version and service pack level in your environment. When these operating systems reach the end of their supported lifetime, the software updates associated with them can easily be archived. This can also reduce the overall size of the packages making it easier for computers to download them prior to running them.
Group clients based on their SMS client version (Legacy Client or Advanced Client.)
Because the SMS Legacy Client does not support the persistent notification feature with its regular three-hour notifications, software update packages that you advertise to Legacy Clients require a more aggressive advertisement schedule (for example, daily as opposed to weekly). For this reason, it is best to place computers that are running the Legacy Client in their own collections wherever possible. This is a performance optimization to ensure that the Advanced Client computers receive a more appropriate advertisement frequency because they function more autonomously.
Specify the default action as Postpone for less urgent updates, Install for urgent updates
You configure the default action with the After waiting setting on the second Configure Installation Agent Settings page of the Distribute Software Updates Wizard.
Calculate the grace period from Time detected for mobile users, Time authorized for desktops
By specifying that the Software Updates Installation Agent calculate the allowable grace period from Time detected, rather than Time authorized, you can level the load on low bandwidth connections and prevent a situation where a software update might become required for all mobile clients at the same time. For desktop users, calculating the grace period from Time Authorized ensures faster response time. Also, when you are authorizing new updates, be sure to check the detection time listed for the software update in inventory if you are calculating the grace period from Time Detected. Be aware that a large lag between the time a software update is detected and the time that it is actually authorized might shorten or eliminate the grace period in this case You can configure this setting in the settings that become available when you set the Allow users to postpone installation for: option on the third Configure Installation Agent Settings page of the Distribute Software Updates Wizard.
Educate end users with branding and documentation attached to software update packages
The Customize the organization page of the Distribute Software Updates Wizard allows you to brand the software update package and include an optional .rtf file for display on SMS client computers during software update installation. You can use this file to help your end users understand the importance of the software updates being installed or to include instructions on scheduling the installation or required system restarts. Note that if you are specifying a name for your organization in this page other than the default Your system administrator, any text that you specify is not localized. Therefore you should ensure that this text is easily and intuitively recognized by all end users, regardless of locale.
Disable Automatic Updates for SMS client computers by using Group Policy
If automatic updates are enabled on a site where software updates are also being deployed with the SMS software update management components, users are likely to be confused, and it will also be difficult for you to perform service-level tracking of software update compliance. For this reason, it is best to disable the Automatic Update service.
Use SMS inventory data to query the vulnerability exposure for a software update
When responding to a new critical software update, you can use SMS hardware and software inventory to query clients according to criteria in the vulnerability matrix for that update. This is not necessary for deploying the software update, but it can be useful for determining the overall exposure to the vulnerability, and whether or how aggressively the software update should be deployed. For example, if the vulnerability only exists on computers that are running IIS, and no computers in a collection are running IIS, the software update deployment can be skipped for that collection.
Monitor status MIF text for run-time errors and summary data
In addition to monitoring the software update reports, you should develop a process for regularly monitoring the software update package advertisement status MIF files for errors and summary data. In the SMS 2003 release, status messages for summary and detail level status have been dramatically improved and are now complete status messages viewable with reports and the status message viewer in each SMS Server language.
Table 6.13 lists the tasks associated with software update management and their recommended frequencies. Table 6.13 Software Update Management Tasks and Frequencies
Task Security scan on SMS client computers Office scan on SMS client computers Performed by Automated, determined by package advertisement Automated, determined by package advertisement Weekly Weekly Weekly Weekly Weekly Frequency
Synchronization (Security Update Automated task on Inventory Tool) synchronization host Synchronization (Microsoft Office Automated task on Inventory Tool for Updates) synchronization host Update Distribution Points (Security Update Inventory Tool) Update Distribution Points (Microsoft Office Inventory Tool for Updates) Run Distribute Software Updates Wizard to modify Security update packages and add newly released or requested software updates Run Distribute Software Updates Wizard to modify Office update packages and add newly released or requested software updates Security updates distributed to SMS client computers (workstations) Microsoft Office updates distributed to SMS client computers (workstations) Security updates distributed to SMS client computers (servers) Client hardware inventory regular schedule Automated task, configured in package properties (see procedure below) Automated task, configured in package properties (see the following procedure) Administrator
Weekly
Administrator
Automated; determined by package advertisement Automated; determined by package advertisement Automated; determined by package advertisement Automated; determined by SMS hardware inventory configuration
Daily/nightly depending on needs of enterprise. Approximately twice a week, day or night, depending on needs of enterprise. Schedule determined by server team. Should not configure automatic restarts. Weekly for sites with more than 10,000 clients.
Table 6.14 shows a sample weekly schedule for these processes. Table 6.14 Software Update Management Processes Sample Schedule
Task Security Update Inventory Tool synchronization task Update Distribution Points (Security Update Inventory Tool) Security Scan on clients M T W Th F S 9:00 A.M. Su
3:00 P.M.
Microsoft Office Inventory Tool for Updates synchronization task Update Distribution Points (Microsoft Office Inventory Tool for Updates) Office Scan on clients
3:00 P.M.
Run DSUW to modify Packages to add new security updates Office Update Advertisements (Workstations) Security Update Advertisements (workstations)
Daily (see below) Nightly (see below) Nightly Nightly (Run daily (see every two below) weeks)
(continued)
2. 3. 4.
Right-click the package that you want to modify, and then click Properties. In the Package Properties dialog box, click the Data Source tab, and then select the This package contains source files check box. Under the Source Directory heading, perform the following tasks: u u Click Set. In the Set Source Directory dialog box, specify the path for the package source files on the network. Select the Always obtain files from source directory check box.
5. 6.
Select the Update distribution points on a schedule check box. Click Schedule to specify how frequently to update the package data on distribution points. The default schedule for the update of distribution points is set to the current date and an interval of one day.
Performance Considerations
This section describes performance considerations that you should be aware of when you use the software update inventory tools in your enterprise.
Processing Load Added to SMS Client Computers by the Software Update Management Components
CPU and disk utilization can increase when a software update is being installed on a client computer. The size and duration of the increase varies depending on the particular update. To obtain the exact size of the increase in processing load, it is recommended that you conduct predeployment testing for each update and determine the processing load increase by monitoring the test computers.
Keep in mind the following information when you select updates and schedule inventory and installation cycles: u Each software update creates approximately 2 KB of inventory data for each client that is reporting the update or reporting a change of state for the update.
Note
The above number is accurate at the time of this writing, but might vary in the future as software update inventory tools evolve. You can verify this number by inspecting a single software update instance inside the MIF files that are being generated by clients that are running the software update inventory scan tools.
The initial software update inventory is large, since it creates a new data record for each software update that is applicable or installed on the client computer. Subsequent software update inventory scans will report only changes to the inventory data, such as newly available or applied software updates, and will generally be considerably smaller. History data for each software update also accrues, and will update the total SMS site database size on the server, when an update changes status from Applicable to Installed.
To help you calculate the effect that the software update inventory and distribution and installation of software updates will have on your system, multiply the numbers above by the number of clients you will be including in the inventory, and then plan the deployment of these tools accordingly. One way to minimize the amount of inventory data passing through your system is to keep your client operating systems running the most current service pack version. For more information about this and other ways to optimize the performance of these tools, see the Software Update Management Best Practices section earlier in this chapter.
After the installation of the tool on the client, the local version of the software update catalog is updated (weekly by default). You can obtain an estimate of the size of this file by looking in the client cache folder for the software update inventory tool. For example, for the Security Update Inventory Tool, look at the 1033\mssecure.cab folder of the client cache folder. When the scan component runs, it sends software update inventory data. This is large for the initial software update inventory, and smaller for subsequent inventories. For a general estimate of the bandwidth consumed by this operation, see the Inventory Data Considerations section earlier in this chapter.
For example, the Security Updates Bulletin Catalog, MSSecure.xml, contains security update information that Microsoft updates regularly once a week by default. Downloading this catalog on a weekly schedule (immediately following the Microsoft update) is generally optimal, and in most cases downloading the catalog more frequently does not provide any additional benefit or protection to your system. (Be aware, however, that Microsoft can update this file at any time if circumstances require it.) For more information, see Table 6.14, Software Update Management Processes Sample Schedule earlier in this chapter.
C H A P T E R
In This Chapter
u u u SMS Installer Overview Customizing Scripts with the Script Editor Testing SMS Installer-generated Executable Files
SMS Installer contains two user interfaces: Installation Expert and Script Editor.
Installation Expert
Use Installation Expert to automatically create a basic installation script on a reference computer, then use Script Editor to customize the script and add user prompts and other attributes.
Script Editor
Use Script Editor to view and edit an installation script generated by the Installation Expert, and then add user prompts or other attributes to your script. You can also use the script editor to create new installation packages. SMS Installer also includes the options that are shown in Table 7.1. Table 7.1 SMS Installer Options
Option Repackage Installation Wizard Description A tool that replaces existing setup files with a customized script that you create by running the existing setup program and by creating a script from the changes that were made to the system during setup A tool that creates a customized installation file for an application by noting the files that are used when you run the application and by creating a script from them A program to create the self-executing file A program that tests the installation executable file without actually installing any files A program that runs the installation program on the reference computer A program to create Windows Installer (.msi) packages A program that runs the Windows Installer (.msi) package A program that uninstalls the Windows installer (.msi) package, if it is installed
Compile Test Run Compile as Windows Installer Package Run as Windows Installer Package Uninstall Windows Installer Package
The first time you start SMS Installer, Installation Expert opens. To switch between Installation Expert and Script Editor, click Script Editor or Installation Expert on the View menu. The user interface displayed at the end of your session appears the next time you start SMS Installer.
2.
Use one of the wizards to create an installation script, and then edit and complete the script in Script Editor. You can also create the script entirely within Script Editor. Compile the installation script and files to create the compressed executable file, and then test the script by installing the files on a test computer. If you prefer to keep the existing setup program but want to add a script that executes it, you can create a wrapper script by using Script Editor.
3.
Distribute the SMS Installer-generated executable file by using the following methods: u u u u Distribute it automatically by using software distribution Copy it onto a series of floppy disks Copy it onto a CD Post it to the Internet or a bulletin board system
On the primary site server, unbundle the SMS Installer files. The files are packaged in such a way that they do not run unless SMS is installed. To set up SMS Installer, copy the SMS Installer installation file (SMSInstl.exe) to the reference computer and double-click the SMSInstl icon. To select the installation options you want, start SMS Installer and edit the SMS Installer attributes. There are 65 available options (script items), and you need to check each one carefully to ensure that they are set up the way you want. For information about each option, see the SMS Installer Help.
5. 6.
To automatically generate an installation script for the application, run the Repackage Application Wizard or the Watch Application Wizard. Use Script Editor to modify the installation script. Usually, you must make at least a few modifications. For example, you can modify the script to prompt the user for information, send messages to the user, search for files, install and delete files, and update .ini files and the registry. Also, the wizard-generated scripts often benefit from adjustments. Test the script and examine it to see if some small changes make it more user-friendly and improve its performance. Using the SMS Installer compiler, compile the SMS Installer-generated executable file.
7.
8.
Test the compiled SMS-generated executable file. SMS Installer has two test modes: u u Test mode runs the installation program but does not install anything. Run mode runs the installation program and installs the files.
9.
All operating systems support long file names and the full Microsoft Win32 registry. You can create a single file or multiple files for posting packages to the Internet or bulletin board system or for copying packages onto floppy disks or a CD.
u u u
Use the Repackage Installation Wizard if a setup program for your application exists, but you want to replace it. Use Script Editor if you want to create the script without running either wizard. Keep the existing setup program, but wrap it with an installation script. This approach is transparent to the user but allows you to customize the existing setup script. As a result, you retain the error-checking and branching that are built into many existing setup scripts. You must manually replace all the error-checking and branching in the installation script if you use the Repackage Installation Wizard.
Each of these attributes provides a number of script optimization options. You can find brief descriptions of these options in Table 7.2. For more information, see the SMS Installer Help. To access these options, click Installation Expert on the View menu, and then double-click the attribute to display its dialog box.
(continued)
Software Title
Application
Default Directory
Application
Dialogs
Application
Graphics
Graphics
Status MIF
SMS
Components are installed in the order that they appear on this tab. You can use Add, Delete, Move Up, and Move Down to create a list of the components that you want installed and the order you want them installed. Use the Files tab to add, modify, and sort the folders and files you use in your installation. The user interface of the Application Files Attribute Properties dialog box consists of a top pane where you locate the folders or files to include in your script and a lower pane where you select a location to install these folders or files on the target computer.
(continued)
Global
No Installation Log
Global
Global
(continued)
Global
Global
Global
Global
Global
Global
(continued)
Destination Platforms
Global
Screen Screen
Screen
Center All Dialogs Over Progress Dialog Background Gradient Title Bar Hide Program Manager
Screen
(continued)
Font
(continued)
Always Prompt
Languages
Prompt to Save
Options
Options
Show Toolbar Tips Show Status Bar Tips Append New Items
Options
Background Processing
Options
(continued)
Fast Create
Options
Exclude DLLs
Options
Settings
Settings
Settings Settings
Settings
Patching
Patching
Error Checking
Patching
(continued)
Maximum Memory
Patching
Delete Properties
Compiler Variables
Compiler Variables
Do not create a Code-Signed Installation Create a Code-Signed Installation Web URL Descriptive Name Credentials File
(continued)
Version Version
Copyright
Version
Version
3. 4.
Scans the computer again to detect all the changes that occurred during the setup process Uses the detected changes to create the installation script
When you run the Repackage Installation Wizard, you specify the path of the applications setup program. You can also specify command-line options to use when Setup runs and modify which directories, files, and registry keys are scanned. During the repackaging process, SMS Installer helps you to configure or otherwise modify the application by: u u Modifying the list of files and directories that are scanned. Modifying the list of registry key changes to include in the script.
You can also customize dozens of installation script options by modifying SMS Installer installation attributes. Before you run the Repackage Installation Wizard, see the Customizing Installation Attributes section earlier in this chapter and change any of the default attributes that your application requires.
Caution
Although it is recommended that the reference computer be identical to the target computers in most respects, it must not be an SMS client or server. If it is an SMS client or server, configuration data might be transferred to the target computers and interfere with normal SMS operation.
Before running the Repackage Installation Wizard on the reference computer, it is recommended that you verify the following: u u The reference computer and all target computers have the same operating system installed. They should also have the same version number and service pack. The reference computer and all target computers have the same applications installed. In general, unless there is a specific dependency on an existing application by the repackaged application, make sure that the reference computer only has software that is needed directly by the repackaging process. The reference computer and all target computers have the same hardware installed. This point is especially important when the software makes configuration changes in target computer hardware settings.
Be sure to use a reference computer that satisfies the minimum configuration that you require to install your software. Many applications share files. If the repackaging process determines that these shared files were not added to the reference computer, they are not included in the SMS Installer-generated executable file. As a result, the repackaged application might not run correctly. For example, if you want to repackage Microsoft Word, and Microsoft Excel is installed on the reference computer, some of the shared DLL files and the files in the MSAPPS directory might not show up in the installation script. As a result, if Excel is not already installed on the target computers, the repackaged version of Word does not install completely and might fail to run correctly.
Note
Whenever you repackage additional files for other applications, you must rebuild the reference computer with clean copies of the necessary software. Otherwise, your reference computer may not reflect an adequate starting point and the repackaging process may not detect configuration changes.
8.
When the setup program is complete, you can make any additional changes that you want in your installation script to the application or reference computer. After you make any changes, click Next to complete the repackaging process. To return to the Installation Expert, click Finish.
9.
10. To name your installation script and save it in a directory, click Save As on the File menu, and then type a name.
When you configure SMS Installer to repackage an application, consider the following issues:
Data conversion
If the original setup program upgrades or modifies data files, such as user database files, the Repackage Installation Wizard fails to capture the conversion. As a result, the SMS Installergenerated executable files are not installed correctly on the target computers. If the original setup program includes data conversion, do not use the Repackage Installation Wizard.
Hardware scans
If the original setup program detects hardware and the target computers do not have hardware and drive configurations that are identical to the reference computer, a repackaged SMS Installer installation might fail. If you cannot be sure that the reference computer and target computers have identical hardware and drive configurations, you can work around this constraint. Either modify the script after it is produced to query users for the necessary information or do not use Installation Expert. You might want to use Script Editor to prepare a script that runs the original setup file.
To configure SMS Installer to ignore registry keys in the repackaging process, navigate to the Registry Keys tab in the Repackage Advanced Settings dialog box. u u To add a subtree to the list of subtrees that you want SMS Installer to ignore, locate and select the registry subtree, and then click Add Tree. To remove a subtree from the list of subtrees that you want SMS Installer to ignore, select the subtree, and then click Delete.
To add a registry key that you want SMS Installer to ignore, locate and select the registry subtree that contains the key, select the key in the box where it appears, and then click Add Value. To remove a registry key from the list of registry keys that you want SMS Installer to ignore, select the value, and then click Delete.
Many customized functions can be inserted by using the Script Editor actions, or you can add them to the script by configuring Installer Attributes in Installation Expert. For example, you can use either method to provide uninstall and rollback support, and to add your program to Add or Remove Programs in Control Panel. If you modify a graphical user interface, Installation Expert adds the script items to your installation script. You can also add or change them manually by using Script Editor.
If you plan to use Installation Expert at any point during the script building process, it is recommended that you use Installation Expert to create the basic installation script. By using this approach, you can switch between Installation Expert and Script Editor without losing customization due to the conversion. If you create the script with Script Editor and then switch to Installation Expert, some script items might be lost. u u To edit a line of a script, double-click it. If the item can be edited, a dialog box with the properties of the item appears. To add a line to a script, select the line following the position where you want to add the item. Then, double-click the item that you want to add in the Actions list or drag the item to the place in the script where you want it.
Language The language of the current setup script. You can add more languages if you are creating a multilanguage script. However, you can add only the languages that you selected when you installed SMS Installer. If you want to add more languages, you must reinstall SMS Installer and choose the additional languages you need. Actions A list that contains all the possible actions that the installation script can perform. To display the dialog box that is associated with a script item, double-click the action that you want. To insert the action in the script above the selected line, click OK.
Installation Script The current installation script. To display the dialog box associated with a script item, double-click the action that you want.
Destination variable
When a script command places information into a variable, the variable is a destination variable. You must specify the name of the variable to use. The variable name must: u u u Begin with a letter. Include only numbers, letters, and the underscore ( _ ) character. Contain 14 or fewer characters.
Variable reference
When you want to use the value that is in a variable, place the variable name within percent signs (%). This is called a variable reference.
For example, if you want to set the value of the variable DEFAULTDIR to C:\Temp, use the Set Variable script command. Make sure that the Variable field contains DEFAULTDIR and set the New Value field to C:\Temp. To set the value of DEFAULTDIR to be the same as the WIN variable (which contains the Windows directory name), set the Variable field to DEFAULTDIR and the New Value field to %WIN%. The percent signs indicate that you are using the value of the WIN variable.
Note
Because the percent sign is used to signify the value of a variable, if you want a percent sign in the message text of a script command, you must use two percent signs together. For example, to display a message to users that they have completed half of the installation, use the following text: The installation is 50% %complete.
Predefined Variables
SMS Installer creates and defines variables at the beginning of installation. You can use the variables in your installation scripts. Table 7.6 lists and describes the function of the predefined variables. Table 7.6 Predefined Variables
Variable WIN SYS SYS32 TEMP Description Contains the path of the Windows directory (usually C:\Windows). Contains the path name of the Windows System directory (usually C:\Windows\System). Contains the system directory for Win32 files under Windows NT (usually C:\Winnt\System32). Contains the directory that temporary files can be placed in. This variable is useful for placing DLLs before you call their functions. Contains the directory from which the SMS Installer-generated executable file is run. This variable can be useful if you want to display a Readme.txt file that is located on the same disk as the SMS Installer-generated executable file. Contains the command-line options that were passed to the SMS Installer-generated executable file. Contains the language that users selected in a multilanguage installation.
INST
CMDLINE
LANG
(continued)
Creating Variables
During the installation, you can create variables that SMS uses to perform certain functions. Use the Set Variable action in the Script Editor Actions list to create such variables or use the prompt command. For example, you can create the following useful variables. HELPFILE Specifies the Help file that is displayed during installation when the user clicks Help. RESTART Restarts Windows at the end of an installation. It is set automatically. DOBACKUP Creates a backup of all files that changed during an installation. BACKUPDIR Specifies the directory in which to place backed-up files. Table 7.7 lists and describes the functions of the options in the Script Editor Items list. Table 7.7 SMS Installer Script Editor Items
Option Add Device to System.ini Add Directory to Path Description Adds or modifies entries in the [386Enh] section. Appends the specified directory to the PATH environment variable. Manages icons and groups in Program Manager and on the Start menu. Adds remarks to the installation log file. Yes Yes MSI compatible
Yes
No
(continued)
Adds device drivers to Config.sys. Yes Changes the floppy disk so that you can run another executable file during the installation process. Provides a generic directory browse dialog box. Calls Win16 and Win32 DLLs. Checks a finite set of configurable items on the target computer, such as the operating system and amount of memory. Verifies that enough disk space is available on the target computer to complete the installation. Verifies that a file or directory exists on the target computer. Provides if/then/else logic for compiler variables. Creates and configures an Open Database Connectivity (ODBC) data source. Copies uncompressed files from your installation disk to the target computer. Creates an empty directory on the target computer. Creates a service on a target computer that is running Windows NT. No
Yes
Yes
Yes Yes
(continued)
Yes
Custom Graphics
Yes
Yes Yes
Display Message
Yes
Creates a dialog box that is used Yes to display the contents of any text file. Creates or edits an .ini file on the target computer. Edits the system registry. Provides the FALSE condition to your scripts logic. Ends a logical block of script items that begin with a start block (if/else) or a WHILE loop. Helps you execute another program (outside of the installation) during the installation process. Yes Yes Yes Yes
Execute Program
Partial. DDE functionality in SMS Installer is not supported through Windows Installer.
(continued)
Finds the first occurrence of a file Yes in a directory tree or in the PATH environment variable on the target computer. Loads the value of the Yes environment variable into a script variable. Creates a dialog box to request up to three pieces of information from the user. Yes
Yes Creates a dialog box that displays a list of Program Manager groups on the target computer and helps the user to select from the list or enter a new group. Retrieves data values from the system registry. Retrieves system information from the target computer, such as Windows version number and file size. Creates a unique temporary file name in the \temp directory on the target computer. You must create the file yourself by using the variable to which the file name is assigned. Controls the flow of logic in your script. Yes Yes
Yes
If/While Statement
Partial. The Windows Installer service does not reproduce timing or delay loops. Using complex If/While statements force the use of MSI nesting, which does not allow Windows Installers advertisement
(continued)
Yes
Yes
No
No Yes
Play a Multimedia File Prompt for Text Radio Button Dialog Box
Yes
(continued)
Read/Write Binary File Register Font Remark Remove From System.ini Rename File/Directory Search for File Select Components Self-Register OCXs/DLLs Set File Attributes Set Files/Buffers Set Variable
Yes Yes No Yes Yes Yes Yes Yes Yes Yes Yes
SMS Installer provides two modes for testing SMS Installer-generated executable files: u The test mode runs the SMS Installer-generated executable file without installing any files. By using this method, you can see how the SMS Installer-generated executable file runs without actually installing the application. You do not have to compile the installation script before using this method. The run mode runs the SMS Installer-generated executable file on the reference computer. You must compile the reference script before using this method.
It is a common practice to test the file and then make any necessary modifications by changing Installation Expert options and recreating the file or by changing Script Editor actions. You can rerun either the Watch Application Wizard or the Repackage Installation Wizard without losing the changes you made with Script Editor.
Yourapp.exe The installation files (including a compressed version of all the files to be installed)
and the installation script.
Yourapp.pdf A standard SMS package definition file that is imported to distribute the
SMS Installer-generated executable file to target computers with software distribution. Package definition files are created only if you select Create Package Definition File on the SMS tab in the Installation Interface dialog box.
Yourapp.ipf The installation script, in text form. Yourapp.wsm A working file that is used by the installation script.
P A R T
This part of the Microsoft Systems Management Server 2003 Operations Guide guides you through implementing Systems Management Server 2003 features in your organization.
C H A P T E R
Software Metering
The focus of software metering in Microsoft Systems Management Server (SMS) 2003 is the collection and reporting of software program usage data. By using software metering data, you can determine how your organization uses software programs and help ensure software license compliance. You can combine software metering program usage data with software inventory data, product compliance data, hardware inventory data, and other SMS data to create comprehensive reports.
In This Chapter
u u u u Overview Configuring and Using Software Metering Scheduling Software Metering Maintenance Tasks Best Practices
For an architectural overview of software metering, see Chapter 3, Understanding SMS Features, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Overview
SMS 2003 software metering monitors and collects software usage data on SMS clients. Data collection is based on software metering rules that are configured by the SMS administrator in the SMS Administrator console. The Software Metering Client Agent runs on the SMS client. The agent accepts software metering rules from the SMS site server and records program usage as specified in the software metering rules. Program usage data from individual SMS clients is forwarded to the clients assigned SMS site and processed by the site. The site then summarizes the data on a monthly basis and propagates the summary data to its parent site. Summarized data continues to flow up the SMS hierarchy to the central site. The central site contains program usage data from all SMS clients within the SMS hierarchy that are assigned to sites that have software metering enabled. After you collect data from SMS clients, you can use different features to view the data, including collections, queries, and reporting. This data, combined with data from software inventory, can assist your organization in determining: u How many copies of a particular software program have been deployed to the computers in your organization. Among those computers, you can determine how many users actually run the program. How many licenses of a particular software program you need to purchase when you renew your license agreement with the software vendor. Whether any users are still running a particular software program. If the program is not being used, you might consider retiring the program. Which times of the day a software program is most frequently used.
u u u
Note
The words software program, executable program, and program are used interchangeably in this chapter. They all refer to an executable program.
When a monitored program runs on an SMS client, software metering collects the program file information (such as file name, file version, and file size) and the programs start time and end time. For information about the data that software metering collects and reports, see the Using Software Metering Data section later in this chapter.
Overview 311
Software metering data is collected on the client when the Software Metering Client Agent is enabled. The Software Metering Client Agent examines each program that is running on the client and determines if the program matches a specified rule for the SMS site to which the client is assigned. Usage data is collected each time a monitored program runs on the client, regardless of whether the client is connected to the network. If the client is not connected to the network, the data remains on the client and is uploaded to the SMS site server the next time that the client connects to the network and a usage upload interval has passed. The amount of software metering data that is stored in the SMS site database is managed by an SMS process called data summarization. To improve reporting performance, SMS maintenance tasks run periodically to summarize the transactional data and delete old data, which reduces the amount of data that is retained. Software metering reports can be integrated with SMS software inventory data that is stored in the SMS site database. When the SMS client reports program usage, it reports the same identifying information for the executable program that SMS software inventory reports. This means that software metering can report whether a particular executable program was found on a computer and whether the executable program was run on that computer during a particular time interval. For more information about collecting software inventory, see Chapter 2, Collecting Hardware and Software Inventory.
Note
Software inventory data that is already collected by SMS can help the SMS administrator determine which executable programs to monitor with software metering. Software metering can monitor any executable program that appears in SMS software inventory.
u u
If you previously used SMS software metering or you are upgrading from SMS 2.0 to SMS 2003, it is important to understand the following software metering differences between these versions: u u u u Any data that is collected using SMS 2.0 cannot be migrated to your SMS 2003 site database. Software metering rules that are created in SMS 2.0 cannot be migrated to SMS 2003. SMS 2003 software metering sites do not recognize SMS 2.0 software metering servers. SMS 2003 software metering data cannot be viewed from an SMS 2.0 site and vice-versa.
In a mixed-version hierarchy, an SMS 2.0 site must be a child of an SMS 2003 site. In a mixedversion hierarchy, the SMS 2.0 software metering data flow stops at the SMS 2.0 software metering Microsoft SQL Server database. The data does not reach SMS 2003 sites. You can view this data only from software metering in the SMS 2.0 Administrator console tools item or through the SMS 2.0 SQL Server views (provided by the SMS 2.0 Feature Pack Web Reporting Tool).
Note
An SMS 2.0 site cannot be a parent to an SMS 2003 site. Software metering rules from an SMS 2003 site are not replicated to SMS 2.0 child sites.
2. 3. 4.
Click Client Agents. In the details pane, right-click Software Metering Client Agent, and then click Properties. The Software Metering Client Agent Properties dialog box opens. In the Software Metering Client Agent Properties dialog box, click the General tab, and then select Enable software metering on clients.
When you configure the agent, the changes that you make in the Software Metering Client Agent Properties dialog box are valid for the entire SMS site. On the Schedule tab, specify how frequently you want to collect program usage data. You can also specify how often the Legacy Client downloads software metering rules from the site server. Advanced Clients download software metering rules based on the polling schedule that is configured in the Advertised Programs Client Agent. To avoid network performance problems, do not schedule downloads too frequently.
Note
The minimum recurrence interval for the data collection schedule and the metering rules download schedule is 15 minutes. If you enter an interval that shorter than 15 minutes and click OK on the Schedule tab, the recurrence time reverts to 15 minutes.
For more information about scheduling these tasks, see the SMS 2003 Administrator Help.
File name
Yes, if Original File Name is not specified. Yes, if File name is not specified.
(continued)
Language
The language of the software program. SMS administrator comments, if any. The SMS site code to which the software metering rule applies and whether it applies to all of its lower level sites.
To specify a wildcard for Language, choose Any from the list. Not applicable. Not applicable.
No. Yes.
Note
Some programs function as placeholders for other programs. When you define a software metering rule, be sure that you know the name of the program that ultimately runs as a process on the client computer when you run the program. For example, if you run Pbrush.exe (Paintbrush) in Microsoft Windows XP, it launches MSpaint.exe (Paint), which is the process that appears in Task Manager. In this case, the program that you want to monitor with software metering is MSpaint.exe, not Pbrush.exe, which is an earlier version of the program.
Note
When you create a new software metering rule, programs matching that rule that are already running in memory on the client do not need to be restarted to be monitored by SMS. Software metering detects the programs running in memory.
A software metering rule is considered matching and is applied to a running program if all the following are applicable: u The file name that is specified in the software metering rule matches the program file name, as displayed in Windows Explorer. Or The original file name that is specified in the software metering rule matches the original program file name that is stored in the executable programs header file. The header file is the file at the beginning of a program that contains definitions of data types and variables that are used by the program's functions. u The version that is specified in the software metering rule matches the programs version in the header file. This can include wildcard characters. Note that leaving the Version field blank is not the equivalent of inserting a wildcard in the field. If you want software metering to match any version of the program, you must use the asterisk (*) wildcard in the Version field. The language that is specified in the software metering rule matches the language in the executable programs header file. Note that it is automatically considered a match if the software metering rules language version is set to Any.
If at least one software metering rule matches a running program, SMS collects usage data for that program. Program usage data is collected only once if a duplicate software metering rule exists. For more information, see the Software Metering Rules with the Same Name section later in this chapter.
Note
Software metering does not collect data files that are more than 90 days old.
As a result, if the data file contains an end date that is more than 90 days prior to the current time, the data is rejected, status message 5614 is returned, and the data file is moved to a special folder for corrupt files.
Data collection refers to when SMS collects software metering data from clients. Software metering rules download refers to the schedule by which the Legacy Client downloads the software metering rules that are created at its site. The Metering rules download schedule item, in the SMS Administrator console, applies only to Legacy Clients. To schedule downloading on the Advanced Client, navigate to Advertised Programs Client Agent Properties in the SMS Administrator console and configure the policy polling interval. Remember that the schedule you configure applies to all SMS features that require Advanced Client policy downloads, such as software distribution. It does not apply to software metering only.
2. 3.
Right-click Software Metering Rules, point to New, and then click Software Metering Rule. In the Software Metering Rule Properties dialog box, click the General tab, and then enter information in the following fields: u u u Name (rule name) File name and/or Original file name Version
Language
Note
Click Browse to locate the executable program, which will fill in these properties automatically.
u u
In the Site code list, select the site to which you want the software metering rule to apply. If you want the software metering rule to apply to the specified site and all of its lower level sites, select the This software metering rule applies to the specified site and all its child sites check box.
Important
The Site code list and the This software metering rule applies to the specified site and all its child sites check box are available only when first creating the rule. They cannot be modified after the rule is created and saved.
5. 6.
Click the Security tab, verify or change the Class security rights and Instance security rights that apply to this software metering rule. Click OK.
To delete a software metering rule, right-click the rule in the details pane, click Delete, and then confirm the deletion.
At rule creation time, carefully consider whether you want the software metering rule to apply only to the selected site or to the selected site and all of its lower level sites. For example, you might want the rule to apply only to the selected site if that site is running a particular software program that the SMS clients at its lower level sites never run. After you select This rule applies to the specified site and all its child sites in a rule and save changes, the rule cannot be modified. Instead, you must delete the existing rule and create a new one. A child site receives and applies software metering rule additions, updates, and deletions from its parent site whenever a rule is created or changed. If a software metering rule is configured to apply to the specified site and all its child sites, then the next time that the software metering rules are scheduled to download on clients at the child site, the modified software metering rule is applied to those clients. Software metering rules include the site code of the site where the software metering rule was created. When using rules in multitiered hierarchies: u Each site in the SMS hierarchy can have its own software metering rules. Although each software metering rule is created at the primary site, you can select a different lower level site to apply the rule to when you create the rule. Or, you can create the rule on the parent site and choose whether the rule applies to all its child sites. If the Software Metering Client Agent is disabled in an SMS site, SMS still sends software metering rules that it received from parent sites to the lower level sites. This applies to rules that are configured to apply to the specified site and all its child sites. Software metering data is propagated up to the primary parent site.
Figure 8.1 shows a possible software metering rule configuration scenario in a multitiered hierarchy.
Primary site C Software metering: enabled Rule: Microsoft PowerPoint Applies to lower level sites
Secondary site C1
Secondary site C2
Primary site D Software metering: enabled Rule: Microsoft Project Applies to lower level sites
Secondary site D1
In this scenario, the SMS administrator configures several rules for several different sites. To do this, the SMS administrator connects to primary site A in the SMS Administrator console. Then, the administrator creates the rules and configures them to apply to the specified site and all its child sites, as shown in Table 8.2. Table 8.3 describes the data that is collected at the clients based on these rules. Table 8.2 Software Metering Rules Created at Each SMS Site
Software metering rule name Microsoft Word Microsoft Excel Microsoft Visio Microsoft PowerPoint Microsoft Project File name Winword.exe Excel.exe Visio.exe Powerpnt.exe Project.exe A B B1 C D Site Rule applies to lower level sites Yes No No Yes Yes
Table 8.3 Data Collected from SMS Clients Based on Their Assigned Site
Site Primary site A Primary site B Secondary site B1 Primary site C Secondary site C1 Secondary site C2 Primary site D Secondary site D1 Software metering data collected from clients Microsoft Word None (the Software Metering Client Agent is disabled) Microsoft Word, Microsoft Visio Microsoft Word, Microsoft PowerPoint Microsoft Word, Microsoft PowerPoint Microsoft Word, Microsoft PowerPoint Microsoft Word, Microsoft PowerPoint, Microsoft Project Microsoft Word, Microsoft PowerPoint, Microsoft Project
Note
As a best practice, avoid making duplicate rules. Duplicate rules are rules in which every field is identical except for the rule ID.
If you configure a software metering rule in an SMS site to apply to all its child sites, the software metering rule is passed all the way down to the lowest level site in the SMS hierarchy branch, regardless of any intermediate rules with the same name that are configured to not apply to child sites. The data is collected as specified in the software metering rule at the higher level site.
Background
In Windows 2000 Server, Terminal Services is deployed on the server in either application server or remote administration mode. In application server mode, Terminal Services delivers the Windows 2000 desktop and the most current Windows-based applications to computers that might not normally be able to run Windows. When used for remote administration, Terminal Services provides remote access for administering your server from virtually anywhere on your network. In Windows Server 2003 family operating systems, Terminal Services technology is the basis for features that enable you to connect to remote computers and perform administrative tasks. These include Remote Desktop for Administration (formerly known as Terminal Services in remote administration mode), the Remote Desktop MMC snap-in, and Remote Desktop Connection.
Data Summarization
SMS clients can produce a large amount of software metering data which, when stored in its raw format, can consume a large amount of space in the SMS site database. To prevent this, background tasks run periodically to summarize the transactional data and delete old data. The data is condensed to improve reporting performance and reduce the load on your network. This data summarization reduces the amount of space that is required to store software metering data long term. Data containing greater detail is stored in the SMS site database, but for less time than summarized data. After clients have reported software metering data for a new software metering rule, you must wait for the next summarization cycle to be completed before you can view data based on that rule. By default, Distinct users vs. concurrent the summarization site maintenance tasks run on a daily users basis. The number of distinct users
reported to SMS for a particular program might be higher than the number of concurrent users, but it will never be lower. This is by design. The longer that the user runs the program, the more accurate the distinct user count is (that is, the closer that number is to the number of concurrent users). The summarization task interval is 15 minutes. For example, one user runs the program and uses it for seven minutes before closing it. Immediately afterward, another user runs the program and uses it for seven minutes before closing it. This counts as two distinct users, even though their usage does not overlap within the interval. However, if the users use the program for longer than seven minutes, the usage will overlap and the distinct user count accurately represents the number of concurrent users. For more information about getting accurate file usage summary data, see the Best Practices section later in this chapter.
There are two types of summarized data: Monthly usage summary data contains information about the number of times a program is run by a specific user on a specific computer. File usage summary data contains information about the total number of distinct users for a particular software program during a specified time interval in an SMS site. This summary data is an approximation of the total number of concurrent users for the particular program being monitored. The shorter you set the recurrence interval for the data collection schedule, the less accurate this number is in approximating the number of concurrent users. For more information about data summarization, see the Scheduling Software Metering Maintenance Tasks section later in this chapter.
For example, you might want to create a report that compares software inventory to actual program usage for a particular software program. This type of report can help you determine if you can reduce the number of licenses that is purchased for the program.
Some of the software metering reports that are included with SMS 2003 use software inventory data. To use these reports, you must first run software inventory on the site. For more information, see Chapter 2, Collecting Hardware and Software Inventory.
Note
Software metering reporting does not function unless you have a reporting point set up and enabled with Internet Information Services (IIS). For more information, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Sample Reports
Several sample software metering reports are included in SMS 2003. To view these reports in the SMS Administrator console, click Reporting, click Reports, and then click Category in the details pane to sort the reports by category. Scroll down to the reports that are in the Software Metering category. For more information about creating reports and writing queries, see Chapter 11, Creating Reports.
These tasks are described in the following sections. By default, all four tasks are enabled in the SMS Administrator console. For information about configuring maintenance tasks in the SMS Administrator console, see Chapter 13, Maintaining and Monitoring SMS Systems.
Note
You configure the scheduled start times for maintenance tasks in the SMS Administrator console. The Latest start time must be set to a later time than the Start after time. Setting these times too closely (for example, less than 60 minutes apart) might cause the task to not run properly.
Note
If the Summarize Software Metering Data task and the Summarize Software Metering Monthly Usage Data task are not enabled, software metering data is not being summarized. In this case, when the Delete Aged Software Metering Summary Data task runs, it does not delete aged software metering data.
Note
If all the software metering data that is reported by clients is less than 12 hours old when the summarization tasks run, then the Smsdbmon.log file contains an entry indicating that there is no data to summarize. This is likely to occur when you activate software metering for the first time. Subsequent summarization cycles operate normally.
When replicated up the SMS hierarchy, the software metering summary data from each site remains separated from data from the other sites. When the data reaches a parent site, each record is marked with the site code of the site where the usage data was generated. These records can be added together to estimate concurrent program usage in the network.
Best Practices
The following sections briefly describe software metering usage and configuration issues to help SMS administrators avoid common problems.
Performance
Do not create an excessive number of rules for one SMS site, and avoid creating duplicate rules. Use the software metering maintenance tasks to summarize the data.
As a best practice, use the Browse button when specifying the file name in the Software Metering Rule Properties dialog box. For more information about obtaining version information for executable programs, see your Windows documentation.
C H A P T E R
Remote Tools
Microsoft Systems Management Server (SMS) 2003 Remote Tools is a suite of complementary applications that you can use to access any client in an SMS hierarchy that has the Remote Tools Client Agent components installed. By using Remote Tools, you can provide assistance and troubleshooting support from your computer to clients within your site. You can use Remote Tools to access and control clients that are using the Legacy Client or the Advanced Client. You can use Remote Tools across a wide area network (WAN) or Microsoft Remote Access Service (RAS) links to assist clients in remote locations. Remote Tools supports RAS connections with a minimum speed of 28.8 Kbps. You can also establish a connection to your organization and then access clients on your network. In addition to SMS Remote Tools, which you can use to assist any supported client, SMS 2003 integrates Remote Assistance and Terminal Services into the SMS Administrator console for assisting applicable clients. You can also use the SMS Administrator console to manage and configure Remote Assistance settings for applicable clients on a site-wide basis.
Note
Remote Desktop Connection is the name used in Microsoft Windows XP Professional and the Microsoft Windows Server 2003 family for the technology previously called Terminal Services.
Most of this chapter applies to configuring and using SMS Remote Tools. This chapter also explains how to manage, configure, and start both Remote Assistance and Terminal Services in the SMS Administrator console.
In This Chapter
u u u u u u u SMS Remote Tools Overview Remote Assistance and Terminal Services Overview Installing, Enabling, and Configuring SMS Remote Tools Configuring Site-wide Settings Providing Remote Support Advanced Features of SMS Remote Tools Improving the Performance of SMS Remote Tools
The following sections briefly describe each of these tools. For more information about how to use these tools, see the Using SMS Remote Tools to Support Clients section later in this chapter.
Remote Control
You can use Remote Control to operate a remote client. By establishing a Remote Control session, you can access the client's desktop and files and perform mouse and keyboard functions as though you were physically at the client. You can also use Remote Control to troubleshoot hardware and software configuration problems on a client and to provide remote help desk support when access to the users computer is necessary.
Remote Reboot
You can use Remote Reboot to remotely shut down and restart a client. It might be necessary to restart a remote client to test a change to a startup procedure, to load a new configuration, or if a client is generating a hardware or software error.
Remote Chat
You can use Remote Chat to communicate with the user at a remote client. When you initiate a chat session with the user, the Remote Tools window becomes the chat window on your computer. On the remote client, a chat window also opens on the desktop. When either user types in their Local user box, that text also appears in the Remote user box on the other computer.
Remote Execute
You can use Remote Execute to run executable files on a remote client. You can also run any command-line statement to complete tasks, such as running a virus checker on the client.
Ping Test
You can use Ping Test to determine the reliability and speed of the Remote Tools connection to a client on your network. You can access Ping Test from the Remote Tools window.
u u
You can use the Start Remote Desktop Connection command to initiate a Terminal Services session for these clients. The client operating system data that SMS uses to determine the availability of Remote Assistance and Terminal Services is based on discovery data. Some discovery methods, such as Network Discovery, might not provide the operating system name and version. The Start Remote Assistance and Start Remote Desktop Connection commands might not appear until an SMS client is installed and a discovery data record is generated.
Notes
u The appearance of commands on the All Tasks menu indicates only the possibility of the client to be controlled, it does not indicate that the feature is installed and enabled on the client. On computers running Windows 2000, installing the SMS Administrator console upgrades the Terminal Services client to the Windows Server 2003 version of the Remote Desktop Connection application.
To start a Remote Assistance or Terminal Services session by using the SMS Administrator console
1. In the SMS Administrator console, navigate to Collections.
Systems Management Server X Site Database (site code - site name) X Site Hierarchy X Collections X collection containing client
2. 3.
Locate a collection that contains the client with which you want to start a session. Right-click the client, point to All Tasks, and then click Start Remote Assistance or Start Remote Desktop Connection.
Note
When you initiate a Remote Assistance session in the SMS Administrator console, Remote Assistance cannot automatically detect the speed of the network connection to the client. The session always assumes that a slow network connection exists. This provides the fastest possible performance in all situations.
For more information about using Remote Assistance and Terminal Services to control and assist clients, see the Windows operating system documentation.
Enabling and Configuring the SMS Remote Tools Client Agent on the SMS Site Server
You use the SMS Administrator console to enable and configure the Remote Tools Client Agent settings. The settings that you specify for each site apply to all the clients that are assigned to that site.
Important
Before enabling SMS Remote Tools for a site, see the Configuring Site-wide Settings section later in this chapter to determine which Remote Tools Client Agent settings are relevant to your site. Pay special attention to the settings on the Advanced tab, because these settings are difficult to change after the Remote Tools Client Agent components have been installed on clients.
After you have installed the SMS primary site and verified that all SMS services are running correctly, you can enable Remote Tools on the site.
2.
In the details pane, right-click Remote Tools Client Agent, and then click Properties.
3.
In the Remote Tools Client Agent Properties dialog box, click the General tab, and then select the Enable remote tools on clients check box.
This sets up the Remote Tools Client Agent components on the client with default Remote Tools configuration settings.
Note
Before using this option, ensure that Remote Tools is enabled for the site. Otherwise, the Remote Tools Client Agent components are disabled when the client contacts the management point.
For more information about installing clients, see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
On the Advanced Client, the Remctrl.log file is located in the following directory: %Windir%\system32\CCM\Logs For the Legacy Client, the CCIM attempts to install components that are set to Not Available every 30 days. If the conflicting third-party agent has been removed, the Remote Tools Client Agent components are installed. For both the Legacy Client and the Advanced Client, you can manually attempt to install the Remote Tools Client Agent components. To do this, open Control Panel on the client, doubleclick Systems Management, and then click Repair Installation. If no conflicting remote control agents are found, the Remote Tools Client Agent components are installed. You can enable additional logs for tracking Wuser32.exe on a client computer, and for the Remote Control Client Viewer on the computer running the SMS Administrator console. To enable logging for Wuser32.exe, set the value of LogToFile to 1 in the client's registry under \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS \Client\ Client Components\Remote Control. The resulting log file is named Wuser32.log. On the Legacy Client, the Wuser32.log file is located in the following directory: %SystemRoot%\MS\SMS\Logs On the Advanced Client, the Wuser32.log file is located in the following directory: %Windir%\system32\CCM\Logs To enable logging for the Remote Control Client Viewer on the computer running the SMS Administrator console, set the value of LogToFile to 1 in the registry under \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS \Components\SightNT\Viewer. The resulting log file is named Remote.log and the file is located in the SMS\bin folder on the SMS site server or the computer running the SMS Administrator console.
The install *.log file contains a list of the installation tasks that ran during the installation or removal of the Remote Tools Client Agent components, including registry key creation or removal. You can also view the Remctrl.log file at the following directory on the client: u u Legacy Client (%SystemRoot%\MS\SMS\Logs) Advanced Client (%SystemRoot%\System32\CCM\Logs)
The Remctrl.log file is more detailed and records all significant actions that the Remote Tools Client Agent performs. The Remctrl.log file is essential for identifying Remote Tools functions after the Remote Tools Client Agent components are installed and running. It is also essential for identifying Hardware Munger and Security Munger actions. The Remctrl.log file does not provide information about Remote Control session functions. The Remctrl.log file provides detailed information about: u u u u Operating system and local client language settings. Actions performed by the Hardware Munger and the Security Munger on the Legacy Client. Actions performed by the Remote Tools Client Agent on the Advanced Client. Installation and removal of the Remote Tools Client Agent components.
General Tab
The General tab contains settings that apply to both SMS Remote Tools and Remote Assistance. You can use this tab to: u u u Enable Remote Tools for all clients within the site. Prevent client users from changing Policy or Notification tab settings. Choose whether to manage Remote Assistance settings for applicable clients within the site and whether to override Remote Assistance user settings.
The Users cannot change Policy or Notification settings for SMS Remote Tools check box is cleared by default. If you select this check box, it means that all clients in the site must use the settings that you specify for the site. Users cannot change the local Remote Tools settings on clients. If you do not select this check box, users can change the following Remote Tools options: u u u u u The Remote Tools functions that an SMS administrator can perform Whether an SMS administrator must ask permission before a Remote Tools session can be established Whether visual or audio indicators announce that a Remote Control session is taking place Whether to display the Remote Tools taskbar indicator in the notification area or as a highsecurity indicator on the client desktop Whether the Remote Control components are installed on Advanced Clients running Windows XP Professional or Windows 2003 Server
Select the option Do not install Remote Control components for Advanced Clients running Window XP, Windows Server 2003, or later to prevent Remote Control from being installed on computers running those platforms. It is strongly recommended that you use the Windows Remote Assistance and Remote Desktop Connection features of Windows XP and Windows Server 2003 rather than SMS Remote Control on computers running those platforms. Windows Remote Assistance and Remote Desktop Connection are more secure technologies and are builtin features of the operating system.
Security Tab
The Security tab contains settings that apply both to SMS Remote Tools and to Remote Assistance. The Permitted Viewers list applies to both SMS Remote Tools and Remote Assistance users. You can use this tab to add non-administrators users and user groups to the Permitted Viewers list. Permitted viewers are users and user groups that can remotely access clients running Windows NT 4.0 or later. By using SMS 2003, members of the local Administrators group can access clients, regardless of whether they appear in the Permitted Viewers list.
Although the Permitted Viewers list appears to accept only user groups, you can also add user names to this list. It is more efficient to manage this list by using user groups, but the ability to specify a user name is available to those who need it. When you upgrade from SMS 2.0, remove all unnecessary language-specific administrator names from the Permitted Viewers list. Doing so enhances the performance of SMS Remote Tools by reducing the number of permitted viewers that are authenticated by the domain controller each time you initiate a Remote Tools function. SMS 2003 Remote Tools automatically grant Remote Tools access to the Administrators group. You do not need to add the Administrators group to the Permitted Viewers list. Using Remote Tools on clients running Windows NT 4.0 or later requires that the user be a member of the local Administrators group or be included in the Permitted Viewers list. For all clients, you must also create a security right to use Remote Tools on specific collections and assign that right to specific users or user groups. For more information about Remote Tools security, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Policy Tab
The Policy tab contains settings that apply to both SMS Remote Tools and Remote Assistance. You can use this tab to: u u Specify the level of SMS Remote Tools access (Full, Limited, or None). Specify whether users must grant permission when an administrator tries to remotely access their client.
Note
You can limit the requirement for users to grant permission to only clients running Windows 98. This provides greater security for those clients.
Specify the level of Remote Assistance access (Full control, Limited viewing, or None).
When you select the Do not ask permission check box, using SMS Remote Tools on clients running Windows 98 is less secure than on clients running Windows NT 4.0 or later. Specifically, there is a greater risk of an unauthorized Remote Control session to a client running Windows 98. For this reason, it is recommended that you always display a message to ask for the users permission on clients running Windows 98. You can do this in two ways: u u Select the Display a message to ask for permission option, which displays a message on all clients. Select the Display a message to ask for permission option, and then select the Only on clients running Windows 98 check box, which displays a message only on clients running Windows 98.
Notification Tab
The settings on the Notification tab apply only to SMS Remote Tools.
Note
Your organization's internal policy and, in some circumstances, the privacy laws in your locale might influence the level of user alerts that you specify.
You can use this tab to: u Specify whether to display a visual indicator to notify users when a Remote Control session is active on their computers. This visual indicator pertains to Remote Control only, not to other Remote Tools functions. Select the type of visual indicator to be displayed. The visual indicators differ in where they appear on the desktop and whether the indicator can be hidden from the users view. Specify whether to display the visual indicator only when a Remote Control session is active or when no session is active.
u u
Specify whether to play a sound to notify users when a Remote Control session is active. You can specify that the sound play only when a session begins and ends or plays repeatedly during a session.
Status indicators
There are two types of visual indicators: Taskbar indicator The taskbar indicator appears in the notification area on the client's taskbar. The indicator changes its appearance when an SMS administrator initiates a Remote Control session with the client. You can configure the Remote Tools Client Agent to permit the user to hide this indicator. High-security indicator The high-security indicator initially appears in the top right corner of the clients desktop. The user can move the icon but cannot hide it, which allows a user to always determine if and when a Remote Control session has been initiated. The indicator is displayed within the icon. The title bar of this indicator is gray until a Remote Control session is initiated, and then the title bar turns red. Table 9.1 Remote Control Indicators
Icon Description Taskbar indicator. No Remote Control session is active. Taskbar indicator. A Remote Control session is active. Taskbar indicator. A Remote Control session is active but paused. High-security indicator. No Remote Control session is active and the title bar is gray. High-security indicator. A Remote Control session is active and the title bar is red. High-security indicator. A Remote Control session is active but paused.
Advanced Tab
The settings on the Advanced tab apply only to SMS Remote Tools. The Advanced tab in the Remote Tools Client Agent Properties dialog box contains a number of hardware-related settings. For most installations, the default settings in this dialog box should not be changed. For more information, see the Client Hardware Settings section later in this chapter. You can use this tab to: u Select the default video compression level of remote screen captures during a Remote Control session (Low, High, or Automatically Select). For more information, see the Video Compression section later in this chapter.
Select the default remote access protocol for all clients in the site. If you are using the SMS 2003 Administrator console to configure an SMS 2.0 site, you can select TCP/IP or NetBIOS. For SMS 2003 sites, the only supported protocol is TCP/IP and the default remote access protocol setting is not available. Enable video acceleration clients running Windows NT 4.0 or later and determine which video drivers can be accelerated for clients running Windows NT 4.0. For more information, see the Video Acceleration section later in this chapter.
Important
If you change the settings on the Advanced tab after the Remote Tools Client Agent components have been installed on clients, the previously installed clients do not receive the new settings automatically. The revised Advanced tab settings are passed down to the clients during the next maintenance cycle of the CCIM, but they are not implemented until you uninstall and reinstall the Remote Tools Client Agent components. This applies to Legacy Clients only. For more information, see the Client Hardware Settings section later in this chapter.
u u
Note
If the site has limited the permissions to use Remote Tools, or if the user has limited the permissions to use Remote Tools on a specific client, the buttons for any restricted Remote Tools are unavailable in the Remote Tools window.
In the SMS Administrator console, you can establish Remote Tools connections with up to four different clients at a time. You cannot establish more than one Remote Tools connection to any one client at a time. For example, you might control two clients remotely at the same time or control one client remotely, while transferring files to another client. To establish a Remote Tools connection, you must have Use Remote Tools and Read permissions for the collection that contains the client. If you are not a local administrator, you must also be included in the Permitted Viewers list, which is on the Security tab in the Remote Tools Client Agent Properties dialog box. For clients outside the SMS site boundaries or authenticating domain, correct security credentials must be provided before you can establish a Remote Tools connection to those clients. For more information about Remote Tools security, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
2. 3.
Locate a collection that contains the client to which you want to connect. Right-click the client, point to All Tasks, and then click Start Remote Tools.
For more information about using the Remote Tools window, see the Using SMS Remote Tools to Support Clients section later in this chapter.
If you cannot establish a Remote Tools connection to the client, ensure that Remote Tools is enabled on the SMS site server and that the Remote Tools Client Agent is successfully installed on the client. Also, ensure that you have Use Remote Tools security credentials to the collection containing the selected client.
Note
A value of 0 introduces a special case, described later in this section.
Address is a valid IPX network number, IP address or client name, or NetBIOS name. Examples: C:\SMS\BIN\I386> REMOTE 2 172.16.0.0 \\BIG_SERVER\ C:\SMS\BIN\I386> REMOTE 3 DUBN_NETBIOS \\BIG_SERVER\
Note
The Internetwork Packet Exchange (IPX) and NetBIOS protocol types apply only when you conduct remote sessions on SMS 2.0 clients. SMS 2003 clients use only TCP/IP.
Site Server Name is the site server name of the site to which the client belongs.
When you use Remote.exe with an explicit Protocol_Type of 2 (TCP/IP), SMS resolves a client name to its IP address and then uses that address to attempt a connection. Name resolution is not attempted when you use Remote.exe with an explicit Protocol_Type of 1 (IPX) or 3 (NetBIOS). When you use the following syntax: Remote 0 <Resource_ID> or Remote (with no options), Remote.exe attempts a connection for all available protocols. To determine a client Resource ID number, right-click a client in the SMS Administrator console under Collections, and then click Properties. The Resource ID field for the client appears in the <Client> Properties dialog box. You can also obtain a client's resource ID by using a custom query run through Windows Management Instrumentation (WMI).
To connect to a client by using its resource ID, use the following command syntax: Remote 0 <Resource_ID> \\<Site Server Name>\ Example: C:\SMS\BIN\I386> REMOTE 0 2 \\BIG_SERVER\ When you use 0 in the first parameter, Remote.exe attempts to connect by using all available protocols for the target client. The Site Server Name parameter is the site server name for the site to which the client belongs. The SMS:NOSQL option is used in place of the Site Server Name option to allow direct connection to the client without using data in the SMS site database. This is useful if the clients name resolution is not current, or if the clients IP address is not updated in the SMS site database. An address type of 0 is not valid when used in conjunction with the SMS:NOSQL option. Example: C:\SMS\BIN\I386> REMOTE 2 172.16.0.0 /SMS:NOSQL If you use Remote.exe with no command-line options, the Remote Tools Address Connection dialog box appears. You can use this dialog box to enter the following parameters: u u Address type (NetBIOS name, IP address, or IPX address) Address (any valid NetBIOS name, IP address or client name, or IPX network number)
When you have entered the parameters, click OK to connect to the client. A connection to the client is established if the following conditions are met: u u The Remote Control Agent (Wuser32.exe) is running on the client The SMS Administrator console and client share a common protocol
Note
SMS 2003 Remote Control clients listen only for TCP connection attempts. NetBIOS and IPX connections are made by Remote.exe for backward capability with SMS 2.0 clients.
After a Remote Tools connection to the client is established, you can perform any of the Remote Tools functions on the client. For more information, see the Using SMS Remote Tools to Support Clients section earlier in this chapter.
To start a Remote Control session, establish a Remote Tools connection. Then, in the Remote Tools window, click Remote Control.
Note
You cannot use an SMS Remote Control session and a Remote Desktop session simultaneously to control a client running Windows XP Professional. For more information, see article 304591 in the Microsoft Knowledge Base at http://support.microsoft.com.
After you have established a Remote Control session, the clients desktop appears on your screen in the Remote Control Client Viewer window, surrounded by a moving black and yellow border. Depending on how you have configured the Remote Tools Client Agent properties for the site, you might need the client users permission to conduct the Remote Control session.
Note
A visual indicator appears either in the notification area or on the desktop of the client to alert the user that a Remote Control session is in progress.
In addition to controlling the client by using your keyboard and mouse, you can also use the command buttons in the upper-right corner of the Remote Control Client Viewer window to perform functions, such as simulating the ALT+TAB key sequence or opening the Start menu on the client. For more information about using the Remote Control Client Viewer window, see the SMS Help.
Note
When you start a Remote Control session, if the NUM LOCK key settings are different on the client and on the SMS Administrator console computer, you cannot change the NUM LOCK key settings of the client by using the SMS Administrator console keyboard. You can still enter numbers on the client by using the number keys at the top of the SMS Administrator console keyboard.
A Remote Control session can be helpful for resolving a problem that a user is experiencing. By initiating a Remote Control session, you can directly view the client desktop while the user demonstrates the problem. Often, watching the user attempt a task offers useful insight into specific errors that the user is making or reveals important details about the problem. Or, from your SMS Administrator console, you can demonstrate how to complete a task correctly by performing mouse actions and keystrokes while the user watches. With Remote Control, you can also view error messages exactly as they appear on the users screen, instead of depending on the user to paraphrase the error message. If a user has problems completing a task, you can establish a Remote Control session and conduct an individualized training session with the user. You can also conduct a session with a problem client, establish a second session with a client that works correctly, and then compare the registry settings or the results of running a file on the two clients.
A Remote Control session can be conducted without a user being logged on to the client, because the Remote Control Agent (Wuser32.exe) remains installed and running on clients. For more information, see the Role of Wuser32.exe on Clients section later in this chapter.
Depending on the type of problem that is reported by the user, you might need to view client memory information or to know the current operational state of the client, such as free disk space. Or, you might suspect network connectivity problems. You can use the diagnostic information that you obtain to troubleshoot client hardware and software problems.
Note
When you use Ping Test to evaluate the communication channel between the SMS Administrator console and the client, be aware that you use most of the available bandwidth of that channel for a few seconds. Depending on the network route between you and the client, performance can be affected while the connection is evaluated.
Important
When an administrator uses Remote Execute to perform operations on the client, the user who is logged on to the client will also have elevated permissions and can then gain access to the same directories and files as the administrator. To maintain security, it is recommended that you use Remote Execute primarily to perform critical operations. You should also shut down any applications that you start during a Remote Execute session by initiating a Remote Control session. For more information, see the Remotely Controlling Clients section earlier in this chapter.
Note
You should use File Transfer to move only small files, such as log files. You should not use it to move larger files or entire folders.
u u
For more information about these options, see the Notification Tab section earlier in this chapter.
Note
Even after a Remote Control session has ended, a user can double-click the icon and view the name of the user and the computer that last established a Remote Control session with the client.
Note
You need administrative credentials to start or stop this service.
Note
If, for testing purposes, it is necessary to run the Remote Control Agent as a non-service (which places the agent in the context of the logged-on user) on a client running Windows NT 4.0 or later, use the following command option: wuser32 /nosvc.
However, it is also possible to locally configure security settings for both the Legacy Client and the Advanced Client. The approach for managing the security settings for each type of client is discussed in the following sections.
Note
To run the Security Munger manually, at the command line on the client, enter %SystemRoot%\MS\SMS\Clicomp\Remctrl\Rcclicfg. If site-wide changes do not appear to take effect, reset the value in the \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Client\ Client Components\Remote Control\Combined Sites\<site_code>\ LastChangedAt key in the client registry to 0. Then, run the Security Munger again. Using a LastChangedAt value of 0 causes a full security update.
Note
This value is not case-sensitive.
This option works for both Legacy and Advanced Clients. However, using the SMS local policy is recommended for this purpose, instead of modifying this registry key. The local policy gives the ability to selectively override individual settings on the client from those specified for the site.
Note
This setting is enabled only if you are configuring an SMS 2.0 site. SMS 2003 sites use only TCP/IP.
u u
Video acceleration for Windows-based clients, which is selected by default. The list of compatible video drivers for clients running Windows NT 4.0.
For most installations, the default settings in the Remote Tools Client Agent Properties dialog box should not be changed. If you experience problems during Remote Control sessions, such as the feature is not working, the client displays a blue or blank screen, or the client stops responding, the problems might be related to video acceleration or the type of video compression that you are using. For more information, see the Video Acceleration and Video Compression sections later in this chapter. The following sections describe how the site-wide hardware settings are applied to the Advanced Client and the Legacy Client.
Video Acceleration
For clients running Windows NT 4.0 or later, video acceleration reduces the work that is associated with each client screen refresh during a Remote Control session, which significantly speeds up the session. On clients running Windows 2000 or later, video acceleration is not dependent on the type of video driver on the client. Video acceleration on clients running Windows 2000 or later can activate and run with any client video driver. On clients running Windows NT 4.0, video acceleration is dependent on the type of video driver on the client. This is key difference between video acceleration on clients running Windows 2000 or later and on clients running Windows NT 4.0.
To use video acceleration, you must enable this feature on the SMS site server.
2. 3. 4.
In the details pane, right-click Remote Tools Client Agent, and then click Properties. On the Advanced tab, select Install accelerated transfer on clients. Click Apply, and then click OK.
Video Compression
Video compression is an important aspect of video acceleration. Remote Tools uses video compression to reduce the size of screen-capture data that is being transmitted across the network during a Remote Control session. This minimizes the effect on network bandwidth. You can enable and configure the video compression properties on the Advanced tab in the Remote Tools Client Agent Properties dialog box. For more information, see the Configuring Sitewide Settings section earlier in this chapter. There are three video compression options in SMS: Low (RLE) Low, Run Length Encoding (RLE) compression compresses screen data, but not as effectively as high compression. You should use RLE compression for clients running Windows NT 4.0. High (LZ) High, Lempel-Ziv (LZ) compression provides greater data compression than low compression, but it is primarily for clients with high-speed processors. Clients running Windows 2000 or later achieve better compression with LZ compression. LZ compression should not be used for clients with slow processors. LZ compression can be used only if video acceleration has been successfully loaded on the client, even if the client registry indicates that high compression should be used (compression = 1). Automatically Select If you use the Automatically Select option, which is the default setting, SMS determines the best compression option to use based on the client type and CPU as follows: u u Advanced Clients always use high compression Legacy Clients running Windows 98 always use low compression
Legacy Clients, which are Windows NT computers, use Pentium CPUs with at least 150 MHz as a threshold. Legacy Clients use low compression if they are below the threshold and high compression if above the threshold.
Note
Problems with Remote Control sessions, such as a blue screen or a blank screen, are often associated with LZ compression usage. If you experience such problems, try using RLE compression.
Installation of Video Accelerator Drivers for Clients Running Windows 2000 or Later
For clients running Windows 2000 or later, the Remote Control Services Manager performs the video acceleration driver installation. During the installation of the Remote Tools Client Agent, the Remote Control Services Manager: 1. 2. Verifies that video acceleration is enabled site-wide. Installs the SMS Mirror driver that is used for video acceleration.
Because Windows 2000 or later uses Plug and Play drivers, it is not necessary to restart the client after video acceleration is installed. The SMS Mirror driver is ready to use immediately after installation.
Note
If you uninstall the Remote Tools Client Agent, it is necessary to restart the client to remove the SMS Mirror driver. If you upgrade the driver, it is not necessary to restart the client.
You can verify the installation of the Mirror driver by viewing the Remote Control Services Manager section of the Remctrl.log file. The Remctrl.log file is located on the client in the %SystemRoot%\MS\SMS\Logs directory.
Note
When the Remote Control Services Manager installs the SMS Mirror driver, the client's screen will momentarily flash to a black screen and then return to normal.
The following factors determine whether video acceleration can be used on a client running Windows NT 4.0: u u You must enable video acceleration on a site-wide basis. You can do this on the Advanced tab in the Remote Control Client Agent Properties dialog box. The client's video driver must be included in the list of supported video drivers. For more information, see the Video Drivers That Can Be Accelerated for Clients Running Windows NT 4.0 section. Windows NT 4.0 must determine that the IDISNTKM driver is compatible with the client's video driver.
Video Drivers That Can Be Accelerated for Clients Running Windows NT 4.0
The video drivers that have been tested and that are supported for clients running Windows NT 4.0 are listed on the Advanced tab in the Remote Tools Client Agent Properties dialog box on the SMS site server. You can add new drivers to this list, but you should test the results in a lab before implementing the change site-wide. Deleting items from this list makes them unavailable for video acceleration, even if video acceleration is enabled site-wide. For example, you might need to remove a specific driver if the manufacturer's video driver is incompatible with video acceleration for SMS Remote Control.
For clients running Windows NT 4.0, the list of supported video drivers is passed down to clients and added to the following registry key: \HKEY_LOCAL_MACHINE\\Sites\System\<Site_code>\Client Components\ Remote Control The accelerator driver (Idisntkm.dll) controls video acceleration during a Remote Control session on clients running Windows NT 4.0. The driver is installed into the System32\drivers directory and then loaded and used concurrently with the video card manufacturers video driver. Although the driver is loaded and running, it is used only during an accelerated Remote Control session. After the Remote Tools Client Agent is installed on the client, Windows NT 4.0 determines whether a client's video card can be accelerated during the next restart.
Note
You can ignore the VGASave entry. It is reserved for VGA Safe Mode.
To add the client video driver to the list of supported video drivers
1. In the SMS Administrator console, navigate to Client Agents.
Systems Management Server X Site Database (site code - site name) X Site Hierarchy X site code - site name X Site Settings X Client Agents
2. 3.
In the details pane, right-click Remote Tools Client Agent, and then click Properties. In the Remote Tools Client Agent Properties dialog box, click the Advanced tab.
4. 5.
Click the New button (gold star) to add a video driver name. In Video driver name box, type the new video driver name, and then click OK.
Note
If acceleration is not available for a video driver that is used in your organization, experiment with the video driver on a single computer before adding an entry to the video drivers list for the entire site. Adding unsupported video driver names to the supported video driver list can cause unexpected results if the video driver has not been tested for compatibility with video acceleration.
When you add a new video driver, the restrictions that are associated with changing the settings on the Advanced tab still apply. Only newly installed clients are affected by the changes to these settings. For more information, see the Legacy Client Hardware Settings section earlier in this chapter.
Caution
Modifying the registry keys to prevent Windows NT 4.0 from determining its compatibility with IDISNTKM can cause unpredictable results.
The following steps explain the installation of the Windows NT 4.0 accelerator driver: 1. 2. When the Remote Tools Client Agent is installed, the Hardware Munger adds all necessary IDISNTKM entries to the video driver registry key. When the client is restarted, RCHELP.sys runs during startup. It reads the video driver registry key and creates a file in the %SystemRoot%\System32 directory called Viddrv.rch. You can view the contents of Viddrv.rch by using Notepad or another text editor. Idisntkm.dll loads and examines Viddrv.rch to determine which driver to load. It uses the first driver in the registry list. If Idisntkm.dll can load during the startup, it remains running as a video driver. No changes are made to any files or registry entries.
3. 4.
5.
After the client completes the startup process and the Windows NT services start, Wuser32.exe determines if IDISNTKM is loaded. If it is successfully loaded, Wuser32.exe attaches to IDISNTKM and uses it to provide video acceleration. Otherwise, Wuser32.exe acknowledges that IDISNTKM is not loaded and removes the first IDISNTKM entry from the registry. If acceleration successfully loaded during the last startup, it will continue to load without problems. If an IDISNTKM entry had to be removed from the registry during the previous startup, RCHELP.sys reads the registry again and then creates Viddrv.rch. Idisntkm.dll reads Viddrv.rch and attempts to load the next video driver in the list, if another entry is present, repeating steps 2 through 5 above.
6.
The only scenario where acceleration might temporarily be lost is after a CCIM maintenance cycle, when the Hardware Munger is run again. This is primarily a problem for video cards with non-unified drivers. In this case, the registry is repopulated and the client must repeat steps 2 through 5 above until acceleration is successfully reloaded.
How Non-Unified Drivers Affect Video Acceleration for Clients Running Windows NT 4.0
There are two types of video drivers: unified drivers and non-unified drivers. Unified drivers require one set of drivers for all video modes. Non-unified video drivers require different drivers for each mode. Cirrus is one card manufacturer that does not use unified drivers and, therefore, requires drivers for each video mode. The following examples show unified drivers and non-unified drivers in the InstalledDisplayDrivers key in the registry:
Cirrus:vga cirrus vga256 vga64k Matrox:mga106
In this example, Cirrus lists separate drivers for each supported video mode, and Matrox lists only one driver for all supported video modes. When the accelerator driver (IDISNTKM) is loaded, it is inserted into the registry between each driver entry. In the Cirrus example, IDISNTKM is inserted before each video mode. For the unified video drivers, such as Matrox, IDISNTKM is inserted only once. This results in the following updated registry keys:
Cirrus:idisntkm vga idisntkm cirrus idisntkm vga256 idisntkm vga64k Matrox:idisntkm mga106
When the client restarts, Windows NT 4.0 tries the first driver in the InstalledDisplayDrivers key, together with IDISNTKM. If the two drivers work together, acceleration is enabled. With non-unified drivers, this process must be repeated as Windows NT 4.0 tries the driver for each of the supported video modes in succession. If acceleration fails for one of the drivers, Windows NT 4.0 discards that driver and the system then must be restarted to try the next driver. Although this might appear to be a problem with SMS Remote Tools, it is actually caused by the non-unified video driver architecture.
If you examine HKLM\SYSTEM\CurrentControlSet\Services\Cirrus\Device0, under the InstalledDisplayDrivers key, you can determine the state of attempted video acceleration for your card. For the Cirrus example, it might read as follows:
Vga idisntkm cirrus idisntkm vga256 idisntkm vga64k
This indicates that Windows NT 4.0 acceleration might be working with the non-unified Cirrus driver because an IDISNTKM entry is present in front of the Cirrus registry entry. Usually, this process requires only one restart, because most video drivers are unified drivers. If you have clients that have older video cards with non-unified drivers, it might take multiple restarts to accomplish video acceleration. To summarize: u u u If you restart the client and Windows NT 4.0 enables acceleration, then IDISNTKM has been successfully loaded with the current driver. If a client has a video adapter that uses a non-unified driver, you might need to restart the client more than once to enable acceleration. If you have restarted the client multiple times and all drivers in the InstalledDisplayDrivers key have been attempted (including the final vga64k entry in the case of a non-unified driver), and acceleration still did not load, then acceleration cannot be used with this version of the manufacturers video driver. Reinstalling the Remote Tools Client Agent components does not help in this situation, because it restarts the same process. Try updating to the latest drivers from the video card manufacturer.
3.
Alternatively, in Control Panel on the client, double-click Remote Control, and then click Show Status. The Remote Control Status dialog box opens and indicates whether acceleration is enabled.
Remove Unnecessary Administrator Group Entries After Upgrading from SMS 2.0
SMS 2.0 and Windows NT 4.0 or later include multiple language-specific versions of the Administrator group. Because SMS 2.0 cannot determine which language-specific versions are required for a given SMS site, all localized versions of the Administrators group are added to the Permitted Viewers list. When you upgrade from SMS 2.0 to SMS 2003, these entries remain in the Permitted Viewers list. To reduce network bandwidth usage and enhance the performance of Remote Tools, remove all unnecessary language-specific versions of the Administrator group from the Permitted Viewers list on the Security tab in the Remote Tools Client Agent Properties dialog box. Doing so enhances the performance of SMS Remote Tools by reducing the number of permitted viewers that are authenticated by the domain controller each time that you initiate a Remote Tools function.
C H A P T E R
1 0
In This Chapter
u u u Using Network Monitor Using SMS Network Diagnostic Tools on Remote Computers Using Network Trace
Table 10.1 lists network monitoring and maintenance tasks and the SMS tools you use to accomplish those tasks. Table 10.1 Network Monitoring and Maintenance Tasks and Tools
To do this task Capture and examine network traffic (frames) Network Monitor Use this tool
Create capture and display filters to capture or view Network Monitor only the frames in which you are interested Automate data capture by using capture triggers Edit and retransmit frames onto your network Analyze and interpret captured data Graphically map the network connections between site systems and network devices such as routers Network Monitor Network Monitor Experts Network Trace
You either can capture all the frames that pass by the network adapter or design a capture filter to capture only specific frames, such as those originating from a specific source address or using a particular protocol. When you begin capturing network data, the captured frames are stored in a temporary capture file. After the data capture process concludes, you can view the frames immediately or save the frames in the temporary capture file to a capture file. These files provide important diagnostic information to administrators and third-party support services. By default, the capture file name extension is .cap. The default size of the temporary capture file is 1 MB. When the temporary capture file fills to capacity, the oldest frames captured are lost. If your temporary capture file fills too quickly and you begin to overwrite buffered data, increase the size of the temporary capture file. When you increase the size of the temporary capture file, you should consider the amount of RAM on your system. If the temporary capture file size exceeds the amount of RAM, some frames might not be captured while your system swaps memory to disk. You can use capture triggers to automatically stop the data capture process when the temporary capture file fills to a predetermined level. You can also reduce the amount of data placed in the temporary capture file during data capture by using capture filters. Network Monitor captures only the traffic that passes through the network adapter of the computer it is running on. This means that you can capture only the traffic of the local network segment. If your network consists of different segments, you can use Network Monitor to connect to a computer on another segment that has the Network Monitor Driver installed. The Network Monitor Driver can be enabled in the protocols properties of a connection to capture the segments traffic. For more information about using Network Monitor to capture traffic on a remote computer, see the Using SMS Network Diagnostic Tools on Remote Computers section later in this chapter.
Capture Triggers
You can use Network Monitor to configure capture triggers. During the capture process, a capture trigger monitors the network traffic data for one or both of the following trigger events: u u u u The temporary capture file fills to a specified level. A specific data pattern occurs in a captured frame. Either sound an audible signal or stop capturing data. Run a program or a batch file.
When a trigger event occurs, the capture trigger can be configured to:
For example, you might configure a trigger to stop capturing data when a specified hexadecimal or ASCII pattern is found in a frame, which preserves the captured frame in the temporary capture file.
Capture Filters
You can limit the frames that are captured by designing a capture filter. A capture filter compares the network traffic to a defined set of criteria, and copies frames that meet the criteria to the temporary capture file. You build a complete capture filter expression by specifying the protocols, address pairs, and data patterns of the frames that you want to include in, or exclude from, the capture.
Experts
Although you can examine captured frames to analyze network problems, complete and accurate analysis is difficult if you do not have a detailed knowledge of what your network traffic looks like. This knowledge requires examining data on a frame-by-frame basis, and knowing which network service generated each frame. Network Monitor includes a set of Experts, which are automated tools designed to help you interpret the information subtleties of captured network data. Frames consist of a complex mix of addressing information, protocol information, and the actual data being transmitted across your network. This information is arranged in different layers. Each layer contains potentially useful information. For example, one layer contains the frame destination address. By examining a frames destination address, you can determine whether the frame was broadcast to all recipients on your network or sent to a single station. By examining each part of a frame, and by reviewing sequences of frames, you can determine exactly why each frame was generated. For example, in a Microsoft Windows 2000 network, when a computer is configured as a WINS client, it seeks a logon server by querying the WINS server for the domain name. The WINS server responds by sending a frame that contains the IP address of all registered domain controllers in its WINS database. The client then sends a directed frame to each server listed in the response, asking it to validate the logon request. Each server then sends a response frame to the client. The client then takes the first server response and initiates a series of frame sequences with the server to actually validate the logon.
This complex series of events illustrates why a knowledge of the various network services and the tasks they perform is essential to understanding what you see in each frame. The Network Monitor Experts assist you in performing sophisticated post-capture analysis of your network traffic. For more information, see the Using Network Monitor Experts section later in this chapter. Before you run Network Monitor, ensure that the computer running Network Monitor meets the following requirements: u u u A Windows 2000 Server or later operating system version is installed. Administrator rights have been granted to the Microsoft Windows 2000, Windows XP, or Windows Server 2003-supported user. Network Monitor is installed.
The computer includes a network adapter that supports promiscuous mode. Capturing network traffic Examining captured data Using Experts to analyze the captured data
Note
It is not recommended to capture local network data from your site server. Placing your network adapter into promiscuous mode is a processorintensive process and can adversely affect the performance of other processes on the server. If you want to run Network Monitor on the site server as a client for remote capture of network data, it will not cause a performance issue. For more information, see the Using SMS Network Diagnostic Tools on Remote Computers section later in this chapter.
Table 10.2 lists the functionality of the Experts supplied with Network Monitor. Table 10.2 Network Monitor Experts
To perform this task Calculate the average server response time for servers on a network subnet Use this Expert Average Server Response Time Expert
Calculate frame statistics for a specified property Property Distribution Expert found in frames in a capture file Calculate statistics about the distribution of protocols found in frames in a capture file Find all TCP frames that have been retransmitted to the same computer in a capture file Determine the top senders and recipients in a capture file based on the source and destination addresses of each frame Recombine data for a transaction that was sent across the network in multiple frames Protocol Distribution Expert TCP Retransmit Expert Top Users Expert
Example: Measuring network response time A common user complaint is that a network server or the network is slow. Slow response time problems are often frustrating to solve because it can be difficult to link server performance data to the server responsiveness that users experience at their desktop. Also, it is often difficult to obtain the information you need to determine whether network response times warrant changing configurations or adding additional servers. Quantifying the speed of the network is simplified by using the Average Server Response Time Expert. This Expert uses Server Message Block, any specified TCP ports (such as HTTP), and any specified IPX sockets to calculate the number of seconds it takes for a server to respond to a client's request for data. You can run the Expert to establish a baseline of average server response times and then compare current responsiveness to historical data. This Expert is also a useful way to quantify server responsiveness under different configurations, such as when an existing Microsoft SQL Server computer is also configured as a WINS server.
5. 6.
To configure the Expert, click Configure Expert and specify the TCP ports and IPX sockets that the Expert should monitor. Click OK, Add to Run List, and then Run Experts. The average response times of servers measured in the captured data appears in the Event Viewer window.
Network adapter
The network adapter in the remote computer must support promiscuous mode.
Installation
Your local computer must run a Windows 2000 or later operating system. Make sure to install and enable the Network Monitor Driver on the remote computer. To install the driver, perform the following steps: 1. 2. 3. In Control Panel, double-click Network Connections, right-click the network connection, and then click Properties. On the General tab, click Install. In the Select Network Component Type window, click Protocol, and then click Add. Click Network Monitor Driver, and then click OK.
The Network Monitor Driver should now be installed and enabled. When you add a network protocol, the Network Monitor Driver service appears in the protocol listing.
Protocols
A connection-oriented protocol, such as TCP or NetBIOS, must be available on both the local computer and the remote computer.
A network diagram displays information in either a trace view or a site view. In a trace view, only the site systems within the site database are displayed. In a site view, all known subnets and routers are also displayed, along with the site systems within the site database. Network Trace creates network diagrams that are based upon information in the SMS site database. SMS gathers this information during the server and network discovery processes. SMS Server Discovery runs immediately after SMS installation and periodically thereafter to discover servers that you have configured as site systems. After Server Discovery runs, Network Trace can diagram the communication links between other servers and the site system you select. Network Discovery is not enabled by default. Also, you must schedule and configure Network Discovery to discover devices such as routers.
Note
To diagram devices outside your local subnet, you must run Network Discovery on all subnets in the site that you want to diagram. If you do not do this, network diagrams created by using Network Trace display only the local subnet.
2.
Right-click a site system server, point to All Tasks, and then click Start Network Trace. The Network Trace window opens and displays a diagram of the IP communication links between the site system you selected and other servers and network devices that are connected to the selected site system.
Other features of Network Trace include the ping provider and the Component Poller. You can use the ping provider to transmit an Internet Control Message Protocol echo, which is more commonly known as a ping. You can send a ping to all devices displayed in the network diagram, or to only the devices that you select, to confirm the IP communication link. Pings are sent from the site server, not from the computer on which you are logged on. For the ping provider to function correctly, you must be able to connect to the site server. For a primary site, this means that you must have DCOM/WMI connectivity enabled on the site server. For a secondary site, you must be an administrator on the site system. You can use the Component Poller to query the status of SMS components installed on the selected site server. You can use it to determine if a component is running, paused, or stopped, the last time the component was polled, and the component type. Like the ping provider, the Component Poller runs on the site server. For the Component Poller to function correctly, you must have the appropriate connectivity and SMS security rights to the site server. For a primary site, this means that you must have DCOM/WMI connectivity enabled on the site server and you also must have Administer permission for the Site object, which you set by using the Security Rights console item in the SMS Administrator console. For a secondary site, you must be an administrator on the site system.
C H A P T E R
1 1
Creating Reports
Microsoft Systems Management Server (SMS) 2003 generates a tremendous amount of network, inventory, discovery, and status information, which it maintains in your SMS site database. Depending on the level of each site in your SMS hierarchy, your site database might also include information that is passed up from child sites. One challenge that you face as an administrator is retrieving the pertinent data that is necessary to monitor and evaluate your SMS system and to help you and others effectively manage your organization. You can use SMS reporting to gather, organize, and present information that is collected in your site database. SMS 2003 provides a number of predefined reports that you can use to gather important information from your site database. Administrators can create, manage, and secure reports by using the SMS Administrator console. Administrators and other report users, such as help desk specialists or business decision-makers, can run reports by using Report Viewer. Report Viewer is a browser-based application that runs with Microsoft Internet Explorer. You can create and administer reports in the secure environment of the SMS Administrator console and end users can run reports without the need to access an SMS Administrator console. You can export and import reports by using the Export Object Wizard and Import Object Wizard. SMS 2003 exports reports by writing report object definitions, which are the properties that define a report, to a file. Only the report object definitions are exported or imported, not report data. You can use exported report files to share reports with other SMS administrators, or to import reports that you obtained from other SMS administrators or other sources. You can also create dashboards, which are sets of reports in a grid that you can display in a single window of Report Viewer. You can use dashboards to monitor information about a variety of SMS objects or systems. You cannot export or import dashboards.
In This Chapter
u u u Understanding Reporting Working with Reports Working with Dashboards
Understanding Reporting
Reporting in SMS 2003 is integrated into the SMS Administrator console. Reports are secured SMS objects that you can create and manage by using the SMS Administrator console. Many predefined reports are provided with SMS 2003, and you can create additional reports by using the SMS Administrator console. You can also use the Import Object Wizard to import reports that are created outside of your SMS Administrator console. You can run reports by using Report Viewer, which is a browser-based application that you can start either from within the SMS Administrator console or by using a URL with Internet Explorer. Report users do not need to have access to an SMS Administrator console to view reports. The code for Report Viewer is located on a reporting point, which is an SMS site system role.
Note
You must enable a reporting point to use Report Viewer. For more information, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide
Like other SMS objects, you must have the appropriate credentials to create, modify, delete, view, or run reports. For more information about report security, see Chapter 5, Understanding SMS Security in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. SMS 2003 provides a number of predefined reports that you can use to gather important information from your site database. For many administrators, these reports provide sufficient information to administer their computer infrastructure and SMS system. However, you might find that your information needs extend beyond the predefined reports. In this case, you can create your own reports or copy and modify predefined reports to better meet your needs. The principal element of a report is a Structured Query Language (SQL) statement that defines which data the report gathers and returns as the result set. A result set is a tabular arrangement of the data in columns and rows. A report can also return multiple result sets. The SQL statement in a report does not run directly against your SMS site database tables. Instead, the SQL statement runs against a set of Microsoft SQL Server views, which point to records in your SMS site database tables. Each time that you run a report, the information returned consists of data that is current in the database at the time that you run the report. To create new reports by using the SMS Administrator console you must have a working knowledge of SQL. However, no knowledge of SQL is required to import new reports. You can export reports from your SMS site database by exporting the report object definitions to Managed Object Format (MOF) files. You can also import MOF files that contain report object definitions into your SMS site database. This allows you to share your reports with other users and sites and to use reports that are created by others.
Reports are not propagated up or down the SMS hierarchy; they run only against the sites database of the site on which they are created. However, because primary sites contain inventory data from child sites, when a report retrieves data from a primary sites database, it might retrieve data that was forwarded from a child site.
Report Types
There are four types of reports: Predefined reports A variety of reports are provided with SMS 2003 to help you quickly obtain information that is useful to the administration of your SMS operations, such as reports that provide information about the hardware inventory data in your SMS site database. Predefined reports include, but are not limited to, reports in the following categories: u u u u u u u u u Hardware Software Software distribution Software metering Software updates Network Operating system SMS site Status messages
Custom reports Reports that you create either by copying and modifying predefined reports or by creating new reports. To create a new report, you must specify an SQL statement that determines which records are returned when the report is run. For more information, see the Creating and Modifying SQL Statements section later in this chapter. Supplemental reports Reports created outside of SMS 2003, which you can place in a designated folder on a reporting point to extend your reporting capabilities. These reports will primarily be Active Server Pages (ASP) pages. However, it can be any file that you can display by using Internet Explorer 5.0 or later. Because supplemental reports are not secured SMS objects, any user can view them unless you secure them by using Microsoft Internet Information Server (IIS) security. Dashboards Sets of reports that are displayed in a grid within a single window of Report Viewer. You can use dashboards to quickly obtain information about a variety of topics.
Report Prompts
A prompt is a report property that you can configure when you create or modify a report. When a user runs the report, a prompt requests the user to enter a value for a required parameter prior to running the report. A report can contain more than one prompt.
You can use prompts to limit or target the data that a report retrieves. For example, you create a report that retrieves hardware inventory data for a given computer and prompts the user for a computer name. Report Viewer then passes the user-specified value to a variable that is defined in the SQL statement for the report. Provided that you have properly configured the SQL statement, the report returns hardware inventory data only for the specified computer. For more information, see the Integrating Report Prompts section later in this chapter. To help report users enter prompt values, you can specify a default value for a prompt. You can also configure a prompt to display a list of appropriate values from which the user can choose. For more information, see the Creating Report Prompts section later in this chapter.
Report Links
You can use a link in a source report to provide users with ready access to additional data, such as more detailed information about each of the items in the source report. For example, you might link a report that lists all site codes to another report that lists all recent error messages for a given site code. The source report passes a specific site code to the target report based on which line item in the source report that the user chooses to obtain more information. A report can only be configured with one link, and that link can only connect to a single target.
Note
To take advantage of a report link, the user of the source report must also have the appropriate permissions to the link target. For example, if a report links to the Status Message Details page, a user must have Read permission for the Status Message object to view status message details. Or, if a report links to another report, the user must have instance-level Read permission for that report or class-level Read permission for the Report class to view the target report. For more information, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
You can link a source report to any of the following targets: Another report This target can be any predefined or custom report. Links to supplemental reports are described later in this list. If the target report requires one or more prompts to run, the source report must contain a column with valid values for each prompt. You must specify the column number to use for each prompt. For example, you might link a report that lists computers that were discovered recently to a report that lists the last messages that were received for a specific computer. When you create the link, you might specify that column 2 in the source report contains computer names, which is a required prompt for the target report. When you run the source report, link icons appear to the left of each row of data. When you click an icon for a row, Report Viewer passes the value in the specified column for that row as the prompt value that is needed to display the target report. For more information, see the Report Prompts section earlier in this chapter.
Computer Details page This link is to the Computer Details page, which is a specialized page of Report Viewer. Many of the predefined reports provided with SMS 2003 are designated to appear on this page and are configured to display detailed information about a specific computer. However, you can designate any report that has one prompt or no prompts to appear on the Computer Details page. A source report that you link to the Computer Details page can contain a column with values that can be passed as the prompt parameter for reports that appear on this page. When you create the link, you specify the number of that column. When you run the source report, link icons appear to the left of each row of data. When you click an icon, Report Viewer opens the Computer Details page and automatically enters the value from the specified column of the row as a parameter for reports. You can then use this value to run reports on this page or you can enter another value. For more information, see the Using the Computer Details Page section later in this chapter. Status Message Details page This link is to the Status Message Details page, which is a specialized page of Report Viewer. This page can only be accessed from a report that contains status messages. You can use the Status Message Details page to display information about a specific status message, based on the RecordID property for the message. The source report that you link to the Status Message Details page must contain a column with RecordID values. When you create the link, you specify the number of that column. When you run the source report, link icons appear to the left of each row of data. When you click an icon, the Status Message Details page opens and displays information about the specific message. For more information, see the Using the Status Message Details Page section later in this chapter. Uniform Resource Locator You can use this target to link a source report to a supplemental report or to any file that is supported by HTTP. To create the link, you specify the URL of the target, which can be either an absolute or a relative URL. You can also configure a URL link to pass column information from the source report as a parameter to the target report. To do this, you specify column values by using the syntax <column_number> in the URL, as in the following example:
CustomReport.asp?MachineName=<3>&Network=<5>
In the URL example, <3> is replaced with the value from column 3 and <5> is replaced with the value from column 5 in the source report. You must configure the target page to accept the data that Report Viewer passes to it. Report Viewer performs no syntax checking. The URL that is specified in the report properties can be a maximum of 1,024 characters. When a report user clicks the link, and the source report data is inserted into the URL, the target URL can be up to 2,048 characters.
When you create such a link, and then delete or change the order of columns in the source report, you can break the link. For example, suppose that you link a source report to the Status Message Details page. In the link, you specify column 2 of the source report as the column that contains RecordID, which is the value that the target needs to run. Subsequently, you change the SQL statement for the source report so that RecordID values are returned in column 3 and site codes values in column 2. If you run the source report again, Report Viewer passes the data in column 2, which is now the site code data. Because the Status Message Details page needs a RecordID to run, it returns no data. To prevent this, any time that you change the order of columns in a source report, you should also change the link properties to reflect the changes made to the columns. You can also break links by adding, deleting, or changing a prompt in a target report. Because one or more source reports can pass data that is required by a prompt or prompts in a target report, such changes can break several links. To prevent this, when you change prompts in a target report, you need to change the link properties to reflect the prompt changes in any reports that link to the target report.
Note
Only report values that begin with the prefixes http://, ftp://, file://, or \\ are converted into hyperlinks. There is no support for embedded URLs within text, multi-URLs, or a mixture of URLs and text.
Before you can begin using SMS reporting, you must enable one or more of your site systems as a reporting point. A reporting point is a site system that hosts the code for Report Viewer and any supplemental reports. SMS 2003 does not automatically enable reporting points. You must enable all reporting points as required to provide access to reports in your site. To balance a heavy demand for reports in a larger site, you can enable more than one reporting point and then point different groups of users to different URLs for each reporting point. When you start Report Viewer from the SMS Administrator console, you select the specific reporting point that you want to use. For more information about how to create an SMS site system and enable a reporting point, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
The list of reports for which you have Read permission appears in the details pane. In the SMS Administrator console, you can sort reports by Name, Category, or Report ID. To sort the list of reports, click the appropriate column heading. You can also filter which report categories appear and choose or change the order of the columns in the details pane of the SMS Administrator console. These filters apply only to the local computer on which the SMS Administrator console is running.
2. 3.
Right-click Reports, point to All Tasks, and then click Filter Reports. In the Filter Reports dialog box, select one or more categories in the Categories list, and then click Display/Hide. In the Categories list, the Display column value for the selected category or categories switches between Yes (Display) and No (Hide).
2. 3.
Right-click Reports, point to All Tasks, and then point to Run. On the Run menu, click the name of the reporting point that you want to use to start Report Viewer. Report Viewer starts on the main page.
Note
You can also start Report Viewer on its main page by typing the designated URL for a reporting point in the Address box of Internet Explorer. If you have the appropriate credentials, you can see the URL for a reporting point on the Reporting Point tab in the Site System Properties dialog box.
4.
On the Report Viewer main page, perform one of the following procedures: u In the reports tree, expand a category to view a list of reports in that category for which you have Read permission. To run a report, click the report, enter values for any required parameters, and then click Display. To view the list of dashboards, click Dashboards. For more information, see the Running Dashboards section later in this chapter. To view the list of reports that are designated to appear on the Computer Details page, click Computer Details. Only reports for which you have Read permission appear on this page. For more information, see the Using the Computer Details Page section later in the chapter. To view the list of supplemental reports, expand Supplemental Reports. For more information, see the Using Supplemental Reports section later in this chapter.
u u
Note
The Supplemental Reports item appears only if you place at least one supplemental report in the designated folder on the reporting point.
Running Reports
You run reports by using Report Viewer. You can start Report Viewer from the SMS Administrator console by right-clicking a report, choosing a reporting point, and then clicking Run. You can also start Report Viewer by entering a reports unique URL in the Address box of Internet Explorer or by entering the URL of the Report Viewer main page on a reporting point in the Address box of Internet Explorer. You can also use a reports URL to schedule the report to run automatically at a specified time. For more information, see the Scheduling Reports section later in this chapter. This can be helpful for reports that can take a long time to run, such as a report that returns a large amount of data. You can schedule such reports to run at a time when your network is less busy. The following procedure describes how to run individual reports starting from the SMS Administrator console. For information about running reports by using the Computer Details page of Report Viewer, see the Using the Computer Details Page section later in this chapter. For information about running supplemental reports, see the Using Supplemental Reports section later in this chapter.
2.
Right-click the report that you want to run, point to All Tasks, and then point to Run.
3.
On the Run menu, click the name of the reporting point that you want to use to start Report Viewer. If the report has prompts, Report Viewer starts at the Report Information page for the selected report, where you can enter values for any required parameters, and then click Display. Click Values to display a list of values that can be entered in the prompt. You can also click Show tree on the menu bar to display the full list of reports.
Important
The number of values that might be returned when you click Values can be very large and is limited by default to 1,000. For information about how you can change the default, see the Advanced Reporting Configuration section later in this chapter. You can use wildcards to reduce the number of values that is displayed when you click Values. Use the percent (%) symbol to substitute for any number of characters, the underscore (_) symbol to substitute for a single character, and the bracket ([ ]) symbols to search for literals. Although wildcards help reduce the number of values that is displayed when you click Values, you cannot use wildcards to reduce the number of results that is returned when you actually run a report by clicking Display. If you enter a wildcard and then click Display, the report searches for the wildcard as a literal value. For example, if you enter %m% when prompted for a computer name and then click Display, the report searches for computers that have the literal name %m%.
If the report does not have prompts, Report Viewer starts directly at the Report Results page for the selected report. By default, a maximum of five reporting points appears on the Run menu and you can modify this number. For more information, see the Advanced Reporting Configuration section later in this chapter. For performance reasons, Report Viewer limits the result set that is returned by a report query to 10,000 rows and you can modify this number. For more information, see the Advanced Reporting Configuration section later in this chapter. The amount of time that is required to run a report depends on the amount of data that is returned by the report. With large reports, you might experience time-outs. If this happens, you can adjust the time-out settings. For more information, see the Adjusting time-out settings section later in this chapter. For reports that are likely to return large amounts of data, such as status message reports or client installation reports, it is recommended that you create prompts or linked reports to limit the amount of data that is returned by any one report. By using prompts, a report can be limited to returning status messages only for a particular time period or to returning information about only clients in a specific site. For more information, see the Report Prompts and the Report Links sections earlier in this chapter.
Report Viewer cannot display different languages on a single reporting page. You can create individual reports that contain data in only one language.
Note
If double-byte character set (DBCS) information is not displayed correctly, such as Japanese computer names, you should configure Internet Explorer encoding to Auto-Select. Right-click anywhere in Report Viewer, point to Encoding, and then click Auto-Select. This overrides other encoding selections.
Note
When you export report data, you only export the data that is contained in that report and not any of the data contained in the reports targets. For example, if you export a report that contains links to the Status Message page, you only export the status message IDs and not the actual data that is contained in the individual status messages.
Note
If you included any of the following characters in a report name, the characters are deleted from the favorite name when you add the report URL to your list of favorites: \ / : * ? < > |
Send the URL for the report by using e-mail (the recipient must have Read permission for the report and be a member of the SMS Reporting Users group to run the report).
Note
You should use the commands on the Report Result page menu bar to copy report data to the Clipboard or to print it. If you use the Internet Explorer shortcut menu or menu bar commands, you print or copy all elements on the page, rather than only the report data.
A report can return multiple result sets, for example, when you include more than one SELECT clause or a COMPUTE clause in an SQL statement. If a report is configured to display as a chart, and the report returns more than one result set, Report Viewer only displays the first result set as a chart. If you print a report that returns multiple result sets, copy it to the Clipboard, or export it to a comma-delimited file, all result sets are included. You can sort the data within a result set by clicking a column heading. If the report has multiple result sets, you can sort the data in each result set independently. You can only sort by using one column at a time. If a report has links to a target, link icons appear to the left of each row of data when you run the report in Report Viewer. When you click a link icon, the target opens in the same window. If a report has links to a target and returns multiple result sets, the same target is used for all result sets. For more information, see the Report Links section earlier in this chapter.
Note
When you run the predefined report called Computers that can be upgraded to WinXP, the report results correctly lists the operating system version for all Windows computers except those running Microsoft Windows 98. The caption for Microsoft Windows 98 computers reads Microsoft Windows.
Note
A number of predefined reports are designated to appear on the Computer Details page of Report Viewer. If you clear the Display in computer details check box, modify the SQL statement, or modify a report prompt for a predefined report, it might not work as intended. For more information, see the Using the Computer Details Page section later in this chapter.
When you create a new report, you must specify a category. You can choose an existing category or create a new category. When you create a new category, it is added to the category list. Within a given category, report names must be unique. However, you can use duplicate report names in different categories. SMS 2003 assigns each new report a report ID number, which uniquely identifies the report. The category determines which tree branch the report appears in on the main page of Report Viewer. You can configure a report to refresh its results automatically at a specified interval. This is especially useful for reports that you include in a dashboard or otherwise use to monitor information that changes frequently. You can also configure a report to display its data as a chart. This is useful for reports that return counts, such as a report that provides a count of computers by network protocol. You can specify a chart title, a title and report column to use for the category (x) axis data, and a title and report column to use for the value (y) axis data. For the value (y) axis data, you should select a column that contains integer data. If you select a column that contains string data, some of the data might be truncated on the chart. You can also specify a default chart type, such as a bar chart. A report user can choose to display the data with a different chart type. If a report returns multiple result sets, Report Viewer displays only the first result set as a chart. For more information about configuring display options for reports, see the SMS Help.
Note
The number of colors that a chart can display is limited to 16. If you have more than 16 items in a report, the colors are reused.
To display report data as a chart by using Report Viewer, you must have a licensed copy of Microsoft Office XP Web Components or Microsoft Office 2000 Web Components installed on the reporting point site system. You must also have a licensed copy of at least one Microsoft Office application installed on the reporting point site system. Office Web Components are installed with all Office XP editions and Office 2000 Professional, Premium, Developer, and Standard editions. They are not installed with Office 2000 Small Business or the stand-alone version of Microsoft Excel 2000.
2.
Right-click Reports, point to New, and then click Report. Or Right-click a report, and then click Properties.
3.
Use the tabs in the Report Properties dialog box to configure the report properties. u Use the General tab to name the report, select a category, and create or modify the SQL statement. For more information about creating SQL statements, see the Creating and Modifying SQL Statements section later in this chapter.
Note
It is recommended that you select a category from the Category list. If you type a name in the Category box that does not match an existing category name exactly (case-sensitive), SMS creates a new category. New category names are added to the Category list.
u u u
Use the Display tab to configure the report to refresh automatically and to configure the report to display its data as a chart. Use the Links tab to link the report to a target. For more information, see the Report Links section earlier in this chapter. Use the Security tab to configure security options. For more information, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
For more information about configuring report properties, see the SMS Help.
2. 3.
Right-click the report that you want to clone, point to All Tasks, and then click Clone. In the New report name box, type a name for the new report, and then click OK.
Note
Because SMS creates a new report by using the same category as the report you are cloning, the name that you enter for the new report must be different than the name of the existing report.
Deleting Reports
When you delete a report, SMS removes the report object from the site database. The report no longer: u u u Appears in the report list in the SMS Administrator console or Report Viewer. Appears in dashboards in which it was included. Is available as a target for other reports that contained links to it.
To delete a report
1. In the SMS Administrator console, navigate to Reports.
Systems Management Server X Site Database (site code-site name) X Reporting X Reports
2.
Right-click the report that you want to delete, and then click Delete. The Delete Report dialog box displays the following information in the Objects list to alert you of the potential impacts of deleting the report: u u Any dashboards that include the selected report. Any reports that link to the selected report and for which you have Read permission.
Important
Reports for which you do not have Read permission are not displayed in the Delete Report dialog box. It is possible that deleting a report might impact reports other than the ones that are displayed.
Note
You should carefully create and test prompts that use an SQL statement to ensure that the statement does not return a large list of values, which can take a long time to run.
For more information, see the Creating and Modifying SQL Statements section later in this chapter.
2.
Right-click Reports, point to New, and then click Report. Or Right-click a report, and then click Properties.
3. 4. 5. 6.
On the General tab, click Edit SQL Statement. In the Report SQL Statement dialog box, click Prompts. In the Prompts area, click New (gold star). In the Prompt Properties dialog box, complete the following tasks: u In the Name box, type a name. You use this value as the prompt variable name to integrate the prompt into the SQL statement for the report. For more information, see the Integrating Report Prompts section later in this chapter. In the Prompt text box, type the text that you want to appear as the display name for the prompt in Report Viewer. The prompt text informs the user about the type of value that is required for the prompt; for example, Computer name. In the Default value box, type a value that you want to be automatically inserted into the prompt text box when a user runs the report. This is an optional setting and the report user can type in a different value. To allow a report to run using an empty value for the prompt, select the Allow an empty value check box.
Note
If a report user leaves the value for a report prompt blank, and the report prompt is configured to allow an empty value, an empty string is used as the value when the report is run.
7. 8.
To use an SQL statement to retrieve a list of values from which the user can choose, select the Provide a SQL statement check box, and then click Edit SQL statement. In the SQL statement box, enter a valid SQL statement for the prompt.
Note
A prompt SQL statement can return more than one column of values. However, when a report user selects an item from the list prior to running the report, only the value in the first column is returned to the prompt box.
For more information about creating an SQL statement, see the Creating and Modifying SQL Statements section later in this chapter.
For more information, see the SQL statement variables section later in this chapter.
More than one report can have the same name, as long as each report is in a different report category. When you export reports, the report categories are written to the MOF file; however, the report categories do not appear in the Export Object Wizard. The unique report ID for each report does appear in the Export Object Wizard. To ensure that you are exporting the reports that you want, verify that the report ID of each report in the Export Object Wizard matches the report ID of each report as it appears in the details pane of the SMS Administrator console. You can use the Export Object Wizard to export objects from only one object class (reports, collections, or queries) at a time. MOF files that are created by using the Export Object Wizard contain only one object class. You can use the Import Object Wizard to import user-created MOF files that contain objects from multiple object classes. However, you must have Create permission for all object classes in a MOF file. Any objects for which you do not have permission are not imported. For example, if you import a MOF file that contains report and collection objects, but you have Create permission only for the Reports object class, the collection objects are not imported.
Note
To import a MOF file by using the Import Object Wizard, the file must be in Unicode file format. All MOF files that are exported by the Export Object Wizard are in Unicode file format.
2. 3.
Point to All Tasks, and then click Export Objects. Complete the Export Object Wizard, and then click Finish.
For more information about completing the Export Object Wizard, see the SMS Help.
Caution
When exporting reports, do not use a MOF file name that is the same as the existing MOF file name in the same folder. If you do, the data for the existing file is overwritten without warning.
2. 3.
Point to All Tasks, and then click Import Objects. Complete the Import Object Wizard, and then click Finish.
For more information about completing the Import Object Wizard, see the SMS Help.
Caution
When importing reports, the properties of the existing report are overwritten without warning if you import a report with the same name and category as a report already in the database. To avoid this, open the MOF file by using Notepad or another text file application and review the object names against the names of existing objects in the SMS site database before importing the file.
Scheduling Reports
Report Viewer generates a unique URL for each report and dashboard that you run. The URL contains the report ID and the variable names that you used to run the report. You can use the URL to schedule a report or dashboard to run (or to run and export the data to a file) at a specified interval. You do this by configuring the Scheduled Tasks feature of your operating system to start Internet Explorer with a URL.
7. 8.
Select the Open advanced properties for this task when I click Finish check box, and then click Finish. To run and display a report at a specified interval, insert one space after the Internet Explorer command line in the Run box, and then type the URL of the report or dashboard. For example, C:\PROGRA~1\INTERN~1\IEXPLORE.EXE http:\\ReportingPoint\SMSReporting_001\Report.asp?ReportID=15 Or To run, display, and export a report to a comma-delimited text file at a specified interval, insert a space after the Internet Explorer command line in the Run box, type the URL of the report or dashboard, and then type one of the following parameters immediately after the URL: u &ExportTo=<Drive letter>:\<Path>\<Filename.txt>, where Drive letter specifies a drive on the reporting point, not on the local computer. For example, C:\PROGRA~1\INTERN~1\IEXPLORE.EXE http:\\Reporting_Point1\SMSReporting_001\Report.asp?ReportID=15& ExportTo=C:\ShareDrop\Report135.txt &ExportTo=\\<Server name>\<Server share name>\<Filename.txt>, where Server name and Server share name specify the reporting point and a share on that server. For example, C:\PROGRA~1\INTERN~1\IEXPLORE.EXE http:\\Reporting_Point1\SMSReporting_001\Report.asp?ReportID=15& ExportTo=\\Server2\ShareDrop\Report135.csv
Note
When you schedule a report to export to a comma-delimited text file, the Internet Explorer window remains open until you manually close it.
Note
If you clear the Display in Computer details report check box of a predefined report or one that you have created, the report no longer appears on the Computer Details page of Report Viewer.
Many reports on the Computer Details page include a prompt that requests the user to enter a value before running the report. This value is usually a computer name but it can be a different value, such as a file name or a user name, depending on how the report is configured. When a user selects a report with a prompt on the Computer Details page, the title of the Value box changes to reflect the Prompt Text value that was specified when the prompt was created, such as Computer Name. The user can then enter a value and run the report. When a value is specified, the user can select other reports on the Computer Details page and run those reports by using the same value. For example, you might enter a computer name and run a report that provides operating system information about that computer. You can then run a report that provides processor information about the same computer. If you link a report to the Computer Details page, that report must contain computer names (or other appropriate values) in one of its columns. A value from that column of the source report is automatically inserted into the Value box on the Computer Details page. For more information, see the Report Links section earlier in this chapter.
The Status Message Details page displays the same information as the Status Message Viewer. You can use the Status Message Details page, instead of the SMS Administrator console, to integrate this status information into your reports. A number of the predefined reports link to the Status Message Details page. You can also link reports that you create to the Status Message Details page. Any report that you link to the Status Message Details page must contain RecordID values in one of its columns. For more information, see the Report Links section earlier in this chapter.
Caution
Supplemental reports are not SMS database objects and are not backed up by the SMS backup service. You must back up these files manually.
Note
The Supplemental Reports item appears only if you place at least one supplemental report in the designated folder on the reporting point.
Note
To have all available reporting points appear on the Run submenu, type 0 (zero) as the DWORD value.
Note
The script time-out setting must not be less than either of the following control time-out settings, which are described later in this section: u u Session(DBConnectionTimeout) Session(DBCommandTimeout)
For information about how to increase the ASP script time-out setting, see article number 268364 in the Microsoft Knowledge Base at http://support.microsoft.com. To retrieve data from the SQL Server views in the SMS site database, the ASP script calls an ActiveX control. In the call, the script passes two time-out settings as parameters: Session(DBConnectionTimeout) This setting specifies the number of seconds within which the ActiveX control must connect to the SMS site database server. The default is 30 seconds. Session(DBCommandTimeout) This setting specifies the number of seconds within which the ActiveX control must receive data back from the SMS site database server. The default is 60 seconds. If you experience time-outs when running reports, you might need to increase these time-out settings in addition to increasing the ASP script time-out setting. The time-out settings are specified in the Global.asa file. You can open and modify this file to increase the settings by using Notepad or another a text editor. If you have multiple reporting points, you need to modify the Global.asa file on each of the reporting points on which you are experiencing time-outs. The Global.asa file is located in the following folder: <Installation drive>:\Inetpub\wwwroot\<Reporting folder name>\. Time-outs can also impact the performance of dashboards. When one or more reports contained in a dashboard experience time-outs, time-out error messages might appear in some cells and other cells might not display data at all. You should carefully set time-outs and report refresh intervals so that reports that are used in dashboards do not time out or refresh before the dashboard can display all reports.
Note
If you set Rowcount to a number that is not valid (such as 0 or a number less than 1), Report Viewer returns the default maximum of 10,000 rows.
Important
You must write case-sensitive queries for reports when they will be run against a case-sensitive SQL Server. Otherwise, the report will not run correctly and the SQL Server will generate errors.
To create an SQL statement, you need an understanding of the SQL Server views that expose data from your SMS site database. Before creating SQL statements, see the SQL Server Views section later in this chapter. The process for creating or modifying an SQL statement in a report is the same.
Note
If you modify or delete a prompt in a report, links to that report from other reports might be broken. This includes modifying an SQL statement that is used for a prompt.
Note
While the features of the Report SQL Statement dialog box can assist you in building an SQL statement, the interface does not automatically create complete SQL statements, nor does it validate them. However, SMS 2003 does perform limited syntax checks of the SQL statement.
When you initially open the Report SQL Statement dialog box for a new report, the SQL statement box contains the following sample SQL statement:
SELECT * FROM V_R_System where V_R_System.Name0 = 'computer_name'
A SELECT statement specifies the columns to be returned by the statement. It retrieves the data from the SQL Server views and presents it to the user in one or more result sets.
Note
SQL statements are not case-sensitive.
You can leave the asterisk (*) that follows the SELECT keyword to return all columns or replace it with the specific column names that you want the report to return (for example, User_Domain0 or User_Name0). The FROM clause indicates the SQL Server view from which the data is retrieved and always follows the SELECT keyword. For more information, see the SQL Server Views section earlier in this chapter. You can create multiple SELECT statements within an SQL statement for a report, which returns multiple result sets. The following is an example:
SELECT * FROM v_StatMsgModuleNames SELECT * FROM v_SoftwareProduct
Note
If you use multiple SELECT statements for a report, you should test each statement individually to ensure that it runs successfully. When a report fails, it returns an error code indicating the failure. When you use multiple SELECT statements, they are treated as a single request; if any statement fails, only one error code is returned and the report fails.
The Report SQL Statement dialog box has controls that you can use to help you build SQL statements. You can use the Views and Columns lists to insert view and column names and the Values button to insert column values into the SQL statement.
Note
The Report SQL Statement dialog box controls insert data in the SQL statement at the position of the cursor. When you first open the Report SQL Statement dialog box, the cursor is positioned at the beginning of the statement. You should position the cursor before inserting data.
For more information about using the Report SQL Statement dialog box, see SMS Help.
To return the list of available inventory views, use the following statement:
SELECT Type, ViewName AS 'View Name' FROM v_SchemaViews WHERE Type='Inventory'
To return the display name of resources based on the resource type number (5 = System), use the following statement:
SELECT DisplayName AS 'Display Name' FROM v_ResourceMap WHERE ResourceType=5
To determine discovery properties for a particular resource type, use the following statement:
SELECT * FROM v_ResourceAttributeMap WHERE ResourceType=5
To list the inventory groups for a particular resource type, use the following statement:
SELECT InvClassName FROM v_GroupMap WHERE ResourceType=5
Views Setup
During setup, SMS 2003 creates two types of SQL Server views: Static SMS 2003 creates these views with data from static (unchanging) tables by running a Create View script. Dynamic SMS 2003 creates these views with data from tables with a dynamic (changing) schema by running stored procedures that are installed during setup.
Discovery, inventory, and collection views fall into the dynamic category, where new tables or columns might be added during the operation of your SMS site. For example, if you create a new collection or programmatically modify the inventory information that SMS 2003 collects from clients, the views change as well. The views refresh automatically anytime that the schema of the underlying tables change. When you extend the discovery or inventory classes, the data stays in the SMS site database, unless you run a tool to remove it. Views related to individual collections are removed if the collection is removed. If a collection view is removed, any reports that run against it no longer return results.
View Nomenclature
Because the SQL Server views schema conforms to the corresponding WMI schema, the views closely align with WMI resource classes. SMS object types are WMI classes, and SMS attributes are WMI properties. The names of the SQL Server views are designed to closely resemble the SMS Provider WMI schema. Because the view names and view column names must be valid SQL identifiers, there are some differences between WMI and SQL Server view names. To ensure uniqueness with built-in SQL Server syntax, the column names in the inventory and discovery views end with a zero. Although there are exceptions, this is the main difference between WMI property names and the corresponding column names for the inventory and discovery views. In most cases, the following rules are applied to convert WMI object names to their corresponding SQL Server view names: u u u The beginning of each view name is changed from SMS_ to v_. Object names in the view schema are limited to 30 characters, which ensures compatibility with earlier SQL Server versions. Object names longer than 30 characters are truncated. Column names for views other than inventory or discovery are the same as the WMI property names.
For example, the WMI class Win32_DisplayControllerConfiguration is represented in the SMS Provider WMI schema as the SMS_G_System_Display_Controller_Configuration attribute class. The name of the view that exposes this table of attribute-class data, truncated to 30 characters, is v_GS_Display_Controller_Confi, with G_System truncated to GS.
Discovery views
Discovery data views consist of system resource objects (systems, users, user groups), which include any resources that were discovered on the network by a variety of means. The type of information that SMS gathers depends on the type of resource that is discovered. For example, some resources, such as printers, might not have the Operating system name and version property.
In the SMS Provider WMI schema, the SMS_R_System table contains discovery information for all SMS resources. The views for discovery data differ from their WMI counterparts in that the array properties (such as IPAddresses) are represented as separate views from the scalar properties (such as Resource_Domain). For example, with the WMI System Resource class (the SMS_R_System class), the scalar properties are contained in the v_R_System view. The array values are contained in the view tables that begin with v_RA, such as the v_RA_System_IPAddresses and v_RA_System_MACAddresses views. For more information, see Table 11.2. Each view for an array property consists of two columns: u u A column that contains the data ResourceID, which links the tables
For example, for the v_RA_System_IPAddresses view, the data column is IPAddresses0.
In the SMS Provider WMI schema, the SMS_G_System tables contain inventory information for all SMS resources. The ResourceID field links these tables to the SMS_R_System table, which contains discovery information for the same resources. The current inventory data is represented by views that begin with v_GS; for example, v_GS_Modem_Device or v_GS_Processor. The history inventory data is represented by the views that begin with v_HS; for example, v_HS_Modem_Device. For more information, see Table 11.2. There are also two inventory views for special use: v_GS_System A subset of the discovery data, which contains information about clients, such as domain, name, and system type. v_GS_Workstation Contains information about when inventory was last collected on a client.
Table 11.2 describes nomenclature for the SMS discovery and inventory classes and their SQL Server view equivalents. Table 11.2 Nomenclature for Views
Class Discovery: Scalar class Array class Inventory: Current inventory classes History inventory classes Extended history classes Custom Resource Inventory: Current inventory classes History inventory classes SMS_G_<resource type name>_<group name> SMS_GH_<resource type number>_<group name> v_G_<resource type number>_<group name> 4 v_H_<resource type number>_<group name> SMS_G_System_Current_<group name> v_GS_<group name> 2 v_HS_<group name> No equivalent view 3 SMS_R_<resource type name> No separate classes for arrays v_R_<resource type name> v_RA_<resource type name>_<property name> 1 SMS class SQL Server views
name>
1. For example, v_RA_System_IPAddresses or v_RA_User_GroupName. For more information, see the Discovery views section earlier in this chapter. 2. For example, v_GS_Modem_Device or v_GS_SoftwareFile. 3. There is no equivalent view for the Extended History classes because these are implemented as a stored procedure. The extended history inventory class stores incremental changes to inventory objects, both current and obsolete. 4. For example, v_G_6_VendorData. In this example, it is assumed that a new resource type, such as Vending Machine, was added to the system and assigned the resource type number 6 and that inventory groups were added. You can associate the resource type number with the resource type name and its group classes by using the schema information views. For more information, see the Schema information views section later in this chapter.
Collection views
Each collection in the SMS Administrator console is represented by its own view, which includes data about each resource that is a member of the collection. Collection view names begin with v_CM_RES_COLL and end with the unique collection ID number. For example, the All Systems collection is represented by the v_CM_RES_COLL_SMS0001 view. When you create a new collection, SMS 2003 automatically creates a new view to represent the collection. In addition to the views for individual collections, there are views that contain data about the collection object instances in the collection class. Table 11.4 describes the collection object views. Table 11.4 Collection Object Views
View v_Collection v_CollectToSubCollect v_FullCollectionMembership v_CollectionRuleDirect v_CollectionRuleQuery Data Lists all collections, with data such as when the membership was last refreshed Associates a parent collection with its subcollections by collection ID Lists the members of all collections Identifies the resource type and ID for collections with direct membership rules Identifies the query for collections with querybased membership rules
Status views
Status messages are generated by SMS components and represent the flow of activity within an SMS site and hierarchy. The status messages can provide valuable information that you can use to assess the health of your SMS system. There are several views that contain information about status messages such as component name, message ID, module name, message type, severity, time, site code, and computer name.
Status message instances consist of properties that are stored in the database, which are represented primarily by the v_StatusMessage view, and message strings stored in dynamic-link library (DLL) files. When you view a message by using the SMS Administrator console, Status Message Viewer, or the Status Message Details page in Report Viewer, SMS creates the instance of status messages by combining the various parts. The v_StatMsgModuleNames view associates module names, such as SMS Client or SMS Provider, to the corresponding DLL file name, such as Climsgs.dll or Provmsgs.dll. The v_StatmsgInsStrings view contains information that SMS inserts into standard status messages, such as component or site names. Status summarizers produce summaries from status messages and other data in the SMS site database. Status summaries are produced in real time as the summarizers receive status messages from SMS components. You can use status summarizers to view a snapshot of the status and health of the site systems, components, packages, and advertisements in your site. Data in a status summary is classified as either a count or a state. A count is a tally of events that occurs over a specific period of time, such as the number of error status messages reported by SMS Executive since the beginning of the week. A state is the last known condition of something, such as the number of free bytes that is available for the SMS site database. Each of the status summaries contains some state data. Only the Component Status and Advertisement Status summaries contain count data. The status summarizer views contain data such as the number of information, warning, and error messages for a site within a specified interval or the state of all components in a site at a specified internal.
Other views
In addition to the views described earlier in this chapter, there are views that contain information about a variety of SMS objects. As with the individual inventory views, the names of the views for these objects are designed to be self-explanatory. The following list briefly describes the types of information that you can obtain from these views: Advertisements These views contain information such as package ID, collection ID, time package was presented, and time that the advertisement expires. Packages This view contains information such as package ID, version, manufacturer, priority, and preferred address type. Queries This view contains information such as name, expression (the WQL query text), query ID, object type targeted by the query, and collection ID to which the query is limited (if applicable). Reports These views contain information about reports such as name, comment, category, SQL statement, and links. There are also several views that contain data about dashboards. These views contain information such as name, number of columns and rows, and which reports each dashboard contains. Sites This view contains information about your SMS site such as server name, site code, SMS version and build numbers, type, and status.
Security These views contain security information about permissions that are granted to users and user groups to perform operations on secured SMS object classes and instances, such as collections, packages, and reports.
Note
Because dashboards are not secured objects, all users can view the list of dashboards. However, reports that are contained in a dashboard might be secured and cannot be viewed unless the user has Read permission.
The list of dashboards appears in the details pane. In the SMS Administrator console, you can sort dashboards by name or by dashboard ID. To sort the list of dashboards, click the appropriate column heading.
2. 3.
Right-click Dashboards, point to All Tasks, and then point to Run. On the Run menu, click the name of the reporting point that you want to use to start Report Viewer. The list of dashboards appears under Dashboards on the Report Viewer main page.
Note
You can also start Report Viewer by directing Internet Explorer to the URL that is specified for a reporting point.
Running Dashboards
You run dashboards by using Report Viewer. You can start Report Viewer to run a dashboard from the SMS Administrator console or by entering the dashboards unique URL in the Address box of Internet Explorer. You can also use the URL to schedule dashboards to run automatically at a specified time. The steps for doing this are the same as those for scheduling reports. For more information, see the Scheduling Reports section earlier in this chapter.
Note
When one or more reports contained in a dashboard experience time-outs, time-out error messages might appear in some cells and other cells might not display data at all. For more information, see the Adjusting time-out settings section earlier in this chapter.
2. 3.
Right-click Dashboards, point to All Tasks, and then point to Run. On the Run submenu, click the name of the reporting point that you want to use to start Report Viewer. The list of dashboards appears under Dashboards on the Report Viewer main page. Select a dashboard, and then click Display.
4.
Each report displayed in a dashboard has a link icon on the left side of the title bar. To display the individual report in a separate window of Report Viewer, click the icon. If a dashboard displays a report that has links, you can also click the link icons in that report to display the target in a separate window of Report Viewer. For more information about report links, see the Report Links section earlier in this chapter. You can configure individual reports to refresh automatically at a regular interval. This feature can be especially helpful for reports that you include in a dashboard. For more information about configuring reports to refresh automatically, see the Creating and Modifying Reports section earlier in this chapter.
Scheduling Dashboards
SMS generates a unique URL for each report and dashboard. You can use the URL to schedule a report or dashboard to run (or to run and export to a specified file location) at a specified interval. You can do this by configuring the Scheduled Tasks feature of your operating system to start Internet Explorer with a URL. For more information, see the Scheduling Reports section earlier in this chapter.
When you define the number of cells in a dashboard, you can select the reports that you want to display in the cells.
2. 3. 4.
Right-click Dashboards, point to New, and then click Dashboard. Click the General tab, and then enter a dashboard name, a comment, and the cell height. Click the Reports tab, and then set the number of rows and columns, specify reports for the cells, and adjust the order of the reports.
Note
You cannot add a report that requires a prompt to a dashboard.
For more information about configuring the dashboard properties, see SMS Help.
2. 3.
Right-click the dashboard that you want to clone, point to All Tasks, and then click Clone. In the New dashboard name box, type a name for the new dashboard, and then click OK.
To modify a dashboard
1. In the SMS Administrator console, navigate to Dashboards.
Systems Management Server X Site Database (site code-site name) X Reporting X Dashboards
2. 3. 4.
Right-click the dashboard that you want to modify, and then click Properties. Click the General tab, and then modify the settings as needed. Click the Reports tab, and then modify the settings as needed.
For more information about configuring the dashboard properties, see the SMS Help.
To delete a dashboard
1. In the SMS Administrator console, navigate to Dashboards.
Systems Management Server X Site Database (site code-site name) X Reporting X Dashboards
2.
Right-click the dashboard that you want to delete, and then click Delete.
P A R T
This part of the Microsoft Systems Management Server 2003 Operations Guide guides you through the tasks that are required to maintain your Systems Management Server 2003 sites.
C H A P T E R
1 2
In This Chapter
u u Using SMS for Product Compliance Customizing Product Compliance Data
To benefit most from this chapter, it is important that you are familiar with the overview of product compliance in Chapter 3, Understanding SMS Features, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. This chapter does not cover product compliance issues that are related to upgrading to SMS 2003. For information about upgrade issues, see Chapter 14, Upgrading to SMS 2003, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
In a similar way, you can define other product guidelines to generate additional product compliance data. You can then run queries and reports that compare product compliance data against software inventory data or software metering data to determine which clients are noncompliant. To resolve compliance issues, you can use the software distribution feature to upgrade software or to add specific patches to bring software into compliance. You might need to remove noncompliant software that cannot be updated.
Compliance Analysis
This section describes the administrative tasks that are involved in using the product compliance feature.
To bring software into compliance, you must analyze product compliance and detect any issues that need to be resolved. Part of the analysis process is ensuring that the SMS site database contains the following required data: u u u 1. 2. 3. Software inventory data Product compliance data Queries and reports that analyze compliance Define compliance types according to software guidelines and standards that are set in your organization. For each compliance type, define associated compliance levels. Sort and categorize the software guidelines and standards according to the compliance types and compliance levels that you specified. Match the products that clients are most likely to use to the specified compliance types. For each product in the list, choose the appropriate compliance level. Use the compliance level list that is associated with the products compliance type. 4. Add the data as product compliance records to the SMS site database. There are two methods to add product compliance data to the SMS site database: u u Manually, by entering one record at a time in the SMS Administrator console. Importing a product compliance data file into the SMS site database. You can create a product compliance data file as a tab-separated text file, which includes multiple product compliance records.
For more information about these methods, see the Customizing Product Compliance Data section later in this chapter. 5. 6. Ensure that the site is collecting software inventory or software metering data. Run queries and reports to detect compliance issues.
When the analysis is complete, you will have a list of product compliance issues that you need to resolve.
Compliance Solutions
If, by using the data analysis results, you determine that there are software compliance issues in your organization, you can typically resolve them by applying software patches or by upgrading the noncompliant software. You can use the SMS software distribution feature to apply these solutions. In some cases, you might need to uninstall software that cannot be brought into compliance.
3.
After identifying and resolving compliance issues in your organization, it is important to ensure that users migrate to compliant applications instead of continuing to use noncompliant software. You can use software metering to monitor the use of software applications that you know are noncompliant. For more information about using software metering, see Chapter 8, Software Metering. After resolving the compliance issues of products that are used by SMS clients, rerun the queries and reports that you created to ensure that all issues are resolved for all clients. For more information, see the following chapters: u u u For information about collections and queries, see Chapter 4, Managing Collections and Queries. For information about software distribution, see Chapter 5, Distributing Software. For information about creating reports, see Chapter 11, Creating Reports.
2.
Click Product Compliance. Product compliance records are displayed in the details pane.
The product name, displayed in the details pane, is the combination of the products name, version, and revision numbers. When viewing product compliance data in the SMS Administrator console, you can right-click an item in the details pane, and then select All Tasks. If applicable, you can select Go to Web Page to link to the appropriate Web page.
If a new record contains a new compliance type or level, the new item is appended to the list of compliance types or compliance levels as appropriate. You can then view the new type or level in the Compliance area in the Product Compliance Properties dialog box. The new compliance type is listed in the Type list. The new compliance level is listed in the Level list when you select the type that is associated with that level.
Important
When adding or updating product compliance records, use consistent labels for compliance type and compliance level. This ensures that queries and reports yield the expected results.
To perform any operation described in this section, you need to navigate to Product Compliance in the SMS Administrator console, as follows:
Systems Management Server X Site Database X Product Compliance
u 3. 4. 5.
Select Set, and then enter name, version, and revision information to create a display name that identifies the product. In the Compliance area, enter the type and level. Click the Information tab, and then enter any additional information for the new product.
Note
Typing the information is not a recommended method, because if you do not enter the data exactly as it reads in the .exe header, your query results might not be accurate. Entering data by using an .exe file is a more reliable method.
Note
You must include separating tabs even for an empty column.
(continued)
ResProdLangID ProductLanguageID FileName FileSize Type Category URL File Name File Size Compliance Type Compliance Level URL
Comment
Comment
Text 255
No
The first six fields listed in Table 12.1 are display names. You can use these fields to assign an easily identifiable name to each product. Because manufacturers do not necessarily have standards for the fields that appear in the header files of their products, it might be difficult to recognize the exact product by the header name. You can add display names to help you recognize the products that are listed in your database. The ResProdName, ResProdVer, and ResProdLangID fields are primary keys that function as a group (Group1). The FileName and FileSize fields are primary keys that also function as a group (Group2). These key groups are used to compare records in the SMS site database when importing a data file. When the product is displayed in the SMS Administrator console, the ProdName, ProVer, and ProRev fields are combined to make the complete product name.
When importing a product compliance data file, SMS compares each line of the imported file against each product compliance record in the SMS site database. The comparison is based on the Group1 and Group 2 primary key groups. Depending on the comparison results, product compliance records are modified or added.
A line in the data file matches a database record if, for a given source and compliance type, all of the primary key items match. The ResProdLangID field is ignored when the record match occurs. As a result, if a product is listed as being compliant in all languages, the compliance data is applicable to all language versions of that particular product. To successfully import a product compliance data file, you must construct the file exactly as described in Table 12.1. Also, for an entry to be imported into the database, it must have information for all the items in Group1, Group2, or both. If one item is missing in a group, but the other group is complete, the entry is imported. During an import, SMS treats blank fields as follows: u u u If the ProdLang field is blank, SMS attempts to use the HDR-Prod ID to map to the appropriate language; otherwise the field is set to unknown in the record. If the ProdPlatform field is blank, it is set to unknown in the record. If the Source field is blank, it is set to the domain name/user name of the person who is currently logged on. In the SMS Administrator console, right-click Product Compliance, select All Tasks, and then select Import Product Compliance Data. In the Import Product Compliance Data dialog box, enter the path for the product compliance data file that you want to import, and then click OK. SMS compares each line of the imported data file against each product compliance record in the SMS site database. SMS then determines whether to add a new product compliance record or to modify an existing record, as follows: u Any line in the product compliance data file that does not match an existing product compliance record in the SMS site database is appended to the SMS site database as a new product compliance record. Any line in the product compliance data file that matches an existing product compliance record in the SMS site database replaces that record in the SMS site database.
After customizing a compliance database, you might want to share the new information with other SMS servers and sites. You can export the product compliance data from the SMS site database to a file that can be later imported into other SMS sites.
To export product compliance records from the SMS site database to a product compliance data file
1. 2. In the SMS Administrator console, right-click Product Compliance, select All Tasks, and then select Export Product Compliance Data. In the Export Product Compliance Data dialog box, use Export from data source and Export compliance type to filter the data that is exported.
3.
Enter a file name and path for the export file, and then click OK.
To avoid problems with extended characters, the file is exported in Unicode format. You can use a text editor, such as Notepad, to convert this file to ASCII format, if necessary.
C H A P T E R
1 3
In This Chapter
u u u u u u u u u Maintenance and Monitoring Overview Performance Monitor Counters Maintenance Tasks Daily Tasks Weekly Tasks Periodic Tasks Event-Driven Maintenance Tasks Maintenance Throughout the Hierarchy Maintenance Operations
A maintenance plan also includes tasks to monitor the site activity. The purpose of monitoring the site activity is to ensure that the administrative tasks are properly performed. Monitoring is usually done by examining status messages and log files.
u u u u
Windows event log. System Monitor. SMS 2003 Performance Monitor counters. SMS Management Pack for Microsoft Operations Manager.
Maintenance tasks
To maintain SMS systems, you need to use SMS maintenance tasks. SMS provides several predefined maintenance tasks, and also allows you to create custom maintenance tasks based on SQL commands. You can schedule to run maintenance tasks automatically on a regular basis.
Note
If the status system of a site is configured to not send status messages to its parent site, then you cannot use the parent site to view status messages for its child site.
When viewing status messages summaries at parent sites, it is important to remember that the information displayed in the Administrator console might be slightly out of date. You must take into account the time needed for status message summaries to be replicated up from child sites. For more information about configuring the status system, see Chapter 14, Using the SMS Status System.
SMS reports
SMS provides many predefined reports that can help you monitor the status and the activity of site systems, site servers, and clients in the site. You can run predefined reports to display information such as installation status of clients, advertisements status, and hardware data for a specific client. You can also use reporting to generate custom reports as required for specific administration tasks. For more information about the SMS 2003 reporting feature, see Chapter 11, Creating Reports.
For more information about using recovery and repair tools, see the Recovery and Repair Tools section in Chapter 15, Backup and Recovery.
Note
When SMS is configured to write status messages to Windows event logs, SMS error status messages are written as Information events, not Error events.
System Monitor
You can use the Windows System Monitor tool to monitor the performance of SMS site servers, component servers, and site systems. You can configure System Monitor to send messages, email, or other notifications at specified events. SMS 2003 provides many predefined performance monitor objects with counters that you can use to monitor SMS systems performance.
Maintenance Tasks
A site maintenance plan consists of various maintenance tasks: Predefined maintenance tasks SMS provides predefined maintenance tasks that you can schedule to run automatically on a regular basis.
Custom maintenance tasks You can create custom maintenance tasks by using SQL commands that you can schedule to run automatically on a regular basis. Manual tasks Some maintenance tasks cannot be automated. You must perform these tasks manually. This section describes the tasks that you can schedule to run automatically; you can schedule these tasks to run daily, monthly, or periodically according to the maintenance plan: u u Predefined site maintenance tasks Custom maintenance tasks
2. 3.
In the details pane, right-click the task that you want to run and click Properties. In the task Properties dialog box, enable and configure the task. To minimize interference with the site operation, set the time period to off-peak hours of the site. The time period is the time interval in which the task can run. It is defined by the Start after and Latest start time specified in the task properties dialog box. Click OK to save your settings. The task will now run according to its schedule.
4.
If a task fails to run at first attempt, the SMS_SQL_Monitor service attempts to rerun the task until either the task runs successfully, or until the time period in which the task can run has passed. Predefined maintenance tasks log their activity to the SMS_SQL_Monitor log file (SMSdbmon.log). The following predefined maintenance tasks are described in this section: u u Backup SMS Site Server Rebuild Indexes
u u u u u u u u u u
Monitor Keys Delete Aged Inventory History Delete Aged Status Messages Delete Aged Discovery Data Delete Aged Collected Files Delete Aged Software Metering Data Delete Aged Software Metering Summary Data Summarize Software Metering File Usage Data Summarize Software Metering Monthly Usage Data Clear Install Flag
Rebuild Indexes
This task reindexes all of the sites database indexes. An index is a database structure associated with a table that speeds up data retrieval. Because of this, searching indexed columns is much faster than searching non-indexed columns. SMS uses many indexes to maximize the SMS site database performance. However, the SMS site database indexes are frequently updated to remain synchronized with the data, which is constantly changing. Frequent updates to indexes reduce their efficiency. This reduces the SMS site database performance and efficiency. Use this task to rebuild all indexes in the SMS site database, which increases the efficiency of the SMS site database indexes and increases site performance.
Note
In larger sites, administrators might want to have more control over the reindexing process. In this case, instead of running this task, administrators can set up an equivalent Database Maintenance Plan in the SQL Server Enterprise Manager.
This task is enabled by default, and scheduled to run every Sunday, between midnight and 5:00 A.M.
Monitor Keys
This task monitors primary keys and handles situations in which internal counters (that are used for SMS object IDs) roll over. A primary key is a column or combination of columns that uniquely distinguishes one row from any other row in a table. Use this task to maintain the integrity of primary keys that are used in the SMS site database. This task is enabled by default, and scheduled to run every Sunday, between midnight and 5:00 A.M.
Note
Status messages are essential when monitoring SMS sites, especially when diagnosing problems at the site. Do not delete warning or error status messages until you have reviewed them, and you are sure that they are no longer needed.
This task is enabled by default and scheduled to run every day, between midnight and 5:00 A.M. Every time the task runs, it checks the settings in the Actions tab of status filter rules to determine which messages have expired. By default, status messages are kept for seven days. For more information about configuring the status system, see Chapter 14, Using the SMS Status System.
Note
Any aged collected files or orphaned software inventory records that are referenced by software metering data are not removed.
The task flags every client that meets both conditions with an uninstalled status. This allows the Client Push Installation method to reinstall these clients. By default, this task is disabled. When enabling this task, set the rediscovery period to be longer then the Heartbeat Discovery interval to ensure that the task switches the client status only for clients that have been uninstalled.
Important
If heartbeat discovery is disabled, running this task is useless. It cannot identify clients with the inappropriate installation status. If you disable heartbeat discovery, then disable this task.
2. 3.
Right-click SQL Commands, select New, and then select SQL Command. In the SQL Command Properties dialog box, enter a name and configure the task: u u u Specify a SQL command. You can specify either a single line (255 characters) SQL command, or the name of a stored procedure that contains multiple SQL commands. Specify a log file name if you want to review the results after the SQL command runs. Specify a schedule for the SQL command.
Note
Before you schedule a custom maintenance task, ensure that the SQL command is valid by testing it in SQL Query Analyzer.
You can use the following SQL commands to create helpful custom maintenance tasks: u The SQL DBCC (Database Consistency Check) command checks the integrity of the SMS site database. Schedule this task to run on a regular basis to detect database integrity problems early. Also, schedule this task to run before and after every site backup cycle. The SQL xp_sqlmaint command runs database maintenance tasks. The SQL sp_who command determines the number of SQL Server connections currently in use by SMS, or by any other process. The SQL sp_spaceused command displays the number of rows, disk space reserved, and disk space used by a table in the current database, or displays the disk space reserved and used by the entire database. The SQL sp_monitor command displays SQL Server activities and statistics.
u u u
Daily Tasks
Daily tasks include maintenance and monitoring tasks that you need to perform daily. Adjust the frequency of these tasks to fit the capacity of the site and the needs of your organization. Depending on the results of the monitoring tasks, you might need to perform additional tasks to handle problems in the site.
You can monitor a clients status only if it creates status messages, and these status messages reach the site server. However, if the client, the CAP, or the management point is experiencing problems that prevent status messages from reaching the site server, you will not be aware of any problems. To detect clients from which you are missing status messages, you need to run a query that returns all clients that have not reported a status message within the last <n> days. In this query, <n> is the length of time you would expect to receive a status message from that client (taking into account the frequency of hardware or software inventory and the regular time it takes for status messages to reach the site server.)
Note
When SMS is configured to write status messages to Windows event logs, SMS error status messages are written as Information events, not Error events.
Save instances of the most recent event log files for future comparison. When you can compare current log files with previous log files, it is easier to detect problems that are developing. After saving the log files, you can clear them from the event log so it is easier to detect new problems.
Status System
On client access points (CAPs), check for backlogs in the folders shown in Table 13.2. Table 13.2 CAP Folder Locations and Contents
Component/feature Status messages Hardware inventory Folder CAP_<site code>\Statmsgs.box CAP_<site code>\Inventry.box Content Status message files Hardware inventory MIF files
(continued)
An unusual backlog in any of these folders means that data is not being updated in the SMS site database. If there is a backlog, you need to isolate and repair the problem.
Weekly Tasks
Weekly tasks include maintenance tasks and monitoring tasks that you need to perform weekly. If necessary, adjust the frequency of these tasks to fit the capacity of the site and the needs of your organization. Depending on the results of the monitoring tasks, you might need to perform additional tasks to handle problems in the site.
Caution
When deleting a collection, any advertisements to that collection are also deleted.
To use the Status System to view information about site system disk space
1. In the SMS Administrator console, navigate to Site System Status.
Systems Management Server X Site Database X System Status X Site Status X <site name> X Site System Status
2.
In the details pane, view status information of site systems such as free disk space.
Periodic Tasks
Periodic tasks include maintenance tasks and monitoring tasks that you need to perform on an infrequent basis. Depending on the results of the monitoring tasks, you might need to perform additional tasks to handle problems in the site. To optimize and protect your SMS sites, determine the frequency to schedule these tasks, based on the capacity of the site and the needs of your organization. Then, perform them according to the schedule.
If the account data is stored on member servers, then regularly back up the whole operating system that contains the account data, using software that backs up account lists and the account database. Whenever there is a change to the password of the Client Push Installation account or to the site system connection accounts, you should note that change. For security reasons, SMS 2003 encrypts the Client Push Installation account and the site system connection accounts. You need to be able to retrieve these accounts passwords so that you can re-enter them during a site recovery operation.
In between account database backups, document any changes to accounts. Write down and save any changes made to SMS accounts and share rights so that you can apply those changes again after recovering the site. For more information about restoring account data during a site recovery, see Chapter 15, Backup and Recovery.
Note
After changing passwords or accounts that SMS sites use, you must update the backup of the account database. Follow your SMS backup plan to initiate an immediate backup of the account database.
For more information about risk assessment and maintaining security in your hierarchy, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Periodically, re-evaluate the risk assessment of your organization, and then review and update the security plan accordingly. For more information about risk assessment and SMS security issues, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
A recovery test should follow the recovery plan developed for the production environment. Plan to perform a recovery test of the central site, and of any other systems deployed in your hierarchy. A recovery test should test all phases of recovery, including: u u u u u Backing up a site. Archiving the backup snapshot. Simulating a site failure, such as by turning a server off. Recovering the failed site. Verifying the success of the recovery operation.
You might schedule periodic recovery tests. Company policy might require that new administrators always perform a recovery test. It is strongly recommended that you always include a recovery test when testing major changes to the hierarchy. For example, before upgrading site server operating systems, you should probably first test the upgrade in the test lab. After completing the upgrade in the test lab, you should perform a recovery test to identify any issues or adjustments to the recovery plan associated with the operating system upgrade. This ensures that if you upgrade the servers in the production environment, you will still be able to successfully recover a failed site. Include a recovery test in every major deployment test, such as: u u u u A major operating system upgrade (not service pack). A major change to the networking infrastructure. New equipment deployment or building relocation. An SMS major version site upgrade.
For more information about backup and recovery, and about preparing a test lab for recovery tests, see Chapter 13, Planning for Backup and Recovery, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide, and Chapter 15, Backup and Recovery, in this book.
Check Hardware
Even high-quality hardware occasionally fails. Sometimes, it fails gradually, so there might be early signs. Replacing hardware before it completely fails is a key step in preventing site failure. Both Windows and SMS provide performance counters, which you can use to monitor the performance and state of the hardware used in the site. As soon as you notice any signs of hardware-related unreliable behavior of an SMS server, replace the hardware. To properly replace server hardware, you must use the Recovery Expert. For more information about swapping the computer of SMS servers, see the Swapping the Computer of a Site Server section later in this chapter.
Note
When SMS is configured to write status messages to the systems event log, SMS error status messages are written as information events, not error events.
Run a query to determine if discovery data is being updated correctly in the SMS site database. The query should list all installed clients in which System Resource - Agent Time is not within the heartbeat interval. It is expected that some clients might be offline, but in other cases, it might indicate a problem. Run a query to determine if software inventory data is being updated correctly in the SMS site database. The query should list all installed clients in which Last Software Scan - Last Inventory Collection is not within the software inventory interval. It is expected that some clients might be offline, but in other cases, it might indicate a problem. Run a query to determine if hardware inventory data is being updated correctly in the SMS site database. The query should list all installed clients in which Workstation Status - Last Hardware Scan is not within the hardware inventory interval. It is expected that some clients might be offline, but in other cases, it might indicate a problem.
If any of these tests fail, you need to diagnose the problem and repair it.
Restore a recent backup snapshot to a disk and examine file continuity, file size, and other file properties to ensure that they do not seem corrupted. Check critical files by restoring these files to their respective applications to ensure that the application can use the restored file.
Ensuring that this data is always up-to-date helps you in case a backup snapshot is not available for a recovery operation, and in the event that there is no staff familiar with the hierarchy deployment. You can use the Network Trace tool to create and print SMS network site views to help you maintain up-to-date diagrams of site layout. For more information about using the Network Trace tool, see Chapter 10, Maintaining and Monitoring the Network.
Task Automation
You should automate tasks whenever possible by developing and running automation scripts. You can develop scripts that perform various maintenance and monitoring tasks. Those scripts can then notify you if any problems are encountered. You can run similar automation scripts on multiple sites. You can automate maintenance tasks such as: u Monitoring performance Monitoring performance on each site server can be inefficient. Instead, you can configure either Microsoft or third-party management tools and performance monitoring tools, to centrally monitor multiple system performance, and to send alerts, e-mails, or other notifications when certain error conditions are encountered. For example, you can implement MOM to assist with monitoring multiple SMS site servers and other systems in your hierarchy. Checking for backlogs Checking for component backlogs in SMS folders can be time consuming. Instead, you can use a third-party tool or develop a script that automatically scans all SMS folders throughout the entire hierarchy. The tool or script can search for file backlogs, files older than a set date, or files that are not valid. Configure the utility or script to send e-mail or another notification when certain error conditions are encountered.
Maintenance Groups
Define maintenance groups and develop a generic maintenance plan for each maintenance group. For example, you can define a secondary sites group. Develop a maintenance plan for the secondary sites in your hierarchy, and apply that plan to all secondary sites in your hierarchy. Maintenance groups can be based on geographical regions, site role, or site capacity. Define groups as appropriate in your organization, and assign as many sites as possible to each group. That way, multiple sites can share a single maintenance plan.
Monitoring Maintenance
Develop a maintenance monitoring system to help you monitor the ongoing performance of maintenance tasks on all sites throughout the hierarchy. Especially in large hierarchies, it can be difficult to manually monitor maintenance activity at all sites. You can use e-mail messages, status messages, or any other method that allows senior SMS administrators to ensure that all sites are getting their regular maintenance. Compare the maintenance activity to the documented maintenance plan for each site to ensure that all sites are well maintained.
Maintenance Operations
After setting up and configuring an SMS site, you might need to change site configuration to accommodate changes in your organization. Not all changes are supported. For example, you cannot change settings such as: u u u u u u u The drive letter on which SMS is installed. The site code. The site name. The computer name of the site server. The parent site of a secondary site. Moving the SMS site database from a remote server to the site server. Promoting a Windows 2000 member server that is an SMS site server to be a domain controller.
To accommodate changes, it might be necessary to perform maintenance operations on the SMS hierarchy. You might want to upgrade the operating system of an SMS server, or you might need to make changes to the network infrastructure, or to relocate hardware. This section lists supported maintenance operations, and provides information about performing these operations.
Before implementing changes to the entire hierarchy, it is recommended that you first test these changes in a test lab. When testing the proposed change in the test lab, also perform a site backup and recovery test. If the proposed change requires an adjustment to the sites backup and recovery plan, then make the necessary changes. For more information about the test lab, see Chapter 7, The Pre-Planning Phase, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. For information about client related maintenance operations, such as replacing a Legacy Client with an Advanced Client, see Chapter 17, Discovering Resources and Deploying Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. Supported maintenance operations include: u u u u u Attaching one site to another (creating a child site). Swapping the computer of a site server. Rebuilding the computer of a remote SMS site database server. Moving the SMS site database. Resetting the site by running SMS site reset.
Swapping the site server computer consists of the following basic steps: 1. 2. 3. 4. 5. Preparing for the hardware swap. Building the new site server. Restoring the SMS site data. Repairing and synchronizing the data. Verifying the functionality of the new site server.
A site server computer swap process is somewhat similar to a site recovery process. However, because the current site server is properly functioning, you can plan and completely control the operation. The operation is significantly simpler then a recovery operation, and no data is expected to be lost. Because a hardware swap operation is similar to a site recovery operation, you can use the Recovery Expert to perform this operation. The Recovery Expert is designed to handle this scenario, and when you run it, it provides the appropriate tasks for a hardware swap operation.
Perform the prescribed tasks in the prescribed order. Use the SMS Site Repair Wizard and other repair tools as instructed by the Recovery Expert.
For information about the Recovery Expert, and about using it to swap hardware, see Chapter 15, Backup and Recovery.
u u u
The computer is exhibiting signs of imminent hardware failure. The operating system is failing and it is necessary to reinstall the operating system. SQL Server is failing and it is necessary to reinstall SQL Server.
You can follow this procedure for any other restoration operation of a remote site database server. As long as the SMS site data on the remote database server is intact, you can treat the operation as a hardware swap operation.
2. 3. 4.
Rebuild the operating system on the failing computer, or use a different computer with an intact operating system. Reinstall SQL Server. Restore the master, model, and msdb system database from the last backup to recover SQL Server permissions and definitions. Recover SMS database in place without restore (see SQL Server documentation about recovering and reconnecting to existing data files in place). The data is now intact and still synced up with the site Inspect databases to ensure that they can be accessed and appear to contain valid data. Run SMS Setup and perform a site reset by selecting the Modify option.
5. 6.
When moving the SMS site database server, SMS moves the SMS Provider to the same server that the SMS site database is moving to
3.
Stop the following SMS services: On the site server: u u u SMS_SITE_COMPONENT_MANAGER SMS_EXECUTIVE SMS_SQL_MONITOR_<SiteServerName>
On the old database server: 4. 5. 6. Back up the SMS site database from the old SQL Server database by using the SQL Server Backup Database tool. Restore the SMS site database to the new SQL Server database by using the SQL Server Restore Database tool. On the site server, run the SMS Setup Wizard: u u u 7. On the Setup Options page, select Modify or reset the current installation. On the Database Modification page, specify the new database server name and the appropriate database name. Complete the SMS Setup Wizard.
You can now delete the SMS site database from the old SQL Server database, or disconnect the old database server (if it is on a remote computer).
Note
While using the new SMS site database server, SMS generates error status messages as it continues to attempt to access the old SQL Server. You can safely ignore those status messages.
If there has been a change to the accounts used by the SMS components, site reset ensures the account details used by the SMS components are correct. The exact effect of site reset depends on how you initiate it and which options you chose. For more information about site reset, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
C H A P T E R
1 4
In This Chapter
u u u u Understanding Status Messages Interpreting System Status Configuring the SMS Status System Using the SMS Status System with the Windows Event Log
Similar to a Windows event or a message written to a log file, a status message is a text message generated at a particular time by a particular component. Some status messages are meaningful by themselves. Other status messages are meaningful only within a sequence of status messages, as in the example below.
Beginning installation of server RED1. Could not copy file C:\SMS\Red1.dat to \\Red1\D$\SMS\Red1.dat. The operating system reported error 5: access is denied. Failed to complete installation of server RED1.
While components carry out their tasks, they report status by creating status messages periodically and adding them to the SMS status system. They are then stored in the SMS site database. The Status Message Viewer accesses the site database to display individual status messages. There are two broad categories of status messages. Flow-of-activity messages Components generate flow-of-activity messages to illustrate the tasks a component is carrying out. These messages: u u u u Educate the administrator about the tasks the component performs. Facilitate complex problem debugging. Facilitate SMS activity auditing. Provide reports and summaries showing the overall health or progress of a specific SMS feature.
Error messages Components generate error messages when they encounter a problem performing a task. These messages warn you about a problem that might require your attention.
Message Severity
Every status message is stamped with a severity that indicates the gravity of the information presented in the message. Error messages Error messages are exceptional messages that occur when there are problems that require immediate administrator attention. Typically, an error message means that a component cannot recover from or work around a problem. As a result, one or more SMS features are nonfunctional until the administrator corrects the problem. Examples of the types of problems error messages indicate are: u u u u u A server is down. A disk or database is full. Security problems have occurred. Critical files or data are corrupt or missing. An attempt to retry an operation has failed enough times that it is no longer a temporary problem.
Warning messages Warning messages are generated when potential problems occur that might require administrator attention. Typically, the component can work around these problems. Warning messages might indicate: u u u u u A disk or database is low on storage space. A non-critical file, such as a Management Information Format (MIF) file or discovery data record (DDR) from a client, has been corrupted. An operation is taking an unusually long time to be completed. The administrator has configured the system in a dangerous or inappropriate way. An operation failed, but due to other considerations, the failure should be temporary, and the component retries the operation later.
Informational messages Informational messages are usually flow-of-activity messages that illustrate the activities of a component during normal, successful operation. Informational messages might also indicate problems if the problems are relatively unimportant. For example, if a component fails to connect to a computer by using one account, but there are three other accounts it can try, the failure is reported as an informational message. If all of the accounts fail, the component might report a warning or an error message.
Message Type
Every status message is stamped with one of three possible types. Milestone When SMS components complete complex operations, milestone messages indicate successful or unsuccessful completion. If the operation is successful, the milestone message is informational. If the operation is unsuccessful, the milestone message is either a warning or an error message. Detail The context of status messages representing a complex operation. Audit Audit status messages provide an audit trail of actions that you take in the SMS Administrator console that result in objects being added, modified, or deleted. All audit messages are informational messages.
Select Component Status. When the component list appears in the details pane, select a component, right-click, and then click Show Messages. Each time you launch the Status Message Viewer, you must select which messages to view based on message severity:All, Errors, Warnings, or Informational. Select one of these items. The Status Message Viewer appears and displays the status messages for the selected component on the site system that you selected. Status messages are also based on the queries you specify in the menus leading to the viewer. The different queries you can specify depend on the where you are in Site Status when you launch the viewer. For more information, see the Interpreting System Status section later in this chapter. Alternatively, you can launch the Status Message Viewer from Package Status and Advertisement Status. Table 14.1 describes the Status Message Viewer columns. Table 14.1 Status Message Viewer Columns
Column name Severity Type Time/date Site code System Component Message ID Description Error, warning, or informational. Milestone, detail, or audit. The time and date the status message was generated. The site code where the status message was generated. The computer name where the status message was generated. The name of the SMS component that generated the status message. The message ID of the status message. The text of the status message. Description
When you double-click a status message in the viewer, the Status Message Details dialog box appears with more details about the message, including the Process ID, Thread ID, message text, and optional message properties. Table 14.2 summarizes the message viewer features that help you use the viewer. Table 14.2 Status Message Viewer Features
By using this feature Click-Drag Copy/Paste Delete You can do this Change the column widths. Add and remove columns and change their display order. Copy status messages to your clipboard with tab- or comma- delimited columns to support paste to Excel and text editors. Delete selected status messages from the SMS site database.
(continued)
Each of the summaries is produced by a unique summarizer thread component, except for Package Status, which is produced by Distribution Manager.
Display Intervals
Status summaries contain count data and tally events over a specific period of time called a display interval. Each status summary contains several different display intervals. You view count data using different display intervals to gauge when events occurred. For example, the Component Status summary counts the number of Error, Warning, and Informational status messages reported by the server components at your site. To view the counts for different periods of time, right-click Component Status, click Display Interval, and choose the period of time you would like to view. After you select a display interval, the details pane displays data based on the display interval you select.
Note
Display intervals are not available for Site System Status and Package Status Summaries because both of these summaries are based entirely on states.
Each display interval has a start time and an end time that specifies the time over which the counts are made. The start time is the time or date that you select as the display interval. The end time is always the current time. For example, if the current date and time is Wednesday at 2:32 P.M., and you select Since 8:00:00 AM as the display interval in Component Status, the summary displays counts made from Wednesday at 8:00 A.M. to Wednesday at 2:32 P.M. Or, if you select Since Monday as the display interval, the summary displays counts made from Monday at midnight to Wednesday at 2:32 P.M. Both the start time and end time for a display interval are in the time zone of the site server for the site the data applies to. For example, suppose the site server for your NYC site is on Eastern Time and the site server for your site CHI is on Central Time. If you select Since 12:00:00 AM as the display interval in Component Status, the counts displayed for site NYC are since midnight Eastern Time and the counts displayed for site CHI are since midnight Central Time.
Note
To ensure the accuracy of status summary data, ensure the system dates and times on your site systems and clients are set as closely as possible to the actual date and time.
Display intervals that have earlier start times show counts that are greater than or equal to the counts shown for display intervals that have more recent start times. If the current day is Wednesday, the Since 8:00:00 AM display interval shows lesser or equal numbers of Errors, Warnings, and Informational status messages than the Since Monday display interval. If the current day is Monday, the counts are the same. You can select different display intervals to determine when events occurred in the past. If the current time is 2:32 P.M., to determine the number of Error status messages reported by the SMS Executive between 8:00 A.M. and 12:00 P.M. on the same day, subtract the number of errors displayed when the Since 8:00:00 AM display interval is selected from the number displayed when Since 12:00:00 PM is selected.
Status Indicators
SMS uses three indicators to report the health of server components in the Component Status summary, and of site systems in the Site System Status summary. Critical status. When Critical status is reported, there are problems that require immediate administrative attention. Warning status. When Warning status is reported, there are potential problems that might require administrative attention.
OK status. When OK status is reported, there are no problems that currently require administrative attention.
Note
Package Status and Advertisement Status do not use status indicators.
Thresholds
A threshold is a limit you set to control when a Warning or Critical status indicator is displayed instead of an OK status indicator. For Component Status, you specify how many Error, Warning, or Informational messages a component must report before its status indicator is changed to Warning or Critical. For Site System Status, you specify how low the amount of free storage space can drop before a storage object on a site system is flagged with a Warning or Critical status indicator. You view the thresholds that are configured for components and storage objects by right-clicking items in the details pane within Component Status or Site System Status, and selecting Properties.
Systems Management Server X Site Database (site code - site name) X System Status X Site Status X site code - site name X Component Status X Site System Status
For information that describes how to change the thresholds to meet your needs, see the Configuring the SMS Status System section later in this chapter.
Note
Package Status and Advertisement Status do not use thresholds.
You can also launch other tools such as Resource Explorer, Network Trace, and Windows Diagnostics by right-clicking in status summaries. In all cases, the tool is launched for the specific object you select. Typically, the object is a site system.
Note
Package Status summaries are always replicated up the site hierarchy at Medium priority. You cannot configure or disable the replication priority of Package Status summaries.
Status summaries replicate up the site hierarchy independent of the actual status messages that the summaries are based on. You can configure SMS to replicate only the status summaries, only the status messages, both, or neither. You might also configure the messages to replicate at different priorities. The configuration you use has a strong influence on how effectively you monitor a hierarchy of child sites from a parent site. One possible configuration is to replicate summaries at Medium or High priority and replicate status messages at Low priority. This approach usually means the summaries are available quickly at the parent site. However, the status messages that usually comprise a large amount of data take longer to replicate. If you use this configuration and attempt to debug a problem by launching the Status Message Viewer, you might find there are no status messages in the database related to your problem. If this occurs, the messages could still be in the process of replicating up the hierarchy. If you do not want to wait for the replication to be completed, you can connect the Status Message Viewer to the child sites database (if the child site is a primary site). To accomplish this, right-click the child sites status node, and then launch Status Message Viewer.
System Status contains the four status summaries and a collection of general-purpose queries for launching the Status Message Viewer. This section describes how you use the status system for monitoring and troubleshooting network problems with SMS. For more information, see the Configuring the SMS Status System section later in this chapter.
Important
Do not attempt to configure the status system until you have used it and are confident that you fully understand the ramifications of changing the various default settings.
In the following sections, it is assumed that you have navigated to System Status in the SMS Administrator console and that you can select a particular status summary. The next section details how you use each of the four status summaries to monitor and troubleshoot your SMS site and hierarchy.
Site Status
The Site Status item in the SMS Administrator console contains the Component Status and Site System Status summaries for the current site and all of the sites below it in the hierarchy. The Site Status console tree item has three levels: the all-sites level, the per-site level, and the status summary level. The all-sites level contains a rolled-up view of the per-site level, which contains a rolled-up view of the status summary level. The status summary level is composed of the Component Status summary and the Site System Status summary.
Systems Management Server X Site Database (site code - site name) X System Status X Site Status X site code - site name X Component Status X Site System Status X site code - site name X Component Status X Site System Status X site code - site name X Component Status X Site System Status
The easiest way to understand the Site Status console tree is to start at the status summary level and work up to the all-sites level at the top.
Component Status
The Component Status summary is a high-level view of the health of SMS server components at a given site. The details pane includes one row for every server component running at the site. Table 14.3 describes the data reported for each component. Table 14.3 Component Status Details Pane Columns
Column name Status Site system Component State Data type State State State State Description Health of the component: OK, Warning, or Critical. Name of the site system the component is installed on. Some components might run on more than one site system. Name of the component. State of the component: Installing, Started, Paused, Stopped, or Deinstalling.
(continued)
To refresh this data, right-click Component Status in the console tree and click Refresh. The Errors, Warnings, and Info columns tally the numbers of Error, Warning, and Informational status messages reported by each component during the display interval. You change the display interval by right-clicking Component Status, selecting Display Interval, and then clicking the appropriate interval.
Note
The display interval for Component Status for one site does not change when you change the display interval for another site. You must specify each sites display interval individually.
You launch the Status Message Viewer by right-clicking a component and clicking Show Messages. The messages you view are the ones reported by that particular component during the display interval. You can launch other tools by right-clicking a component, pointing to All Tasks, and then selecting the tool you want to launch.
The status indicator in the Status column represents the health of each component. The status indicator is set based on whether the component has reported enough Error, Warning, or Informational status messages to exceed Warning or Critical thresholds. You view the thresholds for a component by right-clicking a component in the details pane and clicking Properties. The Status Threshold Properties dialog box specifies Warning and Critical thresholds for Error, Warning, and Informational status messages and the Threshold period. The threshold period specifies the period of time for which the thresholds are evaluated. For example, if the threshold period is Since 8:00:00 AM and the Informational messages threshold is set to 100 for Warning and 200 for Critical, then the components status indicator is set to Warning whenever the component has reported between 100 and 199 Informational status messages since 8:00:00 A.M. on any given day. The components status indicator is set to Critical whenever the component reports 200 or more Informational status messages.
Important
Do not confuse the threshold period with the display interval. Selecting a different display interval does not change the threshold period. Because the status indicators for the components are driven from the threshold period, changing the display interval does not change the components status indicators either.
You configure thresholds by navigating to Status Summarizers, right-clicking Component Status Summarizer, and clicking Properties.
Systems Management Server X Site Database (site code - site name) X Site Hierarchy X site code - site name X Site Settings X Status Summarizers
You set the threshold period on the General tab and the threshold values on the Threshold tab. For more information, see the Configuring the SMS Status System section later in this chapter.
Note
The Component Status Summarizer reports a status message every time the status indicator for a component changes. You can configure Status Filter Rules to run a program to activate your alert system when this status message is processed. For more information, see the When to Use Status Filter Rules section later in this chapter.
The Next started, Last started, and Last message columns are times and dates. This information is displayed in the time zone for the site you are viewing. For example, if you are viewing Component Status for site CHI, the three columns show times and dates in Central Time.
Storage object
State
To refresh this data, in the SMS Administrator console, right-click Site System Status and select Refresh. You launch the Status Message Viewer by right-clicking a site system and selecting Show Messages. The messages you view are the ones reported by all of the components running on the site system you select. Be careful with this option. If there are many components running on the site system, there might be a large number of messages. The status indicator in the Status column represents the health of each storage object. The status indicator is set based on whether or not free storage space on the storage object was below the Warning or Critical threshold the last time the Site System Status Summarizer polled the storage object. You view the thresholds set for a storage object by right-clicking a storage object in the details pane and clicking Properties. For example, if the Warning threshold is 1024 KB and the Critical threshold is 512 KB, the storage objects status indicator is set to Warning when the free storage space ranges from 513 to 1024 KB, and set to Critical when the free storage space is 512 KB or less.
You configure the thresholds by navigating to Status Summarizers in the SMS Administrator console, right-clicking Site System Status Summarizer, and clicking Properties.
Systems Management Server X Site Database (site code - site name) X Site Hierarchy X site code - site name X Site Settings X Status Summarizers
You set the threshold values on the Threshold tab. For more information, see the Configuring the SMS Status System section later in this chapter. If the Site System Status Summarizer cannot connect to the storage object to determine the Total and Free storage space, a storage objects status indicator is set to Critical. Network or security problems might cause the Site System Status Summarizer to fail to connect. When the status indicator is set to Critical due to network connection problems, the Down since column contains the time and date the connection problems first occurred. This time and date appears in the time zone for the site you are viewing. For example, if you are viewing Site System Status for your NYC site, the column shows times and dates in Eastern Time.
Note
Every time the status indicator for a storage object changes, the Site System Status Summarizer reports a status message. You can configure the Status Filter Rules to run a program to e-mail you or activate your alert system when this status message is processed. For more information, see the When to Use Status Filter Rules section later in this chapter.
To refresh this data, right-click the site you are viewing in the console tree and click Refresh.
The status indicator for each of the categories is a roll-up of the status indicators in the status summaries for that category of site status. For example, the status indicator for Component Status is set to OK while the status indicators for all of the components at that site are set to OK. The status indicator for Component Status is set to Warning if one or more status indicators of the components are set to Warning, and if none of the status indicators for the components are set to Critical. The status indicator for Component Status is set to Critical if one or more status indicators for the components are set to Critical. In the SMS Administrator console, the Component Status and Site System Status folders are overlaid with the status indicator for each category. Also in the console tree, the icon representing the site you are viewing is overlaid with the status indicator from whichever category is more critical. For example, if the status indicator for Component Status is set to Warning and the status indicator for Site System Status is set to Critical, the icon representing the site is set to Critical. The summary date changes whenever any of the data changes for the category of site status. This happens, for example, whenever the Site System Status Summarizer runs a polling cycle to determine the total and free storage space on all the storage objects at a site. The date also changes whenever the Component Status Summarizer receives a status message from a component, and the count of Error, Warning, or Informational status messages is updated for that component. This time and date appears in the time zone for the site you are viewing. For example, if you are viewing the NYC site, the column shows dates and times in Eastern Time.
Note
The summary date is particularly important when you are monitoring a child sites status from the parent site. The summary date for a child site is always slightly old due to the delays in replicating the summary data up the site hierarchy. You can adjust the priority at which status summaries are replicated up the hierarchy. For more information, see the Configuring the SMS Status System section later in this chapter. If you find an extremely old summary date for a status summary of a child site, the parent site has not received a status summary from that site in a while, and there could be problems in the replication process.
(continued)
Table 14.6 All-sites Level of Site Status Details Pane Columns (continued)
Column name Version State Error Warning Informational SMS DB % Free Data type State State Count Count Count State Description Version of SMS installed on this site, including the service pack, if one is installed. State of this site. Total number of Error status messages reported by all server components at this site during the display interval. Total number of Warning status messages reported by all server components at this site during the display interval. Total number of Informational status messages reported by all server components at this site during the display interval. Percentage of free storage space available for the site database. Percentage of free storage space available for the site databases transaction log.
To refresh this data, right-click the site you are viewing in the console tree and click Refresh.
Note
The Site Hierarchy console tree represents the site as a hierarchy of console nodes, but the Site Status console tree item in the SMS Administrator console represents the site hierarchy as a list of console nodes. The Site Status console tree provides no information as to where a site is in the hierarchy. You should obtain that information from the Site Hierarchy console tree.
The status indicator for each of the sites is the rolled-up status indicator produced at the per-site level for each of the sites. In the console tree, the Site Status folder is overlaid with the status indicator from whichever site is the most critical. For example, the Site Status folder is overlaid with an OK status indicator as long as the status indicators are set to OK for all of the sites in the hierarchy. The Site Status folder is overlaid with a Warning status indicator if one or more status indicators for the sites are set to Warning and none of the status indicators for the sites are set to Critical. The Site Status folder is overlaid with a Critical status indicator if one or more status indicators for the sites are set to Critical. You can determine the health of your site hierarchy at a glance by examining the status indicator applied to the Site Status folder in the SMS Administrator console. If the Site Status folder indicator is OK, all of the components and storage objects in your site hierarchy are OK. If the Site Status folder indicator is not OK, you can then browse through the console tree to determine which components and storage objects are not OK.
The Errors, Warnings, and Info columns are the sums produced from the Component Status summaries for all of the sites. You can view these counts for different display intervals. For more information, see the Component Status section earlier in this chapter.
Note
The display interval at the all-sites level of Site Status does not change when you change the display interval for the Component Status summary for a given site.
You launch the Status Message Viewer by right-clicking a site and clicking Show Messages. The messages you view are the ones reported during the display interval by all of the server components running at the site you selected. Be careful with this option. Depending on the display interval you select, there might be a large number of messages. The SMS DB %Free and Trans. Log% Free columns are obtained from Site System Status for each site.
Package Status
Package Status provides a summary report of the health of packages and distribution points in your site. In many organizations, administrators distribute multiple packages concurrently to multiple destinations. Package Status allows you to monitor when packages arrive at distribution points. A package must arrive at a distribution point before a client can access, install, or run an advertisement. All dates in Package Status are displayed in the time zone of the computer running the Administrator console. Package status provides three levels of status information details: u u u Summary status for all packages in all sites Details for a specific package in all sites Details for a specific package in a single site
Installed
Retrying
Failed
Package ID
Table 14.8 lists the information that SMS displays in the details pane when you select a specific package. Table 14.8 Details for a Specific Package in All Sites
Column name Site Source Version Description Displays the site code and site name for each site that has at least one distribution point specified to have a copy of the package. Identifies the version of the package source currently in use at individual SMS sites. When you specify a new package source directory in the Package Properties dialog box or use the Update Distribution Points option from the Package, Task menu for a specific package, SMS increments the version number. This assists you in determining whether a distribution point has the latest version of the package source. Shows the total number of distribution points in the sites that are targeted for this package. Shows the total number of distribution points in the sites that have successfully installed the current source version of the package. Displays the total number of distribution points in the sites that have had at least one failure during an installation or removal operation, but that have not yet exceeded the number of retries allowed and are currently in an Installation Retrying or Removal Retrying state. Displays the total number of distribution points in the sites that have exceeded the number of retries allowed during an installation or removal operation, and that are currently in an Installation Failed or Retry failed state. Displays the most recent date and time when a change in package status for the sites was reported.
Failed
Summary Date
Table 14.9 displays the information SMS displays in the details pane when you select <site code - site name> for a specific package. Table 14.9 Details for a Specific Package in a Single Site
Column name Distribution Point Source Version Description Displays the computer name for each distribution point in the selected site specified to have a copy of the package. Identifies the version of the package source currently installed on the distribution point. This column is blank before the package is installed on the distribution point. Indicates which, if any, operation the Distribution Manager component in the selected site has pending or currently underway for the distribution point, or if the distribution point is in an idle and ready state. Possible distribution point states are: Installed. Installation pending. Installation retrying. Installation failed. Removal pending. Removal retrying. Removal failed. Displays the date and time when the current package source version for the selected site was last successfully copied to the distribution point. Shows the site system of the distribution point. Displays the path that the Distribution Manager component selected to store this package on the distribution point. Note that the syntax used in the details pane is appropriate for the type of operating system in use. Shows the most recent date and time that any site has indicated a change in status for the selected distribution point in the selected site.
State
Summary Date
If you launch the Status Message Viewer by right-clicking an item in any of the Package Status details panes and clicking Show Messages, the messages you view are the ones relevant to the package you selected.
Advertisement Status
Advertisement Status provides a summary report of the total number of clients that have received and run an advertisement. Table 14.10 shows the information SMS displays in the details pane when you select Advertisement Status in the SMS Administrator console. Table 14.10 Advertisement Properties Summary
Column name Name Failures Description Displays the name the administrator gave the advertisement when it was created. Displays the total number of users, client computers, or both in the site that experienced an error processing the advertisement or its associated package, or that attempted to run the advertised program but failed. Displays the total number of users and/or client computers in the site that successfully ran the advertised program. Displays the total number of users, client computers, or both that reported errors while running the advertised program. A program is considered in error when it produces either a non-zero exit code or an Install status MIF file with a Failure status attribute. Displays the total number of users, client computers, or both reporting that the advertisement ran successfully. A program is considered successful when it produces either an exit code of zero or an Install status MIF file with a Success status attribute. Displays the name of the package specified in the advertisement. Displays the name of the program specified in the advertisement. Shows the target collection specified in the advertisement. Shows the date, in local time, when the advertisement is made available to clients. Shows the date, in local time, when the advertisement expires and is no longer available to clients. Displays the unique ID that SMS assigns to each package.
Program Success
When you select a specific advertisement, SMS displays summary information that contains a per-site breakdown of the advertisement status as shown in Table 14.11.
Program Success
If you launch the Status Message Viewer by right-clicking an item in any of the Advertisement Status details panes and clicking Show Messages, you view the status messages relevant to the particular advertisement.
Important
Do not attempt to configure the status system until you have used it for a period of time and you are confident that you fully understand the ramifications of changing the various default settings.
After you click Component Configuration, in the details pane, right-click Status Reporting, and then click Properties. By using the Status Reporting Properties dialog box, you configure which status messages are reported to the Status Manager. You can also configure which status messages are logged to the Windows Event Log from this dialog box. For both reporting and logging, you can select the following: u u u u u All milestones and all detail messages All milestones Error and warning milestone messages Error milestone messages Report detail messages on failure
Report detail messages on failure This feature is powerful. After a successful operation, components report milestone messages. Then, when a failure occurs, the component also reports the detail messages. Typically, you are interested in seeing detail messages only when you need to debug problems. Status filter rules SMS status messages are continually generated by SMS components, so it is possible for your SMS hierarchy to become flooded with status messages. By creating and configuring status filter rules, you specify how status messages are processed at the site you are configuring. When the SMS status system processes a status message, there are five possible types of processing that might occur. Each type of processing results in the message either being discarded, or reported to one or more locations: u u SMS site database Windows Event Log
u u u
Note
Do not configure status filter rules until you are thoroughly familiar with the SMS status system.
Having proper filter rules can make a big difference in how your site performs. After you become familiar with the status system, you might want to tune the system to improve site performance. The following sections give explanations and examples that help you determine how to configure status filter rules for your site.
Which status messages do I need to store in the SMS site database for a long time? You might configure the status filter rules to keep certain messages for a long period of time, but to keep other status messages for a short period of time. For example, from Advertisement Status, you can determine which SMS clients received a particular advertisement by launching the Status Message Viewer to view the status messages generated when the clients receive the advertisement. If you want to keep a record of those clients for 60 days, you can configure the status filter rules to keep those messages in the SMS site database for 60 days. Do I want to view status messages at a parent site that were generated at a child site? If the answer is no, then consider configuring the status filter rules at the child sites to not replicate status messages to the parent site. This lowers the amount of processing done at both the child sites and the parent site and decreases the amount of network bandwidth used in intersite replication. You can prevent the status messages from being replicated and still allow the status summaries to be replicated. This provides you a summary view of information at the parent site. Then, when you detect a problem, you can connect to the child site to view the actual status messages. Which status messages reported from secondary sites do I need to view? Because secondary sites do not have site databases or SMS Administrator consoles, you must configure status filter rules at secondary sites to replicate messages to the parent primary site if you want to view them. Although the Status Manager was designed to process several million status messages per day at a primary site that runs on a high-performance computer, a primary site that has many child sites might get overloaded by all the status messages coming from those child sites. This problem is especially important in child secondary sites because their messages can be viewed only at the parent primary site.
Note
Pay close attention to the status message load being sent from child sites. Status Manager contains performance counters to assist you. To view them, run the System Monitor on the site server and choose the SMS Status Messages object.
The order of the status filter rules displayed in the SMS Administrator console is significant because the first rule always runs first. Then, the Status Manager proceeds down the list and processes each rule in the order it is displayed. If a status message matches a higher-priority rule, the Status Manager performs the actions specified, even if a lower-priority rule does not specify those actions. For example, if a matching higher-priority rule specifies that the status message should be written to the SMS site database, the Status Manager writes the message to the site database, regardless of what the lower-priority rules specify. If a matching lower-priority rule specifies an action that is not specified by a matching higher-priority rule, the Status Manager performs that action. In this way, higher-priority rules override lower-priority rules. A possible status filter rule action is Do not process lower-priority rules. If a status message matches a rule specifying that action, the lower priority rules are not processed for that status message. If a status message matches two rules that both specify an action, that action is only run once. For example, if Rule A and Rule B both specify the Replicate to parent site action, only one copy of status messages matching those rules is replicated. You can change the priority of a rule by right-clicking the rule, pointing to All Tasks and then clicking Increment Priority or Decrement Priority. In addition to setting a priority, you can also enable or disable status filter rules by right-clicking the rule, pointing to All Tasks and then clicking Enable or Disable. To create and modify status filter rules, navigate to Status Filter Rules in the SMS Administrator console.
Systems Management Server X Site Database (site code - site name) X Site Hierarchy X site code - site name X Site Settings X Status Filter Rules
Then, right-click Status Filter Rules, point to New, and click Status Filter Rule.Some choices on the Status Filter Rule Properties dialog box have drop-down boxes. When you click the drop-down box arrow, SMS queries the site database to determine the possible values. If you know exactly which value you want, you can type it into the box without clicking the arrow. For example, if you know that you want the rule to match status messages from the SMS Executive component, type SMS_EXECUTIVE into the Component box. Ensure that you type in the correct value. If you misspell a component name or other value, you are not prompted to correct it. Table 14.12 explains the various items that you can enter on the General tab to filter status messages. Table 14.12 Status Filter Rules General Tab
Item Name Explanation The name you assign the status filter rule. This name appears in the results pane. The name must be unique; two rules cannot have the same name.
(continued)
Property Name
Property Value
To complete a new status filter rule, you must set items on the Actions tab. Table 14.13 Status Filter Rules Actions Tab
Item Write to the SMS site database Explanation Specifies that status messages matching this rule should be written to the SMS site database. You must also specify how long the message should be kept in the database by adjusting the Keep message for X days value. The Delete Status Messages task under Database Maintenance in the SMS Administrator console uses the number of days listed in the status filter rules to determine which messages to delete and when.
(continued)
Run a program
Right-click Status Filter Rules, point to New, and click Status Filter Rule. Each of the examples below assumes that you know how to access the Status Filter Rule Properties dialog box.
To discard status messages from a component that is flooding the system with the same status message multiple times
1. 2. Create a new status filter rule. On the General tab, in the Name box, enter Throw away status message X from component Y on system <computer name>, where X is the Message ID of the message you want to discard, and Y is the name of the component that is generating it. Click Site system. Type the name of the computer the component is running on. Click Component and enter the name of the component, Y. Click Message ID and enter in the Message ID of the status message, X. Verify that no other items are selected. Click the Actions tab. Click Do not forward to status summarizers. Click Do not process lower-priority status filter rules. Verify that no other items are selected, and then click OK. In the Status Filter Rules results pane, right-click the new rule and select Increment Priority until the new rule is the first one in the list. This step ensures that Status Manager processes each status message against this filter rule first. Because the rule specifies Do not process lower-priority status filter rules, none of the other rules have the opportunity to write the message to the SMS site database, or replicate it to the parent site.
3. 4. 5. 6. 7.
To replicate error status messages to the parent site at high replication priority and replicate all other status messages at low replication priority
1. 2. 3. 4. 5. 6. Create a new status filter rule. On the General tab, in the Name box, type Replicate Error status messages at High priority. Click Message Type and select Error. Verify that no other items are selected. Select the Actions tab. Click Replicate to the parent site and set the priority to High. Verify that no other items are selected. Create a second new status filter rule. On the General tab, in the Name box, enter Replicate all status messages at low priority. Verify that no other items are selected. Click the Actions tab. Click Replicate to the parent site and set the replication priority to Low. Verify that no other items are selected. In the Status Filter Rules results pane, use the Increment Priority or Decrement Priority options until Replicate Error status messages at High priority is listed above Replicate all status messages at Low priority.
The first rule matches all Error status messages and causes Status Manager to replicate them at high priority. The second rule matches all status messages and causes the Status Manager to replicate the messages at low priority. Because the first rule is higher priority than the second, it overrides the second rule and causes Status Manager to replicate the status messages at high priority instead of low priority.
To not replicate status messages from the SMS Client to the parent site, but replicate all other status messages
1. 2. 3. 4. 5. 6. 7. Create a new status filter rule. On the General tab, in the Name box, type Do not replicate SMS Client status messages. Click Source and select SMS Client. Verify that no other items are selected. Click the Actions tab. Click Do not process lower-priority status filter rules. Click any other options as appropriate, but do not select Replicate to parent site. Create a second new status filter rule. On the General tab, in the Name box, type Replicate all other status messages. Verify that no other items are selected. Click the Actions tab. Click Replicate to the parent site and select a replication priority. Choose any other options as appropriate. Click OK. In the Status Filter Rules results pane, use the Increment Priority or Decrement Priority options until the first new rule is above the second new rule.
The first rule matches all status messages from the SMS client and prevents Status Manager from replicating them. The second rule matches all status messages and causes Status Manager to replicate them at the priority you chose. Because the first rule is higher priority than the second, it overrides the second rule in the case of status messages from the SMS client computer and prevents Status Manager from replicating them.
If you had not specified Do not process lower-priority status filter rules in the first rule, the second rule would cause Status Manager to replicate SMS Client status messages. This nuance might not appeal to you, or it might complicate the other rules you want to define. An alternative way to express what this example seeks to accomplish is Replicate status messages from the SMS server and SMS Provider, but do not replicate SMS client status messages.
To replicate status messages from the SMS Server and SMS Provider, but not replicate SMS client status messages
1. 2. 3. 4. 5. 6. Create a new status filter rule. On the General tab, in the Name box type Replicate SMS Server status messages. Click Source and select SMS Server. Verify that no other items are selected. Click the Actions tab. Click Replicate to the parent site and select an appropriate replication priority. Verify that no other items are selected. Create a new status filter rule. On the General tab, in the Name box, type Replicate SMS Provider status messages. Click Source and select SMS Provider. Verify that no other items are selected. Click the Actions tab. Click Replicate to the parent site and select an appropriate replication priority. Verify that no other items are selected.
The first rule matches all status messages from the SMS Server and causes Status Manager to replicate them at the priority you chose. The second rule matches all status messages from the SMS Provider and causes Status Manager to replicate them at the priority you chose. It does not matter which rule is higher priority than the other, because they are mutually exclusive, as a status message cannot be from both the SMS Server and the SMS Provider. These two rules might appeal to you more than the first two example rules because these two do not involve the Do not process lower-priority status filter rules option.
To alert you via the net send command when a particular component reports an Error status message
1. 2. 3. 4. 5. Create a new status filter rule. On the General tab, in the Name box, enter Alert me when the Inbox Manager component reports any Error status messages. Click Component and select Inbox Manager from the drop-down box. Click Severity and select Error. Verify that no other items are selected. Select the Actions tab. Click Run a program, and in the Program box, type the following: C:\Winnt\System32\Net.exe send %sitesvr Component %msgcomp running on computer %msgsys reported the following error: %msgdesc Replace C:\winnt\system32 with the appropriate path to the system32 directory on your site server.
6. 7.
Verify that no other items are selected. Click OK. In the Status Filter Rules results pane, select the new rule and right-click Increment Priority until the new rule is the first one in the list. This ensures that Status Manager processes this rule first, which prevents any of the existing rules from interfering with it. This rule causes any Error status messages processed by Status Manager that come from Inbox Manager to pop up as messages on the site server console.
The criteria that you specified on the General tab do not include a site code or a system name. You are alerted when Status Manager processes a status message from Inbox Manager running on any computer at any site, including child sites. To restrict the alerting to components from a specific computer or site, check the System or Site Code boxes on the General tab as appropriate.
To keep status messages associated with a particular advertisement in the SMS site database for 30 days, but keep other status messages for only seven days
1. 2. Create a new status filter rule. On the General tab, in the Name box, enter Keep status messages for Advertisement X in the database for 30 days, where X is the Offer ID for the advertisement whose messages you would like stored for 30 days.
Note
Offer ID and Advertisement ID are the same.
3. 4. 5. 6. 7. 8. 9.
Click Source and select SMS Client. Click Property name and select Offer ID. Click Property value and type in the Offer ID value. Verify that no other items are selected. Click the Actions tab. Click Write to the site database and select 30 in the Allow user to delete messages after: days dialog box. Verify that no other items are selected. Create a new status filter rule. On the General tab, in the Name box, enter Keep all other status messages in the database for 7 days. Verify that no other items are selected. Click the Actions tab. Click Write to the site database and select 7 in the Allow user to delete messages after: days dialog box. Verify that no other items are selected. In the Status Filter Rules details pane, use the Increment Priority or Decrement Priority options until the first new rule is above the second new rule. The first rule matches all status messages from the SMS client that are associated with the advertisement you specified and causes Status Manager to keep them in the site database for 30 days. The second rule matches all status messages and causes Status Manager to keep them in the database for only seven days. Because the first rule has higher priority than the second, it overrides the second rule in the case of status messages from the SMS client that are associated with your advertisement and cause Status Manager to keep them in the database for 30 days instead of seven days.
In the previous example, you had to specify a source to be able to specify Property name and Property value. This means that to keep messages from the SMS Server or SMS Provider that are associated with your advertisement for 30 days instead of seven, you must create an additional rule for the SMS Server and another for the SMS Provider. If you want to keep status messages from the SMS client that are associated with any advertisement for 30 days, you would leave Property value cleared.
After you click Status Summarizer, you can select Site Systems Status Summarizer, Component Status Summarizer, or Advertisement Status Summarizer from the details pane. You can disable any of the summarizers that might not be relevant at any particular time. For example, if you do not intend to send advertisements for an extended period of time, you might want to disable the Advertisement Status Summarizer. However, most of the time, you should leave your summarizers enabled because they provide valuable data. Another feature includes both replicating a summary to the parent site and determining the replication priority. These are powerful features that help administrators at parent sites that monitor status at child sites. For component status and site system status, you can configure the thresholds SMS uses to determine when to report a warning or an error icon in the SMS Administrator console.
Using the SMS Status System with the Windows Event Log 501
Right-click Delete Aged Status Messages, and click Properties. The Delete Aged Status Messages Properties dialog box appears. You can both enable and schedule the deletion process. You must also configure the length of time that status messages remain in the SMS site database by using the Actions tab in Status Filter Rules feature. After you define the length of time that the status system should keep status messages, all messages older than the time you specified are deleted at the scheduled interval. You can also delete status messages by using the Status Message Viewer or by creating a query to delete status messages.
Using the SMS Status System with the Windows Event Log
When SMS Status Manager reports a status message to the Windows Event Log, the message is translated into the columns available in the Windows Event Viewer as follows: u u u The Event is always reported to the Application Log on the site server. The Event <Type> is the severity of the status message (Error, Warning, or Informational). The Event <Date> and <Time> are the local date and time the status message is reported as a Windows event on the site server, not the date and time the status message was reported originally. For a status message reported by a component at a child site, for example, the difference between the two dates can be substantial. The Event <Source> is the source of the status message (SMS Server, SMS client, or SMS Provider). The Event <Category> is the name of the component that reported the message, such as SMS_EXECUTIVE or the Available Programs Manager. The Event <ID> is the ID of the status message. The Event <User> is always N/A. The Event <Computer> is the name of the site server, not the name of the computer that the component that reported the status message is running on. The Event <Description> is one of the following localized strings.
u u u u u u
If the component is running on the site server at the current site: On <date, time, and time zone>, component <component name> reported If the component is running on a server at the current site other than the site server: On <date, time, and time zone>, component <component name> on computer <computer name> reported
If the component does not belong to the current site: On <date, time, and time zone>, component <component name> on computer <computer name> at site <site code> reported u u u This date, time, and time zone specify the actual time the message was generated by the component. This is the date and time information that is most important to you in debugging your site. The Event Data is always grayed out.
To set up alerts similar to the ones used in SMS 2.0, you can configure SMS to send status messages to the Windows Event Log. Then, set an alert based on the criteria you specify.
C H A P T E R
1 5
To avoid the loss of critical data, you must plan and prepare for both backup and recovery operations. It is important that you are able to quickly recover Microsoft Systems Management Server (SMS) 2003 sites and hierarchies with as little data loss as possible. A total backup and recovery cycle consists of four major administrative tasks: 1. 2. 3. 4. Planning for backup and recovery done during the SMS deployment planning phase. Preparing for recovery done during the SMS deployment phase. Backing up a site done on a regular basis after deploying SMS. Recovering a site done as needed.
This chapter assumes that you have read and are familiar with Chapter 13, Planning for Backup and Recovery, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. This chapter does not describe backup and recovery issues related to upgrading to SMS 2003. For information about backup and recovery upgrade issues, see Chapter 14, Upgrading to SMS 2003, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. For information about backup and recovery issues in a mixed-version hierarchy, see Chapter 6, Understanding Interoperability with SMS 2.0, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
In This Chapter
u u u u Planning for Backup and Recovery Preparing for Recovery Backing Up a Site Recovering a Site
For information about backup and recovery concepts and backup and recovery planning, see Chapter 13, Planning for Backup and Recovery, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Ensuring that this data is always available and current helps you in case a backup snapshot is not available, or in the event that there is no staff familiar with the hierarchy deployment.
Setting Up a Recovery Expert Web Site and Running the Recovery Expert
To run the Recovery Expert tool, you must first set up a Recovery Expert Web site on a computer running Internet Information Services (IIS) version 5.0 or later. If you allocate a server running an operating system in the Microsoft Windows Server 2003 family, then you must set the Active Server Pages Web Service Extension to Allow.
3. 4. 5.
In the Systems Management Server 2003 Setup dialog box, select Recovery Expert. Finish the Microsoft SMS Recovery Expert Web Site Installation Wizard. Note the URL displayed on the last page of the wizard so that you can refer to it later. Inform other SMS administrators about this URL so they can use it to access the Recovery Expert Web site, and to run the Recovery Expert tool.
Important
If you use the Microsoft IIS Lockdown tool (Iislockd.exe) to increase security protection on a computer running IIS, apply it to the computer (using the SMS 2003-specific template) before setting up a Recovery Expert Web site on that computer.
For information about the role of the Recovery Expert in a site recovery operation, see the Recovering a Site section later in this chapter.
Security settings
The Recovery Expert requires that Internet Explorer be configured with medium security. In the Internet Options dialog box, on the Security tab, set security in either of the following methods: u u Set Local intranet security to medium. Set Local intranet security to high, add the Recovery Expert Web Site to the Trusted sites zone, and set the security of Trusted sites zone to medium.
When upgrading a server from Microsoft Windows 2000 Server to a server in the Windows Server 2003 family, the upgraded servers default security permissions are more restrictive. These security settings will prevent the Recovery Expert from running on that server. After the upgrade, you must manually reconfigure the permissions. This applies whether the Recovery Expert was installed before or after the upgrade.
To reconfigure security settings on a server upgraded to a server in the Windows Server 2003 family:
1. 2. 3. 4. 5. In Windows Explorer, select the following file: C:\Inetpub\wwwroot\SMSComponent\FormatMessageCtl.dll. Right-click the file and select Properties. In the <file> Properties dialog box, click the Security tab. In the Group or user names list, select Internet Guest Account. In the Permissions for list, ensure that Allow is selected for the Read & Execute permission. In Internet Explorer version 5.5 or later, use the Recovery Expert Web site URL to access the Recovery Expert Entry Page. Read the introductory content. Select Use The Recovery Expert to start the Recovery Expert.
Prepare the test lab for recovery tests as follows: u In the test lab, use backup and archive procedures that are similar to the procedures used in the production environment. Ensure that the SMSbkup.ctl files at the test lab and in the production environment are similar. Ensure that if the AfterBackup.bat file is used in the production environment, then a similar file is used in the test lab. Designate reference sites in the test lab so they are similar to the designated reference sites in the production environment. Set up a Recovery Expert Web site to be used for the recovery tests, unless it is possible to use the Recovery Expert Web site that is set up in the production environment. Configure site security in the test lab so it is similar to the security configuration in the production environment
u u u
For more information about setting up a test lab, see Chapter 7, The Pre-Planning Phase, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Backing Up a Site
It is critical to back up your site. Backing up sites in your hierarchy is the most important recovery preparation step to ensuring a successful recovery in case of a site failure. Although it is possible to recover sites without a backup snapshot, recovering a site with a backup snapshot ensures the least data loss and a less complex recovery process. To ensure that backing up a site is as easy as possible, SMS provides the Backup SMS Site Server task, which is sometimes referred to as the SMS backup task. The SMS backup task creates a backup snapshot, which is a copy of the site data. The sites backup snapshot is stored at a location that you specify, referred to as the backup snapshot destination. Backing up your site on a regular basis is the main step when preparing for recovery. Start backing up your site when you have finished configuring the site and that site is functioning properly. Schedule backup cycles to back up your site on a regular basis to ensure having a recent backup snapshot of the site.
There are several SMS systems that contain site data, but it is not necessary to back up all those systems. You can recover a site successfully if you back up a snapshot of the data from the following site systems in your site: u u u The site server The SMS site database server The site provider server
There is no need to back up data from site systems such as distribution points, management points, reporting points, and server locator points. This is because if such site systems fail, then the site server can easily recreate them. Ideally, every SMS site has more than one computer performing similar site system roles. If a clients default site system is unavailable, the client can reach another site system with a similar site system role and use it until you restore the clients default site system. From the clients perspective, regular operations are not interrupted. It is not recommended that you back up the sites clients for following reasons: u To properly back up an SMS client, the client services must be stopped. However, there is no reliable way to stop and start the client services. Stopping and starting the client services can potentially corrupt the data on the clients disk or in the backup snapshot. Backing up clients risks data integrity. Clients are too numerous. It is neither practical nor beneficial to back up and restore thousands of clients. The effect of losing client data is relatively small.
u u
Backing up a site is automated in SMS 2003 by the integrated Backup SMS Site Server task. Use the SMS backup task to regularly back up data such as SMS files, registry keys, and configuration information from your site server, and from your SMS site database server or provider server, if necessary. You can use the Backup SMS Site Server task to back up any site in your hierarchy. However, there are some unique issues associated with backing up the central site and backing up secondary sites. These issues are addressed later in this chapter.
SMSbkup.ctl Contains site-specific information that the backup task requires. This file contains the names of the files, registry keys, and databases that need to be backed up. It also contains commands that run during the backup operation to gather configuration information. The SMSbkup.ctl file contains tokens that it uses during run time, such as the SITE_BACKUP_DESTINATION token. When the backup task runs and uses the default SMSbkup.ctl file, it backs up all data necessary for recovery. You can customize this file to address specific backup needs of your site. SMSbkup.ctl is referred to as the backup control file. AfterBackup.bat Allows you to archive the backup snapshot at the end of every backup operation. By default, the AfterBackup.bat file does not exist and therefore has no effect on the backup operation. You can create this file and add commands that run after the SMS backup task has finished. By default, the Backup SMS Site Server task does not back up the following: u Remote Tools, Network Monitor, Package Automation Scripts, or WBEM. These components are not backed up because they are easy to re-install:
Note
In SMS 2003, software metering data is integrated with the rest of the sites data. There is no need to separately back up software metering data.
u u
Custom SMS files, such as custom SMS Administrator console files or custom MOF files, unless they are stored in directories that are being backed up. Any files related to site system roles that are set up on the site server. For example, the files related to a distribution point, or to a client access point (CAP).
Without these services running on the site server, data arriving from clients is not processed. Also, you cannot perform some regular site operations. For example, you cannot: u u u u Troubleshoot client computers. Advertise new programs. Distribute new packages. Create new software licenses.
In general, it is recommended that you do not make any site configuration changes or initiate any site activity while the SMS backup task runs. This is because changes are processed only after the backup operation is completed. Any site activity that you initiate is likely to slow down the backup operation. When the backup operation is completed, the backup task restarts the basic site services that were stopped, and the site server returns to the state that it was in before the task started. The backup task running on the site server has very little effect on clients. Clients do not interact directly with the site server for most of their activities. They continue to interact with site systems such as client access points and distribution points, which are not affected by the backup operation. However, the site server does not process status messages and inventory data from clients until after the backup operation is completed.
Caution
You must ensure that there is sufficient disk space to store a backup snapshot of the site at the backup destination.
2.
The backup service verifies that the following initial requirements are met: u That the SMS_SITE_BACKUP service has full control over SITE_BACKUP_DESTINATION, so it can recreate the backup destination folder and copy files to that folder. That the SMS backup control file, SMSbkup.ctl, is valid and has no syntax errors.
If any of the above requirements is not met, the backup service logs an error message to the backup log file and stops the backup operation. 3. The backup service creates the SITE_BACKUP_DESTINATION folder. If the SITE_BACKUP_DESTINATION folder exists (it typically contains the backup snapshot from the previous site backup), then the backup service does the following: u u Removes the SITE_BACKUP_DESTINATION folder with its entire content. Recreates the SITE_BACKUP_DESTINATION folder. If the backup destination is on the local server, then SMS configures the SITE_BACKUP_DESTINATION folder with access to the Administrators group. If the backup destination is on a remote system, then the SITE_BACKUP_DESTINATION folder inherits its access rights from the backup destination folder.
4. 5.
The backup service defines all tokens listed in the [Tokens] section in the SMSbkup.ctl file. The backup service performs all commands that are listed in the [Stop] section in the SMSbkup.ctl file. By default, the backup service stops the following services: u u u SMS_SITE_COMPONENT_MANAGER SMS_EXECUTIVE SMS_SQL_MONITOR
6.
The backup service performs all commands that are listed in the [Tasks] section in the SMSbkup.ctl file. By default, this includes the following: u u u u Backing up SMS files. Backing up registry keys. Backing up the SMS site database. Running tools to collect site configuration data, and then backing up that data.
7.
The backup service performs all commands that are listed in the [Start] section in the SMSbkup.ctl file. By default, the backup service restarts the services that were stopped in step 5. The backup service runs the AfterBackup.bat batch file if both of the following are true: u u The file exists in the SMS\inboxes\smsbkup.box folder. The backup task was successful.
8.
9.
The backup service attempts to save the backup log file, SMSbkup.log, at the SITE_BACKUP_DESTINATION. It saves the log file if both of the following are true: u u A log file was created. The SITE_BACKUP_DESTINATION folder was successfully created (even if the task failed at a later point). If this condition is not met, then the backup task preserves the previous backup log file.
To find out if the DBCC tests encountered any problems, you must read the DBCC output file.
2. 3.
After backup has finished, verify that the backup operation was successful. Manually back up any custom SMS-related files that are not backed up automatically by the backup task. For example, custom SMS Administrator console files (.msc files,) custom MOF files (such as SMS_def.mof), and any Supplemental Reports that are stored at reporting points under \Reporting Point\Supplemental.
Important
If the site server is configured with the Advanced Security mode and SQL Server is running on an operating system in the Windows Server 2003 family, then you need to manually gather configuration information from SQL Server. For more information about this issue, see article number 316360 in the Microsoft Knowledge Base at http://support.microsoft.com.
If the software update management feature is used, it is very important to back up the Definitive Software Library. The Definitive Software Library is valuable because it contains package source folders of software updates that have already been downloaded, tested and authorized for distribution. In addition, it contains the list of authorized updates for each software update package (in the Patchauthorize.xml file). If the package source folders for software updates are not backed up, you will need to use the Distribute Software Updates Wizard to rebuild those folders after recovering a site. For more information about recovering software update packages, see the Recovering a Site section later in this chapter. To automate the backup of any files that are not backed up by default, you can do either of the following: u Store custom files under directories that are automatically backed up, for example, the SMS\Bin or the SMS\Inboxes directories. -OrAdd file commands where <source> is the path to the custom files to the SMSbkup.ctl file.
It is not necessary to manually back up data from site systems such as distribution points, management points, reporting points, and server locator points that are set up on the site server. This is because the site server can easily recreate them. 4. Document account passwords. For security reasons, SMS 2003 encrypts accounts such as the Client Push Installation Account, Site Address account, Package Access Accounts, site system connection accounts, and network access accounts. You need to document these account passwords so you can re-enter them during a site recovery operation. Archive the sites new backup snapshot (if you have not used AfterBackup.bat to do so automatically) to a removable media. Store the removable media in a secure location.
5. 6.
u u
There are only a few Inboxes that the site can be successfully recovered without. You can choose to prevent backing up the following inboxes: u Colfile.box Hardware inventory data files waiting to be processed by the Inventory Data Loader. This data is regenerated at the first hardware inventory resynchronization cycle after recovering the site. Dataldr.box Inventory MIF files waiting to be loaded into the site database by the Inventory Data Loader. This data is regenerated at the first hardware inventory resynchronization cycle after recovering the site. Ddm.box Data discovery records waiting to be loaded into the site database by the Discovery Data Manager. No need to save it; Site System DDR would be regenerated seven days after recovering the site. Inventry.box Hardware inventory data files received from the CAP, and from lower level sites. Those files are waiting to be processed into MIF files by the Inventory Processor. This data is regenerated at the first hardware inventory resynchronization cycle after recovering the site. Invproc.box Hardware inventory data files that require history to be processed by Inventory Processor. This data is regenerated at the first hardware inventory resynchronization cycle after recovering the site. OfferSum.Box Replication files from child site, and status message files waiting to be processed. On secondary sites, this folder also contains advertisement summarization files. After site recovery, most of the status messages are lost. The replication files from the child site will be sent again and should be recovered. Sinv.box Software inventory data files received from lower level sites, waiting to be processed into the site database by the Software Inventory Processor. This data is regenerated during an inventory resynchronization cycle after recovering the site. Statmgr.box Status message files received from lower level sites and waiting to be processed into the systems event viewer by Status Manager. Some of those status messages are regenerated by the appropriate components, but most are not.
You can prevent SMS from backing up inboxes by modifying the backup control file. Replace the file command that backs up the inbox folder with individual file commands for each inbox subfolder that you want to back up. Leave out the inbox subfolders that should not be backed up.
Caution
The SMS backup task is designed to back up specific data in an SMS site. Although you can use this backup task to back up other data, such backups can cause complications that are not associated with backing up the intended data from an SMS site.
The information in the backup control file is organized into four sections: 1. 2. 3. 4. [Tokens] A list of tokens and their values that the backup task uses as variables when it runs. [Stop] A list of processes that the backup task stops before it starts to back up data. [Tasks] A list of backup commands targeted at different types of data at the site. [Start] A list of processes that the backup task starts after the backup task has been completed.
To ensure that the backup task produces a valid backup snapshot, carefully follow the modifications guidelines for each section, do not modify the order of the sections, and edit only the designated areas in the file.
[Tokens]
Several required tokens are predefined, and you cannot modify them. The default backup control file contains a list of all predefined tokens. The default structure of the backup snapshot destination folder allows multiple sites to share the same backup location. You can customize this section by appending new tokens to it and assigning values to them as follows: <MyToken>=<token value> To reference a token, enclose it with the % character, as in %MyToken%. You can use environment variables as tokens.
[Stop]
By default, the following basic services are stopped: u u u %SITE_SERVER%\SMS_SITE_COMPONENT_MANAGER %SITE_SERVER%\SMS_EXECUTIVE %SITE_DB_SERVER%\SMS_SQL_MONITOR
You cannot modify this default behavior. You can customize this section by appending the following commands: u To stop a Windows service that is installed on the backed up site server, use service <service name> Where <service name> is a full service name without the path to the executable file. All running instances of <service name> are stopped. To stop a service on a remote computer, type the service name as follows: \\<machine name>\<service name> This command stops all instances of the <service name>. When you add a service to this section, consider the effect of this service being stopped during the backup operation.
The backup task attempts to stop a service only if that service is installed and it is running on the backed-up site server at the time that the backup task starts. The backup task restarts these services after the backup operation has been completed. u To stop a Windows executable file that is running on the backed up site server, use exec <executable name> Where <executable name> is the file name of the executable file that you want stopped. You cannot stop an executable file that is running on a remote computer. You might not be able to stop an executable file properly. In some cases, when you stop an executable file, the operating system resources used by that executable file are not released. Therefore, use the exec command to stop an executable file only if it absolutely cannot be running during the backup operation and only if you cannot stop it using the service command. u To pause the backup operation for a specified number of seconds, use sleep <seconds> Where <seconds> is a numeric value that specifies the number of seconds that the backup operation pauses. The maximum value for <seconds> is 900 (15 minutes).
[Tasks]
The default control file contains commands that back up all of the site data required for recovery. This includes SMS files, registry keys, configuration data, and the SMS site database. All backup tasks in this section implicitly create the specified destination folder, if it does not already exist. You can customize this section by appending the following commands. u To back up a file object, use: file <source> <destination> Where <source> is a file or a folder to be backed up, and <destination> is the destination folder that the backup task copies the <source> object to. (If <source>is a folder, that folder is recursively backed up.) You can use the * and the ? wildcards when you specify <source>, as follows: u u * replaces a variable length string. ? replaces a one character string.
Add file commands to back up custom SMS-related files, such as MOF files and custom SMS Administrator console files, that are not stored in one of the directories that the backup task automatically backs up. Any of the following conditions cause this command to fail: u u u The <source> folder does not exist. The backup task cannot read the <source> folder. The backup task cannot write to the <destination> folder.
u u u
The <source> and <destination> directories are identical. The <destination> folder is a child folder of the <source> folder.
To back up a registry object, use: reg <source> <destination> Where <source> is a registry key string, and <destination> is the destination file that the backup task copies the registry key to. To back up a registry key on a remote computer, prefix the registry key with a computer name in a Universal Naming Convention (UNC) format. Any of the following conditions can cause this command to fail: u u u The backup task cannot access a remote registry key. <source> does not exist. The backup task cannot write to <destination>.
To back up the SMS site database, use sitedbdump <source> <destination> Where <source> is a database name and <destination> is the destination file that the backup task copies the database to.
To back up server configuration information, use machinfo <source> <destination> Where <source> is the machine from which configuration data is backed up and <destination> is the destination file in which machinfo stores the collected configuration data in. The machinfo command uses Srvinfo.exe, Net.exe and IPConfig.exe to gather information SMS runs Srvinfo.exe from the SMS\Bin\i386 folder (this is where SMS Setup installs this executable file), and Net.exe and IPConfig.exe from the Windows system folder, so always ensure that the respective paths contains the latest version of these executable files.
Important
If the site server is configured with the Advanced Security mode and SQL Server is running on an operating system in the Windows Server 2003 family, then you need to manually gather configuration information from SQL Server. For more information about this issue, see article number 316360 in the Microsoft Knowledge Base at http://support.microsoft.com.
To back up the site SQL Server configuration info, use smssqlinfo <destination> Where <destination> is the destination file name (without suffix) to which the backup task copies the SQL Server configuration data.
The smssqlinfo command requires that the Isql.exe tool be in the path. SMS Setup installs this tool to SMS\Bin\i386. However, several versions of Isql.exe can exist on the source computer. Ensure that the path accesses the latest version of this executable file. Smssqlinfo generates the following three files: u u u <destination>Data.txt <destination>Dboption.txt <destination>Helpdb.txt
Caution
Do not modify or delete the default commands in this section. If you do, you risk the completeness of the backup snapshot generated with this control file, and you might not be able to recover the site using it.
[Start]
Lists processes that you want restarted when the backup operation has been completed. By default, SMS restarts all the services that were stopped. This includes the services that were stopped by default and all the services that you added in the [Stop] section using the service <service name> command. The backup task does not attempt to start any services that are not installed, services that are already running, or processes that were stopped using the exec <executable name> command. In this section, you can append the same commands as in the [Stop] section, with one difference: when starting executable files, you must enter the full path of the executable file, even if the executable file is in the current path. The sleep command is useful when you need to start two processes, but one process cannot start until the second process is fully initialized. However, it takes some time for the first process to initialize. In this case, start the first process, and use the sleep command to pause the backup task until the first process is fully initialized. Then start the second process. In case of failure of the backup task, it restarts only the three basic services: u u u u %SITE_SERVER%\SMS_SITE_COMPONENT_MANAGER %SITE_SERVER%\SMS_EXECUTIVE %SITE_DB_SERVER%\SMS_SQL_MONITOR
To include a literal back quote, percent sign, tilde (~), or any other special character, you must precede it with a tilde. For example, to reference a token named 100% completed type: %100~% completed% Use the following to include comments in the file: u To add a single comment line, include the # character at the beginning of a line. For example:
# This is a single comment line.
To add multiple comment lines (a comment block) use the #stop and #start strings to delimit the beginning and the end of the comment block. For example:
#stop This is the beginning of my comment block and this is the end of my comment block #start
Comment blocks can be nested, but ensure that the section headers, such as [Tokens] or [Stop], are never commented out. u u u u You can specify <source> and <destination> paths with a UNC or drive letter format. Do not modify the section headings ([Tokens], [Stop], [Tasks], and [Start]), and do not modify their order. The backup control file, SMSbkup.ctl is not case sensitive. The backup task backs up each <source> only once. If a <source> token in a subsequent backup command resolves to a <source> that was already backed up by a previous backup command, then the subsequent backup command is ignored. If there are commands that operate on remote computers, you must ensure that the appropriate permissions to run these commands are in place. For example, to start a service on a remote machine, the SMSService account must have rights to start and shut down services on the remote machine.
Each file name includes the data type. u u u u Reg = registry keys DB = database dump ConfigNT = Windows NT configuration data ConfigSQL = SQL Server configuration data
u u
Each file name includes the actual data source. For example, NAL = NAL registry key. Extensions are based on the data type of each file: u u .dat = registry keys and database dumps (i.e. raw data) .txt = readable data
For example, the file with the backup of the NAL registry key from the site server is named SMSbkSiteRegNAL.dat It is recommended that you follow the default naming conventions when you add backup commands to the default backup control file. Following these conventions allows you to easily identify the content of each file in the backup snapshot.
Important
If you modify SMSbkup.ctl file, closely monitor the next backup cycle. You might have introduced syntax errors in the file, in which case the task fails shortly after it starts. Fix these errors and rerun the task.
Schedule the organization archive of the SMS backup snapshots and the Backup SMS Site System task so they do not run at the same time. If both activities run at the same time, your organization archive might not copy the SMS backup files while they are being written, or the SMS backup task might not be able to write to the backup files while they are being archived.
Although the intended use of AfterBackup.bat is to archive SMS backup snapshots, you can use that file for other tasks that you need to perform at the end of every back up operation, such as: u u 1. 2. 3. Run a SQL Server DBCC test to verify that there are no integrity problems with the SMS site database. Run a site health tool, or other health tools. Prepare an ASCII file with commands that archive your backup snapshot, or that perform any other post-backup tasks your site requires. Name the file AfterBackup.bat and save it in the SMS\inboxes\smsbkup.box folder. Now, every time the backup task runs successfully, it will run the AfterBackup.bat file. Every time after the AfterBackup.bat file archives the sites backup snapshot, store that archive in a secure location.
Back up your site at a frequency that does not cause the site to fall behind on site activities. The frequency depends on the activity level of the site. For example, if the site is busy for almost twenty-four hours every working day, then you might not be able to schedule daily backup tasks. In this case, you might be able to back up the site only on days with less activity. Back up your site so it is cost effective to your organization. Weigh the cost of spending resources on backup versus the cost of spending resources to handle partial data loss after a site failure. This applies to all SMS site systems.
Note
The site server computer must be running when backup is scheduled to run. Otherwise, the backup task does not run and there is a big gap between backups. This is especially important if the site backups are not very frequent.
Occasionally, you might need to perform a major upgrade to a system on which an SMS site is running. Backing up the site prior to the upgrade ensures that you can revert the system to its previous state, in case the upgrade fails. An out-of-schedule backup operation might result in a backup snapshot that is not archived. This can happen if the archive has a set schedule. In this case, you should manually archive the backup snapshot. These operations include: u Upgrading the sites database server or making configuration changes in SQL Server to items such as user connections, locks, and device allocation information (such as device size and type). Upgrading the operating system of the site server. Upgrading SMS. If you need to perform a series of site upgrades, it is important to back up the site before and after every upgrade.
u u
Important
You cannot restore an SMS 2.0 backup snapshot to an SMS 2003 site. Use the SMS 2.0 backup snapshot only if the upgrade failed, and you plan to revert the system back to SMS 2.0.
u u u u
Modifying the site hierarchy. Running site reset. Upgrading the site from Standard Security to Advanced Security. Modifying the sites accounts.
After you schedule the backup task in the SMS Administrator console, it can take up to 24 hours for the schedule change to take effect. In this situation, you can initiate a manual backup cycle by starting the SMS_SITE_BACKUP service on the site server. Start the service to initiate a manual backup cycle after running SMS Setup, or to run an unscheduled backup when performing important configuration changes to the site. Such manual backup has no effect on the schedule of the backup task.
Important
A manual backup cycle fails if Backup destination is not set in the Backup SMS Site Server Properties dialog box. You can set this entry even if the backup task is disabled for the site.
You can start the SMS_SITE_BACKUP service remotely by using the operating system services tool, or by using the SMS Service Manager if you have administrator-level access to the server.
2. 3.
In the right pane, double-click Backup SMS Site Server. In the Backup SMS Site Server Properties dialog box, enable the backup task, and then specify the following: Schedule Specify the schedule for the backup task. Specify the day of the week and the time period for the task to start. The time period is the time interval in which the task can start, and it is defined by Start after and Latest start time.
Note
The time period must be at least one hour long, and it must start and end within a single day.
The schedule that you specify is a recurring schedule. The task runs every week, on the day and in the time period that you specify. Backup destination Enter a folder in which the backup task stores the backup snapshot. You can specify a local path or a remote path for the backup destination. In either case, the backup destination must exist, or be such that SMS can create it. The backup destination must be in one of the following formats: u u A UNC path, such as \\Central\BackupSMS A drive letter path, such as F:\\BackupSMS
You cannot specify the backup destination to be within the SMS folder. Also, you must ensure that the backup destination folder has sufficient disk space and is secure, so that the site data stored at that location is protected. 4. Use the SMS Service Manager to enable logging for the Backup SMS Site Server task.
Verify that a backup snapshot is valid by: u u u u Verifying that the time stamp of the backup destination folder, and the files in that folder, is the time that the backup task ran. Verifying that there are no errors logged in the SMSbkup.log file. Checking status messages for backup. The success status message reads, Backup completed successfully. Running DBCC checks from SQL Server after backup has been completed to verify that the database is intact. The assumption is that if the database is valid before the backup and after the backup, then the backup snapshot is most likely valid. Performing an occasional live recovery using the latest backup snapshot of the site. For more information about live recovery test, see Chapter 13, Maintaining and Monitoring SMS Systems.
If you customize the backup control file, you do not need to remove the unnecessary database-related commands. When the backup task runs on a secondary site, it ignores these entries. u When the backup task runs on a secondary site, it does not stop the SMS_SQL_MONITOR service because it does not exist on a secondary site.
As a result, you might attempt to reduce the risk of backlogs resulting from backup operations on the central site by planning to back up your central site less often. Because the central site is the most critical site in the hierarchy, this is not recommended. Recovering the central site is unique in the following ways: u u On the central site, many configuration changes can be constantly made, and it might be impossible to repeat all of them. The central site does not have a parent site from which to obtain a copy of the site control file.
To resolve these issues, and to ensure that it is possible to recover all the data of the central site, follow these recommendations: u u u Back up the central site frequently. Have a reference site for the central site, so that recovery tools can recover packages and advertisements created after the site is backed up. Have a copy of the that is as recent as possible. u Between site backup cycles, back up the central site control file frequently. You can use system tools or batch files to automatically back up the site control file frequently. To back up site control files using the Hierarchy Maintenance tool (PreInst), see the Recovery and Repair Tools section later in this chapter. Store the site control file backup at the designated reference site. Store the site control file with a *.CT0 format so that during recovery it is sufficient to rename the file, and drop it on the recovering central site.
u u
If you follow these recommendations, then you will be able to recover most of the configuration when recovering the central site. You will be able to recover configuration data and software distribution objects definition from the reference site. The administrative data that is lost if the central site fails is less critical, and is regenerated after the central site regains functionality.
Monitoring Backup
The Backup SMS Site Server task logs its activity to the SMSbkup.log file located in the SMS/Logs/ folder.
The task also generates status messages to report its activity and to report various erroneous conditions encountered at run time. (Backup status message numbers are 50xx.) There are three levels of errors reported by the SMS backup task: Critical Errors, Errors, and Warnings. Error conditions affect the backup task, depending on the error level. Critical errors Critical Errors cause the backup task to stop. The backup operation is considered failed. Errors The backup task continues to run when encountering Error conditions; however, the backup operation is considered failed and the snapshot (if generated) is not valid. Warning The backup task continues to run when encountering Warning conditions. A warning by itself does not invalidate the backup snapshot and does not cause any harm to the backup operation. The backup operation is considered successful.
Note
If AfterBackup.bat runs as part of the backup operation, it has no effect on the success or failure status of the backup operation.
The backup task logs Critical Errors when encountering problems such as: u u u u u u u u u u The backup task is unable to read the registry to obtain site setup information. The backup task is unable to access the site control file, or the backup control file (SMSbkup.ctl). The specified backup snapshot destination is not valid (for example, it points to the SMS installation folder). The backup control file has syntax errors. The backup task cannot perform a registry backup command (reg) or a database backup command (sitedbdump). The backup task cannot start a service. The backup task is unable to connect to the systems Service Control Manager to verify that a service is installed. A token is being redefined in the SMSbkup.ctl file. In this case, the second definition of the same token is ignored. The backup task cannot perform a file backup command (file). Some of the tools in machineinfo, or some of the commands in smssqlinfo, failed.
The backup task logs Errors when encountering problems such as:
The backup task logs Warnings when encountering problems such as:
If the backup task reports any Critical Errors or Errors, find the cause of the problem, repair it, and rerun the task.
The simplest and most reliable plan actually allows you to benefit from both the SMS backup task and a third-party archive tool. Use the SMS backup task to create a backup snapshot, and use a third-party tool to archive the backup snapshot to a secure location.
Recovering a Site
A site can experience different problems. Some problems might be easy to repair, and some problems might be more serious, requiring a total recovery operation to regain the sites functionality. This section describes the SMS site recovery operation. Before you decide to perform a site recovery operation, you must troubleshoot the site and determine whether a recovery operation is the appropriate remedy.
Important
Due to the complexity of the procedures involved in recovery, the accuracy these procedures require to be carried out, and the critical importance of a successful recovery, information about recovery is intended to be used by experienced SMS administrators, Microsoft Consulting Services consultants, solution providers and, technical support engineers who have a deep technical knowledge of SMS and the environment it is being used in.
u u
The recovered site belongs to the same domain as the original site. No site accounts were changed between backup and restore.
The operating system of the original site and the recovered site can be different. However, it is not recommended that the operating system of the recovered site be of an earlier version than the operating system of the original site. When restoring data from the backup snapshot, SMS restores registry keys, files, and database. The operating system version has no effect. If you plan to recover a site without restoring a backup snapshot, then SMS supports: u u u Recovering the site with the same SMS service pack as the failed site had, or with a later SMS service pack. Recovering the site with the same version or service pack of SQL Server as the failed site had, or with a later version or service pack of SQL Server. Recovering the site with the same Microsoft Windows NT service pack as the failed site had, or with a later Windows NT service pack. Restoring a backup snapshot, that was created before an SMS upgrade, to the upgraded site. SMS site systems installed on Windows 2000 servers running Terminal Services. SMS site systems installed on Windows 2000 servers running Terminal Services Client.
To recover a site
1. 2. 3. 4. 5. 6. Notify other SMS administrators and SMS users about the site failure. Prepare for the recovery operation. For information about preparing for a site recovery operation, see the Preparing for a Site Recovery Operation section later in this chapter. Disable the backup task. If the site is accessible, ensure that the backup task does not run during the recovery operation. If it runs, it will interfere with the recovery operation. Designate reference sites that the Site Repair Wizard can use. For information about designating reference sites, see the SMS Site Repair Wizard section later in this chapter. Run the Recovery Expert from the Recovery Expert Web site and print the site recovery task list. Recover the site by performing all the tasks prescribed by the Recovery Expert, in the order that they are listed. Use other recovery tools as indicated by the recovery tasks. For more information about recovery tools, see the Recovery and Repair Tools section later in this chapter.
7.
Verify that the site is successfully recovered by following the respective Recovery Expert tasks. Do not attach any child sites to a recovered site until you are certain that the site was successfully recovered. Restore all custom files that were manually backed up, such as custom SMS Administrator console files (.msc files), custom MOF files (such as SMS_def.mof), and Supplemental Reports. If the software update management feature is used, then restore the Definitive Software Library to its original folder. For information about restoring software update management packages without the Definitive Software Library or without the related objects, see the Managing the Site After Recovery section later in this chapter.
8.
9.
10. Investigate the cause of the site failure, and make any necessary adjustments to ensure that this failure will not repeat. 11. Schedule recurring backups on the recovered site. The remainder of this chapter further describes site recovery. Before starting the recovery operation, read the rest of the topics in this section.
Caution
Failing to use recovery tools appropriately can significantly interrupt site operations, or cause unrecoverable loss of data.
The recovery and repair tools set includes the following tools: Recovery Expert Guides you through the recovery process by generating a recovery task list based on the sites specific failure scenario and site configuration. SMS Site Repair Wizard Automates some of the Recovery Experts tasks, and helps recover some of the data that was not backed up. Using the SMS Site Repair Wizard eliminates user errors that might occur when performing complex tasks. ACL Reset (ACLreset.exe) Resets access control lists used by the SMS Server Connection account and remote site systems to access the site server.
Hierarchy Maintenance tool (PreInst) Passes commands such as site repair or site diagnostics commands to the SMS Hierarchy Manager while the SMS Hierarchy Manager is running. Unenforce Software Metering tool (Unenforce.exe) Overrides software metering enforcement rules. This utility is needed only when recovering an SMS 2.0 site, and it is included on the SMS 2003 CD for compatibility reasons. For more information about the Unenforce Software Metering tool, see the SMS 2003 Help.
Each recovery task belongs to one of these phases. A recovery tasks list produced by the Recovery Expert typically contains tasks from all phases.
Depending on the site backup schedule and on the activity at the site, the latest site backup snapshot might not include the most recent modifications to the site. Any changes made after the most recent site backup are not included in the sites backup snapshot. As a result, after restoring the site backup snapshot, the site can be out of synchronization with the rest of the hierarchy. For example, the sites backup snapshot might contain information about a child site that has since moved to a different parent site. After restoring the site backup snapshot, the SMS Site Repair Wizard attempts to restore as much as possible of the data that was not backed up. The wizard can restore objects such as collections based on query rules, packages, programs and advertisements, but cannot restore data such as software metering rules, reports, and custom queries. The SMS Site Repair Wizard restores data by restoring site settings and synchronizing site objects with parent and child sites.
Important
Running the SMS Site Repair Wizard independently is not recommended. Always run the Recovery Expert first, and then run the SMS Site Repair Wizard as directed by the Recovery Expert.
Restoring site settings When running the SMS Site Repair Wizard, the user is prompted to enter any changes to site settings that occurred after the most recent site backup. The wizard then restores site settings according to the user input. For example, the administrator can specify that a child site no longer reports to the recovering site. The SMS Site Repair Wizard then deletes all objects associated with that child site from the recovering site. To restore site settings, the wizard also uses the parent site, if exists. The wizard obtains the most recent copy of the recovering sites site control file. It then uses this file to configure the recovering site. Synchronizing objects The SMS Site Repair Wizard synchronizes objects between the recovering site and other sites in the hierarchy, as follows: u The wizard restores control to objects, such as collections based on query rules, packages, programs, and advertisements, that were created on the failing site after the latest site backup was completed, but before the site failed. After restoring the sites backup snapshot, the recovering site does not contain those objects because they are missing from the sites backup snapshot. Objects are regularly replicated from one site to other sites in the SMS hierarchy. This allows the wizard to use designated reference sites to replicate these objects from other sites to a recovering site. After these objects are restored to the recovering site, the recovering site has full control over these objects and they are synchronized between lower sites in the hierarchy and the recovering site. For more information about designating reference sites, see the Designating reference sites section.
The wizard deletes objects at the recovering site that were inherited from upper level sites, but were then deleted at the originating site. Objects that were created at upper level sites might have been deleted, while the sites most recent backup snapshot still contains them. After restoring the sites backup snapshot, the recovering site contains these objects. The wizard checks all inherited objects that exist on the recovering site. It then checks if these objects exist at the parent site. Inherited objects that exist on the recovering site, but no longer exist on the parent site, are deleted.
Multiple reference sites may increase the amount of objects recovered. Designate more than one reference site as follows: u u u 1-2 reference sites with high quality, reliable connection are sufficient 3-5 reference sites if the connections are not of the highest quality Designate reference sites from different tiers in the SMS hierarchy
Having a reference site at a close physical location to the recovering site is helpful.
When you run the Recovery Expert, it prompts you whether you intend to use the SMS Site Repair Wizard. If you chose to use the wizard, then the Recovery Expert produces the recovery task list, with the following differences: u u All tasks that can be automated by the SMS Site Repair Wizard are unavailable. The task list contains the Run the SMS Site Repair Wizard task.
As you start to perform the recovery tasks in the order prescribed by the Recovery Expert, do not perform the tasks that are unavailable. When you reach and run the Run the SMS Site Repair Wizard task, the wizard completes all the tasks that are unavailable. When the wizard finishes, continue to perform the remaining tasks in the list.
Note
All tasks that can be automated by using the wizard are treated as a set. When the wizard runs, it performs all the tasks in that set.
The SMS Site Repair Wizard operates in two stages. During the first stage, the wizard restores the site backup snapshot to the recovering site. During the second stage, the wizard determines what modifications were not included in the site backup snapshot, and attempts to reapply as many of these modifications as possible. The wizard logs its activity to c:\SMS\Logs\sms_srw.log.
Note
Depending on the size of the database, it might take a considerable about of time for the wizard to restore it. As soon as the wizard submits the database restore SQL command, it logs a message stating that the database restore operation has started. If the wizard seems inactive, check the log file. The wizard might be busy restoring a large database.
u u
You also must use ACL Reset when performing operations such as: u u Changing the SMS Server Connection Account. Resetting the SMS Server Connection Account.
For more information about using ACL Reset and ACL Reset syntax, see the SMS Help.
u u u
For more information about using Hierarchy Maintenance tool, see the SMS Help.
If you have been regularly backing up the site, then ensure that: u u u u You can access the most recent backup snapshot. The log file of the most recent site backup operation indicates that the site was backed up successfully. If any integrity tests were performed to ensure the integrity of the sites backup snapshot (such as DBCC test), log files indicate that these tests have passed successfully. The site backup task is not scheduled to run during the recovery operation.
u u
Obtain the most recent copy of the hierarchy configuration document. Ensure that the Recovery Expert Web site is set up and that you can connect to that site and run the Recovery Expert. For information about how to set up and run the Recovery Expert, see the Setting Up a Recovery Expert Web Site and Running the Recovery Expert section earlier in this chapter. Ensure that you can run the rest of the recovery and repair tools from the failing site, or from a remote server.
Intra-site data traffic can originate from the sites clients, from the sites CAPs or management points, or from child sites. The traffic load depends on the number of clients at the failing site and at lower sites and on other factors as follows: u Data Discovery Records (DDR) data u u u u u u u u u Whether any discovery methods are enabled at the failing site or at lower sites At sites where discovery methods are enabled the scheduling of discovery methods At sites where logon discovery is enabled the frequency of user logon events Whether hardware or software inventory are enabled at the failing site or at lower sites At sites where hardware inventory or software inventory are enabled the frequency of inventory At sites where software inventory is enabled whether file collection is enabled At sites where file collection is enabled the number and the size of files being collected At sites where software distribution is enabled the number and the frequency of advertisements that run on the client computers At sites where software inventory or hardware inventory are enabled the frequency of inventory
Status messages u u
Site-to-site traffic
Sites will accumulate large amounts of data and transactions that need to be forwarded up and down the hierarchy, and then transmit when the inbound share becomes available to receive files. This traffic includes some client traffic such as DDRs that are queued for transmission up the hierarchy. The amount of site-to-site traffic depends on the number of sites below the failing site, the number of clients in those sites, and how long the failing site is offline. It also depends on the following: u Site control changes u u u u Number and frequency of changes made to the site configurations at sites above or below the failing site Number of sites below the failing site The amount of software distribution related activity at the parent of the failing site, such as creating packages and advertisements, making modifications to packages, and refresh activity. The number of packages and advertisements at the parent of the failing site The size of the packages being distributed down from sites above the failing site
u u
Collections u u The number of custom collections created at sites above the failing site The frequency of collection property changes at sites above the failing site The number of sites and clients in the hierarchy below the failing site The configuration of status message replication rules at the failing site and at lower sites The amount of inventory and software distribution activity at the failing site and at lower sites
Status Messages u u u
For more information about status filter rules, see Chapter 14, Using the SMS Status System. u Adjust the software and hardware inventory interval at lower level sites, so that inventory is not collected until the recovery operation is completed. Depending on the inventory schedule and on how long the recovery operation takes, this might help reduce the traffic. You need to consider the current inventory interval and the time it takes for the schedule change to take effect. Use the Hierarchy Maintenance tool (PreInst.exe) to remove pending jobs entirely. For more information about the Hierarchy Maintenance tool, see the SMS Help.
Security Issues
There are some security issues involved in a recovery operation if all of the following conditions exist: u u u u The site is part of a hierarchy. The site is configured with advanced security. There is no domain controller. The site recovery involves reinstallation of the operating system.
When reinstalling the operating system, the sites original private and public keys are lost, and new keys are generated. After recovering the site, the site will have a new public and private key pair. The new public and private keys will no longer match the original public and private keys that the other sites have for the recovered site. In this scenario, there is no domain controller to resynchronize the keys. The mismatched keys prevent communication between the recovered site and its parent, and between the recovered site and its child sites. When using the Recovery Expert in this recovery scenario, the recovery task list includes a task that resolves this issue. It instructs users to run the Hierarchy Maintenance tool (PreInst.exe) with the appropriate parameters to generate text files with information about the new keys. The user is then instructed to manually copy these files to their appropriate location at parent and child sites. For more information about security, see Chapter 5, Understanding SMS Security, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide..
2. 3.
Recreate the collection. If any programs were advertised to this collection, delete the advertisements to the collection that is not valid, and advertise again the programs to the new collection.
To recreate package objects for existing software updates management package source files
1. 2. 3. 4. If necessary, restore the Definitive Software Library to its original folder. Create a new software update management package. Import the XML file from the original package source folder. Specify the folder name of the package source files so it is identical to the original folder name.
A P P E N D I C E S
Appendices
The appendices of the Microsoft Systems Management Server 2003 Operations Guide contain useful information that will help you gain a greater understanding of Systems Management Server 2003 operations.
A P P E N D I X
In This Appendix
u u u u u u Overview of Office XP Deployment Important Concepts and Issues Deploying Office XP in an Enterprise Maintaining and Updating Your Office XP Installation Using Resilient Sources Frequently Asked Questions
Advantages
SMS can be used to reduce the cost and the time required to deploy Office XP. Some reasons you might want to use SMS 2003 to deploy Office XP in your organization are: u u u u To scale successful deployments from your test lab, to pilot users, through verification, and throughout your enterprise. To deliver and complete the installation during off hours to reduce the effect on your users. To coordinate upgrades across multiple sites. To manage slow links between sites. u u u u u u SMS 2003 provides administrators with the ability to compress package sizes, which minimizes the bandwidth usage. SMS 2003 allows administrators to throttle and schedule bandwidth usage so that SMS reduces its concurrent network usage.
To deploy Office XP to a large number of clients. To force the installation of Office XP on client computers. To take advantage of status reporting and troubleshooting tools. To deploy Office XP to different types of clients that are running Microsoft Windows operating systems, such as Microsoft Windows XP Professional, Windows 98, Windows NT Workstation 4.0, and Windows 2000 Professional. SMS administrators can verify a pilot deployment of Office XP, and then expand the collection targeted with Office XP to effectively scale a deployment that meets corporate requirements. You can use the SMS administrative context to deploy Office XP to computers where users do not have administrative credentials on the local computer. You can use SMS reporting through the status message system on delivery and execution. You can create SMS collections in order to install Office XP only to computers that meet your corporate standards, and then install to the remaining computers when they meet the requirements. For example, a corporation might determine that only systems with at least 64 MB of RAM should upgrade to Office XP. As RAM is upgraded, these computers become part of the dynamic collection of computers with 64 MB of RAM, and then they install Office XP.
u u u
Assumptions
This appendix is targeted at SMS administrators. Before you attempt to use SMS 2003 to deploy Office XP, verify that: u u u You are familiar with Office XP and SMS 2003. You are familiar with SMS 2003 administration and software deployment. If not, see the SMS 2003 documentation. SMS 2003 or SMS 2.0 SP2 or later is deployed in your organization. If you are supporting clients running Windows XP, SMS 2.0 SP4 or SMS 2003 is recommended. Microsoft does not support the use of SMS version 1.2 to install Office XP. For information about upgrading SMS, refer to the Systems Management Server Web site at http://www.microsoft.com/smserver/default.asp. You are familiar with the Microsoft Office XP Resource Kit. The administrator should be very familiar with the Office Profile Wizard and the Custom Installation Wizard in Office XP. These topics and others are covered in the Microsoft Office XP Resource Kit at http://www.microsoft.com/office/ork/xp/default.htm. You have a test organization or test lab that verifies the results prior to deploying Office XP in your production environment.
(continued)
If your clients are currently running any unsupported operating systems, you must upgrade the client to a supported operating system before installing Office XP. Alternatively, you can exclude from your Office XP deployment the computers that are running unsupported operating systems. The approximate minimum hardware requirements for Office XP are: u u u Pentium 133 or higher, PIII recommended 32 MB RAM, plus 8 MB additional per open application (128 MB is recommended), and 128 MB required for speech functionality 280 MB disk space for a restricted, minimum installation, but at least 600 MB is recommended
For more information about system and disk requirements, see the system requirements at http://microsoft.com/office/evaluation/sysreqs.htm.
The package definition file files are included in the Ork.cab file on the Office XP product CD. To access the package definition file files, install the Office XP Resource Kit, which is included in the ORK folder of the Office XP CD. You can also download the most recent package definition file files from the Office XP Resource Kit Toolbox on the Microsoft Office Web site at http://www.microsoft.com/office/ork/xp/default.htm.
By default, SFU installs Internet Explorer 5.01 on clients running Windows 98, Windows NT Server 4.0 SP6a, or Windows NT Workstation 4.0 SP6a. If you do not want to install Internet Explorer 5.01 on these clients, you can turn off the default Internet Explorer installation by using the Custom Installation Wizard. For information about the Custom Installation Wizard, see the Customizing Your Office XP Installation section later in this appendix, or see the Microsoft Office XP Resource Kit at http://www.microsoft.com/office/ork/xp/default.htm. Note the following: u u Whenever SFU is run on a computer, a restart is required, even if no files were updated. Office XP does not install Internet Explorer on clients that are running Windows 2000 Professional, Windows 2000 Server, or later operating system versions, because Internet Explorer 5.01 is already included with these operating systems. Office 2000 Public Update 1 and later includes SFU. Upgrades from this version to Office XP do not have SFU issues.
Office XP requires Windows Installer 1.1 or later. If Windows Installer 1.0 is present on the computer, Office XP Setup automatically updates the program. If Windows Installer is not present on the computer, Office XP Setup calls Instmsi.exe (Windows 98) or Instmsiw.exe (Windows NT 4.0) to install it. Because Microsoft Windows 2000 includes Windows Installer 1.1, no Windows Installer update is required for computers running Microsoft Windows 2000. Windows Installer version 2.0 fixes a number of problems in prior versions (including the ability to read source from an uncompressed source if installed from a compressed source, or vice versa). It is highly recommended that client computers be upgraded to this version prior to deployment of Office XP.
Any particular fix encapsulated into a Windows Installer patch file has two different versions of the patch specific to each of these types. An administrative patch cannot be applied to a client installation, and vice versa. The following sections describe these patches in more detail.
Administrative Patches
Administrative patches apply the Windows Installer patch to the original Windows Installer source (the source on the SMS distribution points or, for most deployments, Windows Installer source servers). An advantage of this method is that it permits new client installations of Office to install the latest patch components without needing separate distributions of patches. A disadvantage of this method is that clients that have not been instructed to install the new patch cannot use this source for maintenance operations such as adding, removing, or repairing an installation until they have synchronized with the latest source. This is because the original Windows Installer source is changed (the package code of Windows Installer is changed). As a result, there is a risk that clients with Office installations can become orphaned, unable to run repair operations from the source, until they are instructed to apply the patch. However, correct deployment of patches using SMS can mitigate this risk considerably.
Client Patches
A client patch, also called a standard patch, is a distribution of the actual .msp file to individual client computers without changing the original source on the server. One advantage of this is that the server Windows Installer source remains valid for both patched and non-patched clients for maintenance operations. As a result, users do not experience problems using Office XP. One disadvantage of this method is that new client installations receive only the original non-patched Office version. They still need to receive the specific patch distributions to upgrade to the required Office component level. However, if the patches are being targeted using SMS software inventory information, then the upgrade occurs with no administrator intervention. However, additional client programs must run and a delay occurs in upgrading the client Office installation to its required state. As a result, client patching requires more SMS administrator overhead than administrative patching. In most situations, the original Windows Installer source is required when you are applying a patch. For reliable patching, the original source should always be available when applying a client patch.
Windows Installer patches are used for distributing both Office XP Public Updates and service pack components. In fact, an Office XP service pack includes all previously released Public Update patches, in addition to new fixes. However, service packs are particularly important for patch management because they apply a new baseline for the installed components against which future Public Updates (individual patches) are applied. To apply an individual Office public update, the appropriate service pack for the patch must already be applied to the original Office source.
A disadvantage of using Install on Demand is that the original Windows Installer source must be accessible at the time that the Office XP feature is selected. Install on Demand is not a good choice for laptop computers when the Windows Installer source is not stored locally on the computer.
Important
Install on Demand applications generate status messages when SMS runs the Office XP installation for the first time. However, SMS does not generate status messages when the user initiates the Install on Demand installation (after the initial installation) because later Office XP component installations are not initiated via the SMS client.
To create desktop icons, the Install on Demand method requires Active Desktop to be installed on the client; however, it is not mandatory that Active Desktop be turned on. If Active Desktop is not installed, the Windows Installer shortcuts might not be installed, and install-on-demand functionality is not available. Also, all clients must be running Microsoft Internet Explorer 4.01 or later. Clients running Windows 98, Windows 2000 Server, Windows 2000 Professional, or Windows XP have this functionality built in. You can customize and extend the basic methods of installing Office XP on clients to help support your specific deployment needs. After you run Install on Demand Setup, you can send additional Office XP Setup command lines to clients to trigger the installation of a specific Office XP program. This can be helpful if you want to stage your Office XP deployment.
For example, you might want to install the full version of Word and Excel on clients, but make PowerPoint and Access available for installation on first use. By setting some of the programs to install on first use, the network bandwidth required at initial deployment time is reduced, and setup time for users is faster. Later, if you want complete versions of PowerPoint and Access installed on all clients, you can send an additional setup command line program to accomplish this using SMS. For additional information about Office XP features and Install on Demand, see the Microsoft Office XP Resource Kit at http://www.microsoft.com/office/ork/xp/default.htm.
You can use the Elevated Rights Deployment Wrapper (Run_once.exe) to install Office XP in this scenario. The Elevated Rights Deployment Wrapper is typically used to deploy Office XP to a locked-down computer that is running Windows NT Workstation 4.0. You can use the Elevated Rights Deployment Wrapper with applications that require a restart during installation and elevated user rights following the restart. With this tool, the post-restart work can be integrated with SMS for both elevated rights and status reporting. Check the Systems Management Server Downloads Web site at http://www.microsoft.com/smserver/downloads/20/default.asp for this tool.
For setup command-line options, see http://www.microsoft.com/office/ork/xp/appndx/setopt.htm. Create an advertisement for each site to advertise this program.
This scenario assumes that you, as the administrator, are familiar with the Custom Installation Wizard and issues regarding Office XP deployments and supported installation methods. For technical background on relevant issues, see the Important Concepts and Issues section earlier in this appendix. You should also be familiar with SMS software distribution, collections, queries, and reporting.
Business Requirements
The scenarios and instructions outlined in this appendix for using SMS 2003 to deploy Office XP assume that the following business requirements, site, and client configurations are present. These requirements are a superset of the most common requirements for any particular enterprise. The SMS administrator in the sample scenario must be able to: u u u u u u u u u u u Perform a full installation of Office XP on local computers. Perform a partial installation of Office XP on local computers, with Install on First Use available for other Office XP programs. Use customized and additional templates. Use specific preconfigured options in some of the Office XP programs. Install Office XP on all new computers that connect to the network. Install Office XP at multiple sites. Upgrade Office XP installations without user intervention. Minimize the overall administrative requirements for Office XP deployment. Report the distribution results, and present an ongoing management report of computers that do and do not have Office XP installed. Maintain the Windows Installer support for repairing Office XP core files to reduce support costs. Reduce drive space usage by reducing the number of Office XP distribution points after Office XP deployment.
Enterprise Configuration
SMS 2003 is configured in this sample scenario as follows: u u u One central site has ten primary sites. Each of the primary sites has 40 secondary sites attached. Each secondary site is separated from its respective parent site by a WAN link.
Client and site traffic is minimized architecturally. Each SMS site is contained within one continuous fast link. Slow links are managed by separating sites, and none of the sites span a slow link. Throttling and sending times are controlled to prevent SMS from using significant bandwidth during prime operating hours. SMS 2003 is deployed in the enterprise.
Corporate migration to the Active Directory structure for the corporation is completed.
Client Configuration
The company in this scenario has a mix of client operating systems configured as follows: u u u Clients running Windows 98, Windows NT Workstation 4.0 SP6a, and Windows 2000 Professional. Users at some of the sites do not have local administrator rights on their clients that are running Windows NT Workstation 4.0 SP6a and Windows 2000 Professional. The majority of users are upgrading from Office 2000 Public Update 1, but some users are upgrading from Office 97.
u u u
Important
If you have clients running Windows NT Workstation 4.0 SP6a with users who do not have administrative credentials on the local computer, use the Elevated Rights Deployment Wrapper (Run_once.exe) to install Office XP. See the Systems Management Server Downloads Web site at http://www.microsoft.com/smserver/downloads/20/default.asp for this tool.
If the computer running Windows NT 4.0 requires the SFU, and the account used for installation does not have administrative credentials on the local computer, then the Office XP installation fails.
Important
You can use the Elevated Rights Deployment Wrapper (Run_once.exe), described earlier in this appendix, to deploy Office XP to low-rights Windows NT 4.0 clients that require the SFU. For computers running Windows NT 4.0 with low-rights users, it is recommended that you upgrade the client to Windows 2000 or later before installing Office XP. Office 2000 includes a script that was intended to help install Office 2000 on computers where users did not have local administrative credentials. This script has had several problems with supportability. The script is not supported in Office XP.
SFU Collection
Windows 98 and Windows NT 4.0 SP6a (with administrator rights on which Office 2000 Public Update 1 is not already installed
Then you can advertise the appropriate programs to each collection, as shown in Table A.6. Table A.6 Target Collections
Installation program Custom (unattended) Custom including SFU (unattended) Target collection Advertise this program to the No SFU Collection. Advertise this program to the SFU Collection. The command line includes a restart to the systems after running the SFU program.
Note
The Office Setup command line with the SFU runs successfully on computers that do not require the SFU. SFU installation does not occur, but those computers still restart. To make the deployment simpler, you can target all computers by using the SFU and restart instructions in the program. Installation is successful on all clients that can install Office XP. However, clients that did not require the SFU are restarted, even though a restart was not required.
The following table describes how each SMS program included in the package definition file installs the SFU on the supported operating systems, where: Targeted indicates that the client receives the program advertisement. Not targeted indicates that the client does not receive the program advertisement. Fails indicates that the Office XP installation fails. Table A.7 Office XP Programs to Use with Each Supported Operating System
Installation Program Custom (quiet) Custom including System Files Update (quiet) Manual Manual including System Files Update System Files Update only (quiet) Typical (quiet) Typical including System Files Update (quiet) Uninstall Operating System Windows 98 Not targeted Targeted Windows NT 4.01 Not targeted Fails Windows NT 4.02 Not targeted Targeted Windows 2000 Targeted Not targeted Windows XP Targeted Not targeted
Targeted
Fails
Targeted
Not targeted
Not targeted
Targeted
Targeted
Targeted
Targeted
Targeted
1. User logging on after the SFU restart does not have local Administrator rights on the client. 2. User logging on after the SFU restart has local Administrator rights on the client.
Deploying Office XP
The following is a summary of the steps for deploying Office XP, each of which are fully discussed in subsequent sections. Some steps, such as Office XP source customization, might not be necessary in your deployment, but most deployments follow this basic pattern. 1. 2. 3. 4. Create the administrative installation point. Create the transform file using the Office Custom Installation Wizard. Create an .ops customization file using the Office Profile Wizard. Create SMS software distribution objects. u u u u 5. u u u Import the package definition file and create the Office XP package. Create programs for Office XP Install on Demand. Create the collections. Assign distribution points to the Office XP package. Monitor the installation. Conduct inventory and reporting of the Office XP installations. Run a query to confirm that Office XP was successfully deployed.
The following steps describe how to create an administrative installation point. For more information, see the Microsoft Office XP Resource Kit. 1. Create a share on a network server for the administrative installation point. This share will be the source file location for the Office XP package. To avoid a package source update spanning a WAN, you should create the share on each site server that will send the package. The transform files created by the Custom Installation Wizard should also be placed in the root of this share, along with the .ops file created in the Office Profile Wizard used to further customize Office XP programs.
Important
The network share must have at least 700 MB of available disk space. Increased space requirements might arise during the process, depending on configuration.
2.
Connect to the server share using an account that has write access to the share. The computer must be running a supported operating system, such as Windows XP Professional, Windows 2000 Professional, Windows NT Workstation 4.0 SP 6a, or Windows 98. On the Start menu, click Run, and then run setup /a from the root of the Office XP product CD. Enter the organization name that you want to define for all users who install Office XP. Enter the server and folder you created as the installation location. The SMS administrator selected a local path, to avoid unnecessary network traffic. If a remote path is selected, then the administrative installation is copied on the network. In our scenario, the path is C:\OfficeXP. Enter the 25-character product key and click Next. You must enter a valid, purchased product key when you create the administrative installation point. Users who install Office XP from this administrative image do not have to enter the product key when they install Office XP or start an Office XP program for the first time. Accept the end-user license agreement and click Install. By accepting the agreement, you are accepting on behalf of all users who install Office XP from this administrative installation or any SMS distribution point the SMS administrator creates from this administrative installation.
3. 4. 5.
6.
7.
Setup expands and copies the files from the Office XP CD to the administrative installation point, extracts the compressed cabinet (.cab) files, and creates a hierarchy of folders in the root folder of the share. The SFU files are automatically included during an administrative installation. By creating multiple transform files, you can also install different Office XP configurations to different groups of users from the same Office XP source file location (also called an administrative installation point).
You can use a transform file to create any kind of customization in an Office XP command-line by using the Custom Installation Wizard. You can create transform files for: u u u u u u u u Adding resilient sources. Creating customized programs or configurations for different sets of users. Selecting the Office XP features that you want to install. Modifying shortcuts. Customizing options for Microsoft Outlook. Adding custom files to the installation. Customizing the SFU settings, including Internet Explorer 5 settings, as needed. Customizing Office XP Multilingual User Interface Packs.
Not Available
In the example scenario, you decide that there will be one transform file per site, because all the distribution points within a site will be local. As a result, any distribution points will be local, and traffic associated with repairs and install-on-demand applications will not cross WAN links in the future. You also create a hidden custom share for the Office XP source called OfficeXP$. To distribute the package properly, you must record key information for each site. Table A.9 contains information about the CTL site.
You have now determined the location, administrative installation point, and share for the installation files of Office XP. Next, you must build the files to configure the installation. You create the transform file by using the Custom Installation Wizard. Repeat the following steps for each transform file. 1. Run the Custom Installation Wizard by clicking Start, pointing to Programs, pointing to Microsoft Office Tools, pointing to Microsoft Office XP Resource Kit Tools, and then clicking Custom Installation Wizard. The administrator runs the Custom Installation Wizard on a computer that has access to both the administrative share (where the .mst files are copied) and the Proplus.msi file that installs Office XP. Specify the path of the .msi file to open (for example, D:proplus.msi), and click Next. Create a new transform file by selecting Create a new MST file, and then click Next. Specify the path of the new transform file (for example, C:Documents and Settings\user1\my documents\ new custom setup file for CTL Site.mst), and then click Next. Long file names are allowed, so give the transform file a descriptive name (including the site name and configurations). This provides an easy way to reference the file later. Specify the installation location (<ProgramFiles>\Microsoft Office) and the company name, and then click Next. Set the feature installation states and verify that the Office XP installation meets the needs of the users. The Installed on First Use option on the Set Feature Installation States page helps minimize setup time for the user, and balances the traffic associated with installation. For example, if you set the feature state for Microsoft Access for Windows to Installed on First Use, the traffic associated with Access is deferred until a user on the system runs Access, or until the user runs an Access file. When applications that are set to Installed on First Use are first activated, there is a delay while the installation runs. Using the table that was completed when creating the transform file for the clients, enter the paths of the installation points. The Custom Installation Wizard does not validate the paths. These paths are entered so that the resilient sources are displayed at the top of the list. The administrator does this so that when the resilient sources are removed from \\site1dpc, clients seeking to install or repair from this transform file will go to the existing site first, instead of failing against \\site1dpc, and then succeed in reaching the resilient sources (\\site1pda and \\site1dpb).
2. 3. 4.
5. 6.
7.
8.
Accept the changes and create the .mst file for the Office XP installation that installs Office XP with Word and Excel locally and installs the other applications and tools on first use. Include any additional configurations that you made with the Profile Wizard. These are embedded in the .mst file. You can use the Profile Wizard to configure the options contained within the Tools menu, in addition to other options to customize Office XP to your requirements. For more information, see the Microsoft Office XP Resource Kit.
9.
10. Review the summary, and exit the CIW. 11. Copy the transform file into the root of the administrative installation source (which was created by running setup /a).
Important
All transform files should be included in the root of the administrative share prior to assigning the SMS package to any distribution points. This prevents repeated replication of files to all designated sites and distribution points.
Note
The Custom programs within SMS might reference a transform file to allow those installations to be highly configured by the transform file. There is also an SMS program created by the .sms file named Typical. The Typical program does not use transform files.
To create the software distribution objects, do the following: 1. 2. 3. 4. Import the package definition file (.sms file), and create the Office XP package. Create programs for Office XP Install on Demand. Create the collections. Assign distribution points to the Office XP package.
Step A: Import the package definition file, and create the Office XP package.
To create a package from a package definition file, you can use the Create Package from Definition Wizard or the Distribute Software Wizard. Both wizards create a package by importing a package definition file, but the Distribute Software Wizard includes the following additional functionality: u u 1. Enabling and disabling distribution points for the package Creating an advertisement for the package Expand the Ork.cab file that is included in the ORK folder of the Office XP CD to access the package definition file. Click the Ork.cab file, click Extract, and then choose a destination folder. Start the SMS Administrator console and double-click Site Database. Right-click Packages, point to New, and then click Package from Definition. On the Create Package from Definition Wizard page, click Next. The Package Definition page is displayed; however, the Off2002.sms file does not appear in the list because it has not been imported into the SMS Administrator console. Click Browse. In the folder that contains the .sms file you extracted, click Off2002.sms, and then click Open. Click Office XP Applications, and then click Next. On the Source Files page, select the Always obtain files from a source directory check box, and then click Next. On the Source Directory page, specify the location of your administrative installation point. You must specify a local path on the site server or a network path to the administrative installation.
2. 3. 4. 5. 6. 7. 8. 9.
10. Click Browse to locate the source location for the Office XP administrative installation (C:\OfficeXP in the example), and then click Next. Verify that the information is correct, and then click Finish to create the package named Microsoft Office XP applications 10.0 English.
Note
Updated package definition files for Office XP are available in the Microsoft Office XP Resource Kit at http://www.microsoft.com/Office/ORK/xp/JOURN/PDFWinXP.htm.
There are two programs the SMS administrator uses in this phase of the deployment. Both programs are unattended, so that the installation can be fully managed by the SMS administrator, and users are not prompted for installation input.
Custom (Quiet)
This program is used on all clients that do not require the SFU and the associated restart, including computers running: u u u u u u Windows XP Professional. Windows 2000 Professional. Windows 2000 Server. Windows 2000 Advanced Server. Windows NT Workstation 4.0 SP6a computers with Office 2000 Public Update 1. Windows 98 with Office 2000 Public Update 1. Computers that use this program to install Office XP do not require a restart.
The administrator must decide Install on Demand options for clients in each site, as shown in Table A.10. Table A.10 Installation States
Installation states For clients at the CTL (central) site Issues to consider You can create a separate transform file for each different installation state of Office XP that is required. You might edit existing transform files and save them under separate, descriptive names. These new transform files should be placed in the root of the source directory (C:\OfficeXP in the example), along with any accompanying Office profile files (.ops) created in the Office Profile Wizard. Complete this prior to creating the packages distribution points, because it minimizes traffic associated with the package source files.
(continued)
The administrator must perform the following tasks for each transform file: 1. 2. 3. In the Custom Installation Wizard, on the General page, enter the transform (.mst) file name in the command line. Specify a descriptive name for the file, such as Word and Excel Local Access and Powerpoint IOD.mst. Specify the transform file name in both Custom (quiet) and Custom including System Files Update (quiet) programs.
Determine which computers in your sites should receive Office XP. These computers are grouped into SMS collections. You can use several methods, depending on the business rules your organization has in place. In the example, it is assumed that all clients currently running Office 2000 Public Update 1 are upgraded, and computers running Windows NT 4.0 are excluded. Computers with less than 64 MB of RAM and less than 500 MB of free disk space are also excluded.
Create dynamic collections that encompass all systems that you want to receive Office XP. All computers in this collection require Office XP with Word and Excel installed locally, while Access and PowerPoint are installed on first use. When new systems come online or meet these criteria, the Office XP package is also assigned to them. This way, the SMS administrator adheres to the companys corporate policy to have new systems install Office XP. The query can be written to create collections based on the criteria in Table A.11. Table A.11 Criteria for Collections Queries
Site Name CTL CTL CTL CTL Current Office Version At least 64 MB RAM Yes Yes At least 500 MB disk space Yes Yes Yes Yes
Collection C1 C1 C1 C2
Operating system
Windows XP Professional Any Windows 2000 Professio Any nal Windows 98 Windows 98
Office 2000 Public Yes Update 1 Any except Yes Office 2000 Public Update 1
When creating the query, it is important to use your knowledge of the separate setup routines described earlier in this appendix. Computers running Windows 98 without Office 2000 Public Update 1 require the SFU and have a different command line than your other clients. Therefore, separate the systems needing different programs. These dynamic collections are targeted for different advertisements that point to two separate program command lines. The transform file you use is the same, because both the systems in the collections C1 and C2 require the same Office XP configurations. However, because the systems in collection C2 require the SFU and associated restart, the SMS administrator in the example separated the collections. That way, all clients running Windows XP Professional, Windows 2000, and Windows 98 with Office 2000 Public Update 1 do not require a restart.
After Office XP deployment, you might plan to reduce the number of distribution points. At least one distribution point remains locally at each site so that Office XP Windows Installer can automatically repair a corrupt core file by accessing a local distribution point. Also, application installations occurring on first use continue to have access to these distribution points.
Note
By design, SMS clients receive only information regarding distribution points in their own site.
Each of these location-specific transform files is then included in a new program created within the Microsoft Office XP applications 10.0 English package. The command line entry on the programs General tab includes the direction to the newly created, location-specific transform files. All of this planning should be done in advance, because these new .mst files must be placed in the root of the source location (C:\OfficeXP in the example). You can change the list of additional servers using the Custom Maintenance Wizard and use SMS to distribute the update after installing Office XP. If you deploy this package to distribution points, and then add the new .mst files to the source, the entire source directory must be sent to the distribution points during the next package refresh of the distribution points. Sending the entire source directory produces considerable network traffic, because the Office XP installation files, which are approximately 625 MB, would be redeployed to each distribution point. Assign the distribution points for the Microsoft Office XP applications 10.0 English package. For example, all of the previously determined distribution points could be used: u u u Site1dpa Site1dpb Site1dpc
Note
These distribution points should be within the site, which is defined within a continuous fast link. If a distribution point is separated from the systems that install or repair Office XP, then a second location-specific transform file should be created that lists only the distribution points connected by a fast link to the clients. Architecturally, SMS is designed to support this model, where each distribution point for a site resides on the same fast link as the clients it serves.
To create an advertisement and assign SMS distribution points using the Distribute Software Wizard
1. 2. In the SMS Administrator console, navigate to Packages, right-click your package, point to All Tasks, and then click Distribute Software. On the Distribute Software Wizard page, click Next.
3. 4. 5. 6. 7. 8. 9.
The Package page is displayed. Select the Distribute an existing package check box, click Office XP Applications, and then click Next. On the Distribution Points page, select the distribution points you want for the Office XP distribution, and then click Next. On the Advertise a Program page, click Yes, and then click Next. On the Select a Program to Advertise page, click the program that you want to include in this advertisement, and then click Next. On the Advertisement Target page, select the Advertise the program to an existing collection option, click Browse to select a collection, click OK, and then click Next. On the Advertisement Name page, click Next. On the Advertise to Subcollections page, select the appropriate option, and then click Next.
10. On the Advertisement Schedule page, select the appropriate schedule, and determine whether you want the advertisement to expire. If you are using the distribution points as resilient sources, select the No. This advertisement never expires check box, and then click Next. 11. On the Assign Program page, select the appropriate option, and then click Next. 12. On the Completing the Distribute Software Wizard page, verify the information under Details, and then click Finish to start the distribution. Following the standard method for advertising to a collection, the SMS administrator creates the two advertisements shows in Table A.12. Table A.12 Advertisements
Name Office1 Package Program Collection C1 Mandatory Yes Schedule Weekly, at midnight on Fridays Note Office XP installs from local distribution points, with local resilient resources. Also, the corporate policy to install Office XP on new systems is met. Office XP installs from local distribution points, with local resilient resources. The restart occurs during nonbusiness hours. Also, the corporate policy to install Office XP on new systems is met. Office XP Custom (quiet)
Office1a
C2
Yes
2. 3.
For setup command-line options, see http://www.microsoft.com/office/ork/xp/appndx/setopt.htm 3. Create an advertisement for each site to advertise this program
Creating resilient sources is valuable because: u u They provide fault tolerance. They enable the number of SMS distribution points with Office XP sources to be reduced after deployment.
These share points can be located on many different SMS distribution points. The resilient sources do not have to be SMS distribution points, because network share points of any type can be used to provide self-healing and sources for resilient installations of Office XP. However, over time you might choose to reduce the number of distribution points. Typically, the path to the distribution point you use for installation servers is stored by default as a source. But, if servers are unavailable, then its role as a distribution point path is no longer valid. Alternatively, administrators might want to have several sources during initial rollout but then reduce the number of sources to save disk space. Establishing resilient sources allows administrators to reduce the number of distribution points, while continuing to allow installation on first use and repairs to take place. The clients would use their list of resilient sources, and when the primary source was unavailable, they could use a second or third resilient source. If no resilient resources are available, the user is instructed to provide a path to the Office XP source files. Windows Installer requires users to retain access to the source files throughout the life of the programs, so that advanced features, such as program repair and Install on Demand, can return to a share point other than the originating distribution point. Office XP provides the option of establishing a valid universal naming convention (UNC) path (for example, \\<server>\<share>), or a list of valid UNC paths or mapped drives for the source files. Using the Custom Installation Wizard, you can set up a list of sources for Office XP to use when it requires source files. The resilient source list remains available for as long as Office XP is installed on the clients. You must have the name of each server you want to use for resilient sources in order to populate a property called SOURCELIST. To configure the Windows Installer SOURCELIST parameter for the Office XP installation, use the Custom Installation Wizard. In the Identify Additional Servers page of the Custom Installation Wizard, enter the server names you want to use as resilient sources. When you create resilient sources, keep in mind the following: u In the Custom Installation Wizard, you must enter the server name and the share name. To use resilient sources, you must use a customized name in the SMS package creation process. This is located in Share Distribution Folder on the Data Access page in the SMS Administrator console. Knowing the share name in advance is necessary when creating the .mst file in the Additional Servers phase of the Custom Installation Wizard. It is important to define a share distribution folder on the Data Access tab of the Package Properties item in the SMS Administrator console. If you do not provide a name for this folder, SMS uses a default namethe package ID or the drive IDthat is not always known. For large organizations, the package ID is not predictable in advance, so it is difficult to anticipate the complete path to the distribution point share, unless it is set specifically in Share Distribution Folder.
If you use resilient sources, and you have more than one site in your hierarchy, you might need to create a separate customization file (transform file) to reflect the different resilient sources. Then, use a separate SMS program within your package that points to each .mst file. You might have one for each site. Configuring separate transform files for each individual site allows each sites clients to carry a local list of resilient resources, which are most likely the distribution points for that site. This avoids unnecessary WAN traffic. The enumeration of the resilient sources should include the planned network share points for Office XP, whether they are SMS distribution points or not. As a result, you will have a program that is specific to each site which references the Windows Installer transform file containing the resilient sources specific to that site with all other options identical.
When you use SMS 2003 to distribute Office XP, SMS randomly selects the distribution point to which specific clients connect to for installations. This effectively distributes the load on the available distribution points. In some ways, the administrator can also control load balancing by selecting collections and distribution points for an installation. For example, if you choose to install Office XP to 10,000 users simultaneously, you will probably create stress on your network. SMS 2003 provides tools for simulating your network traffic and estimating the results of such actions. After you install Office XP, there is additional stress to the system when installations are repaired and Install on Demand features install. You can provide more load balancing by configuring additional resilient sources for installing these components rather than just the installation distribution point. For more information about resilient sources, see the Office XP Resource Kit Web site at http://www.microsoft.com/office/ork.
Can I send a command line that installs the SFU to clients that already have updated system files (Windows 2000 Professional, Windows 2000 Server, Office 2000 Public Update 1)?
Yes. Sending a command line will be successful; however, the program will only detect, not install, the SFU. The Office XP installation will proceed without the SFU, because it is unnecessary to install the SFU again. A restart will occur. For example, if an organization upgrading to Office XP has systems that require the SFU and systems that do not require the SFU, then it is possible to use one advertisement, one .mst file, and one command line in the SMS program. This command line (created by the .sms file) must include the SFU portion of the command line. All systems will restart and upgrade to Office XP, including the computers that do not require the SFU. The computers that do not need the SFU will restart unnecessarily, however, this might be an acceptable tradeoff for simplicity in the right conditions.
Does Microsoft provide application-specific installation and setup information for the applications within Office XP?
Yes. This information is available at http://support.microsoft.com/?kbid=293303.
How large is the administrative installation share I create for Office XP?
It is approximately 630 MB; however, this might vary, depending on your environment.
How large is the compressed source file that SMS replicates between sites?
It is approximately 350 MB; however, this might vary in your environment.
How much disk space does the SMS site server require, if all Office XP deployment storage is located on the site server?
The administrative installation is approximately 630 MB. The package that is created is slightly smaller. The site server can also store a compressed copy for replication to other sites. This compressed copy is approximately 350 MB. There are also temp files that are associated with the compression activity. It is recommended that the SMS site server have more than 2 GB of free disk space.
What is the size of the transform files I create for Office XP?
The size varies with the specific customizations involved, but sizes between 70 KB and 1 MB have been used in some early deployments. All transform files should be included before delivering the SMS package, to minimize the amount network bandwidth that is used with a change in the package source files (and accompanying replication between sites).
Where do I put the .mst and .ops files that the Custom Installation Wizard and Office Profile Wizard install?
Both files go in the root of the administrative share before the Office XP package is created. Putting all source files in this share before creating the package ensures that when the SMS administrator creates the Office XP package, the files are only replicated once.
Can I provide a highly customized Office XP deployment that configures tools, templates, and default behaviors?
The Office Profile Wizard provides this support for Office XP Setup. It creates an .ops file, which further customizes Office XP Setup. For information about the Office Profile Wizard and how to easily configure applications with it, see the Microsoft Office XP Resource Kit.
Where can I learn about the configuration details that are possible for each application in the Office XP suite?
For information about customizing individual applications, see the Microsoft Office XP Resource Kit.
Is it possible to deploy to one large collection? For example, can I use the Office XP package with the Custom with System Files Update (quiet) program, and advertise the package to the all systems collection?
Yes, this is possible. However, there are several drawbacks. First, computers that are not running Office XP-supported platforms will fail. Also, the administrator would be using the command line that is only necessary where the SFU is required on systems, such as Windows NT Workstation 4.0 and Windows 98, which are not upgrading from Office 2000 Public Update 1. It is easier to deploy all the systems together, and then target one program to run on each system. However, the SFU program incorporates a restart to allow SFU to run. This restart is unnecessary on any client that is running Windows XP Professional, Windows 2000 Server, Windows 2000 Professional, or Office 2000 Public Update 1.
How do I upgrade Office and Internet Explorer as one package, or as a pair of linked packages?
If you want to upgrade your clients version of Internet Explorer, then you must upgrade Internet Explorer separately from your Office XP deployment. You should not chain the installation of these two products together. You can deploy Internet Explorer either before or after you deploy Office XP. Office XP automatically installs Internet Explorer 5.01 during SFU. Installing Office XP does not downgrade Internet Explorer versions that are later than 5.01.
A P P E N D I X
In This Appendix
u u u u u u Introduction to WMI How SMS Uses WMI Looking at WMI Managing WMI Troubleshooting WMI Learning More About WMI
Introduction to WMI
WMI is a middle-layer technology that enables standardized management of Windows-based computers. It collects computer management data from a wide variety of sources and makes it accessible by using standard interfaces. WMI can be accessed remotely, but it does not consolidate the management data in a central location that is one of the functions of SMS. You can also use WMI to set configuration details on your computer and to detect and respond to changes in the configuration of your computer (using WMI events). WMI is the Microsoft implementation of the Web-based Enterprise Management (WBEM) standard, which was developed by the Desktop Management Task Force. WBEM builds on a series of industry-wide initiatives to standardize computer management. Those initiatives include the Simple Network Management Protocol (SNMP) and Desktop Management Interface standards. Standardizing computer management allows you to use multiple tools to address your various computer management needs without requiring a separate infrastructure for each tool. For example, SMS and Microsoft Operations Manager (MOM) both use WMI. You can use SMS for centralized inventory collection of all your computers and use MOM to alert you to critical changes in your servers, but your servers do not require two different types of client agents to collect configuration information. Using WMI you can also write scripts to change computer settings and then distribute those scripts to your SMS clients. WMI is available for all Microsoft Windows 95 or later operating systems. It is installed with Microsoft Windows Millennium Edition, Windows 2000, Windows XP, and the Microsoft Windows Server 2003 family and is available for download for the other supported versions of Windows. There are three significant versions of WMI: u u Version 1.1 (build 698), which ships with SMS 2.0. It is also included with Microsoft Windows 98 Second Edition and Windows NT 4.0 Service Pack 4 and later. Version 1.5 (build 1085), which ships with SMS 2003 and Windows 2000. It is available for all WMI-supported operating systems except Windows XP and the Windows Server 2003 family. Version 5.1.2600.0, which ships with Windows XP and the Windows Server 2003 family.
You can determine which version of WMI is installed on your computer by using the WMI Control. For more information, see the Using WMI Management Tools section later in this appendix.
WMI can collect and set configuration details for a wide variety of hardware types, operating system components and subsystems, and application systems because it uses providers to work with those systems. Providers are relatively simple components that the developers of the systems make available. WMI uses the providers to interact with the systems. Any system that has a WMI provider can be managed with WMI and can therefore be managed by any computer management application (such as SMS and MOM) that uses WMI. WMI providers are available for a wide variety of systems including: u u u u u u u u u u u u u u u u Microsoft Exchange Microsoft SQL Server SNMP Domain Name Service (DNS) Active Directory directory services SMS The operating system Windows Installer Microsoft Internet Explorer Microsoft Office 2000 and Office XP Internet Information Server (IIS) Cluster Systems Network Architecture (SNA) Windows drivers (WDM) HTTP Monitoring COM+ Monitoring
Many other providers are also available, and a variety of computer system vendors are developing additional WMI providers. For more information about WMI support, see your system documentation. WMI support is usually included when you install the system, but in some cases there might be extra setup steps that you must follow. Using WMI, WMI-based management applications, and the WMI providers included with your systems, you can efficiently manage all your computers and their systems with a small set of management tools.
u u
u u
u u u u
Because SMS uses WMI, you can: u u u u Script SMS operations to ease your SMS administration tasks. For more information, see Appendix C, Scripting SMS Operations. Increase or decrease the details that SMS collects as part of the hardware inventory. For more information, see Chapter 2, Collecting Hardware and Software Inventory. Build tools to manage SMS. For more information, see the SMS SDK. Directly connect to client computers, if they are accessible on your network, to verify in realtime any details that you see in Resource Explorer. For more information, see the WMI Browsing Tools section later in this appendix. Report, query, and build collections based on any configuration details that are available from client computers. For more information, see Chapter 4, Managing Collections and Queries, and Chapter 11, Creating Reports.
Understanding WMI
A good way to become comfortable with WMI is to look at it from the various perspectives that can be important to an administrator: u u u u Architecture how it is implemented and how it works Object model how programs and scripts access data Schema how data that WMI manages is organized Tools how you can work with WMI
WMI Architecture
WMI is designed to function as a middle layer, by serving as a standard interface between management applications and the systems that they manage. Figure B.1 illustrates the WMI architecture.
Providers
Managed Systems
The Common Information Model (CIM) Object Manager is implemented in the WMI service on Windows NT 4.0, Windows 2000, Windows XP, and operating systems in the Windows Server 2003 family. The WMI service runs WinMgmt.exe and related dynamic-link libraries (DLLs) from the %Windir%\System32\Wbem directory. In Windows XP and operating systems in the Windows Server 2003 family, the WMI service runs as part of a Svchost service. Using WMI Control, you can back up the repository, control logging, and configure elements of WMI. The CIM Repository is a database for static WMI data and object definitions. The CIM Repository is stored in the CIM.rep file in the %Windir%\System32\Wbem\Repository directory or in files in the Repository\FS directory for Windows XP and later operating systems. The CIM Repository is built during WMI setup from Managed Object Format (MOF) files, such as CIMwin32.mof, that are found in the %Windir%\System32\Wbem directory. With the exception of Advanced Client settings, the CIM Repository does not contain data. It mostly contains definitions. Most of the data is retrieved dynamically and is therefore only accurate at the time that you ask for it. The classes that are defined to use providers specify which provider to use and supply sufficient details for the provider to get the data. When WMI receives a request for data, it checks the class definition for the details and then asks the relevant provider to get the data from the system. Other possible directories in the %Windir%\System32\Wbem directory tree are: u u u AdStatus for the trust monitor provider. Logs see the WMI Troubleshooting Techniques section later in this appendix. Mof MOF files placed in this directory are automatically compiled. Those that are successfully compiled are placed in a subdirectory named Good. Those that fail to compile are placed in a subdirectory named Bad. Using this directory is discouraged.
u u u
Performance for the high-performance provider. Snmp for the SNMP provider. Xml for files to support XML extensions to WMI.
Providers can be implemented as separate DLLs, in DLLs with other functions, or in an application executable file. They can operate in the context of the WMI service or the application. Providers can be located in any directory. If installed, the WMI SDK files can be found in the \Program Files\WMI directory. Common WMI file types and file name extensions are: u u .mof for Managed Object Format files. For more information, see the Using MOF Files section later in this appendix. .mfl for MOF localization files.
You can connect to WMI on any computer on your network that has WMI installed, if the security configuration on that computer allows it. You can remotely connect to WMI by using the Distributed Common Object Model (DCOM) protocol, which uses the remote procedure call (RPC) protocol, which in turn uses TCP/IP. The WMI registry tree is HKLM\Software\Microsoft\WBEM. Internal components of WMI include: u u u The event subsystem processes WMI events. The Framework the core providers including the Microsoft Win32 provider. Connection proxy facilitates connections between WMI-based applications and WMI using DCOM.
For computers running Windows XP or operating systems in the Windows Server 2003 family, WMI providers are loaded into one or more processes running WMIPrvse.exe. The providers provide the same functionality as before, but they do it in a more secure and reliable manner.
Figure B.2 Simplified WMI Object Model relationships between the WMI locator, service, properties, methods, qualifiers, and other objects
Locator
Service
Events
Objects
Qualifiers
Properties
Methods
Figure B.2 is simplified in that it does not include all the elements of the WMI Object Model, such as object paths, named value sets, event sinks, and other less commonly used elements. Scripts commonly use the elements illustrated in Figure B.3. Other elements of the WMI Object Model can be used in scripts but they are all used in the context of the elements illustrated. For more information about the WMI Object Model, see the WMI SDK. The elements of this simplified WMI Object Model are: Locator Used to connect to the WMI service on a computer. Service object Used to connect to the WMI service on a computer and is the main point of contact to WMI for programs. Objects Fundamental representations of computer elements and are used by WMI and your scripts to identify to providers which specific elements that you want manipulated. Events Changes to WMI objects. Events can be captured as objects and then manipulated in the same ways that any other objects, except that they cannot be changed or saved in WMI. Properties Supplies descriptive or operational information about an object. For example, a Win32_DiskDrive object includes a property called InterfaceType, which might have the value of IDE for your C: drive. Properties can also be set to particular values, if the property is changeable. Setting InterfaceType to SCSI is not appropriate, because the only way to change the actual interface type is to replace the controller card. However, you can set a share name to a different value.
Methods Actions that you can execute on objects. For example, a Win32_Directory object includes a method called Compress() that allows the contents of a folder to be compressed in the same way as can be done by using the Windows graphical user interface. Qualifiers Characteristics of objects, properties, and methods. For example, a qualifier for a property might indicate that it is read-only, or it might list the allowable values for the property. A qualifier for an object might be that it is read-only. For examples of scripts that use the WMI Object Model to access SMS data, see Appendix C, Scripting SMS Operations.
WMI Schemas
While the WMI Object Model defines how programs work with WMI, the WMI schemas define the actual implementation of WMI objects. Consider an analogy of a driving manual versus a map. A driving manual explains the techniques of driving a car, whereas a map illustrates where the destinations are and how to get to them. The driving manual is analogous to the object model, while maps are analogous to schemas. Understanding WMI schemas allows you to understand the relationships among the objects that WMI manages. Part of a WMI schema is illustrated in Figure B.3. In this case, specific types of network adapters are defined by extending a general definition of network adapters (CIM_NetworkAdapter).
Other_NetworkAdapter ProductName: STRING AdapterType: STRING MACAddress: STRING ServiceName: STRING Manufacturer: STRING Installed: BOOLEAN Index: UINT32 MaxNumberControlled:UINT32 TimeOfLastReset: DATETIME
CIM_EthernetAdapter AlignmentErrors: UINT32 CarrierSenseErrors: UINT32 DeferredTransmissions: UINT32 ExcessiveCollisions: UINT32 FCSErrors: UINT32 FrameTooLongs: UINT32 InternalMACReceiveErrors: UINT32 InternalMACTransmitErrors: UINT32 LateCollisions: UINT32 MaxDataSize: UINT32 MultipleCollisionFrames: UINT32 OctetsReceived: UINT64 OctetsTransmitted: UINT64 SingleCollisionFrames: UINT32 SQETestErrors: UINT32
WMI objects are described by classes, providing definitions of their properties, attributes, and other information. These classes are organized into an inheritance hierarchy supporting object associations and grouped by areas of interest, such as networking, applications, and systems. Each area of interest represents a schema, which is a subset of the information that is available about the managed environment. The Desktop Management Task Force defines a standard schema for WBEM called the CIM schema. This schema is implemented as the Cimv2 namespace in WMI. The CIM schema, in the form of the core and common models, provides a conceptual architecture for a managed environment. It is a framework of organizing principles that can be used by schema designers to understand and analyze the information requirements of management applications. The common model is represented by a set of abstract and concrete classes that define the basic characteristics of systems, networks, applications, and various groupings of statistical and other computer management-related data. Some important concepts to understand about WMI schemas are: Namespace Contains classes and instances. Namespaces are not physical locations; they are more like logical databases. Namespaces can be nested. Within a namespace, there can be other namespaces that define subsets of objects.
Class A definition of objects. Classes define the properties, their data types, methods, associations, and qualifiers for both the properties and the class as a whole. Instance A particular manifestation of a class. Instances are more commonly thought of as data. Because instances are objects, the two terms are often used interchangeably. However, instances are usually thought of in the context of a particular class, whereas objects can be of any class.. MOF Managed Object Format. MOF file A definition of namespaces, classes, instances, or providers; but in a text file. For more information, see the Using MOF Files section later in this appendix. MOF compiling Parsing a MOF file and storing the details in the WMI repository. CIM Common Information Model. For more information, see the Desktop Management Task Force Web site at http://www.dmtf.org/standards/standard_cim.php. Association A WMI-managed relationship between two or more WMI objects. You can extend a schema by adding new classes and properties that are not currently provided by the schema. For information about extending the WMI schema, see the WMI Tutorial at http://www.microsoft.com/downloads/release.asp?ReleaseID=12570.
Several tools are available that allow you to browse or manipulate WMI data: u u u u u
These tools can also be used to manipulate WMI data, execute methods and queries, and perform other WMI functions. Browsing is just the most common use.
Caution
The browsing tools can be used to delete or modify classes and instances. However, deleting or modifying SMS classes and instances can result in the loss of valuable data and cause SMS to function unpredictably. Deleting SMS classes can cause tools that use the SMS Provider, such as the SMS Administrator console, to not work.
CIM Studio
The easiest tool for browsing WMI is CIM Studio. CIM Studio is available as part of the WMI tools, which are available from the Microsoft Web site at http://msdn.microsoft.com/downloads/.
After you install the WMI SDK, you can start CIM Studio from the WMI SDK program group. CIM Studio prompts you for the name of a namespace. If you are not sure which namespace to use, you can click Browse for Namespace. An explanation of how SMS uses WMI namespaces is listed in the How SMS Uses WMI section earlier in this appendix. In the Browse for Namespace dialog box, click Connect, and then click OK. After selecting a namespace, a window appears. The left pane is the class explorer, which you can use to browse the class names. The right pane is the class viewer, which shows the properties of the currently selected class. You can also use the Methods tab to display the methods that are available for the class. Table B.2 lists the commonly used buttons and icons for WMI CIM Studio. Table B.2 Commonly Used CIM Studio Buttons
Button Function Search for Class most classes are intuitively named, so you can search for a class that includes what you are looking for in the name. For example, if you need a class that gives memory details, search for the word memory. Browse for Namespace if you decide that this namespace is not what you need, you can go back and browse for a more appropriate namespace. Instances if the class looks promising and you want to see some actual data, you can use this button to see instances of the class. WQL Queries if the class has many instances, or if you only want to see particular instances, you can use this button to run a query. Help for class many classes include descriptive text that describes the purpose of the class and its properties and methods. The details provided for the methods include any parameters that the methods can use. Help full details about CIM Studio. Note that it must be double-clicked.
CIM Studio also includes the MOF Generator Wizard, which can save the definition of WMI objects as MOF files. If the objects are not computer-specific, the MOF files that are created by the MOF Generator Wizard can be transferred to another computer and compiled there to make the objects available on that computer as well.
WBEMTest.exe
WBEMTest.exe is included on every computer that has WMI installed. You can use it to quickly explore or confirm WMI details. However, WBEMTest.exe is only designed to be a support tool and has little support for browsing classes or instances. On computers running Windows XP and operating systems in the Windows Server 2003 family, Help is available for WBEMTest.exe by clicking Help.
The WMI infrastructure is accessible as you use WMIC through intermediate facilitators called aliases. Aliases are used to capture the features of a WMI class that are relevant to some specific task, such as disk or network administration. Aliases can be used to provide better names for WMI classes, properties, and methods or to arrange properties in useful output formats. The output formats can include specific property values or be formatted in a manner that is appropriate to some specific presentation strategy or function. For example, an alias might have a BRIEF format that lists only property values that are essential for the identification of the objects visible through the alias. Management data is retrieved in XML format and processed by built-in or custom XSL output formats.
WMIC includes Help at the command line. At any level you can type /? and get additional details. By itself, /? provides the available global switches and the aliases that are available in the current role. When used after an alias, /? provides the verbs and switches available for that alias. After a verb, /? provides the details for that verb. For example:
wmic:root\cli /?
Provides a list of the syntax and available aliases, including the process alias.
wmic:root\cli process /?
Displays options that are available for the process alias. For more information about WMIC, see the Windows XP Help or the Help in the Windows Server 2003 family. To use WMIC with SMS, try commands such as:
wmic:root\cli wmic:root\cli wmic:root\cli wmic:root\cli /namespace:\\root\SMS\site_MSO PATH SMS_Collection PATH SMS_R_System.LastLogonUserName=PTHOMSEN /namespace:\\root\cimv2
The last line is necessary to return WMIC to its normal namespace, as used in the predefined WMIC aliases.
Managing WMI
You might want to manage WMI to: u u u u u Manage WMI setup and upgrade. Use WMI management tools. Back up WMI data. Control WMI security. Use MOF files.
WMI Control is the primary tool for managing WMI. It can be used to control WMI logging, execute WMI backups and restores, and control WMI security. On computers with WMI 1.5 or later (including computers running Windows 2000, Windows XP, or the Windows Server 2003 family), you access WMI Control by opening the Computer Management console.
The Computer Management console can also be opened by right-clicking the My Computer icon and clicking Manage. On computers with WMI earlier than version 1.5 (possibly including computers running Windows 95, Windows 98, and Windows NT 4.0), WMI Control can be found in Control Panel (or you can run Wbemcntl.exe from the %Windir%\System32\wbem directory). This version of WMI Control does not manage WMI security. You must manage WMI security by running Wbemperm.exe from the %Windir%\System32\wbem directory.
To make the contents of a MOF file effective (by placing them in the CIM Repository), the file must be compiled. MOF files are usually automatically compiled during the installation of the systems with which they are provided, but you can also compile MOF files by using the MOF Compiler (Mofcomp.exe). The MOF Compiler is available in the %Windir%\System32\wbem directory. You must specify the MOF file as the parameter of the MOF Compiler. You can also specify an Autorecover switch if you want the MOF file to be automatically recompiled if the CIM Repository ever has to be automatically recovered. For more information, type Mofcomp /? at the command prompt. Another tool that you can use to manage WMI is Winmgmt.exe. This tool is located in the %Windir%\System32\wbem directory. For a list of the available switches, type WinMgmt /? at the command prompt. Table B.3 WinMgmt.exe Switches
Switch /kill Description Causes all instances of WMI to stop. Comment Use NET START Windows Management Instrumentation to restart WMI, or restart the computer. Only needed if the WMI service registry entries are corrupted. Only needed if the WMI service registry entries are corrupted. If you do not specify a path for the file, it is put in the %Windir%\System32 directory.
Invokes self-registration. Removes the registry entries. Backs up the repository. A file must be specified. Restores the repository. A file must be specified. The flag must be 1 to disconnect users prior to the restore, or 0 to restore only if no users are connected.
Registers the computers Only needed if the performance monitor performance libraries with WMI. WMI classes are not returning reliable results. PID is the process ID for the WMI service. Clears prior /resycperf information from the registry. Only needed if the performance monitor classes are not returning reliable results.
/clearadap
Usually, WMI has more than 600 classes. Using the scripts in the Verifying the State of the CIM Repository section later in this appendix, you can determine how many classes are in your CIM Repository. If you have significantly fewer than 600 classes, then a restore or recovery of the repository might be appropriate. If you do not have a recent backup of the CIM Repository to restore, you should avoid deleting it. While it is true that WMI can automatically recover much of the CIM Repository, you will lose instances and customizations that are not included in the automatically recovered MOF files. Because you might have several management applications or operating system subsystems that rely on WMI, deleting the CIM Repository might fix errors for one but cause problems for another. If the CIM Repository does not automatically recover when it should (for example, when the CIM Repository becomes corrupted and WMI restarts), you can try to force an automatic recovery of the CIM Repository by using the command Regsvr32 wbemupgd.dll (from the %Windir%\System32\Wbem directory). If this does not work, you can also try the command Rundll wbemupgd.dll, RUNDLLENTRY. These commands should force WMI to automatically recompile the MOF files that were compiled with the Autorecover option.
WMI also has its own layer of security. Prior to WMI version 1.5, which shipped with Windows 2000, WMI security only controlled who could access and manage WMI. Anyone that could access or manage part of WMI could access all of it. With version 1.5 and later, WMI security is controlled at the namespace level. For example, you can allow some administrators to obtain SQL Server details from WMI by using the SQL Server namespace and allow other administrators obtain Microsoft Exchange details by using the Exchange namespace. WMI security is controlled by using WMI Control or Wbemperm.exe, as described in the Using WMI Management Tools section earlier in this appendix. Users with administrator privileges on the computer do not have to be added to WMI security they always have full access to WMI.
One of the most powerful uses of MOF files with SMS is to extend SMS inventory collection. This is typically done by editing the SMS_def.mof file. For more information, see Chapter 2, Collecting Hardware and Software Inventory. The WMI SDK provides complete details about the syntax of MOF files. The following MOF example illustrates a typical (though simple) MOF file. The highlights are: u Lines between braces ({ and }) are part of a single definition. Some WMI elements can be defined in a single line (properties, for example), but others that require multiple lines for a definition (classes, for example) are defined within braces. The name and type of the definition immediately precedes the first brace. Lines between brackets ([ and ]) are qualifiers that apply to the definition that follows it. Qualifiers can apply to the entire class or instance, or they can apply to particular properties. The placement of the qualifier determines which level it affects. The #pragma lines are instructions to the MOF Compiler. Usually, these lines specify which namespace should be used. That namespace will be used for all definitions until the next #pragma line. If a provider is required by a class or instance definition, it must be defined in the MOF file prior to the definition of the class or instance. The details for defining the provider will be included with the documentation that is provided with the provider (or the product that the provider is part of).
#pragma namespace("\\\\.\\root\\cimv2") // Instance provider instance of __Win32Provider as $InstProv { Name = "RegProv" ; ClsId = "{fe9af5c0-d3b6-11ce-a5b6-00aa00680c3f}" ; }; instance of __InstanceProviderRegistration { Provider = $InstProv; SupportsPut = TRUE; SupportsGet = TRUE; SupportsDelete = FALSE; SupportsEnumeration = TRUE; }; [dynamic, provider("RegProv"), ClassContext("local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\ CurrentVersion\\Hotfix") ] class HotFixes
(continued)
(continued)
{ [key] string QNumber;
[PropertyContext("Installed")] uint32 Installed; }; #pragma namespace("\\\\.\\root\\cimv2\\sms") [SMS_Report(TRUE), SMS_Group_Name("Hotfixes"), SMS_Class_ID("MICROSOFT|HOTFIXES|1.0")] class HotFixes : SMS_Class_Template { [SMS_Report(TRUE),key] string QNumber; [SMS_Report(TRUE)] uint32 Installed; };
Troubleshooting WMI
Problems with WMI fit into the following categories: u u u u Installation Connectivity Resource consumption Programming (usage)
By using some common WMI troubleshooting techniques and verifying the state of WMI, you can put any WMI problems you have in one of these categories. The following sections help you to do that and discuss common problems and solutions.
2.
If the management application or script is running successfully but very slowly or it is causing WMI to consume excessive resources on the computer, see the Resource Consumption Issues section later in this appendix. Ensure that WMI is installed. Verify that the %Windir%\System32\WBEM directory exists and that it contains WinMgmt.exe. For more information, see the Installation Issues section later in this appendix. Connect to WMI by using a WMI browsing tool. If you cannot connect to WMI, see the Connectivity Issues section later in this appendix. Review WMI security by using WMI Control (or Wbemperm.exe for earlier versions of WMI). Ensure that the accounts that are used by your management application are able to access WMI and the namespaces that are used by that application. Use a WMI browsing tool to browse the namespace that is used by your management application. You should be able to find the relevant classes and see instances of data that should be available. If classes are missing, you might have to recompile the MOF files for the management application or reinstall the management application. If instances are missing, troubleshoot the provider for the system that is being managed (the Exchange Provider, for example) and the system itself. Review the logs that are available in the %Windir%\System32\wbem\logs directory. The logs are described in Table B.4. Use WMI Control to enable verbose logging. Reproduce the problem and review the logs again. Set WMI logging back to normal after you complete this step. If the problem might be provider-specific, enable provider logging. In addition to default WMI logging, you can enable provider logging by changing the Logging or Level values in the following registry tree: HKLM\Software\Microsoft\WBEM\Providers\Logging
3.
4. 5.
6.
7. 8. 9.
10. If you think that the CIM Repository might be corrupted, verify that it has a normal complement of namespaces, providers, and classes. For more information, see the Verifying the State of the CIM Repository section later in this appendix. If this confirms that the CIM Repository is corrupted, see the Backing Up WMI Data section earlier in this appendix. 11. For additional solutions to your problem, see the Microsoft Knowledge Base at http://support.microsoft.com. 12. If a later version of WMI, DCOM, or the operating system (even a service pack) is available, apply that upgrade. 13. Contact Microsoft Product Support Services.
Note
The WMI logs might have a file name extension of .lo_. This is the previous version of the log. When the logs grow to a specific size, the log is renamed with the .lo_ file name extension and a new log is created for new entries. Any previous log with the .lo_ file name extension is overwritten.
(continued)
(continued)
Sub GetNamespaces(Path, Level) Set WbemServices = loc.ConnectServer( , path ) Set Namespaces = WbemServices.ExecQuery("Select * From __Namespace") For Each Namespace in Namespaces Wscript.Echo Space(5*level) & Namespace.Name GetNamespaces path & "\" & Namespace.Name, Level+1 Next End Sub
Your computer might have many providers defined, often in multiple namespaces. To identify each unique provider, the output from the previous script can be piped to the SORT command and directed to a text file for easier reading. This can be done with the following command:
Providers | Sort > Temp.txt
The following script provides a count of all the classes in each namespace:
'ClassCounts.vbs Set loc = CreateObject("WbemScripting.SWbemLocator") GetNamespaces "root", 0, "root" Sub GetNamespaces(Path, Level, NamespaceName) Set WbemServices = loc.ConnectServer( , path ) Set classes=WbemServices.SubClassesOf WScript.Echo Space(5*Level) & NamespaceName & ": " & classes.count Set Namespaces = WbemServices.ExecQuery("Select * From __Namespace") For Each Namespace in Namespaces GetNamespaces Path & "\" & Namespace.Name, Level+1, Namespace.Name Next End Sub
Installation Issues
If all your WMI-based applications or tools do not work at all, it is possible that WMI is not properly installed. If the installation of the application or tool gives errors messages indicating that it cannot compile several MOF files, there is also a strong possibility that WMI did not get installed. If you think that WMI might not be properly installed on the computer, check for the existence of the \WINNT\SYSTEM32\WBEM directory. If it is not there, WMI did not get installed during the installation of the operating system or management application (such as SMS). You can manually install the WMI core (as opposed to the WMI SDK). WMI is available for download from the Microsoft Web site at http://www.microsoft.com. Even if the WMI installation continues to fails, it might display error messages that help you correct the underlying problem.
Connectivity Issues
If a WMI-based application or tool does not work at all, it is possible that you cannot connect to WMI. This is especially true if you have verified that WMI is installed. You should ensure that the WMI service is started. Also, ensure that DCOM and networking are enabled on the computer and working properly. Use WMI Control (or Wbemperm.exe on earlier versions of WMI) to confirm that you have security permissions to access WMI and the namespace that you require.
Note
On computers running Windows XP or an operating system in the Windows Server 2003 family, the WMI service is run in a Svchost process.
The most common cause of WMI resource expenditure issues are WMI providers not running as designed. This is especially true for non-standard providers. Check to see if there are any known problems with the non-standard providers that are installed on your computer. A later version of the provider might be available. Another common cause of WMI resource consumption issues is queries run against the CIM Repository. If the queries request a large amount of data or are poorly formed, WMI can use considerable resources to return the results. Queries built into your management application should be well tested so that they do not cause problems. However, any custom queries that you or other administrators have created might cause this problem. Also, resource consumption will be high if your queries are not run asynchronously. Providers do not always run in the context of WinMgmt.exe. This is especially true with Windows XP and operating systems from the Windows Server 2003 family. If you suspect that a process consuming excessive resources might be running a WMI provider, you can use Tlist.exe (with the process identifier as the parameter) to list the DLLs that are loaded in that process. If you suspect a specific provider, you can use Tlist -m providerDLLname to determine which process it is running in. Tlist is part of the Windows 2000 Support Tools, which is available on the Windows 2000 product CD. Providers.vbs, shown in the Verifying the State of the CIM Repository section earlier in this appendix, lists the DLL for each provider.
Programming Issues
If an error is displayed while you are using an SMS script or tool, the error might include WMIrelated details, such as an error code or number. Table B.5 lists the most common WMI errors. The description for each error might give you a better understanding of the problem so that you can correct the underlying cause. For less common WMI error messages, see the WMI SDK.
WBEM_E_INVALID_QUERY WBEM_E_INVALID_QUERY_TYPE
0x80041017 0x80041018
u u u u
A P P E N D I X
Like any system, using Microsoft Systems Management Server (SMS) 2003 extensively often requires performing numerous tasks many times. Most SMS tasks are usually performed by using the SMS Administrator console. However, you can write simple scripts to perform almost any SMS task. These scripts can then be repeated frequently or extended to work with many sites at once. Or, the scripts can run from features such as Scheduled Tasks in Microsoft Windows 2000. This removes the need for an SMS administrator to be available when the task is required. Such scripts can save a lot of manual effort and can even make some things possible that would not otherwise be possible. Using your imagination, a reasonable understanding of SMS, and the scripting details presented in this appendix, you can manage SMS more efficiently and create solutions to better serve your organizations needs. This appendix includes many practical examples, but these examples are only a small fraction of the possible solutions. You do not have to be a programmer to write scripts. Programming skills can help, but simple scripts can be fairly intuitive for anyone. Using sample scripts (provided in this appendix and elsewhere), you can often accomplish tasks with only minor changes to the sample scripts. As you become more comfortable with scripting, your scripts can become more sophisticated. The following are possible situations in which scripting SMS operations is useful: u You have many sites in your SMS hierarchy and it is too tedious and error-prone to manually make changes to all the sites. It is also time-consuming to verify the settings on all sites. You are frequently creating, modifying, or removing SMS objects such as collections, advertisements, packages, queries, site systems, or reports. You have special needs when using SMS that are awkward or impossible for an SMS administrator to do with the SMS Administrator console or the available SMS tools. You have a task that must be completed for some of your SMS administrators, but it requires privileges that you do not want to give to those administrators and it would be inconvenient for administrators with privileges to do it for them. In this case, you can set up a scheduled task to routinely do the task while running with a privileged account.
u u u
Scripts also have the benefit of being compact and are therefore easy to transfer and edit. They can be used with scheduling services, alert systems, and similar systems that can invoke scripts. You can even use SMS to run the scripts that automate your SMS operations. When you have fully debugged your scripts, there is no risk of error. An administrator creating objects might type or select values incorrectly, but a fully debugged script does it correctly every time.
In This Appendix
u u u u u u u u u u Understanding Scripting Getting SMS Objects Working with SMS objects Working with SMS Site Settings Scripting Console Operations Scripting Client Operations Debugging Scripts Using Scripts on Web Pages Understanding Support Implications of Scripted Solutions Learning More
For information about creating scripts that can be used with SMS software distribution, which is not discussed in this appendix, see Chapter 5, Distributing Software, and Chapter 7, Creating Software Installation Packages with SMS Installer. For information about the scripting of SMS site setup, which is also not discussed in this appendix, see Chapter 15, Deploying and Configuring SMS Sites, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Understanding Scripting
At the most fundamental level, SMS scripting is just a matter of creating a text file that includes a sequence of commands. When the script is ready, the file is executed in a scripting environment and (if the script is written correctly) the operation is performed. A crucial first step for an SMS script is to connect to Windows Management Instrumentation (WMI). For information about WMI, see Appendix B, Windows Management Instrumentation. SMS tools are almost always written to use the SMS Provider, which is a WMI provider and is the only way to ensure that SMS object security is enforced. Using the SMS Provider is also the only supported means to manage SMS. The SMS Administrator console uses the SMS Provider. SMS scripting can be done in a variety of environments and languages. Any scripting environment that you can use to script WMI operations, you can use to script SMS operations. Many administrators find Windows Script Host (WSH) to be a readily available, easy-to-use, and powerful scripting environment. WSH is included with Microsoft Windows XP, all operating systems in the Microsoft Windows Server 2003 family, and Windows 2000 and is available for Microsoft Windows NT 4.0, Windows 95, Windows 98, and Windows Millennium Edition. On computers with WSH, you can use a scripts full file name (and path, if necessary) as a parameter to the Cscript or Wscript commands, which are respectively console-oriented and window-oriented implementations of WSH. On computers running Windows XP, all operating systems in the Windows Server 2003 family, or Windows 2000, you do not have to use the Cscript or Wscript commands. To invoke your script, double-click the Cscript or Wscript command and enter the file name of your script (even without the file name extension) at the command prompt.
Note
Scripts are often written to display output at the command line. However, by default, WSH displays its output by using message boxes when you invoke scripts by double-clicking them or by entering the script file name at the command prompt. To change the default to command-line oriented output in those circumstances, use the command Cscript //H:Cscript.
WSH can support a variety of languages, including Microsoft Visual Basic Scripting Edition (VBScript) and Microsoft JScript. VBScript scripts have the .vbs file name extension. VBScript is like any other scripting language, except that it also allows interfacing to Common Object Model (COM) objects, which are available for a large number of systems. Using COM objects, your scripts can work not only with WMI (and systems that it supports, such as SMS) but also with other systems that have scripting objects, such as Active Directory directory services, Microsoft Exchange, and Microsoft SQL Server. Other environments that support the WSH languages are Dynamic HTML (DHTML) Web pages, Active Server Pages (ASP) Web pages, Visual Basic for Applications (VBA), as found in Microsoft Excel, and Visual Basic. With just a few changes, your SMS scripts can be adapted to work in each of these environments.
WSH scripting usually involves working with objects. This does not require an extensive familiarity with object-oriented programming. However, a familiarity with some object-oriented programming concepts, such as those listed in Table C.1, can help. Table C.1 Key Object-Oriented Programming Concepts
Concept Object Property Description A data element (like a variable), which has properties and methods. A value that applies to an object. For example, collections have name and comment properties (among others). For each collection object, you can see or set its name and comment. A function that does something relevant to an object. For example, for a process object, a method might be create, which creates processes. Using the create method, you could create a process that runs Notepad.exe. Many operations can be performed on objects by using standard scripting and WMI techniques. However, for complex operations, methods are often available. A property that can be used to search for a specific object. For example, the SMS_Collection has a key property called CollectionID. If you have a collection identifier value, you can use it with the CollectionID key property to quickly find a specific collection, which is returned to your script as an object.
Method
Key property
Your scripts will frequently work with WMI objects. In particular, the WMI objects will usually be SMS objects. WSH also has some objects of its own, particularly Wscript (with methods like Echo and Quit). Wscript.Echo is commonly used to display the value of properties. Wscript.Quit can be used to end the execution of a script; otherwise, scripts continue until the last line is executed. Wscript also has some classes that can be used to create objects. For example, your script can create an object from Wscript.Network that is used to collect details about the networking environment in which the script is running. This is shown in Sample C.9.
Writing Scripts
To write scripts, you have to be familiar with the syntax of the language in which you are planning to write the scripts. This is best accomplished by reading a book on the subject. However, you might be able to learn scripting by modifying samples to serve your purpose. Because most programming languages have an English-like syntax, you might be able to discern the meaning of the lines by just reading them if you are comfortable with English. For more information, see the Learning More section later in this appendix.
Important
As with other SMS tasks, you should test your scripts in a test environment before deploying them in your production environment. This prevents unexpected results from adversely affecting end users.
2.
3.
4.
5.
6.
7.
8.
9.
Thoroughly test the script in your test environment. Verify that the script completely reproduces the changes that you observed in step 2. Test the script with a range of reasonable parameters to ensure that it behaves as expected. Test the script with invalid parameters and any other variations in sequence or environment that might be relevant to ensure that it rejects invalid parameters in a friendly manner and cannot do anything adverse. Have coworkers use the script to see if it works properly. Adjust the script until it safely does exactly what you require.
10. Test your script in a production environment. Start with a small, less significant site if you can and scale up your testing as you become confident that it is working exactly as you intend. 11. Put the script into production. This can include ensuring that all relevant details are documented for future reference and that all relevant co-workers and managers are aware of the script that you have implemented.
Caution
Your scripts manipulate SMS objects rapidly and directly, probably without human supervision. Under these circumstances, your scripts might do things that an SMS administrator would not do. For example, the SMS Administrator console checks for reasonable values (for example, that a collection has a unique name), but your script does not make such a check unless you add code to the script to do so.
2.
In this example, because you have a script that is close to what you require, you do not have to remove any of the scripts contents. 3. If you are working on the site server, the only thing you have to change is the site code. Change B2K to the site code for your test site server (and change it to the value for your production site server when the script is ready for production). If you are working on a computer other than a primary site server, change the second line to include the primary site server name and possibly a user name and password, such as shown in the following example.
Set WbemServices = loc.ConnectServer( "servername", "root\SMS\site_B2K" "username", "password" )
4. 5.
Save the file again. In the SMS Administrator console, look for the All Windows NT Systems collection, and then verify that you have a collection with this exact name. (Testing should always include verifying the state of the object before the script is run.) Click the Start button, point to Programs, point to Accessories, and then click Command Prompt. At the command prompt, type Cscript C:\First.vbs. If there are any errors, correct them, save the file, and go back to step 6. In the SMS Administrator console, click Refresh.
6. 7. 8. 9.
10. In the SMS Administrator console, look for the All Windows NT Systems collection. The name should now include (any version, any type). If it does not, correct any errors, save the file, and go back to step 6. Errors at this level are less obvious than the errors in step 10. They are either errors in the logic of the script (as opposed to its syntax) or problems outside of the script that prevent SMS from working properly. 11. If you are working on a computer running Windows 2000, Windows XP, or any operating system in the Windows Server 2003 family, you can try running the script by doubleclicking it in Windows Explorer or by just entering the file name at the command prompt. This second execution of the script will not change the collection name (unless you write another script to change the collection name back to normal and run that script first). It will, however, allow you to see that scripts can be run from places other than the command prompt.
Note
If the site that you are testing in is a child site, the collection name in this example will be overwritten the next time the parent site sends an update for the collection.
Developing Scripts
The following are some advanced techniques that you can use to develop scripts: u u Browse current instances (using CIM Studio, for example) to see what the data should look like, what methods are available, and what class associations might be important. If the script is going to be complex, and especially if you do not have a close sample to start with, start the script development in Visual Basic to work out the details and the bugs. You can translate the script to VBScript later, if desired. In Visual Basic, you do not have to switch between your editor, run-time environment, and debugger, because Visual Basic serves all of these roles., Use CIM Studio to see the details of the objects that you create or manipulate. If objects that you create or change in a script cannot be seen in the SMS Administrator console, but you can find them in WMI by using a tool like CIM Studio, your script might be missing details that the SMS Administrator console requires. For example, collections require a pointer to the collections. For more information, see the Collection Creation Example section later in this appendix. Review relevant documentation, such as the Microsoft Systems Management Server 2003 Software Development Kit, for detailed information about subtle concepts related to SMS scripting. For a list of SMS resources, see the Learning More section later in this appendix.
u u
Add Set WbemServices = loc.ConnectServer( , "root\SMS\site_<site code>") (add the server name as the first parameter and the user name and password as the third and fourth parameters (if necessary) if the script will run from a computer other than the site server). Wherever you need variables for the WMI objects, include Dim SWbemObject (or SwbemObjectSet).
<variable name> as
6.
The Visual Basic program is now ready to work with WMI, and thus with SMS objects. Examples from this appendix can be used in the program (except that the lines to create a locator and connect to the WMI server do not have to be included).
If you are going to take advantage of Wscript classes (such as (like Wscript.Network or Wscript.Shell) in your scripts, add a reference for Windows Script Host Object Model and use it like the locator (for example, Dim X as New IWshNetwork_Class). If you created the program in Visual Basic and want to translate it to VBScript (so that it can be used wherever scripts are used), use the following procedure.
The line that was added in step 5 of the previous procedure stays the same. Change lines that were added in step 6 to Dim
<name>
Where appropriate, translate any logic that outputs values (by adding them to list boxes, for example) to use Wscript.Echo instead. Where appropriate, add lines to create any objects that your Visual Basic program references, such as:
Dim x As WshNetwork Set x = New WshNetwork
Connecting to WMI
The first thing that your scripts will have to do is connect to WMI, which is shown in Sample C.2. Sample C.2 Connect.vbs the part of a script that connects to WMI
Dim Set Dim Set loc loc = CreateObject( "WbemScripting.SWbemLocator" ) WbemServices WbemServices = loc.ConnectServer( ,"root\SMS\site_B2K" )
Only the fourth line ever changes. The B2K value is the site code of a primary site and it varies depending in which site you are running your script. When the fourth line includes only the second parameter (root\SMS\site_<sitecode>), the script is intended to run on the site server. WMI does not accept any other parameters on that line when the script is run on the site server. If you want to run your script from another computer (an SMS Administrator console, for example), your script still has to connect to the site server. However, to do that, the fourth line has to include a server name as its first parameter, as follows:
Set WbemServices = loc.ConnectServer( "servername", "root\SMS\site_B2K")
When connecting remotely, you can also specify a user name and password, as follows:
Set WbemServices = loc.ConnectServer( "servername, "root\SMS\site_B2K", "username", "password")
If you need to specify a domain for the user name, the line changes as follows:
Set WbemServices = loc.ConnectServer( "servername, "root\SMS\site_B2K", "domain\username", "password")
Because the lines in Sample C.2 are used in all scripts in this appendix (except where otherwise noted) and they do not vary dramatically, some of the scripts in this appendix do not include these lines. WMI supports multiple models for connecting to WMI from scripts. These models include the moniker and moniker session models, which allow you to connect to WMI by using fewer lines of code than the model discussed in this section. However, because these models are less flexible, most examples in this appendix do not use them. For more information about those models, see the WMI SDK. For more advanced connection code that eliminates the need for referencing a site code, see the Microsoft Systems Management Server 2003 Software Development Kit.
Note
WMI scripting can be done with several different WMI scripting models. All examples in this appendix use the WMI session model (unless otherwise noted), which is the most flexible model. For more information about WMI scripting models, see the WMI SDK. Also, not all script examples include the lines to create the locator and connect to the server. You can copy these lines from scripts that do have them.
The most common and flexible method to retrieve SMS data in a script is to execute a query, as shown with the following line:
Set Machines = WbemServices.ExecQuery( "Select * From SMS_R_System" )
The query syntax is the same as what is used in the SMS Administrator console, which uses the same WMI Query Language (WQL) syntax. If you need to retrieve a particular instance (not a set of instances), and the value for looking up the instance is contained in a key property, it is faster and more efficient to get the instance (instead of querying for it), as shown in the following line:
Set Machine=WbemServices.Get( "SMS_R_System.ResourceID=5" )
For information about the available SMS classes and their keys, see the Class Schema Reference in the Microsoft Systems Management Server 2003 Software Development Kit. The best way to understand the SMS classes is to browse them, as described in Appendix B, Windows Management Instrumentation. If you cannot use the WMI Get method (because you do not have the value of a key property to find the instance you need), you have to do a query and enumerate the set of returned results and use the details. Sample C.3 shows querying for SMS objects from a Visual Basic program. Sample C.4 is the equivalent WSH script. Sample C.3 Query1.bas a Visual Basic program that uses a query to get SMS objects
Private Private Dim Set WbemServices As SWbemServices Sub Form_Load() loc As New SWbemLocator WbemServices = loc.ConnectServer(, "root\SMS\site_B2K") Dim Machine As SWbemObject Dim Machines As SWbemObjectSet Set Machines = WbemServices.ExecQuery("Select * From SMS_R_System") For Each Machine In Machines MsgBox "Got system " + Machine.Name +": "+ Machine.IPAddresses(0) Next
End Sub
Note
Remember to change the B2K site code in the previous two examples to the site code for your site. Also, the examples are intended to run on the site server itself. If you want to run them remotely, you have to add the server and possibly the user name and password details on the ConnectServer line, as described in the Connecting to WMI section earlier in this appendix.
When returning results in your script, some properties might require special treatment, such as date or array properties. You might have to include code to enumerate the array elements or to parse the date values. The samples in this appendix include examples of how to work with properties. If you are returning more than one class in your query, you must be more specific when referring to the properties. For example, when using the results from Sample C.5, you must refer to the returned properties as Machine.CS.Name and Machine.NW.MacAddress (as opposed to Machine.Name and Machine.MacAddress). Sample C.5 Query2.vbs part of a script to query two classes at once
Set Machines = gService.ExecQuery("Select CS.Name, NW.MACAddress From SMS_G_System_COMPUTER_SYSTEM CS, SMS_G_System_NETWORK_ADAPTER NW WHERE CS.Name='"+ computername +"' AND NW.ResourceID=CS.ResourceID")
Reporting Script
Using a script to get SMS objects can be a powerful form of SMS reporting. Scripts have complete flexibility when manipulating the data that is returned by the queries. You can supplement the data with other sources, do extensive calculations on the data, find complex relationships in the data, and do many other operations on the data that you cannot do using even powerful reporting tools. Also, scripts can retrieve lazy properties, which query and report tools cannot do. For more information, see the Retrieving Lazy Properties section later in this appendix. Formatting the report with many fonts, graphics, and other attractive elements can be tedious in a script, but you can format the script output in such a way that it can be used in a reporting tool where such elements are easily added. For example, you could output the scripts results into a comma-delimited file and then import that file into Microsoft Access for the final formatting. Sample C.6 returns the version of all sites in your SMS hierarchy. Note that the use of recursion produces output that reflects your SMS hierarchy. The multiple IF statements allow you to translate SMS build numbers into meaningful results.
'start with the central site Dim xDescr xDescr="" Level "", 0, xDescr
Sample C.8 shows how to retrieve lazy properties. The assigned schedule properties for advertisements are lazy. Therefore, when querying advertisements, each advertisement instance must be retrieved separately and the assigned schedule properties must be parsed separately. Sample C.8 Lazy.vbs retrieving properties for advertisements, including lazy properties
Set Advertisements = WbemServices.ExecQuery("Select * From SMS_Advertisement") For Each Ad In Advertisements WScript.Echo "ActionInProgress = " & Ad.ActionInProgress WScript.Echo "AdvertFlags = " & Ad.AdvertFlags WScript.Echo "AdvertisementID = " & Ad.AdvertisementID WScript.Echo "AdvertisementName = " & Ad.AdvertisementName 'for the 'lazy' properties, get the advertisements individually Set lazyproperties = WbemServices.Get("SMS_Advertisement.AdvertisementID='" & Ad.advertisementid & "'") WScript.Echo "Assigned Schedule = {" for i=0 to ubound(lazyproperties.assignedschedule,1) WScript.Echo " instance of " & lazyproperties.Properties_("AssignedSchedule").Value(0).Path_.Class WScript.Echo lazyproperties.Properties_("AssignedSchedule").Qualifiers_("CIMType") WScript.Echo " DayDuration: " & lazyproperties.AssignedSchedule(i).DayDuration WScript.Echo " Hourspan: " & lazyproperties.AssignedSchedule(i).HourSpan WScript.Echo " IsGMT: " & lazyproperties.AssignedSchedule(i).IsGMT WScript.Echo " StartTime: " & lazyproperties.AssignedSchedule(i).StartTime WScript.Echo "AssignedScheduleEnabled = " & lazyproperties.AssignedScheduleEnabled WScript.Echo "AssignedScheduleIsGMT = " & lazyproperties.AssignedScheduleIsGMT next WScript.Echo "}" WScript.Echo "CollectionID = " & Ad.CollectionID WScript.Echo "Comment = " & Ad.Comment Next
Advanced Queries
Queries are usually the simplest form of scripting, and because they only return data (rather than changing it), they are also the safest form. However, in some cases queries can be advanced.
Large Queries
When managing large amounts of SMS data, some of the scripts in this appendix should be optimized for efficiency. This is especially true for scripts that query SMS, because queries almost always return multiple instances. The primary method for making scripted SMS operations more efficient is to run them asynchronously. Running the operations asynchronously allows the server to send data to your script in manageable portions, instead of using a large amount of memory on the server to collect all the results before sending them to your script in one large amount. The primary WMI methods have asynchronous versions. For more information, see the WMI SDK. In the case of queries, you can use the ExecQueryAsync method, rather than ExecQuery. Sample C.9 AsyncQuery.vbs executing queries asynchronously
Set service = GetObject("winmgmts:root\SMS\site_MSO") Set sink = WScript.CreateObject("WbemScripting.SWbemSink","SINK_") service.ExecQueryAsync sink, "Select * FROM SMS_Collection" 'make a call or do work that prevents the script from ending before all the events are received. MsgBox "Waiting for instances." Sub SINK_OnObjectReady(objObject, objAsyncContext) WScript.Echo "A collection has been returned: ", objObject.Name End Sub Sub SINK_OnCompleted(iHResult, objErrorObject, objAsyncContext) if iHResult=0 Then WScript.Echo "All collections returned." else WScript.Echo "There was a problem: ", Hex(iHResult) end if End Sub
Limited Queries
Another method for making SMS scripted operations more efficient is to limit the returned results. This ensures that the operations do not use excessive resources if your script has a problem. Limiting scripted operations can also be useful for quick tests. To limit scripted SMS operations, use SMS context qualifiers. For more information about SMS context qualifiers, see the Microsoft Systems Management Server 2003 Software Development Kit. You can specify an InstanceCount qualifier to force the operations to return a limited number of results, as shown in Sample C.10. You can also limit the operations to specific collections by using the LimitToCollectionIDs qualifier, so that only resources in specified collections are used.
Note
You should also set the ApplicationName, LocaleID, and MachineName qualifiers when using SMS context qualifiers. These qualifiers allow you to audit operations in your SMS sites. For security reasons, you might want to set these values even when you are not limiting the SMS operations.
Status Queries
SMS status can be queried from scripts in the same manner that other SMS objects are queried. The Structured Query Language (SQL) statements for the predefined status message queries in the SMS Administrator console can be used as examples for queries that can be run from scripts to return SMS status messages. To query site component or site detail status, you must query the SMS_ComponentSummarizer or SMS_SiteDetailSummarizer class, respectively. For these classes, you must specify both the site code and a tally interval. Tally intervals are values such as 0001128000080008, which returns the status since the site was installed. Other tally intervals can be used, for example, to check the status for the last week. For more information about tally interval values, see the Microsoft Systems Management Server 2003 Software Development Kit.
Assigning a unique identifier to the new object is not a step in the process of creating an SMS object. SMS automatically assigns unique identifiers to objects when they are saved.
To modify an object
1. 2. 3. 1. 2. Get an instance of the object. Adjust the details (properties) on the instance. Save the instance. Get an instance of the object. Delete it.
To delete an object
The first step of each of these operations (getting an instance of an object) was discussed in the Getting SMS Objects section earlier in this appendix. This section discusses how to launch instances, set properties, and delete objects. Later sections discuss specific issues about working with collections, advertisements, and packages, but the same principles can be applied to all SMS objects.
Note
SMS objects are considered to be: u u u u u u u u Collections. Advertisements. Packages (including programs and the distribution points that are used by each package). Security credentials. Queries. Reports. Status queries. Resources. Distribution point groups.
Site details (including site settings, client agents, status filter rules, and site systems) are not considered SMS objects. For information about scripting site details, see the Working with SMS Site Settings section later in this appendix.
Collections
Collections are fundamental to the use of SMS. They are important for software distribution and are often used to find computers when using SMS Remote Tools. Collections can also be used for limiting the scope of queries. Scripting collection operations can ease your use of SMS in many circumstances, including: u u Creating collections automatically. For example, a script could create one collection per site or add resources that are listed in an input file to a collection. Adding resources to a collection that a query could not find. This is especially useful if it takes too long to manually add resources to the collection. For example, a script could add all the users who are in both of two particular Windows NT groups to a collection. Such a script would obtain the members of the Windows NT groups, find the members that are common to both groups, and then add those members to the collection. Setting security automatically. For example, a script could make collections available to everyone in the group, not just to the creators of the collections. The script could be automatically run once every few hours as a Windows task. When you set up the task, you can set it to use an account with sufficient privileges to change collection security. With this task in place, you do not have to give the privileges to the people who create collections (which you might not want to do because those privileges would also allow them to do other functions that you might not want them to do). Determining which collections a computer was assigned to and making another computer a member of those collections. A script that does this would be very helpful when the original computer is replaced. A Web page that could let users request software distributions to themselves. The script would add the users to an appropriate collection that has the package advertised to it.
Creating collections follows the same pattern as creating any other SMS object; get the collections class, launch an instance, set some properties, and then save it. Collections are exceptional, however, in that they also have two subobjects: Collection-to-collection relationships These objects allow collections to have subcollections. Every collection is considered a subcollection to the master collection that the SMS Administrator console uses to display collections. The master collections collection identifier is COLLROOT. This subobject class is SMS_CollectToSubCollect. Collection membership rules Collection membership rules can either be direct assignment rules (specific computers, users, or user groups) or they can be queries. The queries are executed any time the collection is updated and any discovered computers, users, or user groups that meet the criteria of the queries are considered part of the collection. The subobject classes are SMS_CollectionRuleDirect and SMS_CollectionRuleQuery, respectively.
(continued)
Sample C.11 CreateCollection1.vbs creates a collection and adds the user running the script to the collection (continued)
'create the collection relationship 'you could use the VerifyNoLoops method of the SMS_Collection class if you 'want to ensure that you won't create a loop of collections Dim newCollectionRelation Set newCollectionRelation = gService.Get( "SMS_CollectToSubCollect" ).SpawnInstance_() newCollectionRelation.parentCollectionID = "COLLROOT" newCollectionRelation.subCollectionID = newcollectionid newCollectionRelation.Put_ 'determine the current user, as a resource ID Set oWshNetwork=CreateObject("Wscript.Network") username = oWshNetwork.UserName Set Users = gService.ExecQuery("Select * From SMS_R_User WHERE Name LIKE ""%" + username + "%""") For Each User In Users If User.username = username Then ResID = User.ResourceID End If Next 'you might want to handle the contingency of a user that is new to 'the domain and hasn't been added to the list of SMS users yet 'create a direct collection rule for the user we just determined Set CollectionRule = gService.Get("SMS_CollectionRuleDirect").SpawnInstance_() CollectionRule.ResourceClassName = "SMS_R_User" CollectionRule.RuleName = "ResourceID=" & ResID CollectionRule.ResourceID = ResID 'add the rule to the collection Collection.AddMembershipRule CollectionRule If Err.Number = 0 Then Wscript.Echo "You were added to the " + Collection.Name + " collection!" End If End If 'this is the end of the test for a unique collection
Adding a query rule to a collection is similar to adding a direct resource rule, as shown in Sample C.12. In Sample C.12, a different class is used (SMS_CollectionRuleQuery) and a query is added instead of a resource identifier. Also, if you do not want to wait for the collection evaluator to find members that qualify for the collection, you can refresh it from the script by using the RequestRefresh method. This is the equivalent of using the Update Collection Membership menu item in the SMS Administrator console.
Sample C.12 CreateCollection2.vbs a partial script where the collection rule is a query rule rather than a direct rule
sitecode="B2K" 'create a direct collection rule for the user we just determined Set CollectionRule = gService.Get("SMS_CollectionRuleQuery").SpawnInstance_() CollectionRule.RuleName = "All clients that are assigned to site code " & sitecode CollectionRule.QueryExpression = "select * from SMS_R_System where SMSAssignedSites = '" & sitecode & "'" 'add the rule to the collection Collection.AddMembershipRule CollectionRule If Err.Number = 0 Then WScript.Echo "The query was added to the " + Collection.Name + " collection" Collection.RequestRefresh End If
As is the case with the SMS Administrator console, deleting the collection does not result in the members of the collection being deleted. To remove a membership rule from a collection, you use the SMS_Collection DeleteMembershipRule method. You use this method only if you want to remove a specific member from a collection but otherwise want leave the collection intact. Sample C.14 shows how to remove a membership rule from a collection. It also shows how to list membership rules for all collections. Sample C.14 RemoveRule.vbs part of a script to remove a rule from a collection
Set Collections = gService.ExecQuery("Select * From SMS_Collection") For Each Collection In Collections 'collection rules are a lazy property, so we must get them Set Collection=gService.Get("SMS_Collection='" & Collection.CollectionID & "'" ) Wscript.Echo Collection.Name If Not (IsNull(Collection.CollectionRules)) Then Rules=Collection.CollectionRules For Each Rule in Rules Wscript.Echo " ", Rule.Rulename, " type:", Rule.Path_.Class If Rule.Rulename="All client machines that report being assigned to site code " & sitecode Then Collection.DeleteMembershipRule Rule Next End If Next
Deleting Resources
You delete resources (such as computers, users, or user groups) from SMS the same way that you delete SMS objects. You get a resource and then delete it, as shown in Sample C.15. Sample C.15 DeleteResource.vbs part of a script to delete a resource (a user)
Set User = gService.Get("SMS_R_User='" & resourceID & "'") User.Delete_
You can delete all resources in a collection by using the SMS_Collection class DeleteAllMembers method, which is shown in Sample C.16. This is a powerful but dangerous method, so you must use it carefully. You can easily delete all the clients from your SMS database with it. Discovery methods can repopulate the information, but this can take some time and be a considerable workload on your systems and network. Sample C.16 DeleteAllResources.vbs part of a script to delete all resources (not just their membership) in a collection
Set collection = gService.Get("SMS_Collection='" & collectionID & "'") message = "a strong warning message for " & collection.name return=MsgBox( message, vbYesNo, "Delete_Users.vbs" ) if return=vbYes Then Collection.DeleteAllMembers WScript.Echo "All resources for that collection have been deleted." End If
When resources are deleted from SMS, SMS automatically removes all relevant records, such as computer hardware details, software inventory details, and history data. Therefore, your script does not have to clean up that data.
Advertisements
Scripting advertisement-related operations can be useful for many purposes, including: u Automatically advertising new software as it becomes available (antivirus updates, for example). This should be done only with software that comes from a highly trusted source and that does not change dramatically over time. Usually, software should be tested thoroughly before advertising it to end users or production servers. Disabling an advertisement during working hours. Unlocking advertisements that originated at a parent site when a site is removed from its parent.
u u
Scripting with advertisements is similar to scripting with collections. However, because advertisements do not have a hierarchy (with subadvertisements, for example), there is no need for advertisement-to-advertisement relationships. Similarly, advertisements often do not have subobjects like membership rules, though they might have assignments. Therefore, creating advertisements requires only launching an instance, setting properties (including program ID and collection ID), and then saving the instance. However, some of the advertisement properties are complex. These include expiration time and presentation time (PresentTime), if used. These values can also be difficult to calculate.
Creating Advertisements
Sample C.17 shows a script that creates a collection. You specify the package name, program name, collection name, and advertisement name. The package, program, and collection must already exist. For example, you can enter the following:
CreateCollection "Notepad" "RunIt" "All Systems" "Notepad Advertisement 1"
Note
Sample C.17 also includes some date manipulation code. It adds todays date and todays date plus six months into WMI-compatible variables. That code might be useful in any script that requires dates.
(continued)
(continued)
Modifying Advertisements
Sample C.18 changes an advertisement so that it either runs at the times it is assigned to run or ignores those times. Either way, because it is assigned, the users do not see it unless you select the Allow users to run the program independently of assignments property on the advertisement. The advertisement will only run after the assigned times and when the assignments are enabled. This script can be useful if you have an advertisement that you want to force to run at night, but do not want users to run during the day. Usually, SMS does not allow you to set an advertisement to run that way. So, for example, you would create the advertisement with an assignment to run after 7:00 P.M. on the first day and then create a Windows NT Scheduler Task to run this script every evening at 7:00 P.M. and to run it again at 5:00 A.M. When using this script in a Windows NT Scheduler Task, you can cut or comment out the WScript.Echo lines. Note that in this example the moniker, the WMI scripting model is used for simplicity. Sample C.18 CreateCollection.vbs a script to toggle an assigned advertisement
Set instance = GetObject( "WinMgmts:root\SMS\site_B2k:SMS_Advertisement.AdvertisementID='B2K20001'") WScript.Echo "Advertisement: " & instance.AdvertisementName WScript.Echo "Assigned Schedule Enabled?: " & instance.AssignedScheduleEnabled WScript.Echo "" If instance.AssignedScheduleEnabled=True Then WScript.Echo "Was Enabled" instance.AssignedScheduleEnabled=False instance.Put_ WScript.Echo "Now Disabled" else WScript.Echo "Was Disabled" instance.AssignedScheduleEnabled=True instance.Put_ WScript.Echo "Now Enabled" end if
Unlocking Advertisements
If you have a site that used to be a child site but is now a central site, the site might have advertisements that originated at the old parent site. Those advertisements are locked because they would usually be managed from the parent site. But because there is no longer a parent site, you need to unlock them. This can be done with the SMS_Advertisement Unlock method.
(continued)
Packages
Scripting the creation of packages can be useful for a variety of reasons, including: u u u Converting many packages from the format that is used by another system (such as SMS 1.2) to the SMS package format. Adjusting package settings for many packages. Automating the distribution of packages to distribution points so that you can control their distribution beyond the controls offered by SMS addresses without having to have an administrator present.
Creating packages can be as simple as creating the package definition itself. However, packages are not useful until they have SMS programs that specify which programs should be run in the packages to accomplish certain functions (such as setup or deinstallation). Because packages that contain files also need to be distributed to distribution points, defining which distribution points should be used for a package can also be important.
Creating programs is also easy. Programs require a package identifier, program name, and command line. SMS automatically sets some properties, such as program flags. You can set other properties as needed, such as comment, estimated disk space, or run time. You can also set flags for how the program should run on the client. For more information about the SMS_Program class properties, see the Microsoft Systems Management Server 2003 Software Development Kit. Because the package comment is seen by end users, it should have a value that is meaningful to them. Sample C.20 shows creating a typical package and program. Note that this package creates a package for Notepad.exe, which is presumed to be available in C:\SoftwareSource. Sample C.20 CreatePackage.vbs creates a package and a program
if wscript.arguments.count<>2 then WScript.Echo "Two arguments please: the package and program names" WScript.Quit else PackageName = wscript.arguments(0) ProgramName = wscript.arguments(1) end if Dim Set Dim Set loc loc = CreateObject("WbemScripting.SWbemLocator") WbemServices WbemServices = loc.ConnectServer( , "root\SMS\site_B2K")
Set newPackage = WbemServices.Get("SMS_Package").SpawnInstance_() newPackage.Name = PackageName newPackage.Description = "created by newpackage.vbs" newPackage.PkgSourceFlag = 2 newPackage.PkgSourcePath = "C:\SoftwareSource" path=newPackage.Put_ 'and get the automatically assigned package ID Set Package=wbemServices.Get(path) PackageID= Package.PackageID Set newProgram = WbemServices.Get("SMS_Program").SpawnInstance_() newProgram.ProgramName = ProgramName newProgram.PackageID = PackageID newProgram.Comment = "phone the helpdesk for support with this program" newProgram.CommandLine = "Notepad.exe" newProgram.Put_
Instances of the SMS_DistributionPoint class require a Network Abstraction Layer (NAL) path, a package ID, and the site code of the site at which the distribution points are located. You should also specify the site name. You can get the site code and NAL path by listing the available distribution points. You do this by querying the SMS_SystemResourceList class. You can get the site name from the site details of the SMS_Site class. Sample C.21 makes a package available on all distribution points in your SMS hierarchy. Sample C.21 AssignDistributionPoints assigns all available distribution points to a package
if WScript.Arguments.Count<>1 then WScript.Echo "One argument please: the package ID" WScript.Quit else PackageID = WScript.Arguments(0) end if Set loc = CreateObject("WbemScripting.SWbemLocator") Dim WbemServices Set WbemServices = loc.ConnectServer( , "root\SMS\site_B2K") Set AllDPs = wbemServices.ExecQuery("Select * From SMS_SystemResourceList WHERE RoleName='SMS Distribution Point'") For Each DP In AllDPs Set Site = WbemServices.Get("SMS_Site='" & DP.SiteCode & "'") Set newDP = WbemServices.Get("SMS_DistributionPoint").SpawnInstance_() newDP.ServerNALPath = DP.NALPath newDP.PackageID = PackageID newDP.SiteCode = DP.SiteCode newDP.SiteName = Site.SiteName newDP.Put_ Next
If you want to control when your package is first distributed to the distribution points (beyond the control that SMS addresses provides), you can run the script in Sample C.21 at that time. Do not assign distribution points to the package prior to that time. Run the script as a scheduled task with a suitably privileged account, if an administrator is not available at that time. If you want to refresh specific distribution points for a package (possibly because they have been rebuilt) and you want to use a script (because you have many such distribution points or the timing is inconvenient), you can use the RefreshNow property of the SMS_DistributionPoint class, as shown in Sample C.22. If you want to refresh all the distribution points that are assigned to a package, you can use the RefreshPkgSource instance method of the SMS_Package class.
The final detail that needs to be specified when creating packages is access accounts. By default, administrators get full control, and guests and users get read access to every package, even when the package is created by using a script. Access accounts can be controlled from your script by using the SMS_PackageAccessByUsers class.
Security Rights
SMS object security is used to control which kinds of objects (such as collections or packages) and which particular objects (specific collections or packages) that SMS administrators can manage. The kinds of objects that can be managed are controlled with class-level rights, and the particular objects are controlled with instance-level rights. Four SMS classes can be used with SMS object security, but only the first class is commonly used in SMS scripting: SMS_UserInstancePermissions The rights for particular SMS objects. Each instance in this class represents all the rights for a particular user or group on a particular instance. SMS_UserInstancePermissionNames The rights for particular SMS objects. Each instance in this class represents a particular right for a particular user or group on a particular instance. This class is useful for display purposes because the rights are already parsed into a form that you can read, but it takes more scripting to achieve the same results as the SMS_UserInstancePermissions class. SMS_UserClassPermissions The rights for kinds of objects. Each instance in this class represents all the rights for a particular user or group for a particular class. SMS_UserClassPermissionNames The rights for kinds of objects. Each instance in this class represents a particular right for a particular user or group for a particular class. The class is useful for display purposes because the rights are already parsed into a form that you can read, but it takes more scripting to achieve the same results as the SMS_UserClassPermissions class. Sample C.23 grants read rights and modify rights to a user group for all collections at the instance level. Adding the same rights at the class level is easier, but this allows administrators to do tasks that are not intended.
Sample C.23 GrantRights.vbs grants rights to a user group for all collections
sitecode="B2K" SMSJuniorAdmins="BEIGE\SMS Junior Admins" Dim Set Dim Set lLocator lLocator = CreateObject("WbemScripting.SWbemLocator") WbemServices WbemServices = lLocator.ConnectServer( , "root\sms\site_" & sitecode)
Set Collections = WbemServices.ExecQuery("Select * From SMS_Collection") For Each Collection In Collections 'ignore this special collection If (Collection.CollectionID <> "COLLROOT") AND Collection.OwnedByThisSite Then WScript.Echo vblf & Collection.Name & " " & Collection.CollectionID AlreadySet = False Set Rights = WbemServices.ExecQuery("Select * From SMS_UserInstancePermissionNames WHERE ObjectKey=1 AND InstanceKey='" & Collection.CollectionID & "'") For Each Rite in Rights WScript.Echo " " & Rite.Username & " " & Rite.PermissionName If Rite.Username = SMSJuniorAdmins Then AlreadySet=True Next If Not AlreadySet Then Set newRight = WbemServices.Get("SMS_UserInstancePermissions").SpawnInstance_() newRight.UserName = SMSJuniorAdmins newRight.ObjectKey = 1 'collections newRight.InstanceKey = Collection.CollectionID newRight.InstancePermissions = 1+2 'just Read & Modify newRight.Put_ WScript.Echo " The junior administrators now have read and modify access to this collection." End If End If Next
SMS is controlled through site control files. Site control files are represented in WMI by using the SMS_SiteControlFile class. SMS_SiteControlFile has methods to enable scripts to manipulate site control files. The methods allow your scripts to retrieve a current copy of a site control file and to later commit any changes.
Important
For security reasons, SMS account passwords cannot be set in scripts. You can, however, script SMS Administrator console operations to simulate an administrator setting the passwords. For more information, see the Scripting Console Operations section later in this appendix.
3.
4. 5. 6. 7.
Steps 1, 2, 5, 6, and 7 do not change much, if at all, from script to script. Therefore, you can copy them from any sample script that works with SMS site settings. Step 3 varies in limited ways. If you cannot find an sample script that is similar to what you need, you might be able to piece the details together with some experimentation. What is important is that you select the correct SMS_SiteControlItem class and that you specify valid values for the key properties that are used to retrieve an instance of the class.
As with other scripts, it might be useful to look at the available instances of the class. Browsing instances can be done with CIM Studio or similar tools, but for SMS_SiteControlItem classes you cannot simply use the Instances button. Instead, you must execute a query, by using the WQL Queries button, such as shown in the following:
Select * FROM SMS_SCI_ClientComp WHERE SiteCode="B2K" AND FileType=1
Sample C.24 is a typical script for working with SMS site settings, except that the details for step 4 are not illustrated. For examples of step 4, see the other samples in this appendix. Sample C.24 SiteSettings.vbs a commented template of a typical site setting script
strSiteCode="MSO" Set lLocator = CreateObject("WbemScripting.SWbemLocator") Set wbemservices = lLocator.ConnectServer( , "root\sms\site_" & strSiteCode) 'step 1: set WbemContext=CreateObject("WbemScripting.SWbemNamedValueSet") WbemContext.Add "SessionHandle",WbemServices.ExecMethod("SMS_SiteControlFile","GetSessionHandle" ).SessionHandle 'step 2: WbemServices.ExecMethod "SMS_SiteControlFile.Filetype=2,Sitecode=""" & strSiteCode & """", "Refresh", , , WbemContext 'step 3 (details will vary, and sometimes an instance will be spawned, rather 'than retrieved): Set WbemInst = WbemServices.Get("SMS_SCI_ClientComp.Filetype=1,Itemtype=""Client Component"",Sitecode=""" & Sitecode & """,ItemName=""Remote Control""", , WbemContext) 'step 4 varies widely 'step 5: WbemInst.Put_ , WbemContext 'step 6: WbemServices.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & strSitecode & """", "Commit", , , WbemContext 'step 7: WbemServices.Get("SMS_SiteControlFile").ReleaseSessionHandle WbemContext.Item("SessionHandle").Value
Step 4 can be challenging if you do not have a good sample script. This can be complex due to the variety of properties that can be involved, such as simple properties, objects, arrays, and arrays of objects. Writing the script in Visual Basic (as described in the Scripting in Visual Basic section earlier in this appendix) and using the Locals window can help verify details.
Sample C.25 Boundaries.vbs lists all the site boundaries for all sites
Sub Level( parent, depth ) Set Sites = WbemServices.ExecQuery("Select * From SMS_Site Where ReportingSiteCode='"+parent+"'") For Each Site In Sites 'descriptive info for site Descr=Left( SPACE( depth*3 ) & Site.SiteName + " ("+Site.SiteCode+") ", 29) Descr=Descr & SPACE(30-LEN(Descr)) wscript.echo descr set boundaries = WbemServices.Get("SMS_SCI_SiteAssignment.SiteCode='"+site.sitecode+"',Filetype=1 ,ItemName='Site Assignment',ItemType='Site Assignment'") For i=0 to ubound(boundaries.AssignDetails) Wscript.Echo space(len(descr)) & boundaries.AssignTypes(i) & ": " & boundaries.AssignDetails(i) next Level Site.SiteCode, depth+1 Next End Sub Sitecode = "NES" Set lLocator = CreateObject("WbemScripting.SWbemLocator") Set WbemServices = lLocator.ConnectServer( , "root\sms\site_" & sitecode ) Level "", 0
(continued)
Embedding Properties
Some site settings have objects embedded within their properties, often as an array of objects; for example, addresses and site status rules. Some SMS objects also have embedded objects; for example, the AssignmentSchedule property of advertisements contains SMS_ScheduleToken objects. When an object requires embedded objects, your script must create the embedded objects as usual. (You launch an instance and set the properties.) Then, instead of saving the object (with a Put method), the embedded object is assigned to the property or to an element of the property array, if the property is an array. When the main object is saved, the embedded objects are also saved within the main object. Sample C.28 shows adding embedded objects to an address; for example, by adding the connect point. Sample C.19 shows adding embedded objects (assignments) to an advertisement. And Sample C.31 shows adding embedded objects (status filter rules) to a site component.
Creating Addresses
Creating SMS addresses is a typical need for scripting SMS site settings. If you set up many sites, you probably have some sites that have many sites reporting to them. The parent sites require an address for each child site. Sample C.28 shows how you can create an address in a script. With some minor changes, you can then have it input the relevant details from a spreadsheet, text file, or other source. The difficult part of creating addresses in a script is that you cannot set the user name and password for the SMS Site Address account. SMS account passwords cannot be set in scripts. However, you can script SMS Administrator console operations to simulate an administrator setting the passwords. For more information, see the Scripting Console Operations section later in this chapter. Sample C.28 CreateAddress.vbs creates SMS addresses
strSiteCode="MSO" Set lLocator = CreateObject("WbemScripting.SWbemLocator") Set wbemservices = lLocator.ConnectServer( , "root\sms\site_" & strSiteCode) set WbemContext=CreateObject("WbemScripting.SWbemNamedValueSet") WbemContext.Add "SessionHandle",WbemServices.ExecMethod("SMS_SiteControlFile","GetSessionHandle" ).SessionHandle WbemServices.ExecMethod "SMS_SiteControlFile.Filetype=2,Sitecode=""" & strSiteCode & """", "Refresh", , , WbemContext 'Spawn an SMS_SCI_Address instance Set WbemInst = WbemServices.Get("SMS_SCI_Address").SpawnInstance_() wbeminst.AddressType = "MS_LAN" wbeminst.DesSiteCode = "PS1" wbeminst.ItemName = "PS1|MS_LAN" wbeminst.ItemType = "Address" wbeminst.Order = 1 wbeminst.SiteCode = strSitecode wbeminst.UnlimitedRateForAll = 1 Set newep1 = WbemServices.Get("SMS_EmbeddedProperty").SpawnInstance_() newep1.PropertyName = "Connection Point" newep1.Value = 0 newep1.Value1 = "RBSCS503" newep1.Value2 = "SMS_SITE" Set newep2 = WbemServices.Get("SMS_EmbeddedProperty").SpawnInstance_() newep2.PropertyName = "LAN Login" newep2.Value = 0
(continued)
wbeminst.Props = Array(newep1, newep2) WbemInst.Put_ , WbemContext WbemServices.ExecMethod "SMS_SiteControlFile.Filetype=1,Sitecode=""" & strSitecode & """", "Commit", , , WbemContext WbemServices.Get("SMS_SiteControlFile").ReleaseSessionHandle WbemContext.Item("SessionHandle").Value
Sample C.29 sets all the values for Remote Tools. This includes enabling the client agent. Sample C.29 RemoteControl.vbs enables and configures remote control
Sitecode = "WMA" Set lLocator = CreateObject("WbemScripting.SWbemLocator") Set WbemServices = lLocator.ConnectServer( , "root\sms\site_" & sitecode ) 'connect to the site control file Set WbemContext=CreateObject("WbemScripting.SWbemNamedValueSet") WbemContext.Add "SessionHandle", WbemServices.ExecMethod("SMS_SiteControlFile", "GetSessionHandle").SessionHandle 'Refresh our copy of the SiteControlFile WbemServices.ExecMethod "SMS_SiteControlFile.Filetype=0,Sitecode=""" & Sitecode & """", "Refresh", , , WbemContext 'Retrieve Site Control Item instance Set WbemInst = WbemServices.Get("SMS_SCI_ClientComp.Filetype=1,Itemtype=""Client Component"",Sitecode=""" & strSiteCode & """,ItemName=""Remote Control""", , WbemContext) 'Enable the Remote Tools Client Agent WbemInst.Flags = 1
(continued)
(continued)
Adding Boundaries
Sample C.30 reads boundaries from an Excel spreadsheet and adds them to the site. Sample C.30 AddBoundaries.vbs adds boundaries to a site
Sitecode = "MSO" Set lLocator = CreateObject("WbemScripting.SWbemLocator") Set WbemServices = lLocator.ConnectServer( , "root\sms\site_" & sitecode ) Set WbemContext=CreateObject("WbemScripting.SWbemNamedValueSet") WbemContext.Add "SessionHandle", WbemServices.ExecMethod("SMS_SiteControlFile", "GetSessionHandle").SessionHandle
(continued)
Wend Excel.Quit WbemInst.AssignDetails = proparray1 WbemInst.AssignTypes = proparray2 WbemInst.Put_ , WbemContext WbemServices.ExecMethod "SMS_SiteControlFile.Filetype=0,Sitecode=""" & Sitecode & """", "Commit", , , WbemContext WbemServices.Get("SMS_SiteControlFile").ReleaseSessionHandle WbemContext.Item("SessionHandle").Value
(continued)
(continued)
The unique parts of Sample C.31 are the array manipulation and the line that sets the status filter rule array:
myFilterRuleArray = array( "Actions=0", "Actions Mask=16", "Stop Evaluating=1", "Code=4711" )
Many details can be set in the status filter rules array, as listed in Table C.2. Table C.2 Possible Status Filter Rule Array Details
Detail Actions Description Flags for the actions to be carried out on the rules Used with the actions property Do not process lower priority status filter rules The number of days to keep messages if they are written to the SMS database The program to run if a program is to be run Source client, server, or the SMS Provider Possible value See the next table Required Note
Required
Only valid if the Actions and Actions Mask values are set to write the message to the SMS database Only valid if the Actions and Actions Mask values are set to run a program
Program
A string
Module Name
See a status filter rule properties dialog box in the SMS Administrator console for the possible values
(continued)
Component Component
Message type Milestone, Detail, or Audit Severity Informational, Warning, or Error Message ID
1073741824, 2147483648, or 3221225472, respectively A valid SMS status message ID 400, 401, 402, 403, or 404, respectively.
Code
Attribute ID Property; meaning object ID or resource ID. Different attributes IDs are relevant depending on the module name (source) selected. Possible attribute IDs are Package Id, Advertisement ID, Collection ID, User Name, and Distribution Point, respectively. Attribute Value Property value, but means object ID value
An SMS object ID
The Actions and Actions Mask flags in the status filter rule must be set to the values listed in Table C.3. You can set multiple values from this table to enable multiple actions, in which case the values should be added together. For example, if you want to forward a message to the summarizers and replicate it to the parent site at medium priority, you would set the Actions value to 24 (16 + 8), and the Actions Mask value to 12. If you only want to write the message to the SMS database, Actions would be set 1 and Actions Mask to 17 (1+16).
4/8/12 - low, medium, or high, respectively (replication priority) 16 (the message should be forwarded) 32
12 (replicate)
(continued)
'password
'password again 'OK password dialog box done 'OK address dialog box done
Other than the hardware inventory extensions, scripting client operations does not use WMI. In all cases, scripting client operations does not use the same specific techniques that have been discussed so far in this appendix, although the general techniques of scripting are still similar.
Sample C.33 shows creating a DDR. This sample can be extended to read in the required details from a spreadsheet, Active Directory, or any other source. To create a completely accurate DDR for the computer on which the script is run, additions would have to be made to collect TCP/IP addresses, subnets, and media access control (MAC) addresses. Sample C.33 CreateDDR.vbs creates a DDR
newresource=0 'set to 1 if you want to create a new computer DDR, rather than generate a DDR for the computer the script is run on Const Const Const Const ADDPPROP_NONE = &H0 ADDPROP_GUID = &H2 ADDPROP_KEY = &H8 ADDPROP_NAME = &H44
'get the current GUID, if available Set WshSHell=WScript.CreateObject("WScript.Shell") On Error Resume Next Version=WSHShell.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Client\Clien t Components\SMS Client Base Components\Installation Properties\Installed Version") if err=0 AND newresource<>1 then On Error Goto 0 if Version="99.9.9999.9999" Then 'it's a Advanced Client, so get the GUID from WMI
(continued)
To use the MIF Generation Object in a Visual Basic program, add a reference to ISMIFCOM 1.0 Type Library, and then DIM MIF as a new InstallStatusMIF. As a troubleshooting technique, use ISMIF32.exe, which is available for download at http://www.microsoft.com/smserver, to create a status MIF file by using the same parameters that your script uses. ISMIF32.exe might display a meaningful error message.
(continued)
Debugging Scripts
Debugging scripts is part of the process of script writing. You can often correct errors based on error messages, the behavior of the script, and the context of the problem. However, sometimes you have to examine your script in greater depth as it runs to determine where it is executing in an unexpected manner or where variables are receiving unexpected values. For this level of debugging, a debugging tool is required. Windows 2000, Windows XP, operating systems in the Windows Server 2003 family, Windows Millennium Edition, and Windows 98 include a scripting debugger. You can also downloaded it from the Microsoft Web site at http://msdn.microsoft.com/scripting/default.htm?/scripting/debugger/dbdown.htm.
Or, to start the debugger and enable the Stop statement (in JScript, Debugger), enter:
Cscript.exe //d myscript.wcs,
(continued)
Scripts can also cause adverse effects to your systems. Because scripts operate very rapidly, usually without human intervention and without the checks that are built into the SMS Administrator console, your scripts can damage your systems. Thorough analysis of the relevant SMS processes and thorough testing of your scripts minimizes the risk of problems, but it can be difficult to guarantee that no problems will occur. Therefore, you must take responsibility for problems that are caused by your scripts. In some cases, it might not be clear whether a problem is caused by your script or other factors. You can attempt to reproduce the problem by using normal manual processes. If the problem occurs again, your script is not the cause. Microsoft provides script, macro, and other code examples for illustration only, without warranty either expressed or implied, including but not limited to the implied warranties of merchantability or fitness for a particular purpose. The scripts provided in this appendix and elsewhere in the SMS documentation are provided as is and Microsoft does not guarantee that the scripts or code can be used in all situations. Microsoft does not support modifications of the scripts or code to suit customer requirements for a particular purpose. While Microsoft support engineers can help explain the functionality of a particular script or code example, they will not modify these examples to provide added functionality nor will they help you construct scripts or code to meet your specific needs. If you have limited programming experience, you might want to consult a Microsoft Solution Provider. Microsoft Solution Providers offer a wide range of feebased services, including creating custom scripts.
Learning More
Additional information about scripting and scripting for SMS is available from a variety of sources: u u u Additional information about Visual Basic, Windows Script Host, and VBScript is available in many books. An introduction to scripting for beginners is available on the Microsoft Web site at http://www.microsoft.com/downloads/release.asp?ReleaseID=24372. Additional information about WSH is available on the Microsoft Web site at http://msdn.microsoft.com/scripting.
The SMS and WMI SDKs are available at the following Web sites: u u The Microsoft Systems Management Server 2003 Software Development Kit is available on the Microsoft Web site at http://www.microsoft.com/smserver. The WMI SDK is available on the Microsoft Web site at http://www.microsoft.com/downloads. WMI or SMS newsgroups on msnews.microsoft.com newsgroups.
A P P E N D I X
In This Appendix
Planning and Deploying Your Multilingual Site Hierarchy Planning and Deploying International Client Packs
The following sections describe how you can use each of these features to plan for and centrally manage a multilingual hierarchy. This section provides current language support information for each of the seven SMS server languages and lists the client languages supported by each of these packages. You must adequately plan for the language requirements of each site including site server and clients. Each localized site server supports only certain localized clients. After you have fully planned how to address your hierarchies language needs, you plan, deploy, and configure your sites as recommended in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Enabled interface An enabled interface is one enabled to display and process DBCS/extended characters. An SMS Administrator console displays data from a localized client, but the interface is not translated to the target language. For example, the Korean-language version of SMS is enabled to display and process Korean characters, such as the name of a discovered logon user name. But because it is not localized, the SMS Administrator console is in English, not Korean. The administrator must navigate the menu and dialog text in English. The English-language SMS site server and client versions run on, and are supported by, any localized operating system. The localized versions of SMS site servers and clients are supported only by their matching localized operating systems.
The English-language server is available in both English and International English. The contents of the SMS product CD for these two versions are identical and can be used interchangeably; however, their license agreements are different.
Note
The SMS Administrator consoles for Simplified Chinese, Traditional Chinese, and Korean are displayed in the English language, but are enabled for the specific server languages so the DBCS output displays correctly in that language. The SMS client is fully localized to the local language. For example, menus are displayed in English, but data such as package names and inventory data are viewed in the DBCS character set.
In addition to English, SMS clients are available in 21 language versions. Table D.2 Client Languages Supported by SMS 2003
Czech Danish Dutch Finnish French German Greek Hungarian Italian Japanese Korean Norwegian Polish Portuguese Portuguese-Brazilian Russian Simplified Chinese Spanish Swedish Traditional Chinese Turkish
Character Sets
The DBCS support provided by SMS allows communication to take place between SBCS and DBCS site servers. This functionality is important because it enables you to use a single SMS site hierarchy to centrally manage your SBCS and DBCS sites. For example, you can centrally manage an English-language central site and a Japanese-language child site. If any sites in your SMS hierarchy will use DBCS: u SMS server computer names, Microsoft SQL Server database names, domain names, Active Directory site names, SMS site codes, user group names, report names, and SMS accounts that install or manage the SMS site hierarchy cannot contain DBCS characters. Only U.S. English is supported for object names, including those listed, in any SMS hierarchy. Plan to name all network resources with SBCS. Hardware inventory class and value names in IDMIF and NOIDMIF files must not contain DBCS. However, values can contain DBCS. SMS hardware inventory requires a backslash character (\) to follow every 5c character in a MIF file. Software inventory file collection works correctly if 5c characters are in a file name. However, software inventory cannot collect files that contain 5c characters in the file extension.
u u u
Folder names or environment variables must not contain extended characters on clients running Microsoft Windows 98. Extended characters are also called extended ASCII characters.
In addition to providing support for both DBCS and SBCS servers, SMS is available in several language packages that provide different combinations of default server and client component language support. For example, the German-language package of SMS provides a Germanlanguage server user interface that supports German-language and English-language clients, while the French-language package of SMS provides a French-language server user interface that supports French-language clients. Localized versions of SMS site servers are installed only on corresponding localized operating systems. For example, the Japanese language SMS site server version is installed on a Japanese operating system only.
In each of the SMS sites in your organization, determine which SMS language versions are within your organizational standards. Next, determine what operating system language versions are required by client computers. u u u u Are there other client operating system language restrictions? Who creates and distributes packages? Who manages site settings? Do your operations personnel require a particular SMS site server language version?
In some situations, you must request exceptions to any corporate standards if the configuration of SMS server and client languages requires language versions outside your corporate standards. While planning your SMS site hierarchy, plan to name all network resources by using standard ASCII characters, including codes 0 through 127. This includes all computer names, share names, user names, user group names, domain names, and site codes. After you have fully planned your multilingual SMS site hierarchy and established your sites, administrators and users can effectively use SMS. For example, when an SMS central site administrator in Vancouver uses an English-language version of the SMS Administrator console to send an advertisement to an SMS client in Amsterdam, the Dutch-speaking user reads SMS dialog boxes in her own language because the International Client Pack (ICP) was applied and it provides the localized client software. The administrator of the site sees the Dutch-language computer name and other client data using the correct Dutch-language character display.
If the two sites use the same code page, administrators at the child site must learn to recognize the names of the default collections when they are in the language of the central site. If the two sites use different code pages, at the central site, you can rename the default collections using only ASCII characters. The collection names are then displayed correctly at all sites. In addition, assign ASCII-only names to all collections, packages, and advertisements at any site that is or might later become a parent to a site using a different code page. An alternative method is to maintain an SMS Administrator console at the child site on a computer that uses the language of the central site.
When planning for the support of multiple languages in your SMS site hierarchy, consider the following: u u u u Which languages are required for clients and servers at which locations in your company. When you plan to deploy these languages, keep in mind that some local-language versions of SMS are not released until after the initial U.S. English version is released. Which SMS features you need. Balance your requirements against specific language support limitations. Whether you will use computer hardware dedicated to SMS site systems or site roles. If you dedicate computer hardware for SMS functions, then you have some flexibility to choose your SMS language version. If you choose not to dedicate computer hardware to SMS site systems or site roles, then you are limited by the language of the operating system of the existing computers. Whether the SMS site server is required to run a specific localized operating system. Whether you are installing an ICP to support numerous client languages. If you are required to install an ICP at a given site, then you must install the SMS U.S. English version at the site. Whether you are able to maintain multiple versions of each language version of SMS. Each language version must have its own service pack and hotfix version. For additional information about SMS versions, see the Applying updates section later in this chapter. Whether the language skills of the operations staff at each level of the hierarchy are aligned with the requirements of SMS features, such as software distribution, site management, and help desk. Where are packages and advertisements created? In what language? Is the operations staff at lower levels of the hierarchy able to read the names of objects that flow down?
u u
At the Tokyo site, the SMS administrators install the Japanese version of SMS on a Japanese operating system so they can view data from the Japanese-language clients. The Seoul site server computer hardware runs a U.S. English operating system. The end users are fluent in U.S. English. Although the client operating systems are Korean, the site administrator decides not to install the Korean version of SMS. The end users use U.S. English clients. The site administrator has access to a Korean version of the SMS Administrator console installed on a Korean operating system that is occasionally used to view localized Korean data. The Berlin site runs a German-language site server that runs on a German operating system. The site has U.S. English, German, and Traditional Chinese operating system clients. An ICP cannot be installed on the site server because it is not U.S. English. Only German client computers have a localized SMS client. The U.S. English and Traditional Chinese operating system clients use a U.S. English SMS client. The Madrid site runs an English-language site server that supports a mix of Spanish-language, Italian-language, Turkish-language, and English-language clients. To obtain the required client language support, SMS administrators install ICPs on the Vancouver and Madrid sites only.
Note
In the case of Korean and Traditional and Simplified Chinese, to view the data correctly, the administrators in the example scenario should install a language-specific operating system, create a site, and then install a language-specific remote SMS Administrator console. The administrators can then view the data of these DBCS languages correctly by using a remote SMS Administrator console to attach to a site server where the data resides. The Japanese site was installed with a localized version of SMS and Japanese operating system, so no remote SMS Administrator console is necessary.
The SMS site administrators of the example company choose this configuration to take advantage of the international features of SMS. Because SMS supports DBCS languages, it supports Japanese (a double-byte character set language) child sites reporting to the English (a single-byte character set language) central site. SMS also supports any DBCS language sites reporting to other DBCS language sites. The European branch has SMS clients enabled with several central, western, and eastern European languages that are deployed by installing ICP2. For the site administrators, the advantage of this configuration is to have broad administrative coverage of the information systems in an organization. This capability makes it possible for administrators to store all of their SMS information for the organization in one location and to view the data in the native language from each site, from any location, through remote SMS Administrator consoles. Because the site administrators can use any mix of the supported server languages, they have considerable flexibility in designing their SMS site hierarchy to suit the needs of their organization. The English-language site server supports all SMS client languages.
Japanese Client
Japanese Client
US English Client
US English Client
US English Client German Client US English Client Traditional Chinese operating system
Client Languages
SMS attempts to match the language of the SMS client (dialog boxes, messages to the user, and text displayed in any SMS user component) to one of the site server languages supported by SMS. The client operating system can support many language dialects, Australian English for example. If SMS cannot match the clients current language settings directly to a supported language, SMS either renders the client interface as closely as possible in a supported version of the language, or installs client software components in U.S. English, unless the client is French. French SMS site servers support French clients only. Localization to local-language character, time, and value display takes place at both the operating system level and within SMS. At the operating system level, you can change the regional and language options to specify how the system displays characters and formats numbers, currency, and time and date values in accord with language-specific requirements. Users can set the character mapping of the keyboard to various languages.
Legacy Client
The Legacy Client does not enable MUI support by default. The default SMS client language is English if no match is made with a localized user interface language, except at French sites. French SMS site servers support French clients only. At English sites, the default SMS client language is also English regardless of whether an ICP is installed. There are three cases when the SMS client is set to English on MUI system: u u u The client user interface language is English. The SMS localized client language files are not on the local client computer. The logged on user interface language does not match one of the languages supported by the current System Default Locale, which is the code page referenced in the current System Default Locale.
Requirements To enable MUI support on Legacy Clients running Microsoft Windows 2000 or Microsoft Windows XP Professional, certain requirements must be met. Each client system must have the SMSMUIActive registry entry, the value of which must equal, as follows: \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Client\Configuration\ Client Properties SMSMUIActive=REG_DWORD 0x00000001 (1) The client user must select a user interface language that is supported by the code page referenced in the current System Default Locale, log off, and then log on again so that the SMS client can display the same language as the operating system user interface. For example, a user who has an English Windows 2000 user interface sets the menus and dialogs to German in Regional settings, logs off, and then logs back on. The user then has the German user interface. In this example, the user would have a German SMS client. This level of language switching functionality at logon time is identical to the multilingual user interface language switching that is supported natively in Windows 2000 and Windows XP Professional. A user account with administrative credentials is required for a user to switch to a language that is not supported by the current System Default Locale. Either the local user or an administrator that is remotely controlling the client can switch languages. After logging on, the local user or the administrator must open the regional settings in Control Panel, set the System Default Locale to the corresponding language, and then restart the system. When the user logs on, the normal SMS localized client installation process starts. When the user selects a user interface language that uses a code page other than that supported by the system default locale, the logoff and logon level of language switching is not supported. For example, if a user starts an English operating system and then decides to set the menus and dialogs to Japanese in Regional settings, logs off, and then logs on, then the user would have an English version of the SMS client because the system default locale does not support the code page for Japanese.
Advanced Client
The Advanced Client included with each ICP consists of a single Advanced Client installer file, Client.msi. The Client.msi file includes all language resources necessary for clients to switch between supported languages. The default installation language is English. To display an Advanced Client localized installation language, you must install the Advanced Client with the TRANSFORMS command-line option. As an example, you can use the following command from the Japanese language folder:
msiexec.exe /i client.msi TRANSFORMS=client.mst
For additional information about the TRANSFORMS switch or client language files, see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide. For additional information about using the Advanced Client Installer, see Chapter 17, Discovering Resources and Deploying Clients, in the same book. Requirements SMS Advanced Client users or administrators do not need to create a registry key to use MUI. After the Advanced Client is installed, the user can switch from one language to another, within the supported languages, without reinstalling the SMS client software. However, the user must log off the client computer and log on again each time the user changes the display language.
For more information about planning and deploying ICPs, see the Planning and Deploying International Client Packs section later in this chapter.
Multilingual Features
SMS 2003 provides international support for all SMS features. However, there are certain issues that you must consider when using SMS Installer and software metering. Planning for the language requirements of your organization might influence the extent to which these features are used.
SMS Installer
You can use SMS Installer to create installation scripts for single and multiple local languages. A local language installation script is a standard SMS installation script that has its entire user interface text, dialog boxes and messages to the user, replaced with the local language equivalents. Table D.4 lists the languages that SMS Installer supports and the corresponding local language installation scripts that it supports. For example, the English-language version of SMS Installer has an English-language user interface, but supports the creation of installation scripts that contain German-language dialog boxes and installation messages. In addition, you can write a multiple language installation script by using the English version of SMS Installer. Such a script might contain installation messages and dialog boxes in English, German, and French. Table D.4 SMS Installer Local Language Script and Executable Support
SMS Installer user interface language English Supported installation script languages Danish, Dutch, English, Finnish, French, German, Italian, Norwegian, Portuguese-Brazilian, Spanish, Swedish installation messages and dialog boxes French installation messages and dialog boxes
French
(continued)
Table D.4 SMS Installer Local Language Script and Executable Support (continued)
SMS Installer user interface language German Korean- enabled (English user interface) Japanese Simplified Chinese- enabled (English user interface) Traditional Chinese- enabled (English user interface) Supported installation script languages German and English installation messages and dialog boxes Korean and English installation messages and dialog boxes Japanese and English installation messages and dialog boxes Simplified Chinese and English installation messages and dialog boxes Traditional Chinese and English installation messages and dialog boxes
Software Metering
Most executable programs contain header information that includes the product version, product name, and language of the program. SMS software metering tracks usage of local-language versions of executable programs by verifying the language field in the version stamp of the executable program file. Verification of the language field is automatically performed by software metering when new software metering rules are created. When you add a software program for monitoring and you change the language field from the default value detected by SMS, you might set the language field incorrectly. If the language field is set incorrectly, the correct language version of the program is not collected. To avoid this problem, verify that the software programs you are metering contain the correct language field entry in accord with your licensing agreements. For information about creating software metering rules, see Chapter 8, Software Metering. The language version of each monitored program is displayed in the Software Metering Rules Properties page in the SMS Administrator console.
To view data collected from or directed to clients that are using a specific language, you must run the appropriate language version of the SMS Administrator console on a computer set to the corresponding locale. For each client language other than Japanese, Korean, Simplified Chinese, or Traditional Chinese, inventory data is viewed from an SMS Administrator console by changing the locale setting on a computer running a U.S. English operating system. The system locale setting and operating system language of the computer running the SMS Administrator console must match the language of the data you want to view or enter.
Install Additional Languages on the Computer Where the SMS Provider Is Installed
In addition, you might need to install additional languages to the computer where the SMS Provider is installed. The SMS Provider resides on either the site server or on the computer where the SMS site database is installed. The SMS Administrator console accesses the SMS Provider to view data in these languages. To install additional languages on Windows 2000 or Windows XP Professional, choose the desired language in Regional and Language Options in Control Panel.
Language Versions
You can use the English-language version of SQL Server 2000 with the default ANSI 1252 code page with any SMS site server language version, or you can pair local-language versions of SQL Server with a matching localized version of SMS. For example, an SMS administrator in Bonn can use a German-language SMS site server with either a German-language or an Englishlanguage version of SQL Server.
Mixed-Language Data
If your database contains mixed-language data, you are limited to a single sort order. You select the sort order during SQL Server setup. For more information, see your SQL Server product documentation.
Advanced Client
Deploying an SMS ICP in a large environment is a project that requires planning, testing, and then deployment. The phases of the project include design, testing, and installation. There are a variety of issues you must design and test for while planning an SMS ICP deployment, such as: SMS site server localization ICPs are installed only on U.S. English site servers. Client operating system localization ICPs are available for many different localized operating systems, but not all localized operating systems are supported. Effect on both your LANs and your WANs Legacy Clients receive ICP software from networked resources. Effect on the end user Users might be negatively affected if your network cannot adequately support their needs when clients are receiving ICP software. Deploying an ICP is similar to deploying a service pack. For example, newer program files replace older program files. Deploying an ICP updates CAPs and Legacy Clients using the same mechanism. However, deploying an ICP is dissimilar to deploying a service pack because it does not do anything to the site server except update the client source files. Deploying an ICP does not update files for server components, make changes to the database schema, or perform other nonclient upgrade functions.
These questions are answered during the design and test phases of your ICP deployment. After your issues or concerns are addressed, you will be ready to move to the deployment phase. When you are planning your ICP deployment, refer to the Release Notes that are provided with the ICP. In addition to the release notes, other documentation about changes introduced by the ICP might become available at the same time as the ICP, which might help you to better understand the ICP. Such documentation is included with the ICP and is in the SMS Web site at http://www.microsoft.com/smserver/default.asp.
ICP Design
At a minimum, your ICP deployment design might include preparatory tasks such as: u Analyzing the ICP to understand the changes it introduces and any required prerequisites. For more information about analyzing the ICP, see the ICP Requirements section later in this chapter. Analyzing your environment to determine if the deployment will create problems for your users.
u u u
Scheduling the project, including when each site is upgraded and the roles and responsibilities of staff members who assist you. Communicating relevant details about the ICP deployment to all interested parties, such as users of SMS services, management, other SMS administrators, and technical staff. Preparing to monitor the deployment to ensure that it is successful. For more information about preparing to monitor the deployment, see the Planning to Monitor section later in this chapter. Preparing the sites, as described in the Preparing SMS Sites section later in this chapter.
You will repeat most of these tasks in each of the project phases, including design, testing, and deployment.
ICP Requirements
ICPs include release notes that must be carefully reviewed because they describe prerequisites for the ICP, and they address known problems that the ICP does not solve. When you read the release notes, consider your answers to the following questions: u Are there any prerequisites that must be implemented before you apply this ICP? Generally, the only prerequisite for an ICP site server installation is that is must be installed on an English-language operating system. However, other requirements might be listed. Does this ICP change SMS enough so that you must notify other people who are affected by this change? The people who need notification might include other SMS administrators, managers, technical staff, people responsible for the files and security of the domain controllers, people who monitor bandwidth usage, people who use the SMS services, and the end users. Does deploying this ICP cause additional load on the network, servers, or clients? If so, then planning the deployment of the service pack can minimize this effect. Is your environment large enough or complex enough to warrant treating the deployment of this ICP as a formal project? Do you have problems with clients that might prevent a successful upgrade? If so, you must resolve these issues before upgrading your clients. How large are the client upgrade components? To determine the size of your upgrade, see the Determine the size of client component upgrades section later in this chapter.
u u u u
Checking versions
ICPs are released in numbered versions including ICP1 and ICP2. Each version supports a greater number of client operating system languages, including the operating system languages of the earlier version. When you install an ICP on a U.S. English site, the ICP version must be compatible with a previously installed SMS service pack version. For example, you must use the SMS SP1 version of ICP2 if U.S. English SMS SP1 is installed on the site server. You cannot install the SP2 version of the ICP on a U.S. English SP1 site.
After an ICP is installed, you must be aware of the timing of subsequent ICP releases. ICPs are released shortly after each service pack. When a new service pack is released you must wait for the subsequent ICP release before installing the service pack. After you have obtained the ICP, install the service pack, and then install the ICP. This ensures that Clicore.exe, SMSman.exe, and the other ICP files are placed on CAPs as quickly as possible. Consider disabling any new client installation processes until CAPs are fully updated. This also prevents Legacy Clients from downloading Clicore.exe and SMSman.exe twice once for the service pack, and again for the ICP. If you are concerned about the stability of the site after you install the service pack, you can wait for the service pack installation to stabilize before you install the ICP. However, when you later install the localized Legacy Client files on your CAPs, your network will be affected again. Additionally, your international clients will have an older version of the localized client files until the ICP is installed.
Applying updates
To apply client hotfixes, also called product updates, to an ICP site, you must obtain a hotfixed version of the ICP you have installed. You can identify service pack, ICP, and hotfix numbers from the version number. These minor releases and revisions are the last four digits of the Systems Management Server version number. You can determine whether an ICP is installed by checking for multiple language folders, such as the 00000409 folder for English and the 00000407 folder for German on the site server. There is a folder for each client language supported by that ICP. The language folders reside in the \SMS\BIN\I386\<language_id> folders on the Legacy Client. The first digit of the fourth part of the version number, such as x in x000, is the service pack release number. For example, 2.50.2485.2000 denotes SP2. If the SMS version number is 2.50.2485.3000 or higher, then the service pack is SP3. Additionally, ICP1 has a 4 as the third-to-last digit. For example, 2.50.2485.2400 indicates SP2 ICP1, and 2.50.2485.3400 indicates SP3 ICP1. Likewise, ICP2 has a 7 as the third-to-last digit. For example, 2.50.2485.3700 indicates SP3 ICP2. The last three digits are the hotfix version number, which can range from .0001 to .0299. If you apply SMS SP2 ICP1 to an SMS SP2 U.S. English site that has had several hotfixes installed after SP2 was installed, and files with the same name are included in ICP1, then ICP1 overwrites the newer files because the files in ICP1 do not contain the bug fixes. If the ICP overwrites new files, whatever problems caused you to apply the hotfixes might reappear. For example, you might have previously applied a hotfix to prevent SMSAPM32 from using the CPU at 100 percent. Later you apply ICP1, which does not contain the hotfix. After ICP1 installation, your site server CPU usage is back to 100 percent. To prevent this from occurring, contact Microsoft Product Support Services and obtain the version of the hotfix that correctly matches the ICP you intend to install before ICP installation. Then, after you install the ICP, immediately install the hotfixes that were released later than the ICP.
Caution
Ensure that you install an ICP and ICP hotfixes that correspond to a previously applied SMS service pack and post service pack hotfixes.
Because ICPs are cumulative and are released as they become available, you might need to plan the deployment of language-specific versions of SMS server and client software when the ICP you need becomes available. ICPs have their own setup program and can be installed sequentially onto a site server without any change to the existing clients. All new clients can install in any of the languages from the most recently installed ICP. Consider the size of the ICPs in relation to the available bandwidth of your network. Later versions of ICPs are larger because each consecutive version contains the languages of the previous versions. Plan the deployment of any language client pack for light network usage periods to minimize degradation of network performance for your users. Microsoft often releases service packs and client packs on the Web, so that the latest updates can be made available to customers as quickly as possible. The ICPs released by Microsoft contain the current service pack files, in addition to the ICP files, to reduce the number of required installations. These releases are available at http://www.microsoft.com/smserver/default.asp.
CAP client files on Windows servers Distribution points Component servers, such as sender servers
(continued)
Note
If you currently use ICP2 at an existing SMS 2.0 SP4 site and you want to upgrade the site to SMS 2003, you must upgrade to the U.S. English version of SMS 2003 and then apply SMS 2003 ICP2. You do not need to apply ICP1 before you apply ICP2.
When the base components are upgraded, Clicore.exe is copied from the site server, runs, and is then recorded in the Ccim32.log and the Clicore.log. The optional components are installed within 60 minutes, and the appropriate files are copied from the CAP.
The base components are contained in Clicore.exe and are installed by CCIM at system startup, or during the next CCIM cycle. All clients, regardless of operating system language version, receive the same version of Clicore.exe. However, when Clicore.exe is run by the CCIM cycle, it detects the language version of the operating system. Then Clicore.exe extracts only the files necessary to support that language into the ms\sms\core\bin folder. All clients install the locally detected installed operating system language plus the U.S. English files. If the local operating system version is not supported by the version of Clicore.exe that has been copied, then the U.S. English files are used. This activity is recorded in the Clicore.log on the client. During the client base component phase of the upgrade, the effect on the client and the network consist primarily of copying Clicore.exe, and the unpacking process. This occurs when the local operating system language version is detected. Files are then installed on the client. This process can take a little over a minute to run. Table D.7 shows the size of Clicore.exe for each of the ICP versions. Table D.7 Clicore.exe File Size per ICP Version
ICP version U.S. English with no ICP ICP1 ICP2 3.3 MB 4.3 MB 8.4 MB Clicore.exe file size
When a client starts its upgrade with a new ICP version, you can check the client status by clicking Systems Management in Control Panel. The Components tab of Systems Management indicates that the based components have changed to an install pending state. The versions of the client agents change to a pending state with a status of repair pending. The base components take several minutes to install. The optional components take up to 60 minutes for full deployment.
Note
After the ICP is installed on the client, it is normal for optional component versions to differ from the base component versions.
As an example of the network traffic required to deploy the ICP updates to a single client, Table D.8 lists the traffic for different SMS ICPs. Table D.8 Network Traffic for Client ICP Installation
ICP version ICP1 ICP2 Base component installation 5.0 MB 9.4 MB Optional components 6.9 MB 11.7 MB Advanced Client 6.9 MB 9.8 MB
Client computers running Microsoft Windows NT 4.0 SP6a, Windows 2000, or Windows XP Professional do not need administrative credentials to successfully install the Legacy Client components because the installation process runs in the context of the Client Service account, which has sufficient privileges. Computers running Windows 98 run in the security context of the logged-on user. When Legacy Clients running localized operating systems run a logon script, the client is automatically installed with localized client files. There is no need to install ICPs on localized clients. Normally, Advanced Clients are upgraded by using the same methods that are used to install them. However, Client Push Installation does not automatically upgrade existing Advanced Clients.
Planning to Monitor
You must plan to monitor the deployment to ensure that the project is proceeding successfully. Isolate and resolve problems while they are still small. Design and test reporting solutions during the early phases of your project and use them before you start the deployment in a production environment.
If you develop reports, then create reports that address the following questions:
The classes listed in Table D.9 provide the version data required by these reports. Techniques for producing these reports are described in this section.
To enhance your reporting options, you can collect client component version numbers during hardware inventory collection. For more information, see the Check the client component versions section later in this chapter.
For troubleshooting assistance, view the server logs at the sites during your upgrade.
Note
The ICP setup program records its activities in the SMSSetup.log file. You can find this file at the root of your system drive.
The only other preparations required for each site are those required by your project plan or those required by the ICP itself.
ICP Testing
Prepare a network and a set of client and server computers that simulate your production environment as closely as possible. Consider including similar domain models, localized versions of SMS, code pages, localized client operating systems, applications, network links, and roaming scenarios. Apply the ICP using the plans and procedures that you created in the design phase. You might consider performing the tests repeatedly in this environment while you refine your procedures and discover and resolve any identified issues.
Select a portion of your production system that is safe to use for testing but typical enough to represent your production system. Ensure that you do not use a domain managed by multiple sites that you do not want to include in the pilot. Ensure that you are in close proximity to test computers so you can easily reconfigure them. Deploy the ICP during this phase using the plan you create in the design phase including any improvements that you identify in the testing phase. If you observe problems that were not identified in the design phase, adjust your procedures and design accordingly.
Conduct research
Peer support from your fellow SMS administrators is an excellent source of knowledge and of solutions based on real-world experience. If you hear from other SMS administrators that an ICP can cause problems under some circumstances, research the issue to decide whether you will apply the ICP. Conduct your own testing and be cautious for any problems you have heard about. If you do observe the problem, then you can contact product support to confirm or deny the issue, and to receive any fixes or workarounds that might be required.
You can also query WMI for useful information. The class that the client component version data is available from is SMS_G_System_SMS_CLIENT in the root\SMS\site_<sitecode> namespace. The useful properties of the class are: u u u u ResourceID a numeric value that can be used to relate the instances to instances for the same resource in other SMS classes Component Remote Control, for example Version 2.50.2485.1400 for a version of SMS 2003 SP1 ICP1. Your version number will vary. State Installed
Apply the ICP to a test computer and determine the actual version number from Systems Management in Control Panel. You can directly check the registry entries collected by this technique by using Registry Editor or a similar program.
5.
Configure a capture session to capture network traffic only between your server and the client computer running Windows NT Workstation 4.0 SP6a or with Windows XP Professional. On the Capture menu, click Start.
6.
When the capture starts, start the client upgrade by using the client installation method that your sites clients will use. Monitor the client upgrade processing, but do not monitor network traffic, until the client is completely upgraded. You can use the Systems Management icon in Control Panel to monitor the upgrade process. When it is completed, return to Network Monitor to stop the capture and analyze the network traffic.
Deploying ICPs
When you install an ICP on a U.S. English site server, the client source files on the site server are updated, and then those files are automatically replicated to SMS CAPs. Clients access the site systems to download the client source files. Because the ICP has a version number higher than its corresponding U.S. English version, existing clients detect that an upgrade is available and download the ICP version of the client source files. When new clients are installed, they are installed from the ICP client files that are accessed from the CAP.
ICP Installation
Apply the procedures and details that you have developed in other phases to your entire production system. Ideally, this is done using a staged, systematic plan with continual monitoring. Continual monitoring ensures that any missed problems are dealt with before they affect too many systems or users.
CAPs upgrade site components SMS Inbox Manager Assistant by Site Component Manager
Client components
While you monitor the ICP deployment, you can answer the following questions: u u u u Which sites have been upgraded? What percentage of site servers have successfully upgraded? What percentage of CAPs has successfully upgraded? What percentage of clients has successfully upgraded?
u u u
Which site servers were unsuccessful in the upgrade? Which CAPs were unsuccessful? Which clients were unsuccessful in the upgrade?
You can use the SMS Administrator console to answer these questions, or you can prepare reports to provide these answers for you, as described in the Planning to Monitor section earlier in this chapter. From the reports that list unsuccessful server and client upgrades, you can see where you have problems that require further investigation. You can use the status messages at the site for the appropriate SMS components. You might also want to look at the log files for the relevant components, and randomly check the files on upgraded computers. These systems include the site server, CAPs, secondary sites, and clients. The frequency and depth at which you monitor the deployment will be based on several factors: u u u How confident you are that the upgrade will succeed. Good testing and pilot testing, and past experience, will help to increase your confidence. How sensitive users at the site are to problems. How large or complex the site is, and how likely it is to encounter problems.
ICP setup command-line switch support ICP Setup (ICPSetup.exe) supports the / icpunattended command-line switch. This switch allows ICP Setup to run without user intervention and is used to silently install ICPs on remote or local systems. Unattended installation is supported in the following scenarios: u u u u Install English SMS, and then install ICP from the CD to a primary or secondary site. Install ICP silently by using an advertisement/program sent to a primary or secondary site system that has the ICP CD already in that systems disc drive. Install ICP by remote controlling the targeted SMS site system, then run ICP Setup from the ICP CD in that systems disc drive. Install ICP on a primary or secondary site silently by creating an SMS package containing the ICP CD files, create a program that uses the Icpsetup.exe / icpunattended switch, and then create an appropriate assigned and unattended advertisement. Install ICP silently on a remote SMS primary or secondary site system by using a Courier Sender package.
Note
An incorrect status message is generated when ICPs are deployed with SMS software distribution. When you install an ICP with SMS software distribution, the status returned for that advertisement always states that the installation failed because Icpsetup.exe reports a non-zero status code. To verify whether the ICP installation has been properly installed, you can check the SMSsetup.log for the actual installation status.
(continued)
Table D.10 Controlling SMS ICP Deployment to Affected SMS Components (continued)
Upgraded SMS component Client files on the CAP Client Method of control The timing of the site upgrade Usage strategies, as detailed in the Legacy Client Upgrades and Upgrading Large Sites sections
CAP upgrades Some organizations try to minimize the issues of Legacy Clients that do not have local site servers by installing CAPs and distribution points at each local site instead. There is no built-in method to control the timing of CAP upgrades within a site. SMS does not support creating remote CAPs. Consider upgrading Legacy Clients connected by a WAN to Advanced Clients, or establishing a secondary site. Legacy Client upgrades SMS Legacy Client upgrades occur whenever the CCIM cycle runs. The CCIM cycle runs whenever the client is rebooted, or when the SMS Client Service is restarted, then it runs every 25 hours thereafter. Client upgrades are usually not noticed by end-users and do not impose a significant load on your computer infrastructure. However, SMS client upgrades might be a concern if the site is large. Upgrading large sites If your users usually turn their computers off when they leave work, and if your users tend to arrive for work within a short period of time, such as between 8:00 A.M. and 9:00 A.M., then all your Legacy Clients will attempt to upgrade in that period of time. For sites with very good network capacity and sufficient CAPs, the upgrade is not likely to cause problems. For any other sites, you must consider how you might minimize the effect of the client upgrades. The most effective strategy is to encourage users to leave their computers turned on at night for a few weeks before the SMS ICP upgrade. They can log off the computers, lock their workstations, or use secure screen savers to ensure that their computers cannot be used during the upgrade. Windows 98 clients should not log off because CCIM will not be able to accomplish its cycle without network access. During the weeks that users are leaving their computers turned on, many users will have to restart their computers because of the installation of new software or for other reasons. This means that many users will start their 25-hour cycles at different points in the day and will go through a different number of 25-hour cycles. This ensures that on the day the ICP becomes available, the client computers will run CCIM at randomly distributed times throughout the day. This spreads the workload evenly. Also, if the ICP is installed on a Friday evening, and all computers are locked and logged on to the network, and all computers running Windows 98 are logged on with a secure screensaver, then all client computers will be upgraded over the weekend. Adding additional CAPS to the site might help if the current CAPs are not sufficient for the anticipated workload. You can remove the additional CAPs when most of the clients are upgraded.
Another alternative is to use the Client Upgrade Control tool (Cliupgrade.exe). The Client Upgrade Control tool is included on the SMS 2003 product CD and is found in \SMSSETUP\BIN\I386. You can use the tool to disable the upgrading of all clients at the site, and then use the tool to enable the upgrading of a subset of the clients each day. For additional information about the Client Upgrade Control tool, see Chapter 4, Understanding SMS Clients, in the Microsoft Systems Management Server 2003 Concepts, Planning, and Deployment Guide.
Index
Special Characters
.cmw (configuration maintenance) files 580 .msp (patch) files 553554 .mst (transform) files 553, 568570 .ops (profile settings) files 557, 570 .sms (package definition) files 141, 551
Administrator console (continued) Remote Assistance See Remote Assistance reports See reports scripting console operations 662664 security 133 Site Status 477484 software metering See software metering Status Reporting 490 System Status See System Status Terminal Services See Terminal Services viewing product compliance data 426 Advanced Clients See also clients Advanced Client Network Access account 136 Advanced Client policy 4849 advertisements 164 confirming Remote Tools installations 339340 disabling site settings using Remote Tools 357 enabling BITS 130 excluding from software metering 313323 hardware settings using Remote Tools 358 installing Remote Tools 336337 management point installations 3233 multilingual user interfaces 686 new installations 2932 persistent notification 196 running advertised programs 175179 scripting operations 667669 security settings using Remote Tools 357 software metering rules 314
A
ACL Reset 533, 537538 Actions and Actions Mask flags 661662 Active Directory deployment questions 1517 object queries 116 adding boundaries 656657 administrative patches 554, 577579 administrative rights installation context 556 administrative tasks hardware inventory 4552 software inventory 5259 Administrator console checking Advertisement Status 170 checking Package Status 169170 Component Configuration 490 configuring software distribution component 137 138 dashboards See dashboards Distribute Software Updates Wizard 194 monitoring Advertisement Status 488489 monitoring Package Status 484488 post-installation tasks 4041
712 Index Advanced Configuration attribute 280287 advanced queries 629631 Advertised Programs Client Agent 126128 advertisement object type 110 Advertisement Status 488489 Advertisement status summarizer 252 advertisements adding assignments 642643 Advanced Clients 164 advertisement distribution vs. package distribution 187 assigned program scenarios 163164 assignments based on user logon 163 checking status 170 configuring for software updates 231 creating 159164, 638641 creating for software updates 214 creating programs that do not require user input 188 creating with assigned programs 161 customizing settings for software updates 240 disabling 165 event-driven assignments 163 expanding targets 186 integrity 165166 maintaining 167168 modifying 641 naming 188 package updates 167 program dependency 163 recurring assignments 163 rerunning 165, 183 retrying assigned programs 164 running programs See running advertised programs scheduled assignments 163 scripts 638643 stopping in emergencies 183 tasks for managing 158 unlocking 642 user-initiated 187 views 414 AfterBackup.bat 510, 522523 all-sites level of site status 482484 analyzing product compliance 424425 AND logical operator 114 Application Files attribute 277278 AS keyword 407 attribute class element 111 attribute class joins 114115 attribute element 111 attribute reference criterion type 112 audit messages 468 authorizing software updates configuring advertisements 231 configuring command-line parameters 227 configuring scheduled installations 237 configuring Software Updates Installation Agent advanced options 235 configuring Software Updates Installation Agent settings 228231 creating packages 225231 customizing settings for software updates 240 deploying Office updates 231240 distributing Office updates to administrative installations 233 distributing updates to Windows Installer applications 234235 enabling dynamic package configurations 238 evaluating software updates 224 expediting approval processing using reference computers 236 expediting delivery of urgent updates 243244 overview 220 planning packages 221224 preparing package source folder 221 prioritizing software updates 224 specifying new authorization lists 239240 testing 225, 241243 automating ICP installations 706707
B
Background Intelligent Transfer Service (BITS) 130 backing up site servers 439 sites See backing up sites WMI CIM Repository 603604
Index 713 backing up sites See also recovering sites Backup SMS Site Server task See Backup SMS Site Server task central sites 528 Critical Errors 529 Errors 529 monitoring 528529 overview 503, 508509 planning 504 secondary sites 527 third-party backup tools 530 Warnings 529 backup control file 510, 515522 Backup SMS Site Server task AfterBackup.bat 510, 522523 archiving backup snapshots 522523 backing up sites 513515 backup control file 510, 515522 configuring 525526 content of backup snapshot 513 enabling 525526 overview 508513 preparing 513 scheduling considerations 523525 SMSbkup.ctl 510, 515522 tasks to perform 513515 verifying success 526527 best practices ICP deployments 702704 MOF extensions 8283 software distribution 186188 software metering 328330 software updates (distribution) 258260 software updates (distribution points) 265266 software updates (end-user experience) 261262 software updates (general) 254255 software updates (installation) 260261 software updates (installation advertisements) 265 software updates (inventory) 257258 software updates (inventory synchronization) 256 257 best practices (continued) software updates (monitoring) 262 software updates (scheduling) 262266 software updates (setup) 255256 BITS (Background Intelligent Transfer Service) 130 browsing tools 598601
C
CAP (client access point) preparing for software distribution 128129 resolving problems 702 site server ICP installation phases 698 upgrades 708 capture filters 371 capture triggers 371 central sites backing up 528 installations 2829 site control file backups 507 changing See modifying character sets 676, 678 CIM Repository 603604, 608610 CIM Studio 598599 class qualifiers 4950 classes client support 57 database 107108 SMS_UserClassPermissionNames 646 SMS_UserClassPermissions 646 SMS_UserInstancePermissionNames 646 SMS_UserInstancePermissions 646 Win32_Patchstate 194 clearing install flags 442 client access point See CAP (client access point) client agents hardware inventory 4552 software inventory 5361 client patches 554, 579 clients Advanced Clients See Advanced Clients cannot connect to sites 66 classes 57
714 Index clients (continued) creating DDRs 665 ICP installations 698700 languages 684 Legacy Clients See Legacy Clients migration questions 1315 multilingual user interfaces 684687 Remote Tools See Remote Tools running advertised programs on regular basis 183 scripting operations 664669 setting advertisement options 127128 site configuration questions 2327 software metering See software metering software updates See software updates support 57 supported localized languages 678 user context information 66 .cmw (configuration maintenance) files 580 code pages 702 collecting files configuring file collection 56 disabling MIF collection 47 enabling MIF collection 47 collecting inventory hardware See hardware inventory Resource Explorer See Resource Explorer software See software inventory collection limiting 101 collections choosing existing 132 class-specific methods 636 collection limiting 101 collection-to-collection relationships 633 creating 101104 creating for software updates 214 creating subcollections 102 creation example 634636 decreasing evaluation frequency 187 deleting 103, 637 deleting resources 106, 637638 exporting 103104 hierarchy 99 collections (continued) importing 103104 management scope 98 membership rules 96, 633 modifying 102 multilingual deployments 680 multiple dependent subcollections 99 naming 188 overview 9596 preparing for software distribution 131133 preparing subcollections for software distribution 132 recovering with direct membership rules 542 removing rules 637 resource management overview 104 resource security 100101 scripts 633638 singularly dependent subcollections 99 SMS 2003 vs. SMS 2.0 97 subcollections overview 98 updating memberships 97 updating resource list 105 views 413 compiling SMS Installer-generated executable files 305 306 compliance levels 424 compliance types 424 Component Configuration 490 Component Poller 378 Component Status 477479 COMPUTE SQL keyword 407 Computer Details page 383, 398399 computer serial numbers 89 configuration maintenance (.cmw) files 580 configuring file collection 56 hardware inventory rules 4852 Remote Tools Client Agent on site servers 335 Remote Tools site-wide settings 340345 software distribution agent 126128 software distribution component 137138 software inventory rules 5456 status filter rules 492495
Index 715 configuring (continued) status summarizers 500 status system See configuring status system configuring status system Component Configuration 490 configuring status summarizers 500 deleting status messages 500501 overview 489490 report detail messages on failure 490 status filter rules 490500 status messages 491492 Status Reporting 490 tuning status message configuration 491 connecting to WMI 623624 controlling software inventory on servers 58 counters, performance monitor 436437 Create Package from Definition Wizard 173 creating addresses 653654 advertisements 159164, 638641 classes using NOIDMIF files 7275 collections 101104 dashboards 415418 DDRs for clients 665 packages 139145, 225231, 643644 programs 146154, 643644 queries 115119 query statements 119124 reports See creating reports scripts 275, 620621 setup script for packages 145 site systems 658 SMS objects 632 software installation packages with SMS Installer See creating software installation packages with SMS Installer software metering rules 314323 SQL statements 404405 status MIF files 667 subcollections 102 creating reports See also reports creating dashboards 415418 enabling reporting points 385 new reports 390392 overview 379381, 384385 tools 385 creating software installation packages with SMS Installer compiling executable files 305306 configuring Repackage Installation Wizard 290 custom configuration for repackaging scans 291292 customizing scripts with Script Editor See customizing scripts with Script Editor distributing executable files 305 installing SMS Installer 275287 preparing reference computers 288289 Repackage Installation Wizard overview 287288 running Repackage Installation Wizard 289290 running Watch Application Wizard 292293 Script Editor See Script Editor SMS Installer overview 271272 SMS Installer process 272274 SMS Installer run mode 304 SMS Installer tasks 274275 SMS Installer test mode 304 testing executable files 303306 Watch Application Wizard overview 292 criterion types 112 critical updates See software updates Custom Installation Wizard 557 custom maintenance tasks 443 Custom Maintenance Wizard 580 custom reports 381 customizing installation attributes 276 customizing product compliance data automatically 429432 data file structure 429430 exporting records to data file 431432 importing records from data file 431 manually 427428 overview 427
716 Index customizing scripts with Script Editor creating variables 297302 destination variable 295 Installation Expert See Installation Expert installation script variables 295302 Items list 297302 overview 293 predefined variables 296297 Script Editor menus 295 Script Editor options 294 unattended setup 303 variable reference 295296 wrapping existing setup using installation script 303 deleting aged collected files 441 aged discovery data 441 aged inventory history 440 aged software metering data 441 aged software metering summary data 442 aged status messages 440 collections 103, 637 dashboards 419 packages 146 programs 154 queries 118 reports 392393 resources 106, 637638 SMS objects 632 status messages 500501 delta replication 158 deploying ICPs (International Client Packs) 692, 704710 multilingual sites 690691 Office XP See Office XP site hierarchies 676 deployment components hierarchy-specific questions See hierarchy-specific deployment questions site-specific questions See site-specific deployment questions deployment process 49 deployment scenarios in-place upgrades See in-place upgrades new installations See new installations side-by-side upgrades See side-by-side upgrades destination variable in installation script 295 detail messages 468 developing scripts 622 DHTML (Dynamic HTML) 670 disabling advertisements 165 hardware inventory 45 MIF collection 47 software inventory 53 discovery data record (DDR) 665
D
daily site maintenance tasks 444 daily site monitoring tasks checking clients status 445446 checking operating system event logs 446 checking site database status 444 checking site server status 445 checking site systems status 445 checking SQL Server error logs 446 checking status filter rules 448 checking system folders 447448 checking system performance 446 overview 444 dashboards cloning existing 418 creating 417418 data 417 deleting 419 modifying 418 overview 381, 415 running 416417 scheduling 417 viewing list of 415416 database classes 107108 date and time operators 113 DDR (discovery data record) 665 debugging scripts 669
Index 717 discovery views 410411 displaying distribution point status 628 Distribute Software Updates Wizard configuring advertisements 231 configuring command-line parameters 227 configuring Software Updates Installation Agent settings 228231 creating packages 225231 overview 194 planning packages 221224 preparing package source folder 221 running 226227 tasks for authorizing and distributing software updates 220 Distribute Software Wizard 173 distributing Office XP See Office XP packages 155158 SMS Installer-generated executable files 305 software See software distribution software updates See software update distribution distribution points displaying status using scripts 628 enabling protected 130 Manage Distribution Points Wizard 155157 managing groups 130131 preparing for software distribution 129130 scripts 644646 sending packages 644646 Dynamic HTML (DHTML) 670 dynamic package configuration 197 dynamic views 409 enabling (continued) software inventory 53 software metering 312313 error messages 467 event-driven backups 524525 event-driven maintenance tasks adjusting test labs 458 changing Active Directory site boundaries 456 changing hardware or software on site servers 457 changing site server configurations 457 changing SQL Server configurations 457 changing TCP/IP subnets 456 changing WAN infrastructure 457 overview 456 Experts 371, 373375 Export Object Wizard 118119, 395396 extending hardware inventory changing extensions 86 common MOF extensions 8793 creating classes using NOIDMIF files 7275 creating extensions 70 customizing MIF extensions with NOIDMIF files 71 customizing with IDMIF files 75 customizing with MOF files 7983 MIF extensions overview 71 MOF extensions overview 76 overview 69 propagating extensions throughout hierarchy 70 relationship between Hardware Inventory Client Agent and WMI 7779 removing extensions 86 requirements for IDMIF files 7576 scripted extensions 8486
E
editing query statements 119124 Elevated Rights Deployment Wrapper (Run_once.exe) 556 embedding properties 652 enabled interfaces 677 enabling hardware inventory 45 MIF collection 47 Remote Tools Client Agent on site servers 335
F
FAQs (frequently asked questions) 582586 FAT (file allocation system) 202 file collection configuring 56 viewing collected files 61 firewalls 196197 flow-of-activity messages 467
718 Index Frame Viewer in Network Monitor 373 frames 370 frequently asked questions (FAQs) 582586 full join 115 holding sites 6 hotfixes finding 8991 ICP (International Client Pack) 702
H
hardware inventory administrative tasks overview 45 client agents 4552 clients cannot connect to sites 66 compared to software inventory 44 configuring rules 4852 delta 52 disabling 45 disabling MIF collection 47 distributing SMS_def.mof 51 editing SMS_def.mof 49 enabling 45 enabling MIF collection 47 extending See extending hardware inventory forcing 4647 history 60 overview 43 Resource Explorer overview 59 resynchronization 46 reviewing data 6265 rules 77 scheduling 4647 upgrading SMS 51 upgrading SMS_def.mof 51 user context information 66 viewing 59 viewing history 60 Hardware Inventory Client Agent 7779 Hierarchy Maintenance tool (PreInst) 534, 538 hierarchy-specific deployment questions Active Directory questions 1517 client migration questions 1315 network questions 1719 overview 89 upgrade questions 1013
I
ICP (International Client Pack) applying updates 695696 automating installations 706707 CAP problems 702 CAP upgrades 708 code pages 702 deploying 704710 deployment best practices 702704 deployment requirements 694696 design 693701 hotfixes 702 ICP Setup (ICPSetup.exe) 707 installation 704710 Legacy Client upgrades 708 monitoring deployments 704706 planning deployments See planning ICP deployments planning multilingual sites 684687 site server installation phases 696700 software distribution 707 testing 701704 troubleshooting deployments 709710 upgrading large sites 708 version checking 694695 ICP Setup (ICPSetup.exe) 707 IDMIF files customizing 75 example 76 extensions 71 requirements 7576 Import Object Wizard 118119, 396397 informational messages 468 inner join 115 in-place upgrades deployment scenarios described 27 deployment steps 3335 overview 4, 33
Index 719 in-place upgrades (continued) questions to ask 9 upgrading sites 3538 Install on Demand 555556 installation attributes Advanced Configuration 280287 Application Files 277278 customizing 276 Installation Interface 276277 Runtime Support 278 System Configuration 279280 User Configuration 278279 Installation Expert creating scripts 275 customized functions 293 overview 272 run mode 304 test mode 304 Installation Interface attribute 276277 installation script variables 295302 wrapping existing setup 303 installation wizards 275 installing ICP (International Client Pack) 704710 in-place upgrades See in-place upgrades new installations See new installations post-installation considerations 4041 Remote Tools 336340 side-by-side upgrades See side-by-side upgrades SMS Installer 275287 International Client Pack See ICP (International Client Pack) international deployments See multilingual deployments Internet Control Message Protocol echo 378 interpreting system status 471 introduction 3 Invcif.exe (Microsoft Office Update Database) 195 Invcm.exe (Microsoft Office Update Tool) 195 inventory hardware See hardware inventory Resource Explorer See Resource Explorer software See software inventory inventory data views 411412 ISU (Windows Installer Step-up Utility) 271
L
laptop computers 8789 large queries 630 lazy properties 628629 left outer join 115 Legacy Clients See also clients confirming Remote Tools installations 339340 disabling site settings using Remote Tools 357 hardware settings using Remote Tools 358359 installing Remote Tools 336 Legacy Client Software Installation account 135 multilingual user interfaces 685 new installations 2932 running advertised programs 175, 180182 security settings using Remote Tools 356 software metering rules 314 upgrades 708 limited queries 630 links in reports 382384 list of values criterion type 112 local language display configuration 688689 localized interfaces 676 logical operators 113114 low rights installations 556
M
maintaining advertisements 167168 networks See maintaining networks Office XP installations 577580 packages 167168 software metering 326328 systems See maintaining systems
720 Index maintaining networks capture filters 371 capture triggers 371 capturing traffic 372373 capturing traffic on remote computers 376 diagnostic tools on remote computers 375376 examining captured data 373 Experts 371, 373375 installing Network Monitor 372 Network Monitor overview 370 Network Monitor requirements 372 Network Trace 377378 overview 369 starting Network Monitor 373 tasks 369 maintaining systems See also monitoring systems attaching one site to another 460 automating tasks 458 creating child sites 460 daily maintenance tasks 444 developing maintenance plans 434 event-driven maintenance tasks 456458 maintenance groups 459 maintenance operations 459463 maintenance tasks overview 435, 437 monitoring maintenance 459 moving site databases 462463 overview 433434 periodic maintenance tasks 451454 rebuilding remote site database server computers 461462 recovery and repair tools 436 resetting sites by running site reset 463 resources 434437 sharing custom maintenance tasks 459 swapping site server computers 460461 throughout hierarchy 458459 weekly site maintenance tasks 448450 maintenance operations attaching one site to another 460 creating child sites 460 moving site databases 462463 maintenance operations (continued) overview 459460 rebuilding remote site database server computers 461462 resetting sites by running site reset 463 swapping site server computers 460461 Manage Distribution Points Wizard 155157 Managed Object Format See MOF (Managed Object Format) management data dynamic 81 static 79 Management Information Format See MIF (Management Information Format) management points new installations 3233 preparing for software distribution 128129 management tools 602603 managing advertisements See advertisements collections See collections dashboards 415419 programs 146154 queries See queries reports See managing reports resources in collections 104106 sites after recovery 542543 software inventory names 5758 software updates See software updates status filter rules 658662 WMI setup and upgrades 602 managing reports See also reports adjusting time-out settings 402 advanced configuration settings 401404 changing number of reporting points on Run menu 401 changing number of rows returned by report query 402403 changing number of values returned by clicking Values 403 Computer Details page 398399 creating new reports 390392
Index 721 managing reports (continued) creating prompts 393 data 389390 deleting reports 392393 exporting reports 395396 importing reports 395397 integrating prompts 395 locating supplemental reports on disabled reporting points 403404 modifying prompts 394 modifying reports 390392 overview 385 predefined reports 390 running reports 387389 scheduling reports 397398 Status Message Details page 399400 supplemental reports 400401 tools 385 viewing list of reports 385387 MBSA (Microsoft Baseline Security Analyzer) 195 message date and time 468 message severity 467 Microsoft Baseline Security Analyzer (MBSA) 195 Microsoft Office Inventory Tool for Updates 200, 212214 Microsoft Office Profile Wizard 557 Microsoft Office Update Database (Invcif.exe) 195 Microsoft Office Update Tool (Invcm.exe) 195 Microsoft Windows 2000 See Windows 2000 Microsoft Windows 95 6 Microsoft Windows 98 See Windows 98 Microsoft Windows Millennium Edition 6 Microsoft Windows NT 4.0 See Windows NT 4.0 Microsoft Windows Server 2003 5 Microsoft Windows XP See Windows XP MIF (Management Information Format) creating 71 creating classes using NOIDMIF files 7275 creating status files 667 customizing extensions with NOIDMIF files 71 MIF (Management Information Format) (continued) customizing with IDMIF files 75 disabling collection 47 enabling collection 47 extensions overview 71 requirements for IDMIF files 7576 status 171172 milestone messages 468 mixed language deployments See multilingual deployments modifying advertisements 641 collections 102 dashboards 418 packages 145 programs 154 prompts in reports 394 queries 118 reports 390392 SMS objects 632 SQL statements 404405 MOF (Managed Object Format) best practices for extensions 8283 collecting SQL Server information 9293 collecting Windows Installer information 9192 common extensions 8793 creating 79 customizing files 7983 extensions for dynamic data 81 extensions for static data 79 extensions overview 76 extensions with namespaces other than root\CIMv2 81 finding computer serial numbers 89 finding hotfix information 8991 finding laptop computers 8789 managing WMI 604606 relationship between Hardware Inventory Client Agent and WMI 7779 MOF Compiler (Mofcomp.exe) 603
722 Index monitoring backups 528529 keys 440 networks See monitoring networks software distribution See monitoring software distribution software update distribution See monitoring software update distribution software update processes See monitoring software update processes System Status See monitoring with System Status systems See monitoring systems monitoring networks capture filters 371 capture triggers 371 capturing traffic 372373 capturing traffic on remote computers 376 diagnostic tools on remote computers 375376 examining captured data 373 Experts 371, 373375 installing Network Monitor 372 Network Monitor overview 370 Network Monitor requirements 372 Network Trace 377378 overview 369 starting Network Monitor 373 tasks 369 monitoring software distribution advertised programs 170 overview 168 package distribution 169170 status MIFs 171172 status summaries for packages 169 monitoring software update distribution component names 247 logging 248249 overview 244245 reporting 246247 status messages 247 tools 245246 monitoring software update processes auditing for security vulnerabilities 249250 checking health of components 252 monitoring status of distributions 250252 overview 249 troubleshooting errors 253 monitoring systems See also maintaining systems daily site monitoring tasks 444448 developing monitoring plans 434 diagnostic tools 436 log files 435 MOM (Microsoft Operations Manager) 437 overview 433434 performance monitor counters 436437 periodic site monitoring tasks 454456 reports 435 resources 434437 status system 435 System Monitor 436 weekly site monitoring tasks 450 Windows event logs 436 monitoring with System Status Advertisement Status 488489 Component Status 477479 overview 476 Package Status 484488 Site Status 477484 Site System Status 480484 .msp (patch) files 553554 MSSecure.XML (Security Patch Bulletin Catalog) 195 .mst (transform) files 553, 568570 MSXML requirements for software updates 201 MUI pack Office XP 552 planning multilingual sites 684687 multilingual deployments automating ICP installations 706707 CAP upgrades 708 deploying ICPs 692, 704710 deploying multilingual sites 690691 deploying site hierarchies 676
Index 723 multilingual deployments (continued) ICP installation 704710 ICP Setup (ICPSetup.exe) 707 Legacy Client upgrades 708 monitoring ICP deployments 704706 overview 675 planning ICP deployments See planning ICP deployments planning multilingual sites See planning multilingual sites planning site hierarchies 676 sample deployment scenarios 690691 software distribution 707 troubleshooting ICP deployments 709710 upgrading large sites 708 Multilingual User Interface pack See MUI pack multiple character set support 676 networks capture filters 371 capture triggers 371 capturing traffic 372373 capturing traffic on remote computers 376 deployment questions 1719 diagnostic tools on remote computers 375376 examining captured data 373 Experts 371, 373375 installing Network Monitor 372 Network Monitor overview 370 Network Monitor requirements 372 Network Trace 377378 overview of maintaining and monitoring 369 starting Network Monitor 373 tasks for maintaining and monitoring 369 new installations Advanced and Legacy Client installations 2932 central site installations 2829 deployment scenarios described 27 management point installations 3233 overview 4, 28 questions to ask 9 NOIDMIF files creating classes 7275 customizing MIF extensions 71 NOT logical operator 114 NTFS (NT file system) 202 null value criterion type 112 numerical operators 113
N
namespaces 4950 network adapters 370373, 375376 network capacity hardware inventory 45 software inventory 53 network diagrams for site systems 377 Network Monitor capture filters 371 capture triggers 371 capturing traffic 372373 capturing traffic on remote computers 376 diagnostic tools on remote computers 375376 examining captured data 373 Experts 371, 373375 installing 372 overview 370 planning ICP deployments 703704 requirements 372 starting 373 Network Monitor Driver 370, 375376 network performance hardware inventory 48 software inventory 5758 Network Trace 377378, 475
O
O_scan.exe or S_scan.exe (scan component) 199 object type element 111 object types 109110 Office Inventory Tool for Updates 200, 212214 Office Profile Wizard 557 Office Update Database (Invcif.exe) 195 Office Update Tool (Invcm.exe) 195 Office XP administrative installation point creation 566568 administrative installation source issues 558 administrative patching 577579
724 Index Office XP (continued) administrative rights installation context 556 CD installation issues 558 client configurations 560 client patching 579 configuration maintenance (.cmw) files 580 Custom Installation Wizard 557 Custom Maintenance Wizard 580 customizing source files 566 deploying business requirements 559 deploying concepts 550 deploying in organizations overview 558 deploying overview 548550 deploying procedure summary 566 deploying software updates 231240 distributing overview 547 distributing updates to administrative installations 233 Elevated Rights Deployment Wrapper (Run_once.exe) 556 enterprise configurations 559 FAQs (frequently asked questions) 582586 Install on Demand 555556 installation progress checking 577 low rights installations 556 maintaining installations 577580 MUI pack 552 Office Profile Wizard 557 Ohotfix.exe 232, 554 operating system requirements 549 package definition (.sms) files 551 patches 554 planning deployments 560566 planning for clients without administrative credentials 562563 planning installation options 564 planning strategies for collections and program advertisements 564565 preparing Office XP source files 566 profile settings (.ops) files 557, 570 public updates 577579 resilient sources 580582 resource kit tools 557 Office XP (continued) service pack distribution 579 SFU overview 551 SFU requirements determination 561562 software distribution object creation 570576 standard patching 579 transform (.mst) files 553, 568570 updating installations 577580 upgrading required prior to installation 563 Windows Installer 552556 Windows NT 4.0 low rights installations 556 Ohotfix.exe 232, 554 .ops (profile settings) files 557, 570 OR logical operator 114 ORDER BY keyword 407 order of precedence for queries 114 out-of-schedule backups 524525 overview 3
P
package access accounts 133135 package definition (.sms) files 141, 551 package object type 110 Package Status 484488 packages advertisement distribution vs. package distribution 187 checking status 169170 compression 140 creating 139145, 643644 creating for software updates 225231 creating setup script 145 creating source directories 140 creating with SMS Installer See creating software installation packages with SMS Installer customizing settings for software updates 240 deleting 146 delta replication 158 details for specific packages in all sites 486 details for specific packages in single site 487 distributing 155158 distributing to single user or computer 182
Index 725 packages (continued) dynamic configuration 197 estimating length of transfers 185 importing package definition files 141 importing Windows Installer 142 integrity 165166 maintaining 167168 Manage Distribution Points Wizard 155157 modifying 145 monitoring distribution 169170 naming 188 periodic updates 167 planning software updates 221224 preparing package source folder 221 recovering software update management packages 543 removing 168 scripts 643646 sending to distribution points 644646 setting properties 142145 status summaries 169 summary status for all packages in all sites 484 tasks for managing 139 tasks for preparing to distribute 126 updates during advertisements 167 updates during partially completed downloads 167 views 414 patch (.msp) files 553554 patches See also software updates .msp (patch) files 553554 administrative 554, 577579 client 554, 579 Office XP 554 Security Patch Bulletin Catalog (MSSecure.XML) 195 standard 554, 579 Win32_Patchstate 194 performance Remote Tools 367368 software metering 329 software updates See performance considerations for software updates performance considerations for software updates instantaneous loading 269 inventory data 266267 network issues for mobile clients 269 processing load added to client computers 266 scan component bandwidth 267268 scan component completeness 268 scan tools 269 status message processing 269 performance monitor counters 436437 periodic site maintenance tasks backing up account data 451452 changing accounts and passwords 452 checking network performance 452 overview 451 performing recovery tests in test lab 453454 reviewing maintenance plans 453 reviewing security plans 453 periodic site monitoring tasks checking backup snapshots 455456 checking hardware 455 checking overall health 455 overview 454 persistent notification 196 per-site level of site status 481482 ping provider 378 Ping Test overview 333 testing network connectivity for Remote Tools 351 planning ICP deployments See planning ICP deployments multilingual sites See planning multilingual sites Office XP deployments 560566 site backups 504 site hierarchies 676 site recoveries 504 planning ICP deployments applying updates 695696 best practices 702704 CAP problems 702 client component versions 702703
726 Index planning ICP deployments (continued) code pages 702 design 693701 hotfixes 702 Network Monitor 703704 overview 692693 planning to monitor 700 preparing SMS sites 701 requirements 694696 site server installation phases 696700 size of client component upgrades 703704 SMS version and upgrade information 700701 testing 701704 version checking 694695 planning multilingual sites client languages 684 client multilingual user interfaces 684687 default collection names 680 enabled interfaces 677 ICP (International Client Pack) 684687 installing additional languages 689 local language display configuration 688689 localized interfaces 676 multilingual features 687688 multiple character set support 676 site hierarchy languages 679680 site server languages 680683 SMS Installer 687688 software metering 688 SQL Server configuration 689690 supported localized languages 677679 post-installation considerations 4041 predefined queries 116 predefined reports 381, 390 predefined site maintenance tasks backing up site servers 439 clearing install flags 442 deleting aged collected files 441 deleting aged discovery data 441 deleting aged inventory history 440 deleting aged software metering data 441 predefined site maintenance tasks (continued) deleting aged software metering summary data 442 deleting aged status messages 440 monitoring keys 440 overview 438 rebuilding indexes 439 running 438 summarizing software metering file usage data 442 summarizing software metering monthly usage data 442 predefined variables in installation script 296297 PreInst (Hierarchy Maintenance tool) 534, 538 preparing for Backup SMS Site Server task 513 preparing for site recovery 504508, 538542 preparing for software distribution CAPs (client access points) 128129 collections 131133 distribution points 129130 management points 128129 security 133136 preparing for software updates avoiding problems caused by FAT systems 202 client requirements for test environments 203 configuring synchronization host 214217 creating advertisements, collections, and programs 214 deploying inventory tools 206220 distributing inventory tools to client computers 219 220 hardware inventory settings for test environments 204 installation details for components 199 installing Office Inventory Tool for Updates 212214 installing Security Update Inventory Tool 210212 MSXML requirements 201 overview 198 performing test inventories 217218 planning inventory tool deployments 206210 preinstallation requirements for synchronization component 202 preparing production environments 205206
Index 727 preparing for software updates (continued) preparing test environments 203205 reviewing system requirements for components 198 203 software distribution settings for test environments 204205 system requirements for inventory tools 199 system requirements for Office Inventory Tool for Updates 200 system requirements for Security Update Inventory Tool 200 verifying inventory tool installations 218 preparing test lab for recovery tests 507508 product compliance analyzing 424425 compliance levels 424 compliance types 424 customizing data automatically 429432 customizing data manually 427428 customizing data overview 427 data file structure 429430 exporting records to data file 431432 importing records from data file 431 overview 423 solutions 425426 using data files 430 viewing compliance data 426 profile settings (.ops) files 557, 570 Profile Wizard 557 program object type 110 programs assigned program scenarios for advertisements 163 164 creating 146154, 643644 creating advertised programs that do not require user input 188 creating advertisements 161 creating for software updates 214 deleting 154 managing 146154 modifying 154 monitoring advertised 170 running advertised See running advertised programs promiscuous mode 370373, 375 prompted value criterion type 112 prompts in reports creating 393 integrating 395 modifying 394 overview 381382 property qualifiers 4951
Q
qualifiers, class and property 4951 queries Active Directory object 116 advanced 629631 attribute class joins 114115 copying predefined queries to create new queries 117 creating 115119 creating statements 119124 criterion types 112 database classes 107108 deleting 118 editing statements 119124 example statements 120124 exporting 118119 importing 118119 large 630 limited 630 logical operators 113114 modifying 118 multiple object types 124 object types 109110 optional elements 111115 order of precedence 114 overview 95, 107 predefined 116 relational operators 113 required elements 111 SMS Query Builder 109 software metering 325 specifying resources in Resource Explorer 68
728 Index queries (continued) status 631 Status Message Queries 117 viewing attribute data 108 WQL (WMI Query Language) 109, 115 Query Builder 109 query name element 111 query views 414 Recovery Expert tool 505506, 533534 relational operators 113 Remctrl.log 340 Remote Assistance See also Remote Tools configuring settings 340 General tab 341 overview 333 Policy tab 342343 Security tab 341 starting 333334 Remote Chat conducting two-way conversations with clients 350 overview 332 remote computers 375376 Remote Control controlling clients 348350 overview 332 Remote Control Agent (Wuser32.exe) 355356 Remote Execute overview 332 running programs on remote clients 351 Remote File Transfer overview 332 transferring files to and from clients 352 Remote Reboot 332 Remote Tools See also Remote Assistance; Terminal Services 16-color viewing 367 advanced features (list) 354 Advanced tab 344 client connections 346348 client diagnostics 333 client hardware settings 357359 client security settings 356357 client settings changed by users 353354 conducting two-way conversations with clients 350 configuring site-wide settings 340345 confirming installations 339340 controlling clients using Remote Control sessions 348350 diagnosing client hardware and software problems 350
R
rebuilding indexes 439 recovering sites See also backing up sites ACL Reset 533, 537538 data traffic issues 539541 designating reference sites 504, 536 determining whether site recovery is necessary 531 documenting information 505 estimating amount of pending data 542 Hierarchy Maintenance tool (PreInst) 534, 538 intrasite data traffic issues 539540 managing sites after recovery 542543 mitigating data loss 542 overview 503, 530 planning 504 preparing for site recovery 504508, 538542 preparing test lab for recovery tests 507508 procedure 532533 recovering collections with direct membership rules 542 recovering software update management packages 543 Recovery Expert tool 505506, 533534 recovery scenarios 531532 reducing traffic loads 541 security issues 541542 security settings 506 Site Repair Wizard 504, 533537 site-to-site traffic issues 540541 supported configurations 531532 synchronizing objects 535 tools 533538 Unenforce Software Metering tool 534
Index 729 Remote Tools (continued) enabling Remote Tools Client Agent on site servers 335 establishing connections using Administrator console 346347 establishing connections using Remote.exe 347348 General tab 341 installing on clients 336340 Notification tab 343 overview 331333 performance 367368 Ping Test overview 333 Policy tab 342343 Remote Chat overview 332 remote client support overview 345 Remote Control overview 332 Remote Execute overview 332 Remote File Transfer overview 332 Remote Reboot overview 332 removing administrator group entries after upgrading 367 restarting remote clients 352 running programs on clients using Remote Execute 351 Security tab 341 testing network connectivity using Ping Test 351 transferring files to and from clients using Remote File Transfer 352 troubleshooting tasks 345 video acceleration 359366 wallpaper suppression 368 Wuser32.exe (Remote Control Agent) 355356 Remote Tools Client Agent configuring on site servers 335 configuring site-wide settings 340345 confirming installations 339340 enabling on site servers 335 installing on clients 336340 Remote Tools Diagnostics 333, 350 Remote.exe 347348 removing See deleting Repackage Installation Wizard configuring 290 custom configuration for repackaging scans 291292 overview 287288 preparing reference computers 288289 running 289290 replication of status summaries 475 Report Viewer See also reports Computer Details page 383, 398399 dashboards See dashboards overview 379380 running reports 387389 Status Message Details page 383, 399400 supplemental reports 400401 viewing list of reports 385387 reports adjusting time-out settings 402 advanced configuration settings 401404 building SQL statements 405409 changing number of reporting points on Run menu 401 changing number of rows returned by report query 402403 changing number of values returned by clicking Values 403 Computer Details page 398399 creating new reports 390392 creating prompts 393 creating SQL statements 404405 custom 381 dashboards See dashboards data 389390 deleting 392393 enabling reporting points 385 exporting 395396 importing 395397 integrating prompts 395 links 382384
730 Index reports (continued) locating supplemental reports on disabled reporting points 403404 modifying 390392 modifying prompts 394 modifying SQL statements 404405 overview 379381, 384 predefined 381, 390 prompts overview 381382 running 387389 scheduling 397398 scripts 626628 site component settings 649650 software metering 324325 software update compliance 246, 249 software update distribution status 246, 250252, 253 software update infrastructure health 247, 252, 253 SQL Server views 409415 SQL statements overview 404 Status Message Details page 399400 supplemental 381, 400401 tools for creating and managing 385 types of 381 viewing list of 385387 views 414 rerunning advertisements 165, 183 resilient sources 580582 Resource Explorer launching 475 monitoring software update distribution 252 overview 59 reviewing inventory data 6265 running from command line 6869 specifying explicit resources 68 using collections 69 using queries to specify resources 68 viewing attribute data 108 viewing collected files 61 viewing hardware inventory 59 viewing hardware inventory history 60 viewing software inventory 61 resources deleting 106 management overview 104 security for collections 100101 updating collection lists 105 retrieving lazy properties 628629 reviewing inventory data 6265 right outer join 115 rules hardware inventory 4852 software inventory 5456 Run_once.exe (Elevated Rights Deployment Wrapper) 556 running advertised programs See running advertised programs installation wizards 275 predefined site maintenance tasks 438 simple scripts 620621 running advertised programs Advanced Clients 176179 either Advanced or Legacy Clients 175 Legacy Clients 180182 overview 174 regular basis on clients 183 user context with administrator rights 184 without users being notified 185 Runtime Support attribute 278
S
S_scan.exe or O_scan.exe (scan component) 199 scheduling Backup SMS Site Server task 523525 hardware inventory 4647 reports 397398 software inventory 54 software metering maintenance tasks 326328 schema information views 412413 schemas, WMI 595597
Index 731 Script Editor See also scripts creating variables 297302 customizing scripts overview 293 destination variable 295 installation script variables 295302 Items list 297302 menus 295 options 294 overview 273 predefined variables 296297 unattended setup 303 user interface overview 294 variable reference 295296 wrapping existing setup using installation script 303 Yourapp.exe 305 Yourapp.ipf 306 Yourapp.pdf 306 Yourapp.wsm 306 scripted extensions for hardware inventory 8486 scripts See also Script Editor Actions and Actions Mask flags 661662 adding boundaries 656657 additional resources 672 adjusting client agent settings 654656 adjusting component settings 650651 Advanced Client operations 667669 advanced queries 629631 advertisements 638643 client operations 664669 collections 633638 connecting to WMI 623624 console operations 662664 creating addresses 653654 creating DDRs for clients 665 creating simple 620621 creating site systems 658 creating SMS objects 632 creating status MIF files 667 customizing with Script Editor See customizing scripts with Script Editor scripts (continued) debugging 669 deleting resources 637638 deleting SMS objects 632 developing 622 displaying distribution point status 628 distribution points 644646 embedding properties 652 getting SMS objects 624631 installation 295303 large queries 630 limited queries 630 managing status filter rules 658662 modifying SMS objects 632 overview 615618 packages 643646 reporting 626628 reporting site component settings 649650 retrieving lazy properties 628629 running simple 620621 security rights 646647 site comments for secondary sites 651652 SMS site settings 647649 status queries 631 support 671672 unattended setup 303 Visual Basic 622623 Web pages 670671 writing 618620 WSH (Windows Script Host) 617618 secondary sites backing up 527 site comments in scripts 651652 security Administrator console 133 Advanced Client Network Access account 136 client settings using Remote Tools 356357 collections 100101 Legacy Client Software Installation account 135 package access accounts 133135 preparing for software distribution 133136 recovering sites 506, 541542
732 Index security (continued) rights 646647 software metering 317 views 415 WMI (Windows Management Instrumentation) 604 Security Patch Bulletin Catalog (MSSecure.XML) 195 security patches See patches Security Update Inventory Tool 200, 210212 service packs 191, 579 SFU (System Files Update) overview 551 requirements determination 561562 side-by-side upgrades deployment scenarios described 27 deployment steps 3840 overview 5, 38 questions to ask 9 simple value criterion type 112 site hierarchy languages 679680 site object type 110 site server languages 680683 Site Status 477484 Site System Status 480484 site views 414 site-specific deployment questions client configuration questions 2327 overview 8, 19 site configuration questions 1923 Skpswi.dat 5859 .sms (package definition) files 141, 551 SMS Administrator console See Administrator console SMS Advanced Clients See Advanced Clients SMS Hardware Inventory Client Agent 7779 SMS Installer Advanced Configuration attribute 280287 Application Files attribute 277278 compiling executable files 305306 configuring Repackage Installation Wizard 290 creating executable files 273274 creating scripts 275 SMS Installer (continued) custom configuration for repackaging scans 291292 customizing installation attributes 276 customizing scripts with Script Editor See customizing scripts with Script Editor distributing executable files 305 Installation Expert See Installation Expert Installation Interface attribute 276277 installation overview 275 options 273 overview 271272 planning multilingual sites 687688 preparing reference computers 288289 process 272274 Repackage Installation Wizard overview 287288 run mode 304 running Repackage Installation Wizard 289290 running Watch Application Wizard 292293 running wizards 275276 Runtime Support attribute 278 Script Editor See Script Editor software distribution 172 System Configuration attribute 279280 tasks 274275 test mode 304 testing executable files 303306 User Configuration attribute 278279 Watch Application Wizard overview 292 SMS Installer-generated executable files compiling 305306 creating 273274 distributing 305 overview 271 process for creating 274 testing 303 SMS Legacy Clients See Legacy Clients SMS Query Builder 109 SMS Remote Tools See Remote Tools SMS Site Repair Wizard 504, 533537 SMS status system See status system
Index 733 SMS_def.mof Advanced Clients 48 backing up 49 distributing 51 editing 49 Standard Clients 48 upgrading SMS site 51 SMS_UserClassPermissionNames 646 SMS_UserClassPermissions 646 SMS_UserInstancePermissionNames 646 SMS_UserInstancePermissions 646 SMSbkup.ctl 510, 515522 software distribution Administrator console security 133 Advanced Client Network Access account 136 Advertised Programs Client Agent 126128 advertisement distribution vs. package distribution 187 best practices 186188 choosing existing collections 132 configuring software distribution agent 126128 configuring software distribution component 137 138 Create Package from Definition Wizard 173 creating advertised programs that do not require user input 188 creating advertisements 159164 creating packages 139145 creating programs 146154 decreasing collection evaluation frequency 187 deleting packages 146 deleting programs 154 disabling 126, 165 Distribute Software Wizard 173 distributing packages 155158 enabling 126 enabling BITS 130 enabling protected distribution points 130 estimating length of package transfers 185 expanding advertisement targets 186 integrity for packages and advertisements 165166 Legacy Client Software Installation account 135 software distribution (continued) maintaining packages and advertisements 167168 managing distribution point groups 130131 modifying packages 145 modifying programs 154 monitoring advertised programs 170 monitoring overview 168 monitoring package distribution 169170 multilingual deployments 707 naming for advertisements, collections, and packages 188 Office XP See Office XP overview 125 package access accounts 133135 phases 187 preparing CAPs 128129 preparing collections 131133 preparing distribution points 129130 preparing management points 128129 preparing security 133136 preparing subcollections 132 rerunning advertisements 165, 183 running advertised programs in user context with administrator rights 184 running advertised programs on Advanced Clients 176179 running advertised programs on either Advanced or Legacy Clients 175 running advertised programs on Legacy Clients 180 182 running advertised programs on regular basis on clients 183 running advertised programs without users being notified 185 setting advertisement options for clients 127128 single user or computer 182 SMS Installer 172 status MIFs 171172 status summaries for packages 169 stopping advertisements in emergencies 183 tasks (list) 182 tasks for managing advertisements 158 tasks for managing packages 139 tasks for preparing for package distribution 126
734 Index software distribution (continued) tasks for preparing for software distribution 128 testing 186 user-initiated advertisements 187 Windows Installer-based applications 184 Windows Terminal Services 186 wizards 173174 software inventory administrative tasks overview 52 client agents 5361 clients cannot connect to sites 66 compared to hardware inventory 44 configuring file collection 56 configuring rules 5456 controlling on servers 58 disabling 53 enabling 53 forcing 54 managing names 5758 network activity 54 network performance 5758 overview 43 Resource Explorer overview 59 reviewing data 6265 scheduling 54 Skpswi.dat 5859 user context information 66 viewing 61 software metering adding rules 317318 best practices 328330 changes 311312 concurrent vs. distinct users 324 configuring data collection schedules 328 configuring rules 329330 creating reports 325 creating rules 314323 data summarization 324 data usage overview 323 Delete Aged Software Metering Data task 326 Delete Aged Software Metering Summary Data task 326 software metering (continued) deleting rules 318 disabling rules 318 distributing programs to be monitored 328 enabling 312313 enabling rules 318 excluding Advanced Clients 313323 file usage summary data 324 inventorying programs to be monitored 328 license compliance 309, 330 monitoring executable programs 310311 monthly usage summary data 324 overview 309310 performance 329 planning multilingual sites 688 privacy concerns 330 program version issues 329 queries 325 reporting 324325 rule matching 315316, 329 rule properties 314315 rules in multitiered hierarchies 318321 rules with same name 321322 sample reports 325 scheduling data flow 316317 scheduling maintenance tasks 326328 security settings 317 SMS 2003 vs. SMS 2.0 311312 Summarize Software Metering File Usage Data task 327 Summarize Software Metering Monthly Usage Data task 328 Summarize Software Metering tasks 327 Terminal Services 322323 Software Metering Client Agent See also software metering enabling 312313 monitoring programs 311 overview 310 rule matching 315316 scheduling data flow 316317 software metering rule object type 110
Index 735 software update distribution configuring advertisements 231 configuring command-line parameters 227 configuring scheduled installations 237 configuring Software Updates Installation Agent advanced options 235 configuring Software Updates Installation Agent settings 228231 creating packages 225231 customizing settings for software updates 240 deploying Office updates 231240 distributing Office updates to administrative installations 233 distributing updates to Windows Installer applications 234235 enabling dynamic package configurations 238 evaluating software updates 224 expediting approval processing using reference computers 236 expediting delivery of urgent updates 243244 overview 220 planning packages 221224 preparing package source folder 221 prioritizing software updates 224 specifying new authorization lists 239240 testing 225, 241243 software updates See also patches advanced management features 196 basic components functionality 194195 best practices (distribution) 258260 best practices (distribution points) 265266 best practices (end-user experience) 261262 best practices (general) 254255 best practices (installation) 260261 best practices (installation advertisements) 265 best practices (inventory) 257258 best practices (inventory synchronization) 256257 best practices (monitoring) 262 best practices (scheduling) 262266 best practices (setup) 255256 compared to service packs 191 dynamic package configuration 197 software updates (continued) firewall authentication support 196197 management challenges 191 management guidelines 192193 management overview 189190 management tasks overview 197198 performance See performance considerations for software updates persistent notification 196 reference computer inventory template 197 scheduled installations 197 tasks for authorizing and distributing See tasks for authorizing and distributing software updates tasks for monitoring distributions See tasks for monitoring software update distributions tasks for monitoring processes See tasks for monitoring software update processes tasks for preparing for See tasks for preparing for software updates technology 195 unattended installations 196 varieties 190 Software Updates Installation Agent 228231, 235 SQL Server See also SQL statements advertisement views 414 collecting information 9293 collection views 413 compared to WMI 597 discovery views 410411 inventory data views 411412 package views 414 planning multilingual sites 689690 query views 414 report views 414 schema information views 412413 security views 415 site views 414 status views 413414 views nomenclature overview 410 views overview 409 views setup 409410
736 Index SQL statements See also SQL Server building 405409 converting Coordinated Universal Time (Greenwich Mean Time) to local time 408 creating for reports 404405 examples 408409 modifying for reports 404405 reports overview 404 variables 408 standard patches 554, 579 static views 409 status filter rules 490500, 658662 Status Message Details page 383, 399400 Status Message Queries 117 Status Message Viewer 469471, 474475 status messages characteristics for identifying source 469 date and time 468 defined 466467 deleting 440, 500501 overview 466 severity 467 software update distribution 247 status filter rules 491500 types of 468 viewing 469471 status MIF files 667 status queries 631 Status Reporting 490 status summarizers concepts 472475 configuring 500 counts 472 display intervals 472473 launching tools 474475 Network Trace 475 overview 471 replication 475 Resource Explorer 475 states 472 status indicators 473474 Status Message Viewer 474475 status summarizers (continued) thresholds 474 Windows Diagnostics 475 status system audit messages 468 Component Configuration 490 configuring See configuring status system console items (list) 169 detail messages 468 error messages 467 flow-of-activity messages 467 informational messages 468 interpreting system status 471 message date and time 468 message severity 467 milestone messages 468 monitoring with System Status See System Status overview 465 Status Message Viewer 469471 status messages 466471 Status Reporting 490 status summarizers See status summarizers troubleshooting with System Status See System Status warning messages 468 Windows Event Log 501502 Windows Event Viewer 501502 status views 413414 subcollections creating 102 multiple dependent 99 overview 98 preparing for software distribution 132 singularly dependent 99 subselected values criterion type 112 summarizing software metering usage data 442 supplemental reports 381, 400401 support for scripted solutions 671672 supported localized languages 677679 Syncxml.exe (synchronization component) 199 System Configuration attribute 279280 System Files Update See SFU (System Files Update) system resource object type 110
Index 737 System Status See also status system Advertisement Status 488489 all-sites level of site status 482484 Component Status 477479 details for specific packages in all sites 486 details for specific packages in single site 487 monitoring overview 476 Package Status 484488 per-site level of site status 481482 Site Status 477484 Site System Status 480484 summary status for all packages in all sites 484 troubleshooting overview 476 tasks for collecting inventory hardware inventory 4552 software inventory 5259 tasks for maintaining systems See also tasks for monitoring systems adjusting test labs 458 automated weekly maintenance tasks 449 automating tasks 458 backing up account data 451452 backing up application, security, and system event logs 450 backing up site servers 439 changing accounts and passwords 452 changing Active Directory site boundaries 456 changing hardware or software on site servers 457 changing site server configurations 457 changing SQL Server configurations 457 changing TCP/IP subnets 456 changing WAN infrastructure 457 checking network performance 452 clearing install flags 442 custom maintenance tasks 443 daily maintenance tasks 444 deleting aged collected files 441 deleting aged discovery data 441 deleting aged inventory history 440 deleting aged software metering data 441 deleting aged software metering summary data 442 deleting aged status messages 440 deleting unnecessary files 449 deleting unnecessary objects 449 event-driven maintenance tasks 456458 monitoring keys 440 overview 437438 performing recovery tests in test lab 453454 periodic maintenance tasks 451454 predefined maintenance tasks 438442 rebuilding indexes 439 reviewing maintenance plans 453 reviewing security plans 453 running disk defragmentation tools 449 configuring advertisements 231 configuring command-line parameters 227 configuring scheduled installations 237 configuring Software Updates Installation Agent advanced options 235 configuring Software Updates Installation Agent settings 228231 creating packages 225231 customizing advertisement and package settings 240 deploying Office updates 231240 distributing Office updates to administrative installations 233 distributing updates to Windows Installer applications 234235 enabling dynamic package configurations 238 evaluating software updates 224 expediting approval processing using reference computers 236 expediting delivery of urgent updates 243244 overview 220 planning packages 221224 preparing package source folder 221 prioritizing software updates 224 specifying new authorization lists 239240 testing 225, 241243
T
tasks for authorizing and distributing software updates
738 Index tasks for maintaining systems (continued) sharing custom maintenance tasks 459 summarizing software metering file usage data 442 summarizing software metering monthly usage data 442 weekly maintenance tasks 448450 tasks for monitoring software update distributions component names 247 logging 248249 overview 244245 reporting 246247 status messages 247 tools 245246 tasks for monitoring software update processes auditing for security vulnerabilities 249250 checking health of components 252 monitoring status of distributions 250252 overview 249 troubleshooting errors 253 tasks for monitoring systems See also tasks for maintaining systems checking available disk space 450 checking available site database space 450 checking backup snapshots 455456 checking clients status 445446 checking hardware 455 checking operating system event logs 446 checking overall health 455 checking site database status 444 checking site server status 445 checking site systems status 445 checking SQL Server error logs 446 checking status filter rules 448 checking system folders 447448 checking system performance 446 daily monitoring tasks 444448 periodic monitoring tasks 454456 weekly monitoring tasks 450 tasks for preparing for software updates avoiding problems caused by FAT systems 202 client requirements for test environments 203 configuring synchronization host 214217 creating advertisements, collections, and programs 214 deploying inventory tools 206220 distributing inventory tools to client computers 219 220 hardware inventory settings for test environments 204 installation details for components 199 installing Office Inventory Tool for Updates 212214 installing Security Update Inventory Tool 210212 MSXML requirements 201 overview 198 performing test inventories 217218 planning inventory tool deployments 206210 preinstallation requirements for synchronization component 202 preparing production environments 205206 preparing test environments 203205 reviewing system requirements for components 198 203 software distribution settings for test environments 204205 system requirements for inventory tools 199 system requirements for Office Inventory Tool for Updates 200 system requirements for Security Update Inventory Tool 200 verifying inventory tool installations 218 tasks for SMS Installer 274275 temporary capture file 370371 Terminal Services See also Remote Tools overview 333 software distribution 186 software metering 322323 starting 333334 testing SMS Installer-generated executable files 303306 third-party backup tools 530
Index 739 tools See also wizards ACL Reset 533, 537538 browsing 598601 CIM Studio 598599 diagnostic 436 Hierarchy Maintenance (PreInst) 534, 538 Installation Expert See Installation Expert MBSA (Microsoft Baseline Security Analyzer) 195 MOF Compiler (Mofcomp.exe) 603 monitoring software update distributions 245246 Network Monitor See Network Monitor Network Trace 377378 Office Inventory Tool for Updates 200, 212214 Office resource kit 557 Office Update (Invcm.exe) 195 Office Update Database (Invcif.exe) 195 performance monitor counters 436437 recovery and repair 436, 533538 Recovery Expert 505506, 533534 Remote Tools See Remote Tools reports 385 Script Editor See Script Editor Security Patch Bulletin Catalog (MSSecure.XML) 195 Security Update Inventory Tool 200, 210212 SMS Installer See SMS Installer software update inventory 199, 206220 third-party backup 530 Unenforce Software Metering 534 Visual Studio .NET 600 WBEMTest.exe 599 Windows event logs 436 Windows Installer See Windows Installer Windows Installer Step-up Utility (ISU) 271 Winmgmt.exe 603 WMI Command-line (WMIC) 600601 WMI Control 602 WMI management 602603 transform (.mst) files 553, 568570 troubleshooting Advertisement Status 488489 Component Status 477479 ICP deployments 709710 Package Status 484488 Remote Tools 345 Site Status 477484 Site System Status 480484 software update installation errors 253 System Status overview 476 WMI (Windows Management Instrumentation) 606 612
U
unattended software update installations 196 Unenforce Software Metering tool 534 unspecified object types 110 update rollups See software updates updates See software updates upgrading in-place SMS upgrades See in-place upgrades Office XP 563 post-installation considerations for SMS 4041 side-by-side SMS upgrades See side-by-side upgrades WMI (Windows Management Instrumentation) 602 User Configuration attribute 278279 user group resource object type 110 user resource object type 110 utilities See tools
V
v_GS_System inventory data view 411 v_GS_Workstation inventory data view 411412 variable reference in installation script 295296 video acceleration clients running Windows 2000 361 clients running Windows NT 4.0 362366 enabling 367 overview 359 video compression 360 video compression 360
740 Index viewing attribute data in queries 108 collected files 61 hardware inventory 59 hardware inventory history 60 list of dashboards 415416 list of reports 385387 product compliance data 426 software inventory 61 status messages 469471 Visual Basic scripting 622623 Visual Studio .NET 600 Windows Diagnostics 333, 350, 475 Windows Event Log 501502 Windows Event Viewer 501502 Windows Installer applications 184 collecting information 9192 distributing updates to applications 234235 importing packages 142 Install on Demand 555556 Office XP 552556 patch (.msp) files 553554 transform (.mst) files 553 versions 552 Windows Installer Source List Resolution 234 Windows Installer Step-up Utility (ISU) 271 Windows Management Instrumentation See WMI (Windows Management Instrumentation) Windows Millennium Edition 6 Windows NT 4.0 client classes supported 56 diagnosing client problems using Windows Diagnostics 350 Elevated Rights Deployment Wrapper (Run_once.exe) 556 installing Remote Tools 337 low rights installations 556 Office XP deployments 563 Office XP low rights installations 556 preinstallation testing before installing Remote Tools 338339 third-party client conflicts for Remote Tools 338339 video acceleration on clients 362366 video driver compatibility for Remote Tools 338 Wuser32.exe (Remote Control Agent) 355 Windows Script Host (WSH) 617618 Windows Server 2003 5 Windows Terminal Services See Terminal Services Windows XP client classes supported 5 Office XP deployments 562 Winmgmt.exe 603 WINS 371, 374
W
warning messages 468 Watch Application Wizard 292293 Wbemperm.exe 602 WBEMTest.exe 599 weekly site maintenance tasks automated 449 backing up application, security, and system event logs 450 deleting unnecessary files 449 deleting unnecessary objects 449 overview 448 running disk defragmentation tools 449 weekly site monitoring tasks 450 WHERE keyword 407 Win32_Patchstate 194 Windows 2000 client classes supported 5 installing Remote Tools 337 Office XP deployments 562 video acceleration on clients 361 Windows 95 6 Windows 98 client classes supported 6 diagnosing client problems using Remote Tools Diagnostics 350 installing Remote Tools 339 Office XP deployments 562 Wuser32.exe (Remote Control Agent) 355356
Index 741 wizards Create Package from Definition Wizard 173 Custom Installation Wizard 557 Custom Maintenance Wizard 580 Distribute Software Updates Wizard See Distribute Software Updates Wizard Distribute Software Wizard 173 Export Object Wizard 118119, 395396 Import Object Wizard 118119, 396397 Manage Distribution Points Wizard 155157 Office Profile Wizard 557 Repackage Installation Wizard See Repackage Installation Wizard SMS Site Repair Wizard 504, 533537 Watch Application Wizard 292293 WMI (Windows Management Instrumentation) additional resources 613 architecture 591593 backing up data 603604 browsing tools 598601 CIM Repository 603604, 608610 CIM Studio 598599 classes 107108 Command-line tool 600601 compared to SQL Server 597 connecting to WMI using scripts 623624 connectivity issues 610 Hardware Inventory Client Agent relationship 7779 installation issues 610 management tools 602603 managing 601606 WMI (Windows Management Instrumentation) (continued) MOF Compiler (Mofcomp.exe) 603 MOF files 604606 Object Model 593595 overview 587591 programming issues 611 resource consumption issues 611 schemas 595597 security 604 setup 602 troubleshooting 606612 upgrading 602 Visual Studio .NET 600 Wbemperm.exe 602 WBEMTest.exe 599 Winmgmt.exe 603 WMI Control tool 602 WQL (WMI Query Language) 109, 115 WMI Command-line (WMIC) tool 600601 WMI Control tool 602 WMI Query Language (WQL) 109, 115 WSH (Windows Script Host) 617618 Wuser32.exe (Remote Control Agent) 355356
Y
Yourapp.exe 305 Yourapp.ipf 306 Yourapp.pdf 306 Yourapp.wsm 306