SCCM Current Branch Unleashed
SCCM Current Branch Unleashed
UNLEASHED
Kerrie Meyler
Gerry Hampson
Saud Al-Mishari
Greg Ramsey
Kenneth van Surksum
Michael Wiles
System Center Configuration Manager Current
Branch Unleashed Copyright © 2018 by Pearson
Education, Inc.
All rights reserved. Printed in the United States of America. This publication is
protected by copyright, and permission must be obtained from the publisher
prior to any prohibited reproduction, storage in a retrieval system, or
transmission in any form or by any means, electronic, mechanical,
photocopying, recording, or likewise. For information regarding permissions,
request forms, and the appropriate contacts within the Pearson Education Global
Rights & Permissions Department, please visit
www.pearsoned.com/permissions/. No patent liability is assumed with respect to
the use of the information contained herein. Although every precaution has been
taken in the preparation of this book, the publisher and author assume no
responsibility for errors or omissions. Nor is any liability assumed for damages
resulting from the use of the information contained herein.
ISBN-13: 978-0-672-33790-1
ISBN-10: 0-672-33790-8
Library of Congress Control Number: 2018932443
Printed in the United States of America
1 18
Trademarks
All terms mentioned in this book that are known to be trademarks or service
marks have been appropriately capitalized. Sams Publishing cannot attest to the
accuracy of this information. Use of a term in this book should not be regarded
as affecting the validity of any trademark or service mark.
Microsoft and/or its respective suppliers make no representations about the
suitability of the information contained in the documents and related graphics
published as part of the services for any purpose. All such documents and related
graphics are provided “as is” without warranty of any kind. Microsoft and/or its
respective suppliers hereby disclaim all warranties and conditions with regard to
this information, including all warranties and conditions of merchantability,
whether express, implied or statutory, fitness for a particular purpose, title and
non-infringement. In no event shall Microsoft and/or its respective suppliers be
liable for any special, indirect or consequential damages or any damages
whatsoever resulting from loss of use, data or profits, whether in an action of
contract, negligence or other tortious action, arising out of or in connection with
the use or performance of information available from the services. The
documents and related graphics contained herein could include technical
inaccuracies or typographical errors. Changes are periodically added to the
information herein. Microsoft and/or its respective suppliers may make
improvements and/or changes in the product(s) and/or the program(s) described
herein at any time. Partial screenshots may be viewed in full within the software
version specified. Microsoft®and Windows® are registered trademarks of the
Microsoft Corporation in the U.S.A. and other countries. Screenshots and icons
reprinted with permission from the Microsoft Corporation. This book is not
sponsored or endorsed by or affiliated with the Microsoft Corporation.
Part V Appendixes
A Configuration Manager Log Files
B Co-Managing Microsoft Intune and ConfigMgr
C Reference URLs
D Available Online
Index
5 Network Design
Configuration Manager and the Network
Network Considerations for Server Placement
Using Distribution Points and Secondary Sites
Understanding Data Flows
Communication Going to the Client
Communication from the Client
Designing Intrasite Communication
Understanding SQL Server Communication
Using RPC Communication
Using SMB Communication
Using External Communication
Using Intersite Communication
File-Based Replication in ConfigMgr
Using SQL Server–Based Replication
Designing Client Communication
Using the Service Location
About Background Intelligent Transfer Service
BITS Versions for ConfigMgr Clients
Understanding BranchCache
Understanding Peer Cache
Using Boundaries and Boundary Groups
About Client Communication Security
Troubleshooting Network-Related Issues
Troubleshooting Basic Network Connectivity
Testing DNS Resolution
Troubleshooting Routers and Firewall Ports
Congested or Slow Network Links
Testing MPs and DPs
Troubleshooting Service Principal Names
Summary
9 Client Management
ConfigMgr Client Agent Requirements
Agent Hardware Dependencies
Supported Operating Systems for the Client Agent
Agent Software Dependencies
Other Agent Dependencies
Installing, Upgrading, and Uninstalling ConfigMgr Client Agents
Manually Installing on Windows Computers
Manually Installing on Mac Computers
Manually Installing on UNIX and Linux Computers
Using Logon Scripts to Install on Windows Devices
Installing Using Group Policy for Windows Devices
Installing Using Software Update Point (SUP) for Windows Devices
Installing and Assigning Windows 10 Clients Using Azure AD for
Authentication
Approving Clients
Pushing the Client
Automatically Upgrading the Client on Windows
Uninstalling the ConfigMgr Client Agent
Finding Potential ConfigMgr Clients in Your Network
Using Active Directory Forest Discovery
Using Active Directory Group Discovery
Using Active Directory User Discovery
Using Active Directory System Discovery
Using Heartbeat Discovery
Using Network Discovery
Manually Importing Clients into ConfigMgr
Using Azure AD User Discovery
What to Know About Client Agent Assignment
Monitoring Client Agent Health and Activity Status
Understanding Client Settings
Client Settings Priority
Configurable Client Settings
Using Remote Control
Using the Resource Explorer
Using Wake on LAN and Power Management
Using Wake on LAN
Configuring Power Management
Summary
10 Managing Compliance
Configuring Compliance Settings
Understanding Compliance Settings
Using Configuration Items
Using Configuration Baselines
Using User Data and Profiles
Using Remote Connection Profiles
Creating Configuration Items
Devices with a ConfigMgr Client
Using Devices Without a ConfigMgr Client
Creating Baselines
Deploying Baselines
Developing a Compliance Strategy
Obtaining On-Demand Results
Correcting Issues Using Remediation
Using Reporting to Track Compliance
Troubleshooting Settings Management
Summary
19 Endpoint Protection
Protection Capabilities of Microsoft’s Antimalware Platform
Using Antimalware as a Service
Understanding Microsoft’s Core Protection Technologies
Understanding Windows Antimalware Capabilities
Using Windows Defender Offline
Microsoft’s Approach to Antimalware
Prerequisites for Endpoint Protection
Planning and Considerations
Gathering Requirements for Endpoint Protection
Determining Definition Update Sources
Leveraging ConfigMgr’s Capabilities
Using System Center Endpoint Protection with Windows 10
Deployment Best Practices
Deploying and Configuring Endpoint Protection
Installing the Endpoint Protection Point Role
Delivery of Definition Updates
Working with Antimalware Policies
Installing the Endpoint Protection Client
Monitoring and Reporting in Endpoint Protection
Operational Status of Endpoint Protection Clients
Reports Available for Endpoint Protection
Integrating Report Data with Other Systems
Endpoint Protection Actions and Alerts
Overview of Endpoint Protection Alerts
Enabling Alerts for a Collection
On-Demand Actions Related to Endpoint Protection
Scripting Endpoint Protection Actions
Windows Defender Advanced Threat Protection
Windows Defender ATP Capabilities
Prerequisites for Windows Defender ATP
Configuring Windows Defender ATP Using ConfigMgr
Summary
Part V Appendixes
A Configuration Manager Log Files
Viewing Log Files
Configuring Logging
Server-Side Logging Levels
MP/Client and Console Logging Levels
Client Logs
Server Logs
Site Server Logs
Server Installation and Update Logs
Site System Logs
Cloud Management Gateway Logs in Azure
C Reference URLs
General Resources
Microsoft’s Configuration Manager Resources
Other Configuration Manager Resources
Blogs
Public Forums
Utilities
D Available Online
Configuration Manager Reporting
Live Links
Extending Hardware Inventory—Online Only
Index
E (Online Only) Extending Hardware Inventory
You can find Appendix E at informit.com/title/9780672337901. Click
the Downloads tab to access the PDF file.
About the Author
Kerrie Meyler, Cloud and Datacenter Management MVP, is the lead author of
numerous System Center books in the Unleashed series, including Microsoft
Hybrid Cloud Unleashed (2018), System Center 2012 R2 Configuration
Manager Unleashed Supplement (2014), System Center 2012 Configuration
Manager Unleashed (2012), and System Center Configuration Manager 2007
Unleashed (2009). She also coauthored System Center Configuration Manager
Reporting (2016). Kerrie is an independent consultant with more than 20 years
of information technology experience. She was responsible for evangelizing
Systems Management Server (SMS) while a Senior Technology Specialist at
Microsoft and has presented on System Center technologies at TechEd and
MMS.
Kenneth van Surksum, MCT and former MVP, is a trainer and managing
consultant at insight24, a company based in the Netherlands. With almost 20
years of experience, Kenneth has worked with SMS 1.2 and successive versions
of the product and specializes in OS deployment. Kenneth was a contributing
author for System Center 2012 R2 Configuration Manager Unleashed, System
Center 2012 Configuration Manager Unleashed, System Center 2012 Service
Manager Unleashed, and coauthored Mastering Windows 7 Deployment (Sybex,
2011).
Michael Wiles begin working with SMS 1.1 as a Microsoft support engineer in
1997 and was a Senior Premier Field Engineer (PFE) from 2005 to 2012. He
now works for NTT Data, as a Configuration Specialist Advisor, leading the
infrastructure team and working on transitions and transformations with new
customers at NTT Data Services. Michael was a contributing author on System
Center 2012 R2 Configuration Manager Unleashed Supplement (2014).
About the Contributing Authors
Byron Holt, CISSP and an IT professional for over 20 years, has been a lead
SMS and Configuration Manager engineer for several Global 5000 corporations
and was part of the Active Directory and Enterprise Manageability support
teams while working at Microsoft. Byron’s experience includes software
development, security architecture, and systems management. He currently
works for McAfee as an infrastructure and process security architect. Byron
coauthored System Center Configuration Manager 2012 Unleashed (2014).
We would also like to thank our spouses and significant others for their patience
and understanding during the many hours spent on this book.
I would certainly expect that this book will prove to be an extremely valuable
resource for you in your efforts of learning what is new in Configuration
Manager Current Branch—at least at the time of writing the book. No book is
going to be able to always be up to date, as by the time it is published, a new
build of Configuration Manager may have already been released. However, to
get you up to speed on what the product provides that can potentially benefit
your organization, this book would be a great addition to your learning path.
All the best to you in your learning and use of Configuration Manager—as you
know, I love the product, and trust that you will too once you get it firmly
entrenched in your environment.
Wally Mead
(former) Senior Program Manager, Configuration Manager Product Group
Microsoft Corporation
Now at Cireson
Reader Services
Register your copy of System Center Configuration Manager Current Branch
Unleashed at informit.com for convenient access to downloads, updates, and
corrections as they become available. To start the registration process, go to
informit.com/register and log in or create an account*. Enter the product ISBN,
9780672337901, and click Submit. When the process is complete, you will find
any available bonus content under Registered Products.
*Be sure to check the box that you would like to hear from us to receive
exclusive discounts on future editions of this product.
INTRODUCTION
Part V: Appendixes
By this time, you should have at your disposal all the tools necessary to become
a hybrid cloud expert. The last part of the book includes five appendixes:
Appendix A, “Configuration Manager Log Files,” discusses the myriad log
files used by Configuration Manager that are helpful when trying to
troubleshoot assorted issues.
Appendix B, “Co-Managing Microsoft Intune and ConfigMgr,” discusses
how you might move workloads from ConfigMgr to Microsoft Intune,
functionality first available with ConfigMgr Current Branch 1710.
Appendix C, “Reference URLs,” incorporates useful references you can
access for further information about Configuration Manager, which is also
included as live links available for download under the Downloads tab at
Pearson’s InformIT website, at
http://www.informit.com/title/9780672337901.
Appendix D, “Available Online,” discusses value-added content available
for download under the Downloads tab at Pearson’s InformIT website, at
http://www.informit.com/title/9780672337901.
(Online Only) Appendix E, “Extending Hardware Inventory,” takes a deep
dive into how to extend hardware inventory. This appendix is available at
Pearson’s InformIT website at
http://www.informit.com/title/9780672337901, under the Downloads tab.
Lab Environment
While developing this book, the authors used a lab environment provided by
ClearPointe Technology. The ConfigMgr site hierarchy, installed in the
odyssey.com domain, consisted of a CAS (Armada), two primary site servers
(Athena and Ambassador), and a secondary site server under Athena (Charon).
See Chapter 2 for a diagram of the hierarchy used in the Odyssey lab.
IN THIS PART
CHAPTER 1 Configuration Management Basics
CHAPTER 2 Configuration Manager Overview
CHAPTER 3 Looking Inside Configuration Manager
CHAPTER 1
Configuration Management Basics
IN THIS CHAPTER
10 Reasons to Use Configuration Manager
The Evolution of Systems Management
Systems Management Defined
Microsoft’s Strategy for Systems Management
Bridging the Systems Management Gap
The Value Proposition of Configuration Manager
Windows 10 Support: Updates that help you quickly deploy, upgrade, and
configure Windows 10.
Servicing Model: A new ConfigMgr servicing model keeps you current
with continuous innovations delivered through Windows as a Service.
Mobile Device Management (MDM): Building on unified management of
on-premise and cloud-based mobile devices introduced with ConfigMgr
2012 R2, this version includes Android and iOS innovations through MDM
when integrated with Microsoft Intune, including the ability to impose
conditional access on devices and on-premise MDM support.
Monitoring: Configuration Manager enables you to see clients that are
online and view the health of Windows 10 devices.
Office 365 Management: You can manage Office 365 clients using
ConfigMgr’s software update management workflow.
Application Management: Software Center has a new, modern look, with
increased capabilities.
While trying to bring some humor to the discussion, these topics represent very
real problems for many systems administrators. If you are one of those
individuals, you owe it to yourself to explore how your organization might
leverage Configuration Manager to solve numerous problems. The pain points
just listed are common to most users to some degree, and System Center
Configuration Manager holds solutions for all of them.
However, perhaps the most important reason for using Configuration Manager is
the peace of mind it gives you, as an administrator, to know that you have
complete visibility and control of your IT systems. The stability and productivity
this can bring to your organization is a great benefit as well.
Automation Challenges
As functionality in client and server systems has increased, so too has
complexity. Both desktop and server deployments can be very time-consuming
when performed manually. With the number and variety of security threats
increasing every year, timely application of security updates is of paramount
importance. Regulatory compliance issues add an additional burden, requiring IT
to demonstrate that system configurations meet regulatory requirements.
These problems have a common element: All beg for some measure of
automation to ensure that IT can meet expectations in these areas at the expected
level of accuracy and efficiency. To get IT operational requirements in hand,
organizations must implement tools and processes that make OS and software
deployment, update management, and configuration monitoring more efficient
and effective.
You may be familiar with an old philosophical saying “If a tree falls in a forest
and no one is around to hear it, does it make a sound?” Here is the configuration
management equivalent: “If a change is made on a system and no one knows
about it, does identifying it make a difference?”
The answer to this question is absolutely yes. Every change to a system has some
potential to affect the functionality or security of a system or that system’s
adherence to corporate or regulatory standards.
For example, adding a feature to a web application component may affect the
application binaries, potentially overwriting files or settings replaced by a
critical security patch. Alternatively, perhaps the engineer implementing the
change sees a setting he or she thinks is misconfigured and decides to just “fix”
it while working on the system. In an e-commerce scenario with sensitive
customer data involved, this could have potentially devastating consequences.
At the end of the day, your selected systems management platform must bring a
strong element of baseline configuration monitoring to ensure that configuration
standards are implemented and maintained with the required consistency.
But seriously, as computing continues to evolve and more devices release users
from the structures of office life, the problem only gets larger.
Without this data, organizations can over-purchase (or, worse yet, under-
purchase) software licensing. Having accurate asset information can help you get
a better handle on your licensing costs. Likewise, without current configuration
data, areas including incident and problem management may suffer, as
troubleshooting incidents will be more error prone and time-consuming.
When dealing with systems management, you have to consider many different
functions, such as software and patch deployment, resource provisioning, and
configuration management. Managing server and application configuration in an
increasingly “cloudy” world, where boundaries between systems and
applications are not always clear, requires consideration of new elements of
management not present in a purely on-premise environment.
FIGURE 1.1 The IT service triangle includes people, process, and technology.
After resources are in production, the focus expands to include managing and
maintaining systems via ongoing activities IT uses to manage the health and
configuration of systems. These activities may touch areas such as configuration
management by monitoring for unwanted changes in standard system and
application configuration baselines.
As the service life cycle continues, systems management can affect release
management in the form of software upgrades. Activities include software
metering activities, such as reclaiming unused licenses for reuse elsewhere. If
you are able to automate these processes to a great degree, you achieve higher
reliability and security, greater availability, better asset allocation, and a more
predictable IT environment. These factors translate into business agility, more
efficient and less expensive operations, and a greater ability to respond quickly
to changing conditions.
Microsoft is positioning DSI as the connector of the entire system and service
life cycles.
What Is ITIL?
As part of Microsoft’s management approach, the company relied on an
international standards-setting body as its basis for developing an operational
framework. The British Office of Government Commerce (OGC) provides best
practices advice and guidance on using IT in service management and
operations. The OGC also publishes the IT Infrastructure Library, commonly
known as ITIL.
ITIL provides a cohesive set of best practices for ITSM. These best practices
include a series of books that provide direction and guidance on provisioning
quality IT services and facilities needed to support IT. The documents are
maintained by the OGC and supported by publications, qualifications, and an
international users group.
Align IT services with current and future needs of the business and its
customers
Improve the quality of IT services delivered
Reduce long-term costs of providing services
While ITIL describes the what, when, and why of IT operations, it stops short of
describing how a specific activity should be carried out. A driving force behind
its development was the recognition that organizations are increasingly
dependent on IT for satisfying their corporate objectives relating to both internal
and external customers, which increases the requirement for high-quality IT
services. Many large IT organizations realize that the road to a customer-centric
service organization runs along an ITIL framework.
What Is MOF?
ITIL is generally accepted as the “best practices” for the industry. Being
technology agnostic, it is a foundation that can be adopted and adapted to meet
the specific needs of various IT organizations. Although Microsoft chose to
adopt ITIL as a standard for its own IT operations for its descriptive guidance,
Microsoft designed MOF to provide prescriptive guidance for effective design,
implementation, and support of Microsoft technologies.
MOF is a set of publications that provide both descriptive (what to do, when, and
why) and prescriptive (how to do) guidance on ITSM. The key focus in
developing MOF was providing a framework specifically geared toward
managing Microsoft technologies. Microsoft created the first version of MOF in
1999. The latest iteration of MOF (version 4) is designed to do the following:
MOF uses a model that describes Microsoft’s approach to IT operations and the
service management life cycle. The model organizes the ITIL volumes Service
Strategy, Service Design, Service Transition, Service Operation, and Continual
Service Improvement and includes additional MOF processes in the MOF
components, as illustrated in Figure 1.3.
It is important to note that the activities pictured in Figure 1.3 can occur
simultaneously within an IT organization. Each area has a specific focus and
tasks, and within each area are policies, procedures, standards, and best practices
that support specific service management-focused tasks.
Configuration Manager can be employed to support tasks in the different top-
level MOF components. Let’s look briefly at each of these areas and see how
you can use Configuration Manager to support MOF:
FIGURE 1.3 The IT life cycle, as described in MOF v4, has three life cycle
phases and one functional layer operating throughout all the other phases.
Deliver: This phase represents activities related to envisioning, planning,
building, testing, and deploying IT service solutions. It takes a service
solution from vision through deployment, ensuring a stable solution that is
in line with business requirements and customer specifications.
Inventory management enables you to keep a handle on your hardware and
software inventory, assisting with managing costs and planning for
operating system and software upgrades.
Configuration Manager uses a connector to provide configuration item data
about the computer from System Center Service Manager, enabling that
information to be used in the Service Manager configuration management
database (CMDB).
Operate: This phase focuses on activities related to operating, monitoring,
supporting, and addressing issues with IT services. It ensures that IT
services function in line with SLA targets.
You can incorporate a structure into the software updates capability to
assess the current situation, identify new updates, evaluate and plan for
deployment, and put the actual update deployment into effect, reducing the
support and operations costs of implementation by using a process.
Manage: This layer, which operates continuously though the three phases,
covers activities related to managing governance, risk, compliance,
changes, configurations, and organizations. It promotes consistency and
accountability in planning and delivering IT services, and providing the
basis for developing and operating a flexible and durable IT environment.
The Manage layer establishes an approach to ITSM activities that helps
coordinate the work of the SMFs in the three life cycle phases.
Configuration Manager’s Compliance Settings feature enables you to
manage compliance of your systems and identify noncompliant systems so
you can take actions for remediation.
Six Sigma
Six Sigma is a business management strategy, originally developed by Motorola,
that seeks to identify and remove the causes of defects and errors in
manufacturing and business processes. Six Sigma process improvement
originated in 1986 from Motorola’s drive toward reducing defects by minimizing
variation in processes through metrics measurement. Applications of the Six
Sigma project execution methodology have since expanded to incorporate
practices common in TQM and supply chain management (for example,
customer satisfaction, developing closer supplier relationships).
ISO 20000 goes beyond ITIL, MOF, Six Sigma, and other frameworks in
providing organizational or corporate certification for organizations that
effectively adopt and implement the ISO 20000 code of practice.
Loosely defined, the Infrastructure & Operational (I&O) Maturity Model applies
to an organization’s capability to take on new challenges. Gartner recognizes
five levels of infrastructure and operations maturity, and has developed a self-
assessment tool (available at https://www.gartner.com/doc/2481415/itscore-
overview-infrastructure-operations) that organizations can use to understand
their level of maturity. These are the five levels:
1. Aware: Realizing that infrastructure and operational maturity is business
critical and beginning to take actions to gain operational control and
visibility. These actions are across people, process, and technologies—the
three elements for a successful organizational transformation—and affect
quality and productivity.
2. Committed: Moving to a managed environment to become more customer-
centric and increase customer satisfaction levels.
3. Proactive: Gaining efficiencies and service quality through standardization,
policy development, and governance and implementing proactive/cross-
departmental processes. This could include change and release management.
4. Service-Aligned: Managing IT as though it is a business. Industry best
practices are in place, and the organization is customer-focused, proven,
competitive, and a trusted provider.
5. Business Partner: Realizing that IT is a critical strategic player and
business partner for the organization.
Configuration Manager helps you embrace this trend without giving up the
control needed to protect your corporate assets. User experiences can be
delivered and managed based on corporate identity, network connectivity, and
device type—enabling you to meet the demand for consistent, anywhere access
to corporate services. By providing a unified infrastructure for mobile, physical,
and virtual environments, ConfigMgr helps you manage everything in one place,
using processes you already have established. This infrastructure also extends to
include critical endpoint security and service management technologies
necessary to protect and support your workers; at the same time, it provides
simplified administrative tools and improved compliance enforcement
mechanisms to help make IT more efficient and effective.
Summary
This chapter introduced the challenges of systems and configuration
management and discussed what System Center Configuration Manager brings
to the table to meet those challenges. Systems management is a process that
touches many areas within ITIL and MOF, such as change and configuration
management, asset management, security management, and, indirectly, release
management. This chapter discussed the functionality delivered in Configuration
Manager that you can leverage to meet these challenges more easily and
effectively.
IN THIS CHAPTER
A Journey Through Time: SMS to ConfigMgr Current Branch
Configuration Manager Terminology
What’s New in Current Branch (Through the 1710 Release)
Deprecated Features, Software, and Operating Systems
SMS 2.0 addressed many concerns Microsoft’s customers had with SMS 1.x. It
allowed installation of a site server on a member server instead of a domain
controller. The inventory process was moved to agent components rather than
running in login scripts. In addition, the management scope was defined by
subnets instead of the entire domain. Despite these enhancements, the product
had several significant failings:
The client agent was not designed for a mobile workforce and did not
consider low-bandwidth situations, and at this time, laptops were becoming
prevalent.
It did not allow for Active Directory (AD) integration, even though the
product was released just before Active Directory became available with
Windows 2000.
The SMS server infrastructure remained largely the same, with the inclusion of
Internet Information Server (IIS), which arguably raised complexity but brought
significant benefits (such as communication over HTTP and the use of the
Background Intelligent Transfer System [BITS]). In addition, SMS 2003
included significant improvements to the SMS agent, as discussed in the section
“Configuration Manager Agent” later in this chapter. A legacy client was
maintained to support older operating systems, such as Windows 98 and
Windows NT 4.0. Windows 95 support was dropped entirely. Another significant
change was a revamp of the reporting interface into SMS Web Reporting, which
removed the complicated and obtuse Crystal reports.
Most of the changes in this version were not noticeable in the console. The UI
looked almost identical to that of SMS 2.0.
One substantial change in SMS 2003 from its predecessor was the introduction
of a concept called roaming. Roaming came in two flavors:
Global Roaming: Clients could retrieve site information from AD, enabling
them to know the site they were in, communicate with the resident
management point (MP) for that site, and receive information pertaining to
the distribution points (DPs) of that site. Global roaming was only available
to organizations that extended the AD schema.
Regional Roaming: Clients were unaware of any site they may have
roamed into and continued speaking to their default MP. As long as the
client had roamed into a site lower in the hierarchy than its assigned site,
the default MP could inform the client of the closest DPs.
The first two service packs (released in 2004 and June 2006), were largely hotfix
rollups with performance optimization. Functional changes were minor, adding
support for newer operating systems. Microsoft announced that rather than
adding new capabilities in service packs, it would include new functionality in
feature packs, an example being the Operating System Deployment (OSD)
Feature Pack released as a free download in November 2004.
Microsoft released the first full update to SMS 2003 with an R2 release in late
2006. SMS 2003 R2 was built on SMS 2003 SP 2, with two additional features:
SMS 2003 SP 3, released in 2007, was the last maintenance release for the
product. Along with another hotfix rollup, SP 3 included Asset Intelligence (a
product developed from Microsoft’s acquisition of AssetMatrix). Asset
Intelligence normalized more than 400,000 software titles into a legible format,
easing the burden of tracking and reporting on licensing data. SP 3 also included
an extension to OSD for deploying the Vista operating system, though
considering the adoption rate of Vista, that is hardly worth noting!
In this version, the legacy client was finally dropped, along with support for
operating systems prior to Windows 2000. All of the familiar feature packs
released for SMS 2003 were included as part of ConfigMgr 2007, removing the
requirement to layer installation after installation to get all the features.
ConfigMgr 2007 was the first version to use public key infrastructure (PKI) for
securing client-to-server communications. This security mode was known as
native mode. With the use of native mode and PKI, it was possible to manage
clients that rarely connected over virtual private networks (VPNs) or came into
the office. The utilization of Internet-based client management (IBCM) enabled
management of ConfigMgr 2007 clients over a regular Internet connection.
The product has grown immensely complex over the years. At one point, it was
expected that a ConfigMgr administrator could learn the entire product to an
expert level. Today, with all the features that extend ConfigMgr beyond simple
inventory management and software delivery, it is easy to become buried in the
details.
System Center 2012 R2 Configuration Manager brought support for new devices
as well as improvements in the core platform, including the following:
OSD: Support for the latest Windows operating systems (Windows 8.1 and
Server 2012 R2) was added, as well as some features inherited from the
Microsoft Deployment Toolkit (MDT), such as Run PowerShell Script,
Check Readiness, and Set Dynamic Variables. Also, new task sequence
variables were added to improve resiliency and improve status.
Mobile Device Management (MDM): Support was added for enrollment
of Android and iOS for MDM with Intune Extensions.
Profile Management: Support included remote connection profiles,
certificate profiles, VPN profiles, Wi-Fi profiles, and email profiles to
simplify the end-user experience.
Content Management: R2 included enhancements in pull-distribution
points, such as support for prioritization of source DPs, improved status
reporting, and much-requested support in the Monitoring node to
redistribute failed distributions. The Distribution Point Usage Summary
report helped in understanding how each distribution point was being
utilized.
Role-Based Administration Reporting: Report data could now be
automatically filtered for content based on RBA configurations.
Configuration Manager Terminology
Microsoft has added many new terms in the past two versions of Configuration
Manager, and it is important that you become familiar with them. In addition, the
meanings of some terms have changed. Before you try to understand how to
deploy and operate ConfigMgr, you should familiarize yourself with the
terminology and concepts related to Configuration Manager that are discussed in
the following sections.
Site Hierarchy
Any organization with more than one site connected together by definition has a
site hierarchy. Every site hierarchy includes at least one primary site. A site
hierarchy with more than one primary site must include a CAS. Hierarchies can
also include secondary sites.
It is important to note that a secondary site can exist in a tiered hierarchy with
another secondary site, effectively creating more than three tiers. However, all
secondary sites communicate with their primary site for database replication.
While you can adopt this topology, there are very few reasons for secondary sites
in ConfigMgr. Chapter 4, “Architecture Design Planning,” provides details on
creating an optimized hierarchy.
Primary Site
Every implementation of Configuration Manager requires at least one primary
site. This is a site to which clients can be assigned and that can be administered
using the Configuration Manager console. Because this is a required site, the real
question is whether multiple primary sites are needed.
Following are areas to consider when planning for additional primary sites:
Secondary Site
Secondary sites in Configuration Manager Current Branch perform the same role
as in ConfigMgr 2012:
A secondary site requires a SQL Server database. You can install SQL prior
to installing the secondary site, or SQL Express will automatically install
during secondary site installation.
Secondary sites automatically receive the proxy management point and
distribution point roles.
Scalability has increased to 15,000 devices in ConfigMgr Current Branch.
A secondary site is always a child site of a primary site and can only be
administered by a primary site. Clients cannot be assigned directly to secondary
sites. Because the administration consoles can only connect to a CAS or a
primary site, secondary sites are typically used in locations that do not have
administrators.
Secondary sites can help control bandwidth utilization by managing the flow of
client information sent up the hierarchy. In addition, secondary sites can be
tiered to help control content distribution to remote sites. The Software Update
Point (SUP) role can be positioned on a secondary site server to provide local
access to clients scanning for compliance without needing to talk to a primary
site server. However, a hierarchy with secondary sites adds a layer of complexity
that often is not necessary.
Site Systems
Each site can perform a wide variety of roles, based on the site type. Any
computer, whether server or workstation, hosting a site system role is referred to
as a site system server. Some site system roles are required for operation of the
site. While roles can be transferred to other site servers in some cases, following
is a list of site system roles that must exist in each primary site:
Senders
Senders are installed as a part of the ConfigMgr site server to manage
connectivity to other sites and ensure data integrity and error recovery during
transmissions. Senders operate multiple threads in parallel to boost the transfer
of data (assuming that the sender is not throttled). You can change the concurrent
threads and retry settings, displayed in Figure 2.3, for each site.
FIGURE 2.3 Changing concurrent threads and retry settings for the sender.
Discovering Resources
Knowing the available resources in a network is one of the benefits of having a
configuration management system. Configuration Manager uses a variety of
discovery methods to gather resource information. Following are the seven types
of discovery methods:
The Active Directory Forest Discovery method, the newest type of discovery
and introduced in ConfigMgr 2012, discovers trusted forests, AD sites, and
Internet Protocol (IP) subnets. In addition, this discovery method can
automatically create Active Directory site boundaries as well as IP subnet
boundaries as they are discovered.
Active Directory discovery methods can target specific LDAP paths, and can be
configured to recursively search those paths. Optionally, ConfigMgr can expand
groups and discover members of groups. With certain Active Directory object
types, you can specify attributes of the discovered resources as part of the
information to retrieve.
Polling schedules are defined to run at set intervals. By default, most discovery
methods run once a week. Active Directory discovery methods also support delta
discovery to help get newly discovered resources into the ConfigMgr database
quickly.
Figure 2.5 shows the available discovery methods in the Details pane.
FIGURE 2.5 Discovery methods listed in the System Center Configuration
Manager console.
The console has a Navigation pane to help you navigate quickly between the
following operational groupings:
Administration
Software Library
Monitoring
Assets and Compliance
When you select an object that contains details, the Details pane displays tabs
pertinent to the object that help further categorize information to reduce overall
clutter. Furthermore, the entire console is security context aware. Role-based
administration uses the assigned role and scope to display only the features
available to the user. The Details pane in Figure 2.7 shows details and statistics
for a security update.
SELECT
SMS_R_System.Name,
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory
FROM
SMS_R_System
INNER JOIN SMS_G_System_X86_PC_Memory ON
SMS_G_System_X86_PC_Memory.ResourceID = SMS_R_System.ResourceId
WHERE
SMS_G_System_X86_PC_Memory.TotalPhysicalMemory > 4192000
Using Packages
A package can contain source files and programs. Programs are instructions
telling the client how to execute a script; they range from shell commands to full
scripts. In some cases, source files do not have to be included if they are not
required by the executing program. For example, a package to defragment a hard
drive would not require any source files because the program calls an existing
executable.
Packages were used as the primary tool for software deployment in ConfigMgr
2007 and SMS. With the introduction of applications in System Center 2012
Configuration Manager, the intent for packages was to be legacy functionality,
used predominantly for scripting situations. However, many companies still use
packages for software deployment. Packages are described in Chapter 13,
“Creating and Managing Packages and Programs.”
Managing Applications
As users become increasingly more technically savvy, their expectations of the
user experience when interacting with IT also change. Previously, it was feasible
to manage an environment as a collection of computers with a one-to-one
relationship between users and computers: You could rely on each user having
only a single device. Users now have multiple devices and tend to be extremely
mobile. To support these changes, the concept of software distribution has
evolved into a state-based system that has the intelligence of understanding the
user-to-device relationship. These concepts are discussed in Chapter 14.
Applications are models of software that contain far more than source files and
program execution instructions. Models define the properties of software. They
contain the deployment types to support local installations, virtual applications,
and mobile applications. Because these models are state based, the “state” of the
application can be detected. This means ConfigMgr can detect if the software is
installed before attempting an installation and can detect whether the software
has been uninstalled and needs to be reinstalled. The inverse is also true if the
requirement is to uninstall software.
Deployment Types
Deployment types exist within applications to facilitate different installation
methods. A deployment type specifies installation files, commands, and
programs, based on established criteria, which are used to install the correct type
of software. The following information is typically held by a deployment type:
Application dependencies
Command for installation
Command for uninstallation
Content source location
Detection method for verifying whether the application is installed
Installation method
Requirement rules
FIGURE 2.9 Requirement rule relationship with global conditions and global
expressions.
Global Expressions
A global expression contains a logical grouping of different global conditions
and their associated values. Instead of repeating the same core global conditions
in each application, you could create a global expression that defines those core
conditions and use it in a requirement rule.
For example, if all the computers in your finance department were in the same
OU, you could create a global expression named Finance Dept, require the
device to belong to the Finance Dept OU, and require the device to be the
primary device. Following is what this expression would look like:
Click here to view code image
Dependencies
As you begin to develop a software library, you might find that one application
relies on (that is, has a dependency upon) another application. If, for example, an
application were dependent on Java Runtime 6, a dependency could specify that
before installing the application, Java Runtime 6 must first be installed. The
choice of whether to automatically install a dependency is optional and is
configured as part of the dependency.
Deployments
A deployment is a set of instructions for the ConfigMgr client to evaluate and
execute. Deployments typically refer to applications or packages, although they
can include task sequences, software updates, and configuration baselines.
Because application deployments are state based, administrators need only
deploy to a collection once, leveraging requirement rules to manage the
installation state.
Content Management
Content management refers to the technologies in ConfigMgr responsible for
storing, distributing, and maintaining content (for example, installation source
files and operating system images).
Distribution Points
A distribution point (DP), as discussed in Chapter 14, is a site role that stores
content and facilitates the transfer of content to devices. A site could contain
multiple DPs to help offset a large volume of content transfer to devices or
situate content closer to a group of devices, reducing impact on traffic over the
WAN.
In bandwidth-sensitive locations, content distribution to a DP can be throttled. In
addition, you can schedule DPs to transfer content during optimal times of day.
You can also prestage content to the distribution point.
Branch DPs, PXE shares, and DP shares from previous versions of ConfigMgr
no longer exist. However, the standard DP is now much more robust, supporting
additional options that to enable it to handle PXE, multicast, and pull DPs, which
can pull content from one or more other DPs. Cloud DPs (in Microsoft Azure)
are also a new feature; they help your clients access content from around the
globe and outside your corporate network.
Content Library
A content library is a single-instance storage file structure that stores all content
on a DP. Because it leverages single-instance storage, all unique files are stored
only once, no matter how many times the same file is referenced by a package,
an application, a software update, or an operating system deployment.
Compliance Settings
Compliance settings assess the configuration compliance of devices such as the
service pack level of the OS, whether applications are installed, whether specific
software updates have been applied, and so on. Compliance settings also enable
management of mobile devices (via policies), Windows Hello settings, and
Windows Information Protection. Optionally, some configuration settings can be
remediated to return settings back to the correct value, thereby providing true
configuration drift management. Chapter 10, “Managing Compliance,” discusses
how this works in detail.
Configuration Items
A configuration item is a unit of compliance that defines the required value of a
specified setting. It can contain multiple settings and multiple rules to evaluate
settings. The following are the high-level categories for configuration item types
with the ConfigMgr client installed:
Windows 10
Mac OS X
Windows Desktops and Servers (with optional application-specific filters)
In addition, the following configuration item types are also supported through a
hybrid connection to devices managed in Intune:
Configuration Baselines
A configuration baseline is a collection of configuration items as well as other
configuration baselines that define an overall compliance status. A configuration
baseline is deployed to a collection, instructing the devices in the collection to
assess compliance based on the specified conditions. In order for the
configuration baseline to evaluate as compliant, all the included items must be
compliant.
Reporting
Reporting in System Center Configuration Manager is fully integrated into
SSRS. Reports and subscriptions can be managed directly from the ConfigMgr
console. Outside the console, ConfigMgr uses Report Builder for authoring
reports. Visual Studio remains an option for authoring reports, and it offers the
greatest flexibility. With Configuration Manager Current Branch, Microsoft
introduced an integrated data warehouse. See Chapter 21, “Configuration
Manager Reporting,” for additional information.
Client Deployment
ConfigMgr Current Branch provides a new capability for testing new versions of
the Configuration Manager client. Simply create a pre-production collection to
pilot the new client. When you are satisfied, you can promote the pre-production
client to production, which automatically upgrades the rest of the clients in your
hierarchy with the new version.
Application Management
The following significant changes are new to application management in
ConfigMgr Current Branch version 1511:
Software Updates
Two significant changes were made for software updates:
Support for Windows Update for Business (WUfB): You can use this
client setting to target a collection to remove clients from using WSUS for
software update management.
WSUS Clean-up Task: The WSUS Clean-up task is now available directly
in the ConfigMgr console. It sets expired software updates to a status of
declined on the WSUS server, which prevents the Windows Update Agent
from scanning for these old updates.
Compliance Settings
Many new configuration item types are available in ConfigMgr Current Branch:
The ability to set a limit for the number of devices a user can enroll
The ability to set the terms and conditions that a user must accept in the
company portal in order to use the portal
A new Device Enrollment Manager role
Application Management
Version 1602 introduced features for iOS application configuration policies for
settings such as port number, security, and branding, as well as the ability to
manage volume-purchased iOS applications. ConfigMgr imports licensing
information from the App Store and tracks usage.
Software Updates
ConfigMgr now supports the ability to manage Office 365 updates through the
Software Updates node of the console.
More installation status details are available, allowing you to view separate
details for the download, replication, prerequisite check, and installation
stages.
A retry option was added for prerequisite check failures.
The admin console was updated to provide a cleaner view of updates by
showing only the most recent (by simply clicking the History button to see
the update history). The pre-production client upgrade feature was also
renamed Promote Pre-production Client.
Pre-release Features
You can now give consent to use pre-release features and can then select and
enable their use.
Accessibility
You can now navigate between different nodes of a workspace by typing the first
letter of the node name.
Administration Node
Multiple changes were made in the Administration node, including the ability to
connect ConfigMgr to Microsoft Operations Management Suite (OMS) to make
collection data, as well as the ability to configure the size of the cache folder on
client computers with new options in Client Settings.
Application Management
Several new updates were made to application management, including the
following:
You can now connect to the Windows Store for Business to synchronize the
list of apps purchased with ConfigMgr, as well as view and deploy them
from ConfigMgr.
The Software Center interface was improved so that the Installed Software
tab is collapsed to the Installation Status tab. Also, Updates, Operating
Systems, and Applications have been separated onto three separate tabs.
Another sorely missed feature from ConfigMgr 2012 that was restored in
ConfigMgr Current Branch version 1606 is the ability to install all software
updates with a simple selector.
From the properties of an application or package, you can now click on a
link to show the content status for the object.
Software Updates
Multiple features were added to improve the software update process:
You now have the option to perform a full scan during the Install Software
Updates step instead of using cached results.
You can customize the RamDisk TFTP window size for PXE-enabled DPs,
which enables you to optimize TFTP traffic on your network.
You can manage the iOS Activation Lock feature, with which you can
require the user’s Apple ID and password before erasing or reactivating the
device.
Support for Windows Defender Advanced Threat Protection was added.
Devices with IMEI or iOS serial numbers can be predeclared.
On-premise support for health attestation was added.
Remote Control
Remote control received an update, allowing the end user to accept or deny file
transfers from a remote control session.
Users can now request apps from Software Center (which is similar to the
Application Catalog experience).
Indicators in Software Center identify new software.
Customizable branding for all Software Center dialog boxes provides a
more consistent experience.
The Snooze and remind me option allows a user to defer software until
Later or until a fixed time.
Most objects now support a column named Object Path, which is helpful
when performing searches as it allows you to see the full path to the object.
Search text is preserved when you switch between the current node and sub-
nodes.
The setting to search sub-nodes is also preserved when you switch to a new
node.
Application Management
A significant update to application management is that you can now check the
status of a running executable before installing an application. For example, on a
deployment type, you could specify java.exe as a file to detect (and ensure that it
is not running) prior to running your application installation.
You can now deploy Office 365 applications to clients. You can configure
installation settings, download Office 365, and deploy Office 365 as an
application from ConfigMgr.
You can now manage express installation files for Windows 10 updates.
You can now set ConfigMgr to smartly download only the changes between the
current month’s cumulative update for Windows 10 and the previous month’s
update. The express installation files significantly reduce the amount of content
required to be downloaded each month for Windows 10 Updates.
Protecting Devices
Multiple features have been added or improved to help you protect devices:
There are new configuration item settings for Windows 10 devices enrolled
with Intune, such as regional settings, power and sleep, language, store, and
Microsoft Edge.
New device compliance policy rules specify password types and
restrictions, blocking of USB debugging, blocking of apps from unknown
sources, and more.
Application Management Changes
The following are several few new features in application management:
The ability to run PowerShell scripts from the ConfigMgr console means
you can import and edit scripts, require approval for deployment, and run
scripts on collections or devices and quickly examine the results.
Mobile application management policy settings allow you to block screen
capture (Android), disable contacts synchronization, and disable printing.
The download time for Express Updates has been significantly improved.
Microsoft Surface drivers can be updated through the Software Updates
process.
You can now configure Windows Update for Business deferral policies for
Windows 10 Feature Updates or Quality Updates for Windows 10 devices
that are managed by Windows Update for Business.
ConfigMgr now leverages the Office Click-to-Run user experience for
Office 365 updates, including pop-up and in-app notifications and
countdowns.
Peer Cache is now a fully released product. It has been a pre-release product
for the past several releases but is now fully released.
Cloud distribution points are now available in the Azure government cloud.
By using Endpoint Protection, you can create and deploy the Windows
Defender Application Guard policy.
Policy changes for Device Guard let you set devices to automatically run
software that is trusted by the Intelligent Security Graph.
Summary
System Center Configuration Manager Current Branch is a continuously
evolving product. This chapter provided some history about ConfigMgr and
described some of the terminology related to it. This chapter also detailed what’s
new in ConfigMgr Current Branch, as well as what has been deprecated.
CHAPTER 3
Looking Inside Configuration Manager
IN THIS CHAPTER
Understanding the ConfigMgr Architecture
A WMI Primer
Configuration Manager and WMI
Inside the ConfigMgr Database
Status and State Messages Overview
Site-to-Site Replication
Active Directory Integration with ConfigMgr
This chapter includes an overview of WMI for those unfamiliar with this
venerable technology, which powers Windows manageability. The chapter
discusses the infrastructure architecture of WMI and the logical WMI object
model, as well as how ConfigMgr leverages WMI to provide a stable automation
and development interface for both clients and servers.
This chapter also explores the ConfigMgr database, discussing its data store and
data access, as well as the types of client information stored and represented in
the database. It introduces ConfigMgr’s status and state message systems and the
role these play in relaying client and server status throughout the hierarchy.
Web Server Tier: At the front of client and user connections are web
servers that host websites and web services along with servers hosting
content for applications and servers. These servers are the most numerous
in a site, supporting large-scale environments.
Site Server Tier: The middle tier is the site server, which performs data
processing for client data along with site and site system status data. The
site server also manages the site systems within the site and performs and
initiates intersite communication. The site server provides servicing for the
site by installing and updating other site systems and the site itself.
Site Database Tier: The third tier is the site database tier, hosted on
Microsoft SQL Server. Since ConfigMgr 2012, the amount of processing
performed by the database tier has steadily increased. The trend of the
database tier tacking on more processing responsibilities continues in the
latest version of ConfigMgr, with additional processing occurring in the site
database rather than the site server or site systems.
The site server uses WMI to install new and manage existing site systems. WMI
determines whether prerequisites are met and installs bootstrap services that
perform the actual installations of the site systems.
WMI is also used with various functions on the client side. It is used to store
client information and configuration and to provide client-side automation and
SDK support for client activities, along with older component object model
(COM) interfaces. The ConfigMgr client uses WMI to gather hardware/software
inventory, using built-in providers to gather the information required from the
operating system (OS). Hardware inventory information is gathered directly
from WMI.
Management Point
Distribution Point
Software Update Point
Application Catalog
IIS is used to support .NET-based web services and ASP.NET websites (such as
in the Application Catalog website and service), as well as Internet Server
Application Programming Interface (ISAPI) filters and extensions (for example,
in the MP). It also includes simpler file publishing capabilities for the DP.
Understanding IIS is essential to troubleshooting client-side issues.
Even the ConfigMgr client contains a SQL Server Compact Edition (SQL Server
CE) database for various internal functions. Microsoft does not document the
database structure; ConfigMgr client automation should use the WMI Client
SDK provider, discussed further in the section “The Configuration Manager
Client WMI Namespace,” later in this chapter. Knowledge of SQL Server is
useful for creating custom reports and troubleshooting advanced performance
issues.
ConfigMgr uses SMB and file shares for content replication and intrasite
communication, and clients may use it to access content. For additional
information regarding client behavior and content replication, see the chapters
that discuss software distribution functions: Chapter 11, “Creating and Managing
Applications,” Chapter 12, “Creating and Using Deployment Types,” Chapter
13, “Creating and Managing Packages and Programs”, and Chapter 14,
“Distributing and Deploying Applications and Packages.” Content includes
application installation source files and OS images.
When installing site systems, you use SMB to place ConfigMgr site system
installation files on the destination server to allow installation to start. This
process uses administrative shares in Windows—that is, shares created
automatically by Windows to enable easier remote administration of the
Windows folder (%windir%) and the root folder of the hard drive. Push
installation of ConfigMgr clients by the site server also uses SMB to place client
installation binaries on Windows systems.
SMB also replicates information from remote site systems to the site server. The
SMB connection is initiated by the site system server to the site server by
default; you can override this in the site system properties in the console.
Information replicated in this manner includes client-generated inventory and
status and state messages received by the MP. The MP receives this information
via its IIS web service and forwards it to the site server for processing.
DRS is both initialized and invoked by the site server. Replication occurs
directly between the SQL Server database engine instances hosting the site
database at each site and is built on a combination of SQL Server change
tracking and the SQL Server Service Broker (SSB). Outside of invocation by the
site server, all other work occurs inside the SQL Server database engine.
The client does not communicate directly with the site server; it communicates
with site system roles. You may install site system roles on the site server, which
is common in smaller ConfigMgr environments. Note that except for client push
installation, the client always initiates communication to the site system from a
network point of view and never vice versa. This does not imply that ConfigMgr
does not push software, updates, or general instructions to clients; it refers to the
network traffic and how ports are opened.
Information and messaging within a site are routed through a series of folders
and file shares called inboxes. Each inbox is located under <ConfigMgr install
directory>\inboxes and exists at each type of site, although some inboxes are
dormant as the data they receive is not processed at that type of site. (For
example, hardware inventory is not processed at the central administration site
[CAS] or secondary sites.)
ccmexec.exe is also responsible for pushing client inventory, status, and state
messages to the site server. You can override this in secure environments where
it may be desirable to have the site server pull from a lower-trust Internet-facing
MP than have that MP reach out to the site server.
This list is not exhaustive. For a more comprehensive list of components and
their log files, see Appendix A, “Configuration Manager Log Files.”
For example, say that the MP pulls information from the site database. Instead of
writing information there, it pushes that information to one of the site server’s
inboxes, based on the type of data. The major client information inboxes include
auth\dataldr.box (hardware inventory), auth\sinv.box (software inventory), and
auth\statesys.box (state messages).
Inboxes also handle the flow of information for the purposes of content
replication to support application management and operating system deployment
(OSD).
Basically, all ConfigMgr client and server data touches an inbox at some point—
to be forwarded (for processing), replicated (if content), or processed. The key
design difference from ConfigMgr 2007 and earlier is that information now
traverses inboxes as seldom as possible. Information and data is no longer
processed and forwarded up the hierarchy for reprocessing at a higher level or
down the hierarchy (in the case of content metadata and configuration
information). The newer versions of ConfigMgr process information once and
rely on DRS to move data between site databases.
A WMI Primer
WMI is Microsoft’s implementation of Web-Based Enterprise Management
(WBEM), an industrywide initiative that provides a common technology for
accessing management information across a heterogeneous enterprise estate. The
group behind the standard is the Distributed Management Task Force (DMTF);
for information on the DMTF and WBEM, see
http://www.dmtf.org/standards/wbem. WBEM is a discovery, access, and
manipulation methodology. The data model it provides access to is the Common
Information Model (CIM). WMI implements CIM and provides access in
accordance with WBEM.
You can use several methods to access WMI’s services and object model,
including the following:
ConfigMgr also relies on DCOM access for remote access and calls WMI
directly on systems running ConfigMgr code.
WMI Providers
WMI providers are similar to device drivers in that they know how to interact
with a particular resource or set of resources. Like a device driver, a provider
must implement certain interfaces that WMI expects every provider to have,
along with some additional ones. Microsoft supplies several built-in providers as
part of Windows, such as the Event Log provider and the BitLocker Drive
Encryption provider. A list of Microsoft-supplied pro- viders is available at
https://msdn.microsoft.com/library/aa394570.aspx. You will see providers
implemented in the following ways:
Most files that WMI uses are stored by default on the file system in the
%windir%\system32\wbem folder. The WMI Repository is a set of files located
by default in %windir%\System32\wbem\repository. The exact file system
structure varies slightly depending on the Windows version.
The Winmgmt executable contains the WMI service components. The physical
implementation of the WMI infrastructure varies depending on the version of
Windows. Beginning with Windows Vista, Microsoft introduced several
significant enhancements in WMI security and stability, including the ability to
specify process isolation levels, security contexts, and resource limits for
provider instances.
FIGURE 3.2 The major WMI infrastructure components.
Configuration parameters for the WMI service are stored in the Windows
Registry subtree HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM.
The keys and values in this section of the Registry specify WMI file locations,
logging behavior, the list of installed providers, the default namespace for
scripts, and other WMI options. You rarely need to edit these options directly. As
with any changes to the Registry, use extreme caution as such changes can
destabilize your system.
WMI also provides detailed logging of its activities. Prior to Windows Vista, log
entries were written in plain text to files in the %windir%\system32\wbem\logs
folder. Most of these logs no longer exist; Event Tracing for Windows (ETW)
makes log data available to event data consumers, including the Event Log
Service. Event tracing for WMI is not enabled by default. The “Managing WMI”
section, later in this chapter, discusses logging and event tracing options for
WMI and configuration of tracing for WMI.
Some WMI providers, such as the ConfigMgr provider, also log their activity.
Appendix A discusses logging by the ConfigMgr WMI provider.
Core classes represent general constructs that are applicable to all areas of
management. Core classes are part of the core model and are the basic
building blocks from which other classes are developed.
Common classes represent specific types of managed objects and are
generalized representations of a category of objects, such as a computer
system or an application. These classes are not tied to a particular
implementation or technology. The CIM_ManagedSystemElement
class is the most basic and general class, and is at the root of the CIM class
hierarchy.
Extended classes are technology-specific extensions of common classes,
such as a Win32 computer system or ConfigMgr.
WMI classes support inheritance, meaning you can derive a new class from an
existing class. The derived class is often referred to as a child, or subclass, of the
original class. The child class has a set of attributes available from its parent
class. Inheritance saves developers the effort of needing to create definitions for
all class attributes from scratch. Developers of a child class can optionally
override the definition of an inherited attribute with a different definition better
suited to that class. A child class can also have additional attributes that are not
inherited from the parent.
Typically, core and common classes are not used directly to represent managed
objects; they are used as base classes from which other classes are derived. The
“The Configuration Manager Client WMI Namespace” section of this chapter
presents an example of how a class inherits attributes from its parent class.
You can also modify WMI classes, properties, and methods by using qualifiers.
A qualifier on a class may designate it as abstract, meaning the class is used only
to derive other classes, and no objects of that class will be created. Two
important qualifiers designate data as static or dynamic:
Static data: This data is supplied in the class or object definition and stored
in the WMI Repository.
Dynamic data: This data is accessed directly through the provider and
represents live data on the system.
If you are familiar with relational databases such as SQL Server, you may find it
useful to consider an analogy between WMI and a database system. Table 3.1
presents some corresponding WMI and database concepts. Table 3.1 is useful
when you are attempting to correlate between SMS provider information in
WMI and database views in SQL Server.
This section discussed the major concepts of WMI and the CIM model, which
are essential to understanding ConfigMgr WMI activity. To learn about other
aspects of CIM, you might start with the tutorial at
http://www.wbemsolutions.com/tutorials/CIM/index.html. The full CIM
specification is at http://www.dmtf.org/standards/cim. Documentation for WMI
is available at http://msdn.microsoft.com/library/aa394582.aspx.
Managing WMI
This section illustrates options available for configuring WMI; it is not a “how-
to” guide for administering WMI. You should seldom need to modify the WMI
settings directly during day-to-day ConfigMgr administration. However,
understanding WMI’s options can help you understand its inner workings and
functionality.
WMI Control is a graphical tool for managing the most important properties of
the WMI infrastructure. Only members of the local Administrators group can use
WMI Control. To run this tool, perform the following steps:
WMI Control opens to the General tab. As shown in Figure 3.3, the properties
on this tab confirm that you have successfully connected to WMI on the local
machine, display some basic properties of your system, and specify the installed
version of WMI.
FIGURE 3.3 The General tab for WMI Control shows a successful connection
to WMI on the local machine.
You manage WMI security from the Security tab of the WMI Control tool. WMI
uses standard Windows ACLs to secure each WMI namespace existing on a
machine. A namespace, as described further in the “Inside the WMI Object
Model” section of this chapter, is a container that holds other WMI elements.
The tree structure in the Security tab shows the WMI namespaces (see Figure
3.4).
FIGURE 3.4 The Security tab of the WMI Control tool, displaying the top-level
WMI namespaces.
The namespace is the most granular level for applying ACLs in WMI. The
process of setting security on WMI namespaces, and the technology behind it, is
similar to the process of setting NT File System (NTFS) security. If you click a
namespace to select it and click Security, you see a dialog box similar to the one
displayed in Figure 3.5.
FIGURE 3.5 The WMI ACL entries for root\CIMv2, the main WMI
namespace.
The dialog box in Figure 3.6 allows you to add security principals to the
discretionary ACL (DACL) of the WMI namespace. The DACL specifies who
can access the namespace and the type of access. Windows Vista enhancements
to WMI, mentioned earlier in this chapter, in the section “Understanding the
WMI Architecture,” include a system access control list (SACL) for WMI
namespaces, which specifies the actions audited for each security principal.
Figure 3.7 shows the entries to enable auditing for all access failures by
members of the Domain Admins group.
The remaining tabs of the tool allow you to change the default namespace for
WMI connections and provide several methods for backing up the WMI
Repository. Windows system state backups also back up the repository. To
enable tracing in Windows Vista and newer operating systems, enable logging
and configure log options in the Windows Event Viewer.
Follow these steps to enable WMI Trace Logging in Windows Vista and later:
Event ID 1: This event shows the start of the WMI session. The key event
fields are User and Namespace. The User event field allows you to
focus on only the operation sessions that you are looking for (as do the
Operation and GroupOperationId fields if that user account is
making multiple connections). The Namespace event field is important
when similarly named classes are in two different namespaces, as the next
event does not provide you with details of the namespace used.
Event ID 2: This event shows the actual operations performed. There may
be one or more Event ID 2 events generated, depending on the behavior of
the application or script using WMI. These events contain
ProviderName and Path fields. The Path field indicates the path to
the WMI object called.
Event ID 3: This event shows the end of the WMI session. The only event
field that this event contains is GroupOperationId, and it is used to
indicate the session or sequence being closed.
Note that User Account Control applies to privileged WMI operations. This can
affect some scripts and command-line utilities. For a discussion of User Account
Control and WMI, see http://msdn.microsoft.com/library/aa826699.aspx.
The SMS provider is typically deployed alongside the site server or site database
server at each site, as discussed in Chapter 4, “Architecture Design Planning.”
The provider also implements the ConfigMgr role-based administration (RBA)
security model; ConfigMgr requires more granular administration controls than
those provided by the WMI infrastructure. Chapter 23, “Security and Delegation
in Configuration Manager,” covers RBA and security in detail.
The SMS provider has existed since Systems Management Server (SMS) was
released. While the internals of the provider have changed, and object types have
come and gone, its function remains unchanged. MSDN (Microsoft Developer
Network) documentation sometimes refers to it as the SDK provider. The
provider provides a translation layer between ConfigMgr console and the
underlying SQL Server database, as shown in Figure 3.8. As SDKs tend to be
stable to ensure backward compatibility and avoid breaking developer
applications, the translation function of the SMS provider is critical. As
Microsoft changes the database to support alterations to ConfigMgr, the SMS
provider’s internal implementation also changes to talk to the altered
components, keeping the public side of the interface intact. When entire features
are deprecated and removed from ConfigMgr, the SMS provider removes the
public interfaces.
FIGURE 3.8 Diagram of the SMS provider architecture.
This is all handled for the user by the console and the SMS provider. When the
same object is edited in one site while open in another site (even by the same
user), an error is thrown by the console, allowing the user to either view the
object as read-only or retry accessing the same object. Figure 3.9 shows an
example of the error message.
FIGURE 3.9 An error message generated by a failure to lock a remote object
via SEDO.
The following PowerShell command pulls all collection objects from the SMS
provider:
Click here to view code image
CollectionID : SMS00001
Comment : All Systems
LastChangeTime : 20160424145345.500000+***
LastMemberChangeTime : 20160425182902.723000+***
LastRefreshTime : 20160530110058.993000+***
MemberClassName : SMS_CM_RES_COLL_SMS00001
MemberCount : 11
Name : All Systems
This output includes the MemberClassName property, which returns the class
for all members of the collection. Use the following command to determine what
devices are members of the All Systems collection:
Click here to view code image
Some of the object types introduced with ConfigMgr 2012 contain string
properties that store eXtensible Markup Language (XML). While the role of the
provider remains intact, using these XML properties allows for complex object
models, such as the application model, and any objects based on compliance
settings to be represented easily without massively extending the SMS provider
object model. (Chapters 11 and 12 discuss the application model, and Chapter
10, “Managing Compliance,” covers compliance settings.) Storing this level of
detail in distinct properties would mean a lot of inflexibility in regard to changes.
The “Interaction Between WMI and PowerShell” section, later in this chapter,
discusses how to read this information. You would write to these XML attributes
by using .NET code (which is what the console does) published in the
ConfigMgr SDK or PowerShell cmdlets specifically written to support these
XML properties. You can see one of these XML elements by running the
command in Listing 3.1 to return the XML definition of a ConfigMgr application
object. (In this code, replace '7-Zip 15.14 (x64 edition)' with the
name of an application in your environment.)
The script returns a single string containing the XML definition of the
application object. The $app variable shows very little specific information
about the application, as all the critical information is stored in the
SDMPackageXML property in XML.
The Default Settings client settings ship out of the box with a number of
preconfigured classes to gather. In some cases, you might require a custom data
class. For example, you might need to gather information about an application or
a specific OS configuration exposed in WMI. There may also be some Registry
information you want to gather as a part of hardware inventory. (You can also
determine how the Registry is configured via compliance settings; see Chapter
10.) In these cases, you import a .mof file into the default client settings or a
custom client setting to gather this additional information.
To return a list of available classes in this namespace, click Enum Classes. You
can double-click any of the returned classes to show their definitions. Then, to
return all instances of a class, click Instances. Alternatively, if you know the
name of the class you want to view, use Enum Instances instead of Enum Classes
on the main page of wbemtest. Use either method to view the instances of the
InventoryDataItem class.
ScanAgent
StateMsg
SoftwareUpdates
ContentTransferManager
DataTransferService
CIStore
ClientSDK
Scheduler
RebootManagement
Messaging
DCMAgent
dcm
Policy
InvAgt
LocationServices
For example, if you want to automate software update management, you can use
the CCM_SoftwareUpdatesManager and CCM_SoftwareUpdate
classes to interact with and get the status of software updates, respectively. You
can do the same for software distribution by using CCM_Program and
CCM_ProgramManager and/or CCM_Application,
CCM_ApplicationActions, and CCM_ApplicationPolicy,
depending on the type of software distribution used.
A simple example of how to use ClientSDK is to get and set business hours
defined on the client system. These business hours are designed to allow end
users some self-service determination of when ConfigMgr client activity will
occur (although ConfigMgr administrators can override this at will). Some
customers want to modify or preconfigure these settings for end users. This
section uses PowerShell to call out to WMI to get information about the
configured business hours and change them.
You can start with getting the currently configured business hours by running the
following command (run with elevated administrative rights), which invokes the
GetBusinessHours method of the CCM_ClientUXSettings class:
Click here to view code image
This command returns something similar to the following (though internal WMI
properties that start with __ and PSComputerName have been removed for
readability):
Click here to view code image
EndTime : 22
ReturnValue : 0
StartTime : 5
WorkingDays : 62
These results show that on the test client, business hours start at 5 AM (05:00)
and end at 10 PM (22:00). Figure 3.13 displays this in the Software Center.
FIGURE 3.13 The default Software Center business hours match what is found
via the ClientSDK namespace.
You can alter this setting to set working hours to start at 6 AM (06:00) and end at
7 PM (19:00). Start by retrieving the order of the parameters for the
SetBusinessHours method of the CCM_ClientUXSettings class. The
Invoke-WmiMethod PowerShell cmdlet expects that input parameters are
specified in a specific order. The following command finds the order:
Click here to view code image
([wmiclass]'root\ccm\clientsdk:CCM_ClientUXSettings').GetMethodParameters
('SetBusinessHours')
This command returns something similar to the following (though internal WMI
properties that start with __ and PSComputerName have been removed for
readability):
Click here to view code image
EndTime :
StartTime :
WorkingDays :
This shows that the order of the input parameters is EndTime, StartTime,
and WorkingDays. Leave WorkingDays as it is (on the test client, it is 62,
which maps to Mon–Tue–Wed–Thu–Fri). The following command allows you to
invoke the SetBusinessHours method to alter the client’s business hours to
6 AM to 7 PM (06:00 to 19:00):
Click here to view code image
You should get a result with a ReturnValue property set to zero (success).
Now if you re-invoke GetBusinessHours, you get the following (though
internal WMI properties that start with __ and PSComputerName have been
removed for readability):
Click here to view code image
EndTime : 19
ReturnValue : 0
StartTime : 6
WorkingDays : 62
This matches Figure 3.14, which shows the new Software Center business hours
settings.
FIGURE 3.14 The changed Software Center business hours after invoking the
SetBusinessHours method.
The ConfigMgr console achieves reading and writing of these XML documents
via specific .NET libraries, documented in the ConfigMgr SDK. The PowerShell
module requires the console to be installed so it can leverage the full suite of the
.NET libraries to enable access to the SMS provider.
The ConfigMgr PowerShell method is simpler, and you can also easily create
deployment types by using Add-CMDeploymentType, whereas with WMI,
you would need to build the XML in PowerShell or use PowerShell to call out to
.NET, neither of which is a trivial task.
Inside the ConfigMgr Database
The ConfigMgr database stores all information about your ConfigMgr
environment. This includes information about all agent-managed clients, Intune-
managed mobile devices, site information, and discovery information.
ConfigMgr supports only Microsoft SQL Server for hosting its database. By
default, the database is named CM_ followed by the three-digit alphanumeric
code for the ConfigMgr site in question.
Microsoft does not publish the database schema, as it can change without notice.
Instead, Microsoft publishes information about the views and works to keep
these views static between releases.
1. Open SQL Server Management Studio by going to Start -> All Programs -
> Microsoft SQL Server <version> -> SQL Server Management Studio.
2. After the console launches, enter the name of the SQL Server hosting the
ConfigMgr site database.
3. After the connection completes, expand the
<servername>\database\CM_<site code>\views in the left-hand pane.
Collections
Let’s start with one of the most critical ConfigMgr object types, the collection.
(You glimpsed the use of collections with WMI in the “WMI on Configuration
Manager Servers” section, earlier in this chapter.) In WMI, the ConfigMgr
collection class is named SMS_Collection. In the site database, the view is
very similarly named v_Collection, with the only change in naming being
the move from SMS_ to v_. (This is covered further in the tip “Finding Other
Views in the Database Schema Dynamically,” later in this chapter.) Figure 3.15
shows what v_Collection looks like. These columns match up nicely with
the information you see when looking at SMS_Collection properties. You
will see this pattern repeated frequently when moving between WMI and SQL.
In addition, there are views created dynamically for each collection, named
v_CM_RES_COLL_<collectionID>. For example, the view
v_CM_RES_COLL_SMS00001 represents the default All Systems collection.
As you create collections, more of these dynamic collections are created, each
containing the member users or devices of that collection. This is useful when
you are writing scripts or queries that need to access collection members and you
need to use a specific collection every time. If you need to parameterize, or take
the collection as input to the script/query you are writing, using
v_FullCollectionMembership provides a better view.
Hardware Inventory
Hardware inventory views are interesting for several reasons. They follow a
similar naming standard as collection views, where their WMI name (for
example, SMS_G_System_PC_BIOS) has the SMS_G_System turned into
v_GS (for example, v_GS_PC_BIOS). These views are also dynamically
created and modified in several different scenarios. When processing hardware
inventory for a newly added class, when adding a new property, or when the
value of property is too long to fit into the existing column for the property in the
site database, SMSExec automatically alters the table schema to fit the new
incoming data. The corresponding view to that table is created or modified to
accommodate the newly defined table definition.
Client Settings
Client settings are also found in the site database views and stored in
v_SMSMClientAgentConfig_Base. Note that settings are quite often
stored in XML-typed columns in the client settings view. This can make
reporting or reading a query difficult in some instances. SQL Server natively
supports handling XML data in T-SQL queries; Listing 3.2 shows an example of
how to extract the endpoint protection definition update fallback source and
order it using the T-SQL CROSS APPLY command.
AMSettingsValue.FallbackSource.value('.', 'nvarchar(max)') AS
'FallbackSource'
FROM vSMS_AntimalwareSettings AS AMSettings
This should return something similar to the information shown in Figure 3.16,
with readable information for each endpoint protection policy defining the
fallback order to use.
FIGURE 3.16 Query results showing how XML data is presented when handled
via T-SQL.
You can trawl the definitions of views looking for particular column
names. This can be useful when you have a certain column that you want
to join to another view but do not know what other views contain the
same column that might be useful as joins. This method is the most
complex and relies on querying the SQL Server system views to extract
information about the schema. Such a query can also be modified to
search for other objects.
In the sample query shown in Listing 3.3, you can replace ResourceID to
search for a different string, but be sure to retain the % symbols.
LISTING 3.3 Searching the Definitions of All Database Views for a Particular
String
Click here to view code image
SELECT
udf.name AS [Name]
FROM
sys.objects AS udf
LEFT OUTER JOIN sys.sql_modules AS smudf ON smudf.object_id =
udf.object_id
LEFT OUTER JOIN sys.system_sql_modules AS ssmudf ON
ssmudf.object_id = udf.object_id
WHERE
(udf.type = 'V') AND
(ssmudf.definition LIKE @varObjectToSearchFor OR smudf.definition
LIKE @varObjectToSearchFor)
ORDER BY
[Name] ASC
Status and State Messages Overview
The following sections discuss status and state messages and their use within
ConfigMgr. Status messages have existed in ConfigMgr since SMS 2.0. State
messages are a newer concept, introduced with ConfigMgr 2007, and their usage
has expanded since that time.
Conversely, status messages are useful for task sequences in OSD. Because a
task sequence (TS) is a custom set of steps defined by an administrator,
generating a hard-coded set of state messages would not be useful as these
messages could only define known stages (such as starting, processing, and
ending a TS). Status messages are generated for each step in the TS during task
sequence execution. (For more information about OSD, see Chapter 22,
“Operating System Deployment.”)
Status messages are also useful for picking up specific events from site servers
and site systems for methods of eventing as data from clients is processed and
internal processes occur. For example, if the Data Loader (DataLdr) is unable to
process a delta inventory because it has yet to receive a full inventory (usually
because a client was deleted manually from the console), it generates a status
message to reflect that. If the Site Component Manager (SiteComp) cannot
install or reinstall a site system role, it generates a status message for each failed
attempt.
Client status messages are sent via the MP to the primary site server for
processing. Both client and server status messages are written to the statmgr.box
inbox for processing and are processed by the Status Manager component of
SMSExec on the site server and inserted into the site database.
For example, a certain topic type defines some state messages as relating to
application management. Within that topic type are state message IDs that
correlate to the various states of an application deployment, including Success,
In Progress, Unknown, Requirements Not Met, or Error. The instance of the
topic type in this case is an application deployment to a user or device. Each
message reflects a state of the deployment and overwrites the last reported state.
Conceptually, an application deployment may go from Unknown to In Progress
and then to either Success or Error, depending on whether the application
installer succeeded or failed.
State messages are used primarily to support client operations and reduce the
need for repeated messages and are generally less noisy than status messages.
For example, if an application repeatedly fails, it may simply stay in the Error
state unless the specific type of error changes. Contrast this with status
messages, which are generated for each attempt, with potentially more than one
status message per attempt. A client also maintains a list of the various activities
and deployments for which it has sent a state message; wherever possible, it
attempts to send delta state messages to reduce the load on the site infrastructure.
State messages are sent via the MP to the primary site server for processing.
They are written to the auth\statesys.box inboxes for processing and are in turn
processed by the State System component of SMSExec on the site server and
inserted into the site database.
Site-to-Site Replication
The following sections cover the two primary methods of site-to-site replication
in ConfigMgr: database replication (handled by DRS) and content replication (or
file replication). These replication methods have been the cornerstone of
ConfigMgr since the 2012 release.
These files contained client data (status and state messages along with inventory
and discovery) and server data (status messages and discovery data). These were
processed at each site, which had an impact on the scalability of the site as the
messages had to be processed at each site they traversed to ensure that each site’s
database contained the correct information. This lack of scalability led to bloated
hierarchies with additional sites just to distribute (scale out) processing load.
This method was inefficient because information was processed at least twice in
a hierarchy—once at the primary site and again at the central site. In complex
and large hierarchies with multiple tiers of primary sites (which was possible
with ConfigMgr 2007 and earlier versions), this could cause the same file to be
processed numerous times. Each processing incurred write costs into the site
database for each site, along with inbox processing by ConfigMgr components.
The event of a flood of data to process at any one site resulted in a flood of data
to every site above that flooded site.
DRS uses SQL Server change tracking to monitor for table changes and store
them. With each activation of DRS by SMSExec’s Replication Control Manager
(RCM), changes since the last activation are reviewed and bundled into
compressed XML messages and passed to the SSB. The SSB provides a
guaranteed transmission method between SQL Server database engine instances
for an SQL Server-based application, in this case ConfigMgr. The term
guaranteed is used from a developer point of view to refer to a transmission
method that the developer is not responsible for maintaining; rather, the SSB
provides a resilient transmission method for atomic messages where the
developer can fire messages and assume that they were delivered.
Notice the lengthy text describing this setting in Figure 3.17. By default,
there is potential data loss in scenarios where an outage lasts longer than 5
days. Changes that occurred more than 5 days ago are lost, as SQL Server
change tracking has a default retention of 5 days. DRS therefore knows it
has some missing data (that occurred after the 5-day mark) and cannot trust
any of the data sent or received since that truncation occurred (even if only
a single day). When this occurs, the site goes through a process of
reinitialization. Much as with initial setup, data is extracted from the parent
and child database, sent via the file replication (SMB) method to each site,
and inserted in bulk into the receiving database. Replication can continue
from there via DRS.
As each site is authoritative for its own data and the CAS is authoritative
for global data, there is minimal potential for overlap. There is a potential
for data loss in scenarios where administrators begin editing global data or
objects (applications, client settings, software update deployments, and so
on) at the child primary site. In practice, administrators may unknowingly
do this to allow client operations to continue to function during a replication
outage. It is necessary to do so only when you are sure you can restore
communication via the two sites within the data retention period. If this is
not possible and the replication between the two sites is down for over 5
days, any changes to global data made at the primary site are overwritten by
changes from the CAS. This overwriting occurs because ConfigMgr
reinitialized DRS between the two sites, and the CAS’s export overwrites
all global data at the primary site, regardless of who modified the data
(because the CAS is authoritative for global data).
Before actually extending the schema for ConfigMgr, run the dcdiag and
repladmin commands included as part of the Domain Controller role in
Windows Server. These tools validate that all domain controllers are replicating
and healthy. Because it may be difficult to validate the output of these tools,
output the results to a text file by using the following syntax:
Click here to view code image
In the case of repladmin, the following syntax (all on one line) helps to
validate the state of replication:
Click here to view code image
Review the output of the repladmin command to ensure that all domain
controllers show no replication failures (that is, 0 in the Fails column). For
more information on how to perform schema changes, see
https://msdn.microsoft.com/library/windows/desktop/ms676929.aspx.
After you extend the ADDS schema and perform the other steps necessary to
publish site information to ADDS, ConfigMgr sites can publish information to
ADDS. The next sections describe the process for extending the schema and
configuring sites to publish to AD, as well as the AD objects and attributes
created by the schema extensions.
Using ExtADSch
Using ExtADSch.exe is the simplest way to extend a schema. Simply run it with
the appropriate permissions, and ExtADSch.exe creates a log file called
extadsch.log, located in the root of the system drive (%systemdrive%), which
lists all schema modifications it has made and the status of the operation.
Following the list of attributes that have been created, the log should include the
entry Successfully extended the Active Directory schema.
Using LDIFDE
LDIFDE is a powerful command-line utility for extracting and updating
directory service data on ADDS domain controllers. LDIFDE provides
command-line switches that allow you to specify a number of options, including
some you may want to use when updating the schema for ConfigMgr.
LDIFDE -i -f – ConfigMgr_ad_schema.ldf -v -j
%temp%\SchemaUpdate.log
The verbose logging available with LDIFDE includes more detail than the log
file generated by ExtADSch.exe. The ConfigMgr_ad_schema.ldf file allows you
to review all intended changes before they are applied, or you can provide the
ConfigMgr_ad_schema.ldf to your Active Directory administrators for them to
review if required.
Extending a Schema
Each AD forest has a single domain controller with the role of schema master.
All schema modifications are made on the schema master. To modify the
schema, log on using an account in the forest root domain that is a member of
the Schema Admins group.
The ConfigMgr schema modifications create 4 new classes and 14 new attributes
used with these classes. The classes represent the following:
Objects and attributes in the ConfigMgr schema modification are prefixed with
MS-SMS, which helps minimize the risk of collisions with other custom or
application-specific schema extensions. In addition, all objects and attributes in
the schema have the isMemberOfPartialAttributeSet flag set to
True. This flag causes instances of these objects and attributes to be included as
part of the partial attribute set and marked for replication to all global catalog
domain controllers in the forest. This allows a site server that is a member of a
domain to advertise its existence to all clients in the forest instead of just that
domain.
Summary
This chapter provided a view into the internals of Configuration Manager. It
described the architecture along with external components that ConfigMgr relies
on. It discussed the communication protocols used to move information around
the site and the hierarchy, and it reviewed the internal components to provide an
understanding of the key components of a ConfigMgr site.
The chapter discussed WMI and ConfigMgr’s utilization of WMI at the server
and client levels. This chapter also looked at the ConfigMgr database in depth,
providing information on how to view the various SQL Server views available to
administrators. A review of replication of content and DRS explains how
information is moved through a hierarchy. The chapter also provided a summary
of the ConfigMgr schema extensions to ADDS.
PART II
Planning and Installation
IN THIS PART
CHAPTER 4 Architecture Design Planning
CHAPTER 5 Network Design
CHAPTER 6 Installing and Updating System Center Configuration
Manager
CHAPTER 7 Upgrading and Migrating to ConfigMgr Current Branch
CHAPTER 4
Architecture Design Planning
IN THIS CHAPTER
Developing the Solution Architecture
Planning for Infrastructure Dependencies
Hierarchy Planning in ConfigMgr
Site Planning for Configuration Manager
Planning for Client Deployment and Settings
Planning for External Device Management
Planning for Continuous Updates
Planning for Restorability and Recoverability
Discovering IT Requirements
After you capture business requirements, focus on IT requirements. These
should include technical requirements such as delivering 98% patch compliance.
They also should encompass service delivery or IT/information systems (IS)
business requirements, such as minimizing the number of help desk tickets
raised during deployment of a key line of business (LOB) application. IT
requirements should be distinct from business requirements, although there may
be overlap or a certain business requirement could lead to an IT requirement. As
an example, PCI compliance as a business key requirement to continue allowing
customers to buy your products with a credit card may lead to IT security
requiring a 99.9% patch compliance level on servers. These could also be in
direct conflict with one another—patching all systems in 48 hours while the
business demands that no more than 5% of staff be unable to work at any one
time due to IT processes.
As part of the solution delivery, once the high- and low-level designs are in
place, you may want to map the service in the context of the overall IT
environment. Understand and diagram the dependent services, software,
infrastructure, and teams that support them. At a basic level, when these
underpinning components fail or are degraded, ConfigMgr as a service fails or is
degraded. Include the services and solutions that depend on ConfigMgr; that is,
if ConfigMgr fails or is degraded, the services or solutions that will also fail.
Defining these environmental requirements in advance ensures a smooth
transition from project delivery into service delivery or production operations,
with a clear set of roles and responsibilities for problem and incident
management.
ADDS Considerations
ADDS is required for ConfigMgr, which does not install unless the site server is
a member of an AD domain. The following sections discuss other AD
requirements.
You also cannot customize the command line parameters for the Windows
Server Update Services (WSUS) client installation method, which is useful
as it does not require pushing to clients—as the client machines pull the
ConfigMgr agent.
Custom Port Configurations for Clients: Custom configurations can
allow a client to obtain a port number from ADDS at installation time. If
the port changes later, the client can find the new configuration in ADDS.
Not publishing site information would require deploying a script to these
devices to change their port configuration or reinstalling the client with a
new port configuration.
Client MP Key Exchange: This allows clients to obtain the site server’s
public key to confirm the signature on policies from the MP and occurs
automatically during installation. However, when the site server’s public
key changes, such as when the site server is reinstalled, the client cannot
verify the re-signed policies. This is security feature is meant to prevent
injecting policy from an untrusted source. Not publishing this information
to ADDS means you must reinstall any clients installed before the key
changed.
ConfigMgr site servers also use the AD schema extensions for content file-based
replication key exchange, which allows site servers in a hierarchy to read public
key information for the source site server that replicated content to it. If not
published to ADDS, site public keys are manually exchanged using the
preinst.exe (hierarchy maintenance) tool. This key is reset whenever a site is
recovered (specifically, when the site server is reinstalled as part of a recovery
operation), which means preinst.exe must be run to exchange the new keys in
order for content to replicate.
When deploying to a user collection or using user device affinity, ensure that AD
User Discovery is configured. AD User Discovery is required for these two
features to work, as it allows ConfigMgr to match up client- and server-side user
information. This means you cannot use these features for users with devices in
workgroups. You must use an LDAP query to discover users with devices in
untrusted forests. This is also necessary with computers when using AD System
Discovery. If you plan to use ConfigMgr’s on-premise mobile device enrollment
capabilities and have users in untrusted forests, configure an enrollment point in
the user’s forest to support this feature.
You must use the DNSSUFFIX command-line switch during client installation,
which limits the client installation methods available in your design. If DNS
cannot be configured (for example, if you have a client in the demilitarized zone
[DMZ] of a network using an ISP’s DNS servers), use the SMSMP command-line
switch during client installation to tell the client which MP to use for its initial
connection.
You can install the ConfigMgr agent on an AADJ device. In this scenario and
based on the current release of ConfigMgr when this book was published, the
client should be treated as a workgroup client for the purposes of AD discovery
methods, deployments, and the other capabilities listed in the “Installing the
ConfigMgr Agent on Workgroup Clients” section, earlier in this chapter.
Client Policy Signing: All client policies are signed by the site server. The
self-generated key is created at site installation and re-created during a site
recovery. The key is called the trusted root key; the public portion of the
key is published to AD. See Chapter 3 for more details.
Custom Update Signing: Custom software updates must be signed by a
publisher. The certificate must be trusted for installation of updates by the
Windows Update Agent (implemented using the Trusted Publisher
certificate store); ConfigMgr clients require a valid digital certificate for
installation.
Inventory Signing: Clients by default sign their inventory and state
messages with a self-signed certificate unless enabled for HTTPS, when
they utilize the PKI-issued certificate used to communicate with the MP.
Clients can be configured to encrypt their inventory and state messages; this
is independent of encryption at the transport layer using HTTPS.
Site-to-site Communication: Site servers use keys to ensure the integrity of
intersite file replication. DRS uses certificates stored in SQL Server to
authenticate SQL Server Service Broker (SSB) endpoints.
High-Assurance PKI: The PKI may be designed for high assurance. High-
assurance PKI is designed to provide parties accepting certificates with a
high level of confidence over identity validation that occurs as part of their
issuance. These types of PKI may have a manual certificate approval
process that requires a human approver to approve each certificate. This
prevents the bulk issuance of certs to computer systems, as the same level
of confidence and assurance cannot be provided, and manual overhead
would be prohibitive.
Manual Review of Certificate Requests: There may be operational
processes that require manual review of all certificate requests. This would
significantly hamper issuing one certificate per PC.
Scalability of the PKI: The PKI may have been architected to support
hundreds and not thousands of requests. Windows systems where the
ConfigMgr client runs not only need an initial certificate but must renew
certificates regularly.
Costs of Certificate Issuance: The PKI may be provided as a managed
service or outsourced, meaning there may be fixed contractual costs
associated with certificate issuance and management, which would make
use of the PKI very expensive and completely invalidate any value from
ConfigMgr features that rely on those certificates (especially ConfigMgr
client certificates).
Primary Sites
Every ConfigMgr client is assigned to a primary site and receives policy from its
assigned site. Primary sites are used to scale out managing clients, as each
primary site can support up to 150,000 clients per primary site or 175,000 for a
standalone primary. Microsoft regularly tests Configuration Manager and may
revise these figures; for the latest supported client numbers, see
https://docs.microsoft.com/sccm/core/plan-design/configs/supported-operating-
systems-for-site-system-servers.
Secondary Sites
A secondary site is a form of proxy site for a primary site. Secondary sites are
installed directly from the ConfigMgr console using the site server permissions
and are upgraded from the console. These sites have a database like the CAS and
primary sites, but it is much smaller, given the relatively limited functionality
this site type provides. It does, however, mean that data replication between the
site databases must be factored into the decision about whether to deploy a
secondary site. The secondary site database can be hosted on SQL Server or,
more commonly, SQL Server Express, which is installed automatically by the
primary site server during secondary site installation.
A secondary site installs an MP (termed a proxy MP) site system role and
commonly also has DP and software update point (SUP) roles. These roles are
installed to proxy client requests locally. The secondary site’s proxy MP uses the
secondary site’s database and the Linked Server feature of SQL Server’s
database engine to query the primary site’s database. The proxy MP can then
cache client policy requests. The primary design capability a secondary site
provides is the ability to host the SUP and allow software update metadata
queries to occur locally, which is significant as the results from software update
metadata queries may be up to tens of megabytes per client, depending on the
OS and software installed.
You should assign these four site system roles to a server with good Internet
connectivity. All four roles support communication via web proxy (including
authentication) and do not require direct access to the Internet.
You may install other roles at multiple locations throughout the hierarchy. These
hierarchywide roles do not have to be deployed at each primary site and can be
installed centrally:
Data Warehouse Service Point: This role underpins the data warehouse
capabilities released in ConfigMgr Current Branch version 1706. The role
installs and configures the data warehouse database. It also adds reports that
surface the data stored in the data warehouse. The data warehouse stores up
to three years’ worth of data, up to 2TB.
Application Catalog Website Point: This role provides users with access
to the software in the application catalog. This is used as a backup location
in Current Branch, with the new Software Center (part of the ConfigMgr
client) now the primary location for user self-service.
Application Catalog Web Service Point: This role provides the middle-
tier web services between the application catalog website point and the site
database.
Fallback Status Point: The Fallback Status Point (FSP) role provides a
way for ConfigMgr clients to report communication failures with their
assigned MP(s).
The last two roles are hierarchywide and may be deployed to the CAS as well as
primary sites:
System Health Validator Point: This role helps support Network Access
Protection (NAP). NAP is still supported in Configuration Manager Current
Branch, although it is deprecated in Windows Server.
Reporting Services Point: The Reporting Service Point (RSP) role uses
SQL Server Reporting Services (SSRS) to provide reports using data from
the ConfigMgr site database. It is commonly installed at the top-level site
(that is, the CAS or standalone primary site). You can deploy multiple RSPs
within a single site to facilitate administrator access to reporting, allowing
certain administrators to be granted additional control over SSRS custom
reports. You can also deploy RSPs to lower-level primary sites, restricting
access to client-generated data only available at that primary site’s site
database (in which case all administrator-created objects are accessible).
For more information on reporting, see Chapter 21, “Configuration
Manager Reporting.”
Once you determine whether your hierarchy will consist of a CAS and child
primary sites or a standalone primary site, you need to determine what the
underlying site structure, if any, will look like. Many organizations choose to use
a single primary site with remote DPs. However, there are reasons you might
want to have multiple primary sites in your hierarchy, such as the following:
Boundaries must be added to a boundary group before they can be used. Site
assignment is configured on boundary groups rather than individual boundaries.
Similarly, protected site systems are associated with boundary groups. The
following boundary types are defined:
An additional constraint is that over the past decade, AD sites have converged
into larger AD sites, covering more network locations. This has occurred as
network links have improved while AD client-to-DC traffic has largely remained
constant. ConfigMgr content delivery consumes more bandwidth than AD policy
and authentication traffic. It is important to understand how your AD teams use
AD sites and the AD site topology’s correlation to actual network links. You will
want to ensure your AD team knows that your ConfigMgr design and operations
depend on their configuration of AD sites.
Boundary groups are used in content distribution to control the DPs from which
a client retrieves content. Because boundaries are hierarchywide, DP boundaries
are independent of sites, and a DP can be shared between sites. This allows you
to optimize content delivery based on network considerations. When clients are
not within the boundaries of a DP with the required content, they use the
deployment option specified for slow or unreliable networks.
Overlapping boundaries are boundaries that include the same network locations.
Overlapping boundaries were explicitly unsupported in Configuration Manager
2007; however, this is no longer the case:
For more information on the version 1610 and later boundary models (including
version 1706 SUP failover changes), see
https://docs.microsoft.com/sccm/core/servers/deploy/configure/define-site-
boundaries-and-boundary-groups. For legacy information on ConfigMgr
behavior prior to version 1610, refer to
https://docs.microsoft.com/sccm/core/servers/deploy/configure/boundary-
groups-for-1511-1602-and-1606.
Network Topology: Place DPs at each physical site if the site spans a WAN
link or is a large metropolitan campus with backbone LAN links (that act as
points of congestion). This proximity to the clients may be ideal as it allows
them to obtain content locally, albeit at increased server infrastructure costs.
Chapter 5 discusses network considerations for DP placement. This should
also factor in the bandwidth savings that client peer caching introduces
(introduced with ConfigMgr Current Branch version 1610 and improved in
version 1706). For more information, see
https://docs.microsoft.com/sccm/core/plan-design/hierarchy/client-peer-
cache.
Security: Moving client-facing roles away from the site server allows you
to move client network connections away from the site server as well.
Client-facing roles include the MP, DP, SUP, and Application Catalog roles.
Moving these roles also allows you to remove the need for IIS on the site
server, which is more secure when supporting clients on untrusted
networks. An untrusted network could be the Internet, a perimeter network,
or a DMZ. For clients on the Internet, IBCM may warrant having duplicate
sets of MPs, DPs, and SUPs just to support those clients, depending on a
company’s internal security policies and risk assessments.
Scalability: For large sites, moving site system roles off the site server and
scaling out may be crucial to achieving software delivery requirements. The
MP and SUP no longer support Windows Server network load balancing in
ConfigMgr Current Branch via the console. (The SUP supports this via the
SMS provider for scripting.) The ConfigMgr client can now automatically
switch servers hosting those roles as new instances are added. The DPs
continue to provide scalability as clients randomly select from the available
list of DPs returned by their assigned MP. If a site needs to scale to the
supported limit or close to that limit, multiple site systems (DP/MP/SUPs)
are required.
Management: If a separate team manages SQL Server, corporate policy
often says that this team must manage all instances of SQL Server. This can
mean that a remote site database must be deployed on an existing instance
of SQL Server managed by that team. Note that the ConfigMgr site server’s
computer account requires sysadmin rights to the SQL Server instance and
local administrative rights to the Windows server where the SQL Server
instance is running. Ensure that the SQL Server team is familiar with
supporting the SSB and certificate-based authentication. These
requirements may make the ConfigMgr site database out of scope for that
team.
Availability: The only supported way to increase ConfigMgr site
availability is by adding additional client-facing site system servers (MP,
DP, and SUP). For the database layer to be highly available, it must be
deployed with a failover cluster or SQL Server Always On availability
groups. Neither of these SQL Server high- availability topologies can be
leveraged when the site server is colocated with SQL Server, as the site
server does not support running on a clustered server.
Performance: In general, the best performance in larger sites is achieved
with dedicated site database servers with hardware profiles specifically
designed with SQL Server performance in mind. It also includes having a
large amount of system memory dedicated to SQL Server. SQL Server
regularly polls the operating system to determine how much free memory is
available, with the intention of preventing the OS from paging. If SQL
Server is on a dedicated server, these checks allow it to consume the most
amount of memory without impacting the OS. When colocated with the site
server, it is important for the SQL Server maximum memory to be between
80% and 90% of the system memory (depending on the total amount of
system memory). This helps prevent starving of various other components,
including Windows Management Instrumentation (WMI), the SMS
Executive, IIS, and the file system cache of memory.
The SMS provider is automatically installed on the site server during site setup.
It can also be installed on the site database server or another server. You can
change its location by rerunning setup on the site server. Setup is also used to
add additional instances of the provider to a site. Following are requirements for
a server to host an SMS provider instance:
Following are points to consider regarding a location for the SMS provider:
Site Server: Using a site server is the simplest approach as there are no
network connectivity issues. However, the server resources of the site
server must be shared between the site server and the provider.
Site Database Server: Placing the provider here may yield the best
performance, as all provider-to-database communication occurs on the
server. This option is not available if the site database is on a clustered
instance of SQL Server. Note that placing the SMS provider here consumes
server resources that would otherwise be dedicated to the SQL Server
instance, which may complicate SQL Server performance troubleshooting.
Any Other Server: This is the only option that allows you to increase
availability of the SMS provider function, as discussed previously in this
section. The server must have a high-speed network connection to the site
server and site database server. This placement requires additional server
hardware resources.
DPs: These servers require the ability to serve large amounts of data to
clients via IIS and file shares, resulting in heavy disk read operations and
the capability to quickly move data to clients over the network. Even when
clients are on the same LAN, you may completely consume larger amounts
of bandwidth from storage and network subsystems on the server. This is
also true with a virtualized DP, as host storage and network infrastructures
are often shared across VMs, with little to no isolation between VMs.
MPs: These servers tend to be CPU-bound for calculation processes. The
MP also requires a relatively quick storage subsystem in large
environments, as client data is temporarily stored there before being sent to
the site server for final processing.
Site Server: The site server requires a large amount of CPU and memory
resources, second only to the site database. The memory is necessary for the
SMS provider and SMSExec process, the core Windows service of
ConfigMgr. The CPU is used for processing required for discovery, hash
calculations for content, client data, and general information processing.
However, the most critical resource to a site server is the storage subsystem,
which should support a large number of small random-write operations.
These types of storage operations are the most difficult to handle on hard
drives. RAID 10 (mirroring and striping) is often recommended to provide
the best performance. In the largest ConfigMgr environments, storage
controller bandwidth and caches are important considerations.
Site Database: The site database should have the highest proportion of
server resources allocated, including CPU, memory, and storage resources.
To support the highest level of scalability, these can be four to six times the
memory and twice the processing power of the site server. SQL Server best
practices regarding storage also apply, including isolating data and log files
from each other and splitting those files to allow SQL Server to perform
parallel operations. Microsoft suggests that customers with large
deployments use a remote site database instead of colocating it with the site
server. This is a change from previous versions, where the guideline was to
keep both roles on the same server, largely due to lower-capacity network
links within datacenters at that time.
SUPs: A SUP consumes the most server resources of the key client-facing
site systems (DP, SUP, and MP). This can be twice the memory and
processor resources of an MP. The SUP is essentially an IIS web service
and background WSUS service.
Azure Premium Storage provides increased storage throughput but with fixed
disk sizes and higher cost. You could use the Storage Pools feature of Windows
Server inside an Azure VM to combine multiple lower-cost P10 premium
storage disks and provide increased storage. At the other extreme, you could
combine multiple P30 disks, the highest specification of Premium Storage, to
provide even higher levels of performance, especially to SQL Server. Premium
Storage also requires specific types of Azure VMs. For information on Premium
Storage, see https://azure.microsoft.com/documentation/articles/storage-
premium-storage/.
Not all processor resources are created equal in Azure. Azure VMs have
different series, denoted by the alphabetic prefixes A, D, F, GS, and N. The size
of a VM in a series is denoted by the numeric suffix (for example, A0, D13, F8,
GS5, and N24). VMs supporting Premium Storage are denoted by S (for
example, GS5, DS13). Finally, certain series of VMs have a second release; for
example, D13_v2 is the second version of the D-series VM.
The series is important, as it alters the underlying processor type used by the
host. For example, the Dv2, F, and G series and their xS Premium Storage
counterpart all feature Intel Xeon E5-2673 v3 (Haswell) processors, which
provide increased compute power over the A and D series VMs. For a complete
list of the current Azure VM sizes, processor performance, and VM-level
network bandwidth limits, see
https://azure.microsoft.com/documentation/articles/virtual-machines-windows-
sizes/. Network bandwidth is an important consideration when hosting a
ConfigMgr infrastructure in Azure. Azure charges for outbound data when using
the site-to-site VPN option to provide connectivity between on-premise
networks and Azure virtual networks. The ConfigMgr site server and core roles
often push data to clients and ConfigMgr servers in remote locations such as
branch offices, which can result in a very large amount of outbound data (from
Azure to on-premise). Azure site-to-site VPNs occur over an Internet link, which
may not have the capacity to support a large amount of content replication.
Ultimately, consider the option of using Azure in a similar manner to how you
would consider hosting VMs in a service provider’s or outsourcer’s datacenter.
Take into account the site-to-site connectivity between the two networks and
ensure that your provider’s storage subsystem offers adequate performance and
throughput for your ConfigMgr environment.
As with the availability of any solution, consider your need for a highly available
solution in the context of your business requirements. Do not invest in additional
infrastructure and associated complexity if your target for speed of software
delivery to end users does not warrant that level of availability.
Content distribution starts with the content source location(s). The site server
pulls content to the content library on the site server itself and then distributes it
to a set of DPs associated with the site. In the case of the content source location,
you can choose to specify existing locations where source files are stored or
establish a new source location. The choice largely depends on the integrity and
ease of management of the existing locations. If these are not secured or are
exceedingly complex, take this opportunity to establish a new unified location.
Source file locations should be subject to additional technical and operational
controls around changes to the sources. Anyone who can modify source files can
potentially deliver content to client systems.
Add DPs for Redundancy: Deploy one or more DPs in the same network
as your site server. Adding DPs provides a level of redundancy (see the
“Meeting Availability Requirements” section, earlier in this chapter).
Leverage BranchCache: BranchCache provides peer-to-peer distribution
of content at locations with a single subnet, as ConfigMgr only supports
BranchCache in distributed mode. Distributed mode uses subnet broadcast
to find peer nodes, which means every subnet must have at least one
download of the content. Using BranchCache also helps reduce the load on
DPs by allowing clients to share content.
Leverage Peer Cache: ConfigMgr’s Peer Cache feature provides peer-to-
peer caching inside the Windows Preinstallation Environment (WinPE).
Peer Cache is available for all ConfigMgr Current Branch version 1610 and
above client operations and can be used to enable clients to share content
for app deployment and software updates. Peer Cache has enjoyed
significant improvements with each release of ConfigMgr Current Branch,
and the aim is to reduce the need to deploy DPs at every branch office. See
https://docs.microsoft.com/sccm/core/plan-design/hierarchy/client-peer-
cache for more information.
Consider DPs for Larger Remote Locations: Deploy protected DPs at
larger remote network locations such as branch offices. Associate these DPs
with the boundary groups containing boundaries of network locations
where that DP is located. If a client is inside a boundary group served by a
protected DP, it will prefer the protected DPs first.
Content for Internet Clients: If you support Internet-based clients, place
HTTPS-enabled DPs in locations accessible to these clients. Consider
leveraging the Cloud DP role in Microsoft Azure to reduce the Internet
connectivity demands of content downloads from Internet clients, serving
them from Azure datacenter(s), albeit at a charge per megabyte served and
stored.
Leverage Pull-DPs at Branch Offices: Pull-DPs allow for environments
with many branch locations. Using pull-DPs also permits you to support a
large number of locations without additional primary or secondary sites.
Configure content replication based on your network topology. For
example, if you have a single unified Multiprotocol Label Switching
(MPLS) network, you may not need to chain content replication to regional
or hub locations and instead can leverage the “flat” nature of your network
topology.
Use Distribution Point Groups (DPGs) to Simplify Content Distribution
Administration: DPGs allow you to streamline targeting of similar DPs.
For example, branch offices often have identical requirements for content.
Group all your branch offices together to enable targeting them once rather
than multiple times. DPGs can be used to group DPs logically and
physically. You could leverage a DPG to identify DPs that serve a particular
business unit. Keep in mind that when a DP is added to a group, it
automatically receives all content assigned to the group.
Use Prestaged Content for Sites with Very Slow Links: When WAN
connectivity provides limited bandwidth, consider configuring the DP in
that location to use prestaged content. This enables you to replicate content
out of band of ConfigMgr, enabling you to use postal or package delivery
services to distribute content in bulk. This does require additional
administrative overhead and cost but can be key to enabling timely services
to those locations.
See Chapter 5 for more detailed discussion of content distribution and network
design planning. Chapter 14 discusses the operational elements of content
management.
The client feature components you enable and their configuration directly affect
the user experience, including performance, scalability, and security of the
managed environment. This section provides an overview of the considerations
for designing and planning around client settings. Chapter 9 provides additional
detail related to client settings and their configuration.
You can configure each discovery method at one or more sites in your hierarchy.
When an object is discovered, the discovery method creates a data discovery
record (DDR), which is placed in the auth\DDM.box inbox with basic
information about the object. The DDR file is processed by the CAS or primary
site generating the DDR, causing the information in the file to be inserted in the
database and replicated up the hierarchy as part of site data.
ConfigMgr provides additional AD discovery methods for finding information
about users and your environment:
All Active Directory discovery methods should be run at the site with the best
possible connectivity to a DC. Each has delta discovery capabilities, meaning it
uses change notification queries to obtain changes that have occurred on the DC
since the last delta discovery pass. Delta discovery makes the process extremely
efficient and occurs every five minutes by default (compared to every seven days
for full discovery). Avoid changing the full discovery cycle if possible, as doing
so causes all records to be extracted from AD based on the search criteria
defined for that discovery method.
You can configure the AD User Discovery and AD System Discovery methods
to discover any AD attributes of the discovered objects. As you plan your user-
centric management, consider attributes that can help you deliver appropriate
content to your users. You can also include AD extension attributes, which allow
free-form strings to be written to computer objects in AD. This way you can
easily add attributes to client systems in the ConfigMgr database without using a
custom-developed discovery method.
Client Policy: These settings control how frequently the ConfigMgr client
polls for machine policy, which are policies targeted to the system rather
than to a user. Increasing the frequency at which clients poll for policy
decreases the scalability of MPs and the site database. If you need to
distribute policy immediately, consider using client notification to push
policy retrieval requests to collections. Client policy also controls whether
the ConfigMgr client polls for user policy and whether user policy is
triggered from Internet clients.
Computer Agent: These core settings allow you to control most end-user
experience elements of the ConfigMgr client. These settings include end-
user deployment deadline reminders, organization name in the Software
Center, whether the new Current Branch Software Center is enabled, who
has installation permissions on the system (all users, administrators,
primary users, or no users), and whether notifications are displayed for new
deployments.
This area also controls the Additional software manages the deployment of
application and software update settings; if enabled, the client never
triggers software updates or application installs. You can use the ConfigMgr
SDK and client-side WMI calls to write scripts or applications that trigger
application and/or update installations using custom logic or rules.
Another important setting, Disable deadline randomization, causes all
schedules to trigger exactly when they are defined to occur, assuming that
the client received the policy prior to the deadline. Leaving this setting
disabled in large environments helps distribute the load of incoming state
and status messages from clients. It also allows you to determine in which
systems deadline randomization is desired. You should also enable this
setting where there is a shared storage system, such as Virtual Desktop
Infrastructure (VDI), and server virtualization environments (Microsoft
Hyper-V or EMC VMware), to help ensure that storage I/O is randomized,
preventing all clients from triggering their schedules at the same time. See
the “Using a Simple Schedule Versus a Full Schedule” section, later in this
chapter, for information on ConfigMgr client schedules.
Computer Restart: The two settings in this section allow you to control the
restart user experience, as shown in Figure 4.6:
Display a temporary notification to the user controls the first
notification that the user receives of a pending restart. The user can
close this dialog box, and the default is a 90-minute countdown.
Display a dialog box that the user cannot close controls the final
countdown presented to a user prior to restart. The end user cannot
dismiss this dialog box, and there is a 15-minute countdown by
default.
Depending on your user requirements, you may want to extend one or
both of these time-outs to best suit your desired user experience.
FIGURE 4.6 Computer Restart section of the client settings.
Hardware Inventory: These settings allow you to control hardware
inventory enablement and configuration. Hardware inventory occurs every
seven days by default. Running this more frequently has a negative impact
on site performance, as there is more inventory to process and history to
maintain. The Hardware Inventory section also allows you to control the
hardware inventory classes (WMI classes and registry values) collected by
the client. MIF file collection can be toggled selectively per client rather
than across the entire hierarchy, as with ConfigMgr 2007 and earlier,
allowing you to restrict MIF file collection to only those clients where
administrators are trusted not to generate unneeded MIF files that affect the
size and schema of the site database.
Remote Tools: These settings allow you to control whether remote control
is enabled and the level of user interaction required for remote control.
Disabling the requirement for user permissions prior to taking control of the
device may cause privacy, regulatory, and legal concerns, depending on the
local laws where the system resides. This section also allows you to
configure Remote Assistance and Remote Desktop local policy settings;
these are overridden by group policy for domain-joined systems.
Software Deployment: This setting allows you to control how often
application deployment reevaluation occurs; the default is seven days.
ConfigMgr triggers deployment reevaluations to determine the current state
of all required applications targeted to the system and user. The process is
designed to address scenarios where a process external to ConfigMgr
changes the state of the system. For example, the user might
uninstall/install software, or a group policy startup script may change the
system. Reevaluations occur after the initial evaluation to determine
whether applications need to be installed on the system. The initial
evaluation occurs immediately after policy is received by the client.
Software Inventory: This settings area allows you to control software
inventory. By default, software inventory runs every seven days. You can
control the types of files searched for and the folder paths where those
searches occur. You can also trigger file collection and send files back to the
ConfigMgr site for storage and later review, which is useful when you need
to pull critical log files from client systems. These files should be small
both for transmission and data storage reasons. Review these settings to
ensure that user privacy and any local privacy laws are not violated.
Software inventory is actually file inventory. Add/Remove Programs
(Programs and Features) data and installed MSI information is gathered by
hardware inventory from the Registry and WMI. Hardware inventory is far
more efficient for the client and ConfigMgr site infrastructure. Reserve
software inventory or tightly scoped searches for certain files that occur
infrequently. By default, software inventory is enabled but with no rules,
which means it is effectively disabled.
You can also define client settings that can be targeted to users. This allows
additional flexibility over targeting systems for these settings areas. Only a
subset of the available settings areas can be deployed to users—specifically
Cloud Services, Enrollment, and User and Device Affinity.
Use simple schedules wherever possible to help distribute client load. Combine
this with setting Disable Deadline Randomization to No in the Computer Agent
settings area to further ensure distributing client load. In specific scenarios that
require precision, use a full schedule and select Disable Deadline
Randomization.
Getting feedback about your business users’ expectations of how their devices
should be managed is critical to a successful ConfigMgr implementation and
operations. While this does not have to include direct engagement with end
users, having stakeholders provide input and sign off on the user experience
ensures business buy-in about how their devices are managed.
User interaction is not necessarily the goal. However, you do want to apply a
level of user choice and consent; it should not override governance and policies
that maintain the security and compliance of a user’s device. If there is no direct
conflict between choice and security, allowing end users to decide and allowing
them to opt in or out of default behavior can go a long way toward improving
satisfaction with IT.
It also does not show IBCM site system to AD domain controller traffic.
FIGURE 4.7 IBCM high-level network architecture.
The network and site system topology required to support IBCM was often a
limiting factor in its use. In ConfigMgr Current Branch version 1610, Microsoft
introduced the CMG, which eliminates the need to deploy dedicated servers in
your DMZ. The CMG is deployed as one or more Azure VMs (using Azure’s
Platform as a Service [PaaS] model rather than its IaaS model). A CMG
connector point role is deployed on-premise and communicates with CMG VMs
in Azure. You can create multiple CMGs for improved availability.
There is currently a list of unsupported features when using the CMG. For more
information on the CMG, the latest information on supported scenarios, its costs,
and Azure requirements, see
https://docs.microsoft.com/sccm/core/clients/manage/plan-cloud-management-
gateway.
IBCM Requirements
Client connections from the Internet or an untrusted network require a higher
level of security than intranet-based clients. For this reason, IBCM requires
client authentication certificates issued by a PKI. Using a PKI-issued certificate
allows ConfigMgr to increase the security of the connection, as the default
behavior of intranet-based ConfigMgr clients is to generate a self-signed
certificate for authentication to the MP. In contrast, a PKI certificate is issued by
an independent authority (the PKI) and helps ensure that the client is trustworthy.
The issuing authority of the client authentication certificate must be trusted by
the site system servers.
IBCM requires that client-facing site systems—such as the MP, DP, and SUP—
be published on the Internet, which you can achieve by enabling existing site
system servers to accept Internet connections. This requires that the site system
be configured to use HTTPS for both Internet and intranet client communication.
As an additional security precaution, you could configure the site server to pull
information from the Internet-facing site systems, which would allow you to
configure any intervening firewalls or router access control lists (ACLs) to
prevent the site system from making inbound connections to the site server. Core
communication occurs over Server Message Block (SMB, TCP/445) and
Remote Procedure Call (RPC, random high value TCP port and TCP/135).
Instead, the site server can be configured to initiate outbound connections to the
site system, which enables you to configure intervening networks to allow
outbound connections from a high-trust network (your intranet) to a lower-trust
network (your DMZ/perimeter network).
The site system’s HTTPS port (TCP/443 by default) must be open to the Internet
or published via reverse proxy; exact publishing methods vary based on your
organization’s network. Discuss the publishing methods available in your
environment with your network team.
You must provision Internet-facing site systems at the primary site. Determine if
you can publish servers to the Internet from all your datacenters. If not, you
could host each site’s site systems in the same location, but they would have to
traverse datacenter-to-datacenter WAN links to access the site server and site
database. Alternatively, you could use Microsoft Azure to host the Internet-
facing site system; this is an especially viable option when your organization has
an ExpressRoute connection per datacenter. If you do not need multiple primary
sites for scalability and require IBCM, it might be simpler to design for a single
primary site than for multiple primary sites.
Prior to ConfigMgr Current Branch version 1706, to use the CMG, you had to
issue client certificates to authenticate clients. In ConfigMgr Current Branch
versions 1706 and later, you can configure the CMG to leverage Azure AD
identity as an alternative to client certs for Windows 10 clients. This simplifies
the prerequisites for utilizing the CMG, ultimately making the CMG the simplest
ConfigMgr method for providing management to external clients.
CMG: https://docs.microsoft.com/sccm/core/clients/manage/plan-cloud-
management-gateway
Using Azure AD with the CMG:
https://docs.microsoft.com/sccm/core/clients/deploy/deploy-clients-cmg-
azure
Cloud DPs: https://docs.microsoft.com/sccm/core/plan-
design/hierarchy/use-a-cloud-based-distribution-point
Updates to Current Branch are delta updates, which makes them different from
service packs in previous versions. A ConfigMgr service pack was often the
same size as the full product and frequently contained several years of SQL
Server database changes for modifying the database schema to support the
cumulative updates and any new features. Current Branch releases contain
several months of changes and only those since the last update. It therefore takes
far less time to actually apply these releases.
Each release includes a list of new features available with that release. You can
choose to make those features available throughout your hierarchy, enable only a
subset of features, or not make new features available; this gives you control and
additional testing time for new features, if required. Microsoft occasionally adds
pre-release features, which are not meant for production usage but are features
Microsoft believes require testing in production with a pilot to fully validate the
feature. You do not have to enable these features or use them until they exit the
pre-release stage. Usually the transition from pre-release to release occurs during
the next release, though Intune features may be released in response to an Intune
service change.
At the time this book was published, configuration Manager Current Branch had
had six major versions since its 1511 release in November 2015. These are listed
in Table 4.1:
The most common model for release and change management is the test and
production environments, where all changes go through testing and then are
released to production. Some environments have multiple stages of test
environments, referred to as development, staging, pre-product, integration, and
user acceptance testing. Ultimately, ConfigMgr Current Branch releases should
cascade from your test environment(s) to production like any other changes.
The Updates and Servicing node also allows you to configure pre-production
collection of clients that automatically receive the new ConfigMgr client. After
performing any additional testing required by your change and release
management processes, the updated client can be released to production clients
(all clients not in the pre-production collection). ConfigMgr provides in-console
monitoring for the entire process, including the server upgrade and client
upgrade elements.
Microsoft often provides first-wave and general access for the same release,
which means you can select the speed at which you receive access to a release.
You could place your test environment on the first wave to provide additional
time to test new releases. (The amount of time varies with every release.) The
scripts that enable access to the first wave are published with the announcement
of each release on Microsoft’s Enterprise Mobility and Security Blog, at
https://cloudblogs.microsoft.com/enterprisemobility/?content-
type=announcements&product=system-center-configuration-manager.
You may also want to consider ConfigMgr Current Branch Technical Preview.
This is similar to the old open betas for ConfigMgr 2007 and 2012, except
Technical Preview is a discrete branch of updates that are released as a perpetual
90-day evaluation (with each update resetting the timer). This is similar to the
Windows Insider program for Windows 10. Updates are released monthly or
every other month, and Technical Preview enables you to experiment with
features before they are released and provide feedback to Microsoft through the
Configuration Manager UserVoice page
(https://configurationmanager.uservoice.com/). Sites that are installed from
Technical Preview media are updated from the console directly, like sites
installed from production media. It is not possible to move from production to
Technical Preview or vice versa. Features included in Technical Preview may
not be included in the next production release; something being included in
Technical Preview does not imply a release schedule.
Do not neglect any element, or you risk being unprepared for a low-risk but
high-impact disaster or a higher-risk but lower-impact human error.
Recovery time is how quickly service can be restored. You may have different
RTOs for normal faults (disk failure, human error) versus DR scenarios. In
general, your RTO for normal fault is the shortest time possible, while a DR is
necessarily more complex and often has a higher RTO.
ConfigMgr Backup: This is conducted by the site server and backs up the
file system, Registry, and site database into a folder that can then be backed
up normally using any file backup tool.
SQL Server Backup: Introduced with ConfigMgr 2012, SQL Server
backups are not specific to ConfigMgr, and open up the ability to use any
Microsoft-supported SQL Server backup method.
ConfigMgr backup is most commonly used and has the fewest dependencies on
other technologies and the teams that run those technologies. No one needs to
configure SQL Server to perform backups, and all Windows storage snapshots
are handled by the site server. However, this method often results in very large
backups, especially in environments with hundreds of thousands of clients. Also,
the information stored in the file system under the ConfigMgr installation folder
is not critical to the recovery of the site.
SQL Server backup provides several key benefits over traditional ConfigMgr
backup. It gives your SQL Server database administrators flexibility to choose
the database backup model that suits them best. SQL Server backups can be
heavily compressed in large environments, reducing time to replicate the backup
and allowing more backups to be maintained. You can also use features such as
SQL Server Managed Backup if hosting your ConfigMgr infrastructure in
Microsoft Azure. If you use SQL Server backup, you will lose any files being
processed in the ConfigMgr inboxes at the time of a failure. In general, this is
not a major concern unless you regularly have backup logs in those inboxes. (A
backlog that is so persistent should be addressed separately anyway.)
Summary
This chapter discussed the key elements for developing a ConfigMgr design. It
covered requirements gathering and the scoping of the technical elements of a
design. It also provided an overview of the key elements of both client and
server design elements, including site and site system scalability and placement,
along with client discovery and settings. (For further details, see Chapter 9.)
Content management and network design were also briefly covered; for a full
discussion, see Chapters 14 and 5. The chapter also discussed how to maintain
and manage ConfigMgr Current Branch, given the new release schedule and
evergreen/always-updating servicing model. To gain a better understanding of
co-management and how it helps to modernize the management of Windows 10,
see Appendix B. This chapter should be followed up with the various in-depth
chapters based on your requirements and planning for deploying ConfigMgr.
CHAPTER 5
Network Design
IN THIS CHAPTER
Configuration Manager and the Network
Understanding Data Flows
Designing Intrasite Communication
Using Intersite Communication
Designing Client Communication
Troubleshooting Network-Related Issues
This chapter does not cover network design; it discusses how to design and
configure ConfigMgr for your organization’s network. Similarly, this chapter
assumes that basic network services required for any network application are
working properly. This includes, but is not limited to, the following:
Network considerations affect your site design and operations. The following
key concepts are covered in this chapter:
Knowing how ConfigMgr uses the network helps you deploy and configure
ConfigMgr correctly, as well as optimize its use of the network and available
bandwidth. Without this knowledge and proper planning, ConfigMgr can
become a costly endeavor, failing to live up to its potential or even its basic
capabilities. This chapter discusses what you need to know, including
information regarding communication and data flows, ports and protocols, and
site design considerations.
If the size of your organization dictates that you will be using a central
administration site (CAS) and multiple primary sites, this main or chosen
datacenter is where you should locate the CAS and the first primary site’s site
server.
Name
Number of managed clients
Available bandwidth
Expected management activities
Current network usage patterns
IP addresses used
Ability to place servers at location
Network path
The ConfigMgr client agent communicates with only six specific site roles.
These are often categorized as the client-facing roles:
All other site roles support site-centric operations and do not directly support
clients. To ensure the best and fastest possible network connection, place these
roles in close proximity to the site server for the site to which they belong. In
general, the site server is usually the best location for these roles and is required
for the Endpoint Protection Point role, which must exist on the top-level site
server in the hierarchy if System Center Endpoint Protection (SCEP) will be
used and managed by ConfigMgr. The service connection point (SCP) also must
exist on the top-level site server.
Of the six client-facing roles just introduced, one role handles a vast majority of
client traffic: the Distribution Point (DP) role. Place this role in close proximity
to the managed clients to minimize WAN usage and support clients at remote
locations. You can implement this in one of two ways: by directly placing site
systems hosting the DP role at or near the client locations or by placing
secondary site servers at or near the locations. Using a DP that is part of a
primary site is generally preferred as it is simpler to deploy and maintain.
Secondary sites provide an intermediary between a client’s assigned site and the
site that manages the client. Clients are never directly assigned to a secondary
site but can use the roles attached to a secondary site. This includes the
following client-facing roles:
Distribution Point
Management Point
Software Update Point
State Migration Point
When you attach these client-facing roles to a secondary site that is close to its
clients, a client does not need to communicate with its assigned primary site,
which may be across a WAN link. Clients can use these roles based on the
boundaries and boundary groups configured in the hierarchy, discussed in the
“Using Boundaries and Boundary Groups” section, later in this chapter.
As Table 5.1 shows, secondary sites handle nearly all client traffic while keeping
it local. This makes it appear that a secondary site is the preferred approach, but
secondary sites increase complexity in the hierarchy and also create the
possibility of orphaned clients. Clients could become orphaned if the secondary
site server is unavailable for some reason, as clients using roles at that site would
be unable to obtain policy or download content until boundaries were manually
changed at the primary site. Changing the boundaries would enable the clients to
use different MPs and DPs until the secondary site was repaired.
How do you choose between secondary sites and DPs without any strict
guidelines? The authors recommend weighing the available bandwidth to a
location—which should include factors such as existing congestion and usage
patterns—against the number of client systems to be managed at that location.
All client communication is web based, uses HTTP or HTTPS, and is encrypted
for security.
Whether simple or complex, all ConfigMgr Current Branch sites have the
following core components that communicate with each other: the site server, the
SMS provider, and the site database. All site server roles communicate with one
or more of these components. Most of these site servers fall into the following
communication groups:
The default instance uses the standard port 1433. ConfigMgr Current Branch
does not support using dynamic ports. If you use a named instance, you must set
SQL to use a static port. As 1433 is a well-known port for SQL, the authors
suggest using a different port for security reasons. Ensure that you open the
firewall for that port number. Once the port number is defined, SQL Server
communicates using Transmission Control Protocol/Internet Protocol (TCP/IP).
ConfigMgr Current Branch also supports using named pipes to connect to SQL
Server; however, you should use this communication only to troubleshoot SQL
Server connection issues.
The SMS provider is a tool used to communicate with the SQL database. This is
a WMI provider that you can access through WMI or managed classes. The
ConfigMgr console makes extensive use of the SMS provider to communicate
with the SQL database. Most site roles include code to communicate directly
with SQL Server and bypass the SMS provider.
The dynamic port range used changed beginning with Windows Server 2008; it
is now between 49152 and 65535. For security reasons, you may want to use
something besides the default range, and you may want to change that range
value. This can be accomplished with the netsh command:
Click here to view code image
If you are unsure of the dynamic port range, you can use the following
commands to view that port range:
Click here to view code image
HTTPS is used for all ConfigMgr external communication, which occurs over
TCP port 443. The firewall should be opened to allow port 443 traffic. A proxy
account or server may be needed, and each of these components includes areas
to specify proxy information.
Intersite communication describes these two forms of replication and how they
are used by sites to communicate with each other. It is important that both types
of replication work correctly in a multisite hierarchy. Consider an example of a
package created at the CAS. The metadata for that package is sent to the lower-
tiered sites via SQL Server–based replication, and the actual content is sent using
file-based replication. If either method is not working or is impacted by network
issues, the package deployment will be unsuccessful.
Scheduler Thread: The scheduler works off a job file. This file is usually
created by the thread wanting to do file-based replication. The scheduler
reads the job file, which contains the destination site code, the path to the
instruction file and the data file, and the job ID. The scheduler then creates
a send request file for the sender to act on. The scheduler updates a log file
called schedule.log that is located in the Logs folder.
Sender Thread: The sender works off the sender request file created by the
scheduler. This file can be found in the
inboxes\schedule.box\outboxes\LAN folder and generally ends with a SRQ
file extension. The file contains the destination site code, the job file ID, the
path to the instruction file, and the path to the data file. The sender reads
this file, makes a network connection to the destination site, and uses the
SMB protocol to copy the instruction and data files. The sender logs its
information in Logs\sender.log.
The sender has settings that control how it functions, located on the Sender tab
of the site properties. Figure 5.1 shows these settings:
FIGURE 5.1 Configuring sender properties.
Maximum Concurrent Sendings
All Sites: Senders can use multiple threads to send more than one job
at a time. This setting controls the maximum number of sendings (1 to
999) the sender can execute simultaneously. Increasing this number
speeds up site-to-site communications but could potentially consume
more bandwidth.
Per Site: This is the number of sendings (1 to 999) that could execute
simultaneously to a single site. Always set this setting to a lower value
than Maximum Concurrent Sendings (All Sites) to avoid the
possibility that all of a sender’s threads will be occupied sending to a
site that is unavailable.
Retry Settings
Number of Retries: Specifies the number of times (1 to 99) that the
sender will retry a failed sending.
Delay Before Retrying (Minutes): Specifies the delay (1 to 99
minutes) before retrying a failed sending attempt.
The sender uses a file replication route to understand how to connect to the
destination site. Each route includes a source site and a destination site, the
security account to use when making the connection, and the fully qualified
domain name (FQDN) of the destination site server. The route has several
configurable settings to help with a slow network or to limit bandwidth to certain
hours. These are located in the ConfigMgr console under Administration ->
Hierarchy Configuration -> File Replication, which lists all the file replication
routes. You can then choose a route and look at its properties (see Figure 5.2).
FIGURE 5.2 Configuring a file replication route.
The Schedule tab allows you to choose the hours of the day and night the sender
can use to send data to the destination site. This is based on the priorities that
have been set for the data. Three priorities can be set for the data:
High
Medium
Low
The Rate Limits tab allows you to set the percentage of available network
capacity to use when sending data to the destination site. Figure 5.3 provides an
example.
FIGURE 5.3 Configuring rate limits.
When implementing rate limits, there are three options to choose from:
Global Data: This is data intended to be shared with all ConfigMgr sites
and includes any data generated by the ConfigMgr console. Global data is
present and replicated at the CAS and all primary sites. Secondary sites also
contain a small subset of global data, such as MP and DP lookup
information. Following are examples of global data:
Collection rules and counts
Package, program, and application metadata
All deployments
Configuration items metadata
Software update metadata
Task sequence metadata
Site control file information (now stored in the ConfigMgr database)
System resource lists
Site security objects
Alert rules
Global data can be created at the CAS or a primary site. If created at a
primary site, it is replicated to the CAS, which replicates it to all primary
sites. Primary sites replicate needed information to the secondary sites.
Site Data: This is data generated by clients and the local site systems. Site
data is replicated up the hierarchy and not across the hierarchy. This means
a client’s hardware inventory is sent to the local site and then replicated up
to the CAS but not replicated to any other primary site. Following are
examples of site data:
Collection membership results
Alert messages
Hardware and software inventory
Software metering data
Asset intelligence client access license track data
Status messages
Software distribution status details
Status summary data
Component and site status summarizers
Client health data and history
Wake on LAN
Software updates site data
Data is replicated through the hierarchy (or, in the case of site data, up the
hierarchy) every one to seven minutes to ensure that anyone looking at the CAS
has the most accurate view of what is occurring in the hierarchy. The CAS and
all primary sites contain the same global data. This helps with disaster recovery
when a site crashes; because the same data is at the CAS, it can be recovered
faster, leading to less downtime for the hierarchy.
Database replication has several components that work together inside and
outside SQL to move the data from the database of a site server to the database
of other site servers. The following components replicate the data:
Data Replication Service (DRS): DRS is the name given to the overall
process and service ConfigMgr uses to replicate data through SQL Server to
other sites. DRS was written partly in SQL and partly in ConfigMgr. This is
not to be confused with SQL replication, which is a feature of SQL Server.
ConfigMgr uses DRS instead of SQL replication.
SQL Server Service Broker (SSB): SSB is a feature of SQL Server that
was first introduced with SQL Server 2005. It is an integrated part of the
database engine and provides queuing and reliable direct asynchronous
messages between itself and other service brokers. This is accomplished by
exchanging messages in a dialog conversation between the two service
brokers. SSB is used to send the data from one database to another.
Replication Configuration Monitor (RCM): RCM is a thread of the
SMSExec service. This thread is responsible for interacting with the SQL
side of DRS. RCM monitors and configures different items of DRS. RCM
writes to the rcmctrl.log file in the Logs folder. This log file should be the
first place you look when DRS is not working properly.
Replication Group: Replication includes global and site data. That data is
broken down further into replication groups. A replication group is a group
of database tables that are similar in nature. An example of a replication
group is the Alerts group, which contains information from all the alert
tables.
Replication Pattern: Once you have a replication group, the data is further
segregated using replication patterns. Three patterns are used:
Global: This pattern is any data that is created by the administrator
using the ConfigMgr console or PowerShell scripts that need to be
replicated between the CAS and primary sites.
Global_Proxy: This subset of the global pattern contains data that is
shared across the primary sites and their respective secondary sites.
Site: This pattern is the same as the site data previously mentioned in
this section. This is data shared between the primary site and the CAS
and is created primarily by the clients.
Article Names: Replication groups are further divided into article names
based on a replicationID assigned to the replication group. It is the
grouping of the replicationID that creates the article name.
An organization may want to change the port numbers so that they are different
from those listed in Table 5.2 for security reasons; this could be related to
network firewall policies or perhaps a custom IIS website. The client spends the
majority of time communicating with the MP and the DP; because these are
websites, they may not be installed on the IIS default website and may require
access using a custom port number. ConfigMgr Current Branch allows you to
change the port numbers used for HTTP and HTTPS communication. Figure 5.4
shows the Ports tab for the site properties, where you can add a custom port.
FIGURE 5.4 Configuring a custom client port.
If using a custom port, ensure that the client knows the port number and uses that
port when communicating. You accomplish this by using a command-line option
when installing or reinstalling the client. The full set of command-line options
for client installation is at https://technet.microsoft.com/library/mt489016.aspx.
The following is a sample command to install the client to use the custom port
8080:
Click here to view code image
If the client is already installed, and you need to change the port number used for
communication, you have three options:
Reinstall the client using a command line specifying the correct port number
to use.
Run a dual configuration for a period of time. However, you must have both
the default and custom ports enabled at the same time. The client obtains
the new port number from Active Directory Domain Services (ADDS); you
can disable the old port number when all the clients have the new port
number.
Use the portswitch.vbs script. This sample script is provided in the tools
folder of the ConfigMgr installation media and is designed to be run with
software distribution. You can use a deployment to have the clients run the
script, which sets the new port number. If you use this script, both the
current port number and the new port number must be enabled, as the client
downloads the policy and continues to run this deployment with the old
port.
The client uses the following three options to complete the service request:
ADDS: The client uses ADDS as its primary method of service location.
This requires the AD schema to be extended, ConfigMgr Current Branch to
publish its site information in ADDS, the AD forest to be enabled for
publishing inside ConfigMgr, and the computer to be a member of the
domain.
DNS: If you cannot publish the ConfigMgr information into ADDS, you
can publish the MPs’ information into DNS. The client will query DNS to
find any published MPs.
WINS: When all else fails, ConfigMgr falls back to using Windows Internet
Name Service (WINS) to find an MP.
The client uses an MP based on this MP list; if multiple MPs are within the same
classification, it chooses the most secure MP available. If all the MPs in the list
use the same security method, the client randomly chooses an MP to use.
BITS 2.5: Included on all systems running Windows Server 2008, Windows
Vista, and Windows XP Service Pack (SP) 3, version 2.5 can also be
installed on machines running Windows Server 2003 SP 1 or SP 2 or
Windows XP SP 2 64 bit. The QMgr.dll version is 6.7.xxxx.xxxx.
BITS 3.0: This version is available on Windows Server 2008 and Windows
Vista operating systems only. The QMgr.dll version is 7.0.xxxx.xxxx.
BITS 4.0: Available natively in Windows 7 and Windows Server 2008 R2,
this version can be downloaded and installed on Windows Vista SP 1 or SP
2 and Windows Server 2008 SP 2. The QMgr.dll version is 7.5.xxxx.xxxx.
BITS 5.0: This version is included in Windows Server 2012, 2012 R2,
Windows 8, and Windows 8.1. The version of QMgr.dll is 7.7.xxxx.xxxx.
Windows 10 also includes BITS 5.0 but with some new features that allow
the use of PowerShell cmdlets. The QMgr.dll version in Windows 10 is
7.8.xxxx.xxxx.
More information about the new features added with each version of BITS is
available at https://msdn.microsoft.com/library/aa363167.aspx.
A problem with earlier versions of BITS is that the system is only aware of the
traffic passing through the network interface card (NIC). Even when the network
segment to which the machine is connected is congested, if there is little or no
network activity on the local machine, it appears to BITS that most of the
bandwidth supported by the card is available. Under these conditions, BITS
transmits data at a high rate, potentially causing additional network congestion
problems. BITS 2.5 and higher versions get around this limitation by pulling
usage statistics from the Internet gateway device (IGD). Certain conditions must
be met to pull statistics from the IGD:
You can find these settings in the client agent settings, located under
Administration -> Client Settings -> Default Client Settings. Figure 5.6
shows the available settings.
Once these settings are changed, a policy is created for the collection to which
the settings are deployed; if the default collection, the policy is created for all
machines. Clients download these settings as a policy when they check again for
policy at the MP. Once the client downloads the policy, it is applied to that
machine.
Understanding BranchCache
BranchCache is a technology that optimizes WAN bandwidth between the main
location and remote locations. When users at a remote location access content on
remote servers, BranchCache copies the content from the main location and
caches it at the remote locations, allowing client computers at the remote
locations to access the content locally rather than over the WAN. BranchCache is
included in some editions of Windows Server beginning with 2008 R2 and in
Windows 7 and later versions. BranchCache has two modes of operation:
Turn on BranchCache
Set BranchCache Distributed Cache Mode
The authors also recommend you set the following two options:
The network access account (NAA) has full rights to the client cache
folder: This is a big requirement because in the past, the NAA has always
been a domain user with basic permissions on client systems. The NAA
must have Full Control permission to the %windir%\ccmcache folder. The
NAA is used to access the cache folder and allow clients to download the
content. Starting with the version of Peer Cache used with ConfigMgr
Current Branch version 1706, the NAA is no longer used unless the client is
running a task sequence that reboots the machine into Windows
Preinstallation Environment (WinPE); in this case, the NAA is still needed
to access content from a peer.
Peer Cache is only used by clients in the same boundary group: A client
can only download content from the peer cache of a machine in the same
boundary. When clients request machines that have content for it, peer
cache clients with content in the same boundary are returned to the client.
Hardware inventory must be up to date: The current boundary of a peer
cache content source is determined by the last hardware inventory the client
has sent to the database. If a peer cache content source roams to a different
boundary but does not submit an updated hardware inventory, a client could
download content across a slow network. You should consider whether the
machine is prone to roaming or is stationary when choosing what machines
will become content peers.
The type of content does not matter: Any type of content that is in the
cache of a peer source can be given out to clients requesting the content.
Software updates, packages, applications, and any other content types are
all available for download.
The requesting client does not have to have Peer Cache enabled: Clients
without Peer Cache enabled can download content from a Peer Cache–
enabled source. This means you can designate several peer cache source
content clients in each boundary from which clients can download content.
When you have found the machines you want to use as peer cache content
sources, create a collection and add them to the collection. This allows you to
group the machines together. Now you are ready to configure the Peer Cache
settings. Because you only want the machines in the collection to receive the
Peer Cache policies, you need to create a new custom client device setting.
Therefore, navigate to Administration -> Overview -> Site Configuration ->
Client Settings and choose Create Custom Client Device Settings either from
the ribbon bar or after right-clicking Client Settings. You then see a dialog box
that allows you to name the custom device settings and choose the client settings
you want to apply to this custom setting. Choose Client Cache Settings, and a
new section is added to the dialog box, where you can configure the settings, as
shown in Figure 5.9.
After configuring these settings, deploy the custom client settings to the
collection you created for your peer cache content source machines.
When these machines get the policy to be peer content sources, a hidden IIS web
page is installed on each one, and the ports are opened in Windows Firewall to
allow incoming connections. This is visible inside the CAS.log file on the peer
content source machines. You can also see references to a new service thread for
the client, known as the Super Peer service, as well as the website that peer
clients will use to connect, called SCCM_BranchCache$. (That is just the name
Microsoft used; it has nothing to do with BranchCache itself.) When monitoring
the CAS log, you also see references to impersonating the NAA access account
credentials. This is how the Super Peer service thread gets access to the Cache
folder on the peer source.
When the peer sources have the content in their cache folders, create your
deployment to other systems. When the clients receive the deployment and begin
downloading content, a request is made to the MP, asking for DPs in this
boundary with the content. The MP queries the database and returns a list of DPs
and peer content sources. The client tries to use the peer content sources first and
falls back to a DP if it cannot get the content from a peer source. When the
download starts, you can monitor the Content Transfer Manager log
(ContentTransferManager.log) for an overview of the download. To see detailed
information about the download, follow the Data Transfer Service log file
(DataTransferService.log). This log file shows information about the machine
being connected to for the download, the files being downloaded, the job number
used to download the files, errors that might occur during the download, and a
success message with the start time, ending time, and amount of time for the
download.
On the peer content source side, you can monitor the CAS log file to see the
connections and the downloads that are occurring. If you see issues with a
download, be sure to view both sides of the download: the client and the peer
content source. You typically should not notice a difference between using a peer
content source or a DP.
The dashboard has several tiles that display information that tells users what
content has been downloaded using DPs, Peer Cache, BranchCache, and cloud
DPs. You can also hover over the graphic tiles for a breakdown by size of the
downloads of each of the content servers. Remember that this data is sent back
from the clients only every 24 hours, which means it may take a day or so for the
dashboard to be updated with new data.
FIGURE 5.10 The Client Data Source dashboard.
Site Assignment: When you choose to use automatic site assignment, the
client determines if its current network location (AD site and/or IP
subnet/address) falls within a defined boundary. If it does, the client is
assigned to the site defined within the boundary group of which the
boundary is a member. This is an automatic site assignment process.
Site Systems: A boundary group contains a list of site systems to be used by
clients falling within the boundaries of the group. These could be MPs,
DPs, or even SMPs. When a site system is added to the boundary group, it
can only be used by the clients that fall within the boundaries assigned to
the boundary group; this is known as a protected site system.
In small to medium-sized networks, you should be able to use only the AD site
method or perhaps a combination of AD sites and IP subnets. In larger networks,
network administrators may be using classless interdomain routing (CIDR)
and/or supernetting to define IP subnets (see
https://technet.microsoft.com/library/cc958837.aspx for additional information).
Note that ConfigMgr does not support these methods. The boundary methods
expect AD sites and IP subnets to use a specific subnet mask, based on legacy
class assignments. When using CIDR and/or supernetting, you may find that you
are using a third boundary type, IP address ranges. Ranges allow you to define a
group of IP addresses without being concerned about the type of subnetting that
is in place.
Starting with version 1610, ConfigMgr Current Branch changed how boundary
groups work. Previous versions used the concept of fast and slow network links.
When adding a site system to a boundary group, you could assign that system as
a fast or slow link. You could also assign a DP as a fallback DP, meaning that if
the client could not find the content on a DP or was not in the boundaries of a
DP, it could use the fallback DP to look for content. This sometimes meant a
client might go across a slow network link to pull content from the fallback DP,
but at least it could get the content.
You can use this tab to define the relationship between this boundary group and
another boundary group, and you can allow the client to fall back if it cannot
find content in its own boundary group. This relationship, called neighbor
boundary groups, enables you to create a one-way link between the current
boundary group and neighbor boundary groups you add. The client searches for
content in its own boundary group and falls back to neighbor boundary groups if
the content is not found. You can assign a time value to each neighbor, telling the
client how long to wait before falling back to that neighbor to search for content;
you can also define a priority list for the neighbors the client will search.
TIP: LINKS BETWEEN A NEW BOUNDARY GROUP AND THE
DEFAULT BOUNDARY GROUP
When you create a new boundary group, an implied link is created to the
default boundary group for the site. This allows the client to fall back to site
systems defined in that default boundary group when it is not in a boundary. It
also allows clients to fall back and use these site systems when they cannot
find any content in their neighbor boundary groups. When defining neighbors,
ensure that you set the time value to something less than the default 120
minutes defined for the default site boundary group. If you don’t, clients will
use the default site boundary group before using their neighbors.
Signed Client Data: To protect data sent from clients, you can require a
client to sign the data before sending it. To enhance the security even
further, you can require the data to be signed using the SHA-256 algorithm.
Encryption: While signing the data helps protect it from tampering,
encryption protects the data from information disclosure, which means it is
not vulnerable to network sniffing devices. 3DES is the encryption
technology used when encryption is enabled. It protects inventory data and
state messages.
PKI Certificates and HTTPS: When using HTTPS, the client must present
a valid authentication certificate issued by the trusted root certificate
authority to both the IIS server and the client. When using HTTPS for all
client communications, you do not need to use the signing or encryption
methods.
When ConfigMgr clients request policy, they first get a policy assignment so
they know which policies apply to them, and then they request only those policy
bodies. Each policy assignment contains the calculated hash for the
corresponding policy body. The client retrieves the applicable policy bodies and
then calculates the hash on each body. If the hash on a downloaded policy body
does not match the hash in the policy assignment, the client discards the policy
body.
The following sections briefly describe some of these issues and tools for
troubleshooting these items.
ping 127.0.0.1
ping <Remote IP Address that you want to connect to>
Figure 5.13 shows that the ping started with the FQDN, Athena.odyssey.com,
which resolved to the IP address 95.211.219.66. The information returned then
looks just like the ping in the previous section. Name resolution turns a name
into an IP address, and the machine knows how to connect to that IP address. If
name resolution is not working, you see results similar to the following:
Click here to view code image
ping athena.odyssey.com
Ping request could not find host athena.odyssey.com. Please check
the name and try again.
Results such as these indicate a problem with DNS, which you can troubleshoot
by using the NSlookup command, described at
http://support.microsoft.com/kb/200525. To troubleshoot NetBIOS name
resolution using Nbtstat and other methods, see
http://support.microsoft.com/kb/323388. It is also useful to ping the known IP
address of the target machine; if that works, the issue is narrowed to some type
of name resolution–related issue.
If tracert shows that the packet makes it to the final destination, but ping still
fails, you may have a port or firewall issue. The firewall could be set so that the
machine doesn’t respond to incoming pings, which would cause your pings to
fail. Ports blocked by firewalls and routers are common sources of connectivity
problems. In other cases, a port may simply not be listening on the system to
which you are trying to connect. You can attempt to connect to the specific port
on the target system with the telnet command. For example, to verify that you
can connect to the Trivial File Transfer Protocol (TFTP) daemon service (port
69) on PXE-enabled DP Charon.Odyssey.com, open a command prompt (by
selecting Start -> Run and then typing cmd) and enter the following:
Click here to view code image
telnet Charon.Odyssey.com 69
If telnet is successful, it will open the telnet screen with a cursor. If the
connection fails, you will receive an error message.
When a connection to a port fails, first verify that the service is listening on the
appropriate port. On the machine that should receive the connections, enter the
command netstat –a to list all connections and listening ports and then
check the following:
If the port is not shown, verify that all system requirements and
prerequisites are met.
If the port displays as enabled, check all network firewall logs for dropped
packets.
time=50ms means it took 50 milliseconds to get the reply from the destination
site. The higher the number, the slower the network. A high value may also be
returned if a network is congested. Sometimes the ping times out because the
network is slow. In these cases, you can change the ping command line to
insert a time to wait before timing out, like this:
Click here to view code image
In this example, 3000 is the number of milliseconds for the ping command to
wait for a reply before timing out.
Testing MPs and DPs
A network issue could be the MP or DP to which you are trying to connect. In
ConfigMgr, both the MP and the DP are websites. ConfigMgr provides some
commands to test the connectivity to these websites. In your browser, type the
following commands to connect to the MP website for testing:
Click here to view code image
mplist returns a list of the MPs in the same site, and mpcert returns a string
of characters corresponding to the MP certificate.
If you are using HTTPS for the MPs, enter the following:
Click here to view code image
You may run into issues where the client is not downloading the complete
package or perhaps cannot find the package on the DP. In such a case, you can
test the DP to verify package contents or see if the package is on the DP. Run the
following command in your browser window (if using HTTPS, change HTTP to
HTTPS):
Click here to view code image
After entering this command, you are prompted to enter your user ID and
password to verify that you have permissions to the content store where the
package is located. Once access is granted, a list of package files is returned.
Figure 5.15 shows an example of this, using the built-in ConfigMgr client
package.
FIGURE 5.15 Testing the contents of a package on a DP.
If running the SQL Server service using a domain account on the site
database server or other roles requiring SQL Server, follow the instructions
at http://technet.microsoft.com/library/bb735885.aspx to register the SPN.
If the SQL Server service is configured to run under the local system
account, the SPN does not need to be manually registered. However,
running SQL Server as local system is not recommended for security
reasons.
For site systems that require IIS, if the system is registered in DNS using a
CNAME (a DNS alias rather than the actual computer name), you must
register the SPN by using the procedure described at
http://technet.microsoft.com/library/bb694288.aspx.
Summary
This chapter provided an in-depth look at one of the underlying prerequisites for
ConfigMgr: the network. It discussed how ConfigMgr communicates with its
site servers, other sites, and external resources. It talked about the ways clients
communicate with site roles such as the MP and DP. It covered where to place
servers for the best client performance and how clients use boundaries and
boundary groups, BranchCache, and Peer Cache. It discussed communication
security, how clients use that security, and other site roles that use that security.
The chapter discussed the ports used for communication and the protocols for
those ports. It discussed troubleshooting issues, including in-depth information
on pings, ping tests, and how to verify that an MP and DP are working correctly.
IN THIS CHAPTER
Performing Preinstallation Tasks
Performing Site Installation Tasks
Configuring Site Properties
Troubleshooting Site Installation
Updating Configuration Manager
The authors recommend that you plan to baseline a proof of concept (POC) site
and scale it based on scenario testing in a controlled environment.
SQL Server version: The following versions and editions are required and
supported:
SQL Server 2016 Standard and Enterprise
SQL Server 2014 Standard and Enterprise
SQL Server 2012 Standard and Enterprise
Install the WSUS role on each server that will be a SUP. You must also install
the WSUS administration console on the ConfigMgr primary site server when
the SUP is on a different server from the primary site.
ConfigMgr uses the same executable to perform the prerequisite checks. The
tool generates three log files in the root of the system drive. The primary log file
with the full check details is ConfigMgrPrereq.log.
The tool requires you to use the fully qualified domain name (FQDN) of the
targeted machine. Run the tool at the command prompt with a /? switch to
invoke the help menu and view correct syntax, illustrated in Figure 6.2. Table 6.2
lists all the command-line options.
By creating a hierarchy
By creating a standalone site
These two methods require you to install specific Configuration Manager site
types and with a specific installation order.
A hierarchy supports the CAS, child primary, and secondary site types. In a
hierarchy, a primary site must always join an existing CAS. Note that in a design
where you have one primary site, you can add a CAS in the future as needed.
(See the note “Do You need a Central Administration Site?” for more
information.) This is discussed further in Chapter 4. Following is the order in
which you must install a hierarchy:
A standalone site supports one primary site and one or more secondary sites
under the primary site. Following is the order in which you must handle a
standalone site implementation:
The authors recommend installing the prerequisites relevant to the CAS on the
server or servers allocated to the CAS site installation. The supported roles on a
CAS are listed in Chapter 4.
NOTE: ABOUT PREREQUISITES
The database server and SSRS requirements apply only if the CAS server is
hosting the SQL Server components. Also, the minimum WSUS installation
required on a CAS is the WSUS console. If you perform a full installation of
WSUS, remember to cancel the Windows Server Update Services
Configuration Wizard, as running it is not required.
1. Log on to the server (Armada in this example) using a domain user account
with local administration privileges.
2. Start the installation from the System Center Configuration Manager splash
screen. Double-click splash.hta and click Install.
3. Work through the following significant wizard pages:
Before You Begin: This page lists the items you must check before
you begin the installation. Click Next.
Getting Started: Select Install a Configuration Manager Central
Administration Site, shown in Figure 6.3, and then click Next.
FIGURE 6.3 Getting started with the CAS installation.
Product Key and Select for Current Branch (CB) or Long Term
Servicing Branch (LTSB): Enter your product code and select
Current Branch, and then click Next.
Prerequisite Licenses: Accept the terms to continue with the
installation, and then click Next.
Prerequisite Downloads: You have two options: Download Required
Files or Use Previously Downloaded Files. Specify either a UNC file
path or a local file path to an existing folder. With the second option,
you can use setupdl.exe in advance to download the prerequisite files
to a local folder. This option is useful in situations where there is no
Internet access during the installation process. Click Next.
Server Language Selection: Select the supported languages that are
appropriate for your environment. (You can change this setting after
installation by rerunning setup and selecting the Site Maintenance
option.) Click Next.
Site and Installation Settings: Type a unique three-character site
code, provide a site name, and specify the installation folder. You
cannot change these settings without reinstallation. Review Chapter 4
for information. Figure 6.4 shows the Site and Installation Settings
page. Click Next.
For more information, review the documentation for using the setup wizard at
https://docs.microsoft.com/sccm/core/servers/deploy/install/use-the-setup-
wizard-to-install-sites.
Create a standalone primary site: This is used for a single primary site
installation.
Join the primary site to an existing hierarchy: You can install this
primary site type only if you previously installed a CAS as part of a
hierarchy deployment.
The two modes of primary sites differ in the type of roles you can enable. The
supported roles on a primary site are listed in Chapter 4.
Following is a list of steps you must perform before starting the installation of
either type of primary site:
With the prerequisites successfully installed, you can install a primary site that
will join to the existing CAS. (The standalone primary site installation uses a
very similar process, so this chapter shows the more complex scenario of
connecting to an existing CAS in detail.) Perform the following steps:
1. Log on to the server (Athena in this example) with a domain user account
with local administration privileges.
2. Start the installation from the System Center Configuration Manager splash
screen. Double-click splash.hta and click Install.
3. Work through the following significant wizard pages to install a standalone
primary site:
Getting Started: Select Install a Configuration Manager Primary
Site, and then click Next.
Prerequisite Downloads: You have two options: Download Required
Files or Use Previously Downloaded Files. Specify either a UNC file
path or local file path to an existing folder, and then click Next.
Server Language Selection: Select the supported languages that are
appropriate for your environment. This setting can be changed
postinstallation, by rerunning setup and selecting the Site Maintenance
option. Click Next.
Client Language Selection: Select the Configuration Manager client-
supported languages appropriate for your environment, and then click
Next. You can change this setting after installation by rerunning setup
and selecting the Site Maintenance option.
Site and Installation Settings: Type a unique three-character site
code, provide a site name, and specify the installation folder. You
cannot change these settings without a reinstallation. Figure 6.6 shows
the Site and Installation Settings page. Click Next.
FIGURE 6.6 Selecting the site code and site name.
Primary Site Installation: Select Join the Primary Site to an
Existing Hierarchy and specify the FQDN of the CAS. Click Next.
Database Information: Type the server name, instance name, and
database name for the site server hosting the primary site database
role. Figure 6.6 shows the default selection when the database server is
colocated on the site server. It also shows the SQL Server service
broker port (which is the service used for replication in the hierarchy).
Click Next.
Database File Information: Enter the path to the location for the SQL
Server data file and transaction log. The default locations are entered
by default. Click Next.
SMS Provider Settings: Accept or specify the SMS provider settings
and click Next. Chapters 4 and 5 discuss aspects of the SMS provider.
Client Computer Communication Settings: Select whether clients
communicate over HTTPS only (which requires PKI certificate
authentication to be configured) or whether to use a particular
communication protocol on each site system. Click Next.
Site System Roles: You can install the MP and DP roles. Select the
required roles and click Next. Figure 6.7 shows both optional roles
selected.
Settings Summary: Review the summary of settings selected and
click Next to begin the built-in prerequisite check.
FIGURE 6.7 Configuring the MP and DP site system roles.
Prerequisite Check: Review and resolve any blocking issues and click
Begin Install.
Complete Installation: The final wizard page is the completion page.
There is a link to the installation log files on this page.
Review Logs: When the installation dialog shows that the process is
complete, the fun is just beginning. Review C:\ConfigMgrSetup.log
for additional information. Click Finish.
Following is the list of additional prerequisite activities you must perform before
starting the Create Secondary Site Wizard:
Installation Validation
The installation wizard eventually reports either success or failure. Investigate
failures by using the log files listed in Appendix A, “Configuration Manager Log
Files.” You must also validate reported success status, as discussed in the next
sections.
Site Status
Component Status
These status nodes are located under Monitoring -> System Status -> Site
Status and Monitoring -> System Status -> Component Status. These two
status nodes are illustrated in Figure 6.10.
A healthy functioning site shows a status of OK for all configured and active
components for the site. Review warnings and errors in the status nodes and
resolve them before making the site available for use.
The installation log files also provide a detailed look at the installation steps
performed by the installation process.
ConfigMgr has simplified the creation of boundaries and separated the two
functions associated with them. Separation of boundaries is implemented by
using boundary groups. Boundary groups, discussed later in this chapter, in the
“Configuring Boundary Groups” section, have a dependency on creating
standard boundaries. Boundaries can be created manually as well as through
Active Directory Forest Discovery.
The authors recommend that you create a boundary group for site assignments
before deploying ConfigMgr agents. You can optionally create a boundary group
for content required by clients.
FIGURE 6.12 The General tab of the Create Boundary Group dialog.
3. To configure the boundary group type and association with a site, configure
the properties on the References tab:
Site Assignment: Select Use this boundary group for site
assignment and select the site associated with the boundary group, as
illustrated in Figure 6.13.
Content: In the case of a content-only boundary group configuration,
make sure Use this boundary group for site assignment is not
selected. Under the content location section, click Add and select a
content role site system(s). Figure 6.14 illustrates a boundary group
configured for content only.
ConfigMgr uses one or both types of apps to access Microsoft cloud services,
depending on the requirements of the cloud service to which you are establishing
connectivity.
You must have an Azure AD tenant to connect to Azure AD. This is included
automatically with a subscription to Office 365 or Microsoft Intune. A Microsoft
Enterprise Mobility + Security (EMS) subscription also includes Azure Active
Directory Premium.
If you have global admin rights to your tenant, you can use ConfigMgr to create
the necessary web app and/or native app directly from the ConfigMgr console.
However, if another team owns global admin rights in your organization, you
can request that they create a web app and/or native app for you and send you
that information, which you can then import into the ConfigMgr wizard. The
following information must be collected from that team:
Web app:
Friendly name of the app
Friendly name of the tenant
Tenant ID (a GUID)
Client ID (a GUID)
Secret key (a random string value)
Native app:
Friendly name of the app
Client ID (a GUID)
For more information on how to create a web app in the Azure AD portal, see
the Azure AD documentation at https://docs.microsoft.com/azure/active-
directory/develop/active-directory-integrating-applications. The ConfigMgr apps
do not require an actual sign-on URL (for web apps) or redirect URI (for native
apps). Any value may be supplied.
The following sections explain how to use the Azure services wizard to establish
connectivity between ConfigMgr and each respective cloud service. To launch
the Azure services wizard, follow these steps:
To configure the OMS connection, ensure that the following prerequisites are
met:
The OMS connector does not support creating web apps via the Azure
services wizard; instead, you must pre-create the web app by following the
steps in the “Authenticating to Azure Active Directory” section, earlier in
this chapter. Once those steps are complete, grant the web app contributor
rights in the Azure resource group that contains the OMS Log Analytics
workspace. For details on how to delegate permissions, see the OMS
documentation at https://docs.microsoft.com/azure/log-analytics/log-
analytics-sccm#provide-configuration-manager-with-permissions-to-oms.
The OMS connector must be installed on the computer hosting the service
connection point (SCP), and the SCP must be in online mode.
You must also install the Microsoft Monitoring Agent (MMA) for OMS on
the SCP, as the MMA and the OMS connector must use the same OMS
workspace. To install the agent, see the OMS documentation at
https://docs.microsoft.com/azure/log-analytics/log-analytics-
sccm#download-and-install-the-agent.
When you have met all the prerequisites for connecting the OMS connector, use
the procedure documented at
https://docs.microsoft.com/sccm/core/clients/manage/sync-data-microsoft-
operations-management-suite to establish a connection to OMS.
Connecting to Upgrade Readiness
The procedure at
https://docs.microsoft.com/sccm/core/clients/manage/upgrade/upgrade-analytics
discusses how to connect to Upgrade Readiness (formerly known as Upgrade
Analytics).
The CMG also requires that you select an Azure cloud service domain name
(<name>.cloudapp.net). This name can be any format or even random text, but it
must be globally unique. The FQDN of the CMG is then associated with a
CNAME DNS record (for example, myCMG.contoso.com). The FQDN of the
CNAME DNS record is then used to point your clients to the CMG and to
require an SSL server certificate. Having the CNAME associated with your
registered domain name allows you to obtain a certificate from a public
certificate authority such as DigiCert. You can use the <name>.cloudapp.net
format directly, but because Microsoft owns the cloudapp.net domain, you must
use a private/internal certificate authority.
Fallback Site
Clients that do not fall within a site assignment boundary group are assigned to
the fallback site if one is configured for the hierarchy. This option is specific to
hierarchies only. Perform the following steps to enable a primary site in a
hierarchy as a fallback site:
To view and modify diagnostics and usage data, return to Hierarchy Settings
(as described in the previous section) and select the Diagnostics and Usage
Data tab. Review the options.
Most updates arrive and are initiated in the console. Following are the significant
wizard pages you must configure to perform an in-console update. (The images
here show an update of build 1706 with a hotfix. The process is the same for a
new version of Current Branch.) Navigate to Administration Updates and
Servicing and follow these steps:
1. From the Updates and Servicing node, select the desired update and click
Install Update Pack.
2. On the General page, review the information about what is included in the
update and choose whether to ignore prerequisite checks. As always, a best
practice is to perform the prerequisite check separately, prior to running an
update.
3. On the Features page, review and choose the desired features. Note that you
can later enable these features from the Updates and Servicing node.
4. On the Client Update Settings tab, choose whether to validate in a pre-
production collection or upgrade the client without validating, as shown in
Figure 6.17. (For more information on updating clients, see Chapter 9.)
5. Review and accept the license terms.
6. Confirm the settings on the Summary tab.
7. Review the progress and completion message to verify that the wizard
completes successfully.
FIGURE 6.18 Viewing update status from the Updates and Servicing node.
FIGURE 6.19 Detailed update status.
As these figures show, the update process is fairly painless. So update well and
update often. If you encounter issues, review CMUpdate.log in the site server
log file folder. Review Appendix A for additional log file information.
Scheduling Updates
By default, the entire hierarchy is automatically updated immediately (in proper
order) after success of the top-level site (either a CAS or a single primary site).
For many environments, this process is acceptable. You may have a requirement
from your customers or users for different downtime windows, based on location
or other operational needs. You can configure service windows that are specific
to the update process; when you do this, standard ConfigMgr service windows
do not impact the site update process. You can configure service windows for
each site by using the following process:
1. Navigate to Administration -> Overview -> Sites, select the desired site,
and click Properties on the ribbon bar.
2. In the properties dialog, chose the Service Windows tab, as shown in Figure
6.20, and click the starburst icon to create a new service window.
Using CD.Latest
When you install an update, your base installation changes, and it should be
considered unique to your environment. A folder on your site server named
CD.Latest is basically a source installation folder with up-to-date files (based on
the last update installed to your environment). The following are supported
scenarios for using the CD.Latest installation files:
Site Recovery: When you need to reinstall the site, you must use
CD.Latest, which contains the binaries that match the ConfigMgr database.
If you do not have CD.Latest, you cannot recover the site.
Installing a Child Primary Site: Use the CD.Latest files from the CAS as
source files for installing each child primary site.
Expanding a Standalone Primary Site: You currently have a standalone
primary site, so you must use the source files from the CD.Latest folder on
your primary site.
Never use CD.Latest for a fresh standalone installation. Always use the latest
ConfigMgr baseline build and update using the process described in the
“Updating Configuration Manager” section of this chapter. Read more about
CD.Latest at https://docs.microsoft.com/sccm/core/servers/manage/the-cd.latest-
folder.
Summary
This chapter discussed and provided guidance on preparing for System Center
Configuration Manager Current Branch installation, installation of supported
sites, postinstallation configuration, upgrading, and troubleshooting of
installation issues.
IN THIS CHAPTER
Deciding Whether to Upgrade or Migrate to Current Branch
Upgrading to ConfigMgr Current Branch
Migrating to ConfigMgr Current Branch
Migrating Reports and Clients
Troubleshooting Migration Issues
This chapter discusses and provides guidance on the upgrade and migration
process. It also discusses pre-migration considerations, the process of migrating
your old ConfigMgr infrastructure, migration of features and objects, client
migration, and troubleshooting of migration issues.
The following scenarios require that you use the migration method:
As with any other software upgrade, you need to first clean house and make sure
you have a firm foundation. Spend the time to clean up old items (packages,
applications, software updates, and so on) and also ensure that both ConfigMgr
and the operating system are healthy: Review logs, the event viewer, and site
component status to avoid preventable failures.
Ensure that you have the latest baseline version of ConfigMgr Current
Branch. The baseline is updated approximately once a year, so start with
the latest supported version. You can identify the latest baseline version at
https://docs.microsoft.com/sccm/core/servers/manage/updates#baseline-
and-update-versions.
Verify that you have a fully patched and supported Windows operating
system. Now is the time to get your operating system up to date. As always,
ensure that you have a good backup and then ensure that your OS is fully
patched. The supported operating systems for ConfigMgr Current Branch
are a moving target. Review the supported operating systems for
ConfigMgr at https://docs.microsoft.com/sccm/core/plan-
design/configs/supported-operating-systems-for-site-system-servers.
Ensure that SQL Server is up to date. SQL Server is foundational to
ConfigMgr, and it is in your best interest to get to the latest supported
version of SQL. Verify that you have a supported version of SQL Server for
ConfigMgr Current Branch at https://docs.microsoft.com/sccm/core/plan-
design/configs/support-for-sql-server-versions.
Ensure that the AIK is up-to-date. The AIK is backward compatible with
Windows 7. Ensure that you are on a supported version of the AIK for
Current Branch, based on the information provided at
https://docs.microsoft.com/sccm/core/plan-design/configs/support-for-
windows-10. Also, be sure to back up all customized boot images before
upgrading.
To lessen the chance of problems, the authors recommend testing the database
upgrade first: Restore your most recent backup of the database to a new SQL
Server instance (one that has absolutely nothing to do with ConfigMgr). Launch
the process with smssetup.exe /testdbupgrade, specifying the
database instance and database name. View c:\ConfigMgrSetup.log to monitor
the status and verify the success of the upgrade. Review this process at
https://docs.microsoft.com/sccm/core/servers/manage/test-database-upgrade.
1. The first dialog you see is Before You Begin. Read the detail, and click
Next.
2. Figure 7.1 shows the Getting Started page, which lists the available options.
Notice that because a version of ConfigMgr is currently installed, you only
get options to upgrade, recover a site, or uninstall the existing site. Select
Upgrade This Configuration Manager Site and click Next.
3. On the Product Key page, shown in Figure 7.2, enter your license key, select
the Software Assurance expiration date, and choose Current Branch.
(There are very few, rare cases in which you should consider selecting Long
Term Servicing Branch. Plan to use Current Branch unless you have
identified an unconquerable hurdle to doing so.) Click Next.
The migration process centers on the capability to share distribution points (DPs)
between your existing site and the new ConfigMgr Current Branch site.
The following is the supported approach for migrating from previous versions of
ConfigMgr to Configuration Manager Current Branch:
1. Provision the new server(s) for your Configuration Manager Current Branch
site or hierarchy. The authors recommend using a new site or hierarchy
design specific to ConfigMgr Current Branch, as discussed in Chapter 4.
2. Perform initial configuration specific to Configuration Manager Current
Branch.
3. Establish a migration link to your existing ConfigMgr site or hierarchy.
4. Optionally share site roles (DPs); for information on this, see the
“Performing Migration Jobs” section, later in this chapter.
5. Create migration jobs to migrate supported objects.
6. Upgrade the ConfigMgr client agents and assign them to the Configuration
Manager Current Branch site.
7. Decommission the old ConfigMgr site and site systems. Optionally, you
could rebuild servers and reuse them for Configuration Manager Current
Branch site roles.
The following are the supported objects the migration wizard can migrate from
ConfigMgr:
Collections
Advertisements
Boundaries
Software distribution packages
Applications
Virtual application packages
Software updates
Deployments
Deployment packages
Templates
Software update lists
Operating system deployment (OSD) images
Boot images
Driver packages
Drivers
Images
Packages
Task sequences
Configuration items
Configuration baselines
Asset Intelligence customizations
Custom catalogs
Custom hardware requirements
Software metering rules
The following objects cannot be migrated from ConfigMgr 2007 using the
migration wizard:
Queries
Security rights and instances for the site and objects
Configuration Manager 2007 reports from SQL Server Reporting Services
(SSRS)
Configuration Manager 2007 web reports
Client inventory and history data
Active Management Technology (AMT) client provisioning information
Files in the client cache
The migration process assumes that a fully configured site is in place. Chapters
4, 5, and 6 cover planning and installation in depth, and the authors recommend
that you review those chapters to ensure that the Configuration Manager Current
Branch site is ready to receive migrated data. The Configuration Manager
Current Branch online documentation is an excellent source of information;
review the migration section at
https://docs.microsoft.com/sccm/core/migration/migrate-data-between-
hierarchies for additional information.
Review ConfigMgr objects and plan to remove (or exclude) redundant non-
applicable objects.
Delete redundant and unnecessary deployments.
Create placeholder collections for redundant deployments and avoid
keeping old deployments linked to live collections.
Clean up packages, applications, software updates, and other
ConfigMgr objects. Over time, everyone accumulates a bit of dust in
the closets.
Review collections in scope.
Avoid mixed collections for ConfigMgr 2007 (that is, user and device
combined collections); this is not an issue in ConfigMgr 2012 and
later, as mixed collections are not permitted.
As a best practice, only mark query-based collections for migration.
Review advertisements or deployments linked to collections.
Avoid using site codes in query-based collections.
Review the software updates catalog synchronization settings. Determine
whether all the synchronized categories are still relevant to your
environment today.
Preparing Source and Destination Sites for Migration
The migration process has a dependency on security credentials and
infrastructure configuration, as described in Table 7.3.
Shared infrastructure
Client management
Shared Infrastructure
Configuration Manager Current Branch allows you to use a DP from your old
ConfigMgr site during the migration phase for clients. When the migration is
complete, you can upgrade the DP. This shared infrastructure functionality
minimizes data storage requirements and network bandwidth utilization.
Client Management
You need to complete your infrastructure migration before migrating clients
from your old ConfigMgr site. The authors recommend migrating a small set of
clients to validate the process and assure the functionality of the migration. A
best practice is to use Internet Protocol (IP) range or exclusive subnet boundaries
for site assignment, as doing so avoids boundary overlaps between the old
infrastructure and the new sites. Upgraded ConfigMgr clients can access DPs
that are configured as shared distribution points as long as their original site is
still configured as the active source site.
The following sections discuss the technical process of moving objects, which is
the science of migration.
The first migration configuration required is data gathering from the active
source hierarchy, which is the top site of your old ConfigMgr hierarchy.
You specify the migration job type on the first page of the Create Migration Job
Wizard.
As you come to each of the following wizard pages after the object migration
selection, make the appropriate selections:
Select Objects: This page presents a list of objects available for selection.
Content Ownership: You must assign ownership of the content associated
with deployment objects. The CAS owns the metadata for the content, but
you must select a primary site as the content owner. A best practice to
minimize network traffic associated with content transfer is to select the
closest available site in the destination hierarchy.
Site Code Replacement: This page lists selected collections with query-
based rules that include site codes in the WMI Query Language (WQL)
query. You can replace the source site code with a destination site code.
Security Scope: The authors recommend that you plan and create security
scopes before running the object migration job. For example, if Dallas
client administrators are responsible for operating system deployment
objects, you can select Dallas Clients as the security scope.
Settings: This page has three parts:
Scheduling: You can specify not to run the job and effectively save the
job for manual execution, run the job now (default), or schedule the
job to run on a specified date and time (destination server time or
UTC).
Object Conflict Resolution: Specify the behavior for overwriting
updated previously migrated objects. The default is not to overwrite
updated objects.
Additional Object Behavior Settings: This is where you can enable
or disable the option to transfer the organizational folder structure for
objects from the source Configuration Manager site to the destination
site.
Summary: This is the final verification page before you complete the
wizard. The migration job is now started if you selected the Run the
Migration Job option on the Settings page. After closing the wizard,
monitor the progress of the job from the Migration Jobs node, as shown in
Figure 7.9.
Next, as you come to each of the following wizard pages, make the appropriate
selections:
Select Objects: This page presents a list of objects available for selection.
Only migrated objects that have changed at the source site are listed for
selection. The State column of modified objects shows the value Modified
at Source Site, as shown in Figure 7.10.
Content Ownership: You must assign ownership of the content associated
with deployment objects. You can change the content owner for the
modified object.
Site Code Replacement: This page lists selected collections with query-
based rules that include a site code in the WQL query. You can replace the
source site code with a destination site code.
Security Scope: Assign a security scope.
Review Information: This page provides information on the behavior of
objects being migrated. The information on this page gives you an
additional checklist. For example, it reminds you that custom boot images
will be replaced with the default Configuration Manager Current Branch
boot images. You also have the option to save the review information to a
text file.
Settings: The settings page has three parts:
Scheduling: You can specify not to run the job and effectively save the
job for manual execution, run the job now (default), or schedule the
job to run on a specified date and time (destination server time or
UTC).
Object Conflict Resolution: The only option available for this job
type is Overwrite All Objects.
Additional Object Behavior Settings: You can enable or disable the
option to transfer the organizational folder structure for objects from
Configuration Manager source site to the destination site.
Summary: This is the final verification page before you complete the
wizard. The migration job is started if the Run the Migration Job option
was selected on the Settings page.
FIGURE 7.10 Selecting updated objects to migrate.
Migration Cleanup
To complete the migration, you must perform the built-in Clean Up Migration
Data migration function. Cleanup is required if you want to migrate data from a
different ConfigMgr hierarchy.
The cleanup process comprises two tasks:
Stop Gathering Data: You must stop gathering data for all ConfigMgr
source sites configured under the active source sites. The Clean Up
Migration Data process will fail if this step is not performed.
Clean Up Migration Data: This process deletes all migration jobs and
removes all ConfigMgr source hierarchy information. You must stop data
gathering from the lowest child site configured in the active source
hierarchy and repeat the process up the configured active source hierarchy.
This process does not delete migrated objects; migration configuration and
jobs are deleted for the configured active source hierarchy.
Migrating Reports
If your ConfigMgr source environment uses a reporting service point with no
customized reports, you can review the new ConfigMgr Current Branch reports
as part of your migration planning. These reports have been reengineered to
query the latest schema of the product. The default ConfigMgr SSRS reports
cannot be migrated to ConfigMgr Current Branch.
Client push
Group policy
Manual installation
Software distribution
Software update based
Regardless of the client upgrade method, you must ensure that the ConfigMgr
clients to be upgraded meet the minimum requirements for a ConfigMgr Current
Branch client.
Plan to migrate the information the client will depend on, such as deployments,
collections, and packages. The “Performing Migration Jobs” section, earlier in
this chapter, provides information on how to migrate the supported objects that
the upgraded client depends on.
The ConfigMgr client migration methods are discussed in the “Client Migration
and Methods” section. To determine when and how many clients to migrate at a
time, you must plan and execute the upgrade process with minimal disruption to
your existing operating environment.
The major impact is on the network infrastructure, due to the initial traffic
generated by client activities after the upgrade of the ConfigMgr client. Consider
the following strategies when executing the client migration phase:
Summary
This chapter covered the two options to move from an older version of
ConfigMgr to ConfigMgr Current Branch: upgrading and migrating. It walked
through the upgrade process and provided guidance on the migration process. It
included background on why to consider upgrading versus migration as well as
on migrating custom reports and clients.
IN THIS PART
CHAPTER 8 Using the Configuration Manager Console
CHAPTER 9 Client Management
CHAPTER 10 Managing Compliance
CHAPTER 11 Creating and Managing Applications
CHAPTER 12 Creating and Using Deployment Types
CHAPTER 13 Creating and Managing Packages and Programs
CHAPTER 14 Distributing and Deploying Applications and Packages
CHAPTER 15 Managing Software Updates
CHAPTER 16 Integrating Intune Hybrid into Your Configuration Manager
Environment
CHAPTER 17 Managing Mobile Devices
CHAPTER 18 Conditional Access in Configuration Manager
CHAPTER 19 Endpoint Protection
CHAPTER 20 Configuration Manager Queries
CHAPTER 21 Configuration Manager Reporting
CHAPTER 22 Operating System Deployment
CHAPTER 8
Using the Configuration Manager Console
IN THIS CHAPTER
Touring the Console
Configuration Manager Workspaces
Deploying the Console
Using Role-Based Administration
Connecting to a Site
Personalizing the Console
The In-Console Alert Experience
Configuration Manager Service Manager
Using PowerShell with ConfigMgr
Security Considerations
Troubleshooting Console Issues
The ConfigMgr console is the administrative interface for managing all facets of
the ConfigMgr infrastructure, applications, deployments, software updates,
monitoring, and users and devices. As a key element of any ConfigMgr
environment, the console is also the interface used to maintain the site and
hierarchy; you use it to perform daily tasks to manage and configure sites, the
site database, and clients and to monitor the status of the hierarchy.
The console sports some very nice features, which this chapter covers in detail.
The highlights follow:
Navigation: The left side of the console is known as the Navigation pane
(sometimes referred to as the WunderBar). The workspaces at the bottom
allow you to move quickly between administrative areas, and you can use
the folder list at the top to select specific nodes.
List: Depending on the selected node, the List pane on the right side
displays charts, dashboards, or lists of objects.
Details: When you select certain items in the List pane, the Details pane
dynamically shows additional information about the selected item. Often,
the Details pane is broken out into multiple tabs that provide more
information.
FIGURE 8.1 The panes of the Configuration Manager console.
Ribbon: The ribbon bar, situated along the top of the console, is a context-
sensitive list of commands available based on the selected object.
Address: The address bar, shown as in Figure 8.2, shows the node on which
the console is currently focused. It is primarily designed to make navigation
easier by providing a history of places already visited.
Search: The search bar provides a means of isolating the objects in the List
pane by matching them against criteria to help you quickly find
information.
FIGURE 8.2 The ribbon, address, and search bars of the Configuration Manager
console.
Each workspace is designed for a specific purpose, and similar functions are
grouped together. When you select a workspace, the Navigation pane displays a
particular set of nodes in the folder list. The next sections discuss these four
workspaces.
You can use this workspace to manage baselines and configuration items for
compliance settings. You can also manage endpoint protection policies for
configuring antimalware and firewall settings in this workspace.
Following are the main nodes in the Assets and Compliance workspace:
Users
Devices
User Collections
Device Collections
User State Migration
Asset Intelligence
Software Metering
Compliance Settings
Endpoint Protection
All Corporate-owned Devices
You can use this workspace to manage all software updates, including
synchronizing software updates and managing automatic deployment rules to
update and deploy software updates. All drivers, images, and task sequences that
comprise operating system deployments exist in this workspace.
Application Management
Software Updates
Operating Systems
Windows 10 Servicing
You might typically think of monitoring in terms of alerts and statuses, but the
Monitoring workspace contains far more. For example, you can manage reports
and create subscriptions from this workspace.
You also manage and execute queries from the Monitoring workspace. Although
collections and queries are often viewed as interrelated, it is important to note
that they exist in different workspaces in the console.
Alerts
Queries
Reporting
Site Hierarchy
System Status
Deployments
Client Operations
Client Status
Database Replication
Distribution Status
Software Update Point Synchronization Status
Updates and Servicing Status
Security
You can use this workspace to add administrative users to System Center
Configuration Manager. You can assign new roles, create scopes, and apply
permissions. In addition, you can manage certificates used in various
components of ConfigMgr in the Administration workspace.
Console Placement
Regardless of whether administration is by one administrator or a group of
administrators scattered around the globe, the authors recommend installing the
console locally on the administrator’s desktop.
Regardless of the number of providers, if the SMS provider is not on the same
server as the database server, there will be impacts to console performance from
the speed and latency of the connection from the SMS provider to the database.
Often those using ConfigMgr are not administrators. For example, help desk
staff might use the console as a means to view a device’s configuration data or
connect through remote control to assist an end user. In situations such as these,
it is far safer and easier to provide a local console than to allow help desk staff to
log on to the server directly.
Supported Platforms
The ConfigMgr console can run on any currently supported Windows operating
system, either workstation or server, x86 or x64.
Installation Prerequisites
System Center Configuration Manager includes the Prerequisite Checker, which
can help determine whether a computer meets the requirements to run the
ConfigMgr console. You can find the prereqchk.exe utility located under
SMSSETUP\BIN\X64 of the ConfigMgr source files or the
%ProgramFiles%\Microsoft Configuration Manager\bin\x64 folder of an
installed server.
When you run prereqchk.exe with the ADMINUI switch, it runs through a scan
of the specified system to determine if it meets the requirements for installing
the console. You run the utility to scan for console prerequisites by issuing the
following command:
prereqchk.exe /ADMINUI
After the utility runs, you can find the log of the prerequisite scan in the root of
the system drive named ConfigMgrPrereq.log. Following are the required
components for the ConfigMgr console:
To install the console using the System Center Configuration Manager Setup
Wizard, perform the following steps:
Before installing the console, verify that the target systems meet the
prerequisites identified earlier in this chapter, in the “Installation Prerequisites”
section, including the supported platform (though this should not be a problem in
most scenarios). The supported method for installing the ConfigMgr console
uses the executable consolesetup.exe mentioned in the “Launching the Console
Installation Wizard Without the Setup Wizard” tip in the previous section.
The switches that do not begin with a slash (/) all require the use of an equal
sign (=) between the switch and the value. Following are some examples of
using the switches with consolesetup.exe:
consolesetup.exe /q
DEFAULTSITESERVERNAME=armada.odyssey.com
ENABLESQM=0
consolesetup.exe /q
DEFAULTSITESERVERNAME=armada.odyssey.com
ENABLESQM=1 LangPackDir=c:\LangPacks
consolesetup.exe /uninstall
The console is designed to reflect only what the administrative user is assigned
to do. This behavior means specialized console customization is not necessary,
as the console automatically displays what is pertinent. You therefore need to
deploy only a single version of the console and can let the assigned security do
the rest.
Roles: Visible workspaces, nodes, folders, objects, and actions are defined
by the administrative user’s associated role.
Scopes: Only the objects associated with assigned scopes can be managed.
Collections: Only assigned collections can be viewed and managed.
By default, objects are hidden. Only when users are granted access to them do
objects appear. Hidden behavior is determined by the following rules:
Objects that are disabled display as grayed-out objects in the console and do not
allow full interaction. This is typical whenever a user is granted read access to an
object.
Connecting to a Site
During installation of the Configuration Manager console, a default site server is
specified; the console will connect to this server upon opening. If no default is
specified during installation, you are prompted to specify the default on first
launch. You are free to connect to any site server to which you have access. By
accessing the backstage, you can use the Connect to a New Site dialog to
provide a site server name. You can launch multiple instances of the admin
console to connect to different sites simultaneously.
1. Click the arrow below the last workspace in the Navigation pane (see Figure
8.8).
If the Workspaces pane overlaps the node list, you can collapse it. When it is
collapsed, the workspaces are represented by only icons. Collapse the
Workspaces pane by moving the separator bar down. Using the Show More
Buttons and Show Fewer Buttons selections (see Figure 8.10) is the equivalent
of using the separator bar.
FIGURE 8.10 Console separator bar with the Show More Buttons and Show
Fewer Buttons selections.
A vertical separator bar also exists between the Navigation pane and the List and
Detail panes. The List and Detail panes have a horizontal separator bar as well; it
is used for resizing.
Viewing Alerts
Alerts are located in the Monitoring workspace of the Configuration Manager
console. The Overview node provides a list of recent alerts. If you click the
Alerts node, you can see the list of available alerts in the List pane, along with
details of any highlighted alert in the Details pane.
Available actions are based on the state of the alert. ConfigMgr assigns the
following five states for alerts:
Figure 8.11 shows configured alerts that have not yet been triggered.
FIGURE 8.11 The Alerts pane.
Managing Alerts
Alerts that bubble up in the ConfigMgr console support a variety of actions. As
mentioned in the previous section, available actions are dependent on the state of
the alert. For example, the Enable action is not available on an enabled alert. The
available alert actions are as follows (see Figure 8.12):
Configuring Alerts
Whereas you can view alerts in a single area of the ConfigMgr console (the
Alerts node of the Monitoring workspace), alert configuration pages are
scattered around the console. This creates a challenge because you need to know
the locations of all the configuration areas for creating alerts. Table 8.1 shows
the locations and functions of the alerts you can create.
The configuration of each is slightly different, but overall configuration uses the
same basic concept: You need to enable an alert and specify a threshold value.
Refer to the chapters listed in Table 8.1 for additional information.
Subscribing to Alerts
Subscriptions specifically refer to malware alerts. An alert subscription sends an
email whenever a malware condition is met.
To launch Service Manager from the ConfigMgr console, follow these steps:
%ProgramFiles%\Microsoft Configuration
Manager\AdminConsole\bin\i386\ compmgr.exe Athena
Following are the options Configuration Manager Service Manager offers for
managing components, listed in the order displayed on the toolbar shown in
Figure 8.15:
The first time you launch the window to connect to PowerShell, you are
prompted about whether to run software from an untrusted publisher, as shown
in Figure 8.17. Choose the appropriate answer for your organization, and a
command prompt appears that includes the site code of the site to which you are
connected.
When you launch the PowerShell ISE option, the ISE window loads a file with
code to load the ConfigMgr module and connect to the site server. You can reuse
this code in your automation scripts to eliminate the need to launch the
ConfigMgr console. Figure 8.18 shows the .ps1 file.
FIGURE 8.18 The PowerShell ISE with code to load the ConfigMgr module
and connect to the site.
Security Considerations
By default, a local group called SMS Admins is granted the permissions required
to access the SMS provider and the Common Information Model (CIM)
repository. Whenever an administrative user is granted access to Configuration
Manager, the user is added to the SMS Admins group and inherently receives
these permissions.
Because Configuration Manager still uses WMI, and WMI relies on DCOM, it is
vital that you understand the requirements for WMI. For information about
remote WMI security requirements, see
https://docs.microsoft.com/sccm/core/plan-design/hierarchy/plan-for-the-sms-
provider.
DCOM Permissions
Administrative users running the console from their workstations, where the
SMS provider does not exist, require the Remote Activation DCOM privilege on
any computer where the SMS provider is installed and providing access to the
ConfigMgr database. (In most cases, the SMS provider is installed on the same
server as the site server.)
By default, the local SMS Admins group has the following permissions applied:
Local Launch
Remote Launch
Local Activation
Remote Activation
It is important to note that for remote console access, only the Remote
Activation privilege is required. Figure 8.19 shows a custom local group
provided this privilege.
WMI Permissions
Along with DCOM permissions, WMI permissions are also required for
ConfigMgr console access. By default, the SMS Admins group is given the
permissions necessary to provide operability.
Figure 8.20 shows the permissions assigned to the same custom group as in
Figure 8.19 (SMS Admins), with the appropriate permissions granted to the
Root\SMS namespace.
The SMS Admins group is provided a slightly different set of permissions than
the Root\SMS\site_<site code> WMI namespace:
Enable Account
Execute Methods
Provider Write
Remote Enable
Figure 8.21 shows the same custom group (SMS Admins) with the appropriate
permissions for this namespace.
FIGURE 8.20 WMI permissions required on the Root\SMS namespace.
Console Logging
Administrators cherish the rich, detailed logging provided in ConfigMgr. This
detailed logging is available for the ConfigMgr console. Use the log to gain
valuable insight and detail about console-related issues. The console logs to the
SMSAdminUI.log file located in the following path:
Click here to view code image
<%ProgramFiles%>\Microsoft Configuration
Manager\AdminConsole\AdminUILog
1. On the site server (and any SMS provider computer), start the Component
Services console by clicking Start -> Run and then typing dcomcnfg.exe.
2. Expand Component Services -> Computers.
3. Right-click My Computer and select Properties from the menu.
4. Switch to the COM Security tab.
5. In the lower section, titled Launch and Activation Permissions, click Edit
Limits. At this point, if permissions are correct (refer to Figure 8.19 in the
“Security Considerations for the Console” section), the remaining steps are
not necessary. If permissions are missing, proceed to step 6.
6. Click Add and specify the interested account or group. Click OK.
7. In the permissions area, deselect all other values and select Remote
Activation.
8. Click OK to close the Launch and Activation Permission dialog box and
click OK to close the My Computer Properties dialog box.
9. In the permissions area, deselect all other values and select Remote
Activation.
10. Close the Component Services console.
1. On the site server (and any SMS provider computer), start the Component
Services console by selecting Start -> Administrative Tools -> Computer
Management.
2. Expand the Services and Applications node and right-click WMI Control.
3. Select Properties in the menu to launch the WMI Control Properties dialog.
4. Switch to the Security tab and expand the Root node. Select SMS and click
Security.
5. Verify that the following permissions are listed:
Enable Account
Remote Enable
6. Expand the SMS node and select the site_<site code> node below it.
7. Click Security.
8. Select Properties in the menu and verify that the following permissions are
listed:
Enable Account
Execute Methods
Provider Write
Remote Enable
9. Close all dialog boxes as necessary.
Refer to Figures 8.20 and 8.21, earlier in this chapter, for an illustration of the
permissions applied properly.
Connectivity Issues
Console connection status messages are often vague, providing very little help
for determining issues. Even the SMSAdminUI.log might not provide much
value. Situations like these may leave you wondering in which layer the
permissions issue is occurring.
Common Problems
Table 8.3 describes issues you might experience while using the ConfigMgr
console.
Summary
This chapter introduced the System Center Configuration Manager console and
covered the console’s panes and other features. It stepped through a console
installation and discussed automating the console installation. This chapter
described how to use the secondary console, Configuration Manager Service
Manager, and actions to control the various ConfigMgr components.
IN THIS CHAPTER
ConfigMgr Client Agent Requirements
Installing, Upgrading, and Uninstalling ConfigMgr Client Agents
Finding Potential ConfigMgr Clients in Your Network
What to Know About Client Assignment
Monitoring Client Agent Health and Activity Status
Understanding Client Settings
Using the Resource Explorer
Using Wake on LAN and Power Management
Configuration Manager has the ability to execute tasks on clients, which requires
agent software, running the agent as a background service. Once installed and
configured, the ConfigMgr client, which communicates with the ConfigMgr
back-end infrastructure, can execute commands for tasks such as running
hardware inventory or installing software.
The authors recommend inventorying your systems to help plan client agent
deployment. A free tool to assist with this task is the Microsoft Assessment and
Planning (MAP) Toolkit. This solution accelerator provides extensive hardware
and software information, utilizing an inventory, assessment, and reporting tool
designed for technology migration projects such as Windows 10 migrations or
migrations toward Microsoft Azure. The MAP Toolkit is available at
http://www.microsoft.com/download/details.aspx?id=7826.
You can install the ConfigMgr mobile device legacy client on supported mobile
devices such as Windows Mobile and Windows CE. Available features depend
on the platform and client type (discussed in Chapter 17).
The next sections discuss the different ways to install the ConfigMgr client
agent. Chapter 17 discusses installing the mobile client and enrolling your
mobile device for MDM.
See https://docs.microsoft.com/sccm/core/clients/deploy/about-client-
installation-properties for a complete overview of installation properties, options,
and usage examples.
This example installs the ConfigMgr client agent using the MP installed on the
Apollo system. The PR1 site code is determined by querying AD. The fallback
status point (FSP), also installed on the Apollo system, is used to send state
messages until the client successfully joins the PR1 site. /MP:APOLLO is a
CCMSetup property, and SMSSITECODE and FSP are Client.msi properties.
Setting Allow users to enroll mobile devices and Mac computers to Yes
Configuring an enrollment profile
Before installing the agent, download the program installation files and make
them available on the Mac system. Obtain these files by installing the
ConfigMgrMacClients.msi file on a Windows system. Download the .msi from
https://www.microsoft.com/download/details.aspx?id=47719.
Wait for the Completed Installation message to appear. Ignore the message
asking to restart and continue with the next step to install the certificate.
3. Run the following command line from the tools subfolder to install the
certificate:
Click here to view code image
Verify a successful installation by finding the client in the All Systems collection
or by opening the Configuration Manager item in the System Preferences on the
Mac. If there are any issues, use CMDiagnostics to determine the cause. This
program creates a .zip file saved to the computer’s desktop.
Specify command-line properties for the install script after the -sitecode
option. These properties are described at
https://docs.microsoft.com/sccm/core/clients/deploy/deploy-clients-to-unix-and-
linux-servers.
Following is sample syntax to install the client agent from a logon script:
Click here to view code image
CCMSetup.exe /logon /MP:APOLLO SMSSITECODE=PR1
When you assign the ConfigMgr client, the software is installed the first
time the computer starts.
When you publish the client, it appears in the Control Panel Programs and
Features applet, from where it can be installed.
As group policy software installation supports only .msi files, you can only
specify the CCMSetup.msi file, found in the <ConfigMgrInstallPath>\bin\i386
folder on the site server, without providing additional parameters. Following is
how to provide those parameters:
Use the SUP to update ConfigMgr clients after they are installed; this occurs
using the software updates functionality in ConfigMgr. For additional
information, see Chapter 15, “Managing Software Updates.”
Before you can install the ConfigMgr agent on an Azure AD-joined Windows 10
device, you must do the following:
To enroll clients while within the network boundaries of ConfigMgr, at least one
MP must be configured with HTTPS.
/MP: The download source, which can be set to the CMG if bootstrapping
from the Internet.
CCMHOSTNAME: The name of your Internet MP. You can find this by
running gwmi -namespace root\ccm\locationservices -
class SMS_ActiveMPCandidate from a command prompt on a
managed client.
SMSSiteCode: The site code of your Configuration Manager site.
SMSMP: The name of your lookup MP; this can be on your intranet.
AADTENANTID, AADTENANTNAME: The ID and name of the Azure AD
tenant you linked to ConfigMgr. You can find this by running
dsregcmd.exe /status from a command prompt on an Azure AD-
joined device.
AADCLIENTAPPID: The Azure AD client app ID.
AADResourceUri: The URI of the onboarded Azure AD server app.
ccmsetup.exe /mp:
https://UNLEASHED.CLOUDAPP.NET/CCM_Proxy_MutualAuth/72057594037928100
CCMHOSTNAME=UNLEASHED.CLOUDAPP.NET/CCM_
Proxy_MutualAuth/72057594037928100 SMSSiteCode=PR1
SMSMP=https://Athena.Odyssey.com
AADTENANTID=72F988BF-86F1-41AF-91AB-2D7CD011DB47
AADTENANTNAME=unleashed
AADCLIENTAPPID=bef323b3-042f-41a6-907a-f9faf0d17026
AADRESOURCEURI=https://unleashedserver
When deploying the agent using Intune, the command line should be built as
follows:
Click here to view code image
Approving Clients
ConfigMgr automatically approves a computer belonging to a trusted domain by
default. You can change the default and instead specify configuring each
computer manually or automatically approving all computers. This last option is
not recommended, as it means that every computer with a ConfigMgr client can
assign itself to a ConfigMgr site.
To approve a client, navigate to Assets and Compliance and select the client
from the Devices node or from a device collection. Then click Approve on the
ribbon bar.
FIGURE 9.1 Configuring client approval settings.
With client push, the ConfigMgr site server connects to the client computer and
verifies its OS information, based on the information stored in the entry for the
client in the ClientPushMachine_G table in the site database, which
contains the computer name and other information. The site server then connects
to the ADMIN$ share on the client and its Registry via Windows Management
Instrumentation (WMI) to gather information about the client. It copies
CCMSetup.exe and MobileClient.tcf from <ConfigMgrInstallPath>\bin\i386 to
%windir%/ccmsetup on the client. CCMSetup.exe uses this file to locate the
installation files on the site server and initiates a local installation of the client.
Listing 9.1 shows a sample file, with all options configured for the client to
install to the Odyssey PR1 site.
LISTING 9.1 Sample MobileClient.tcf File
Click here to view code image
[SERVER PATHS]
Server1=\\ATHENA.ODYSSEY.COM\SMSClient
MP1=Athena.Odyssey.com
ServerRemoteName1=\\Athena.Odyssey.com\SMSClient
[Site]
Last TCF Update=09/26/2016 00:20:09
SMSMPLIST=Athena.Odyssey.com
IISSSLState=224
IISPreferedPort=80
IISSSLPreferedPort=443
IISPortsList=80
IISSSLPortsList=443
SMSPublicRootKey=0602000000A40000525341310008000001000100C1D526FA058D04BED2FCE2
8C14E2CEB3342AC1C9D8349074D18B9C3B10271A6263347FD8B845328B5726A79A9017F088F3722
8B35419A3EB0620493B0D99B555D7180E52403FC4FF5E013A1CD3D0E4282C140C258F0157049F94
98AFCF52A4CAD4694109E5EA2EBFF4771874D58BD34DCAF320AB9AFCAA5DF868E1899EC249E6A38
4972FA48701D34D1EE0126B03BB4A1AC59B23A712626CA8D4D791DA952C170916B482519A272484
2AED05E7AF394C2AAC6A6AC294D761AD3824F7211986BBE4E20C9CF449B68F5CFD3E0E255C3C0B3
B29EB86575619DE2026E7FCB7AFB90584818FF8AC
SelectFirstCertificate=1
[Client Install]
Install=INSTALL=ALL SMSSITECODE=PR1
[IDENT]
TYPE=Target Configuration File
To prevent individual systems from receiving the client with site-wide client
push enabled, add the computer names of these systems to a Registry key on the
primary site server. You may want to do so for temporary systems you do not
want to manage or systems where you may not install any additional client
software for legal reasons. See
https://technet.microsoft.com/library/bb693996.aspx for additional information.
An empty .ccr file matching the MachineID value in the database entry is created
in the <ConfigMgrInstallPath>\inboxes\ccr.box\inproc folder and triggers the
client installation. If the installation fails, the .ccr record is moved to the
<ConfigMgrInstallPath>\inboxes\ccrretry.box folder, where ConfigMgr retries
the installation every 60 minutes for 7 days.
Configure when to begin upgrading; the default is 7 days by default, and 31 days
is the maximum. You can specify whether to automatically distribute the
ConfigMgr client installation package with its updates to DPs that are enabled
for prestaged content.
Selecting a slice in the pie chart of the client deployment status page creates a
temporary device collection containing the clients that are compliant, in
progress, not started, failed, or of unknown status.
When using client push, ensure that all prerequisites are met, ensure that the site
server can connect to the client machines, and ensure that one of the configured
Client Push Installation accounts can reach the machine on its ADMIN$ share.
Test by performing a net use to a client using the Client Push Installation
account credentials. Following are some issues that can prevent the ConfigMgr
infrastructure from connecting to the client:
If the site server can connect to the client, ConfigMgr copies necessary files to
%windir%\ccmsetup, and the installation begins from there. CCMSetup.log
provides installation progress, showing information about each step and what
went wrong if the client does not install successfully.
Problems may also occur with client push installation or client assignment after
installing the client, leaving the client in an unmanaged state.
On UNIX and Linux computers, use the uninstall utility installed during
ConfigMgr client agent installation. Uninstall the ConfigMgr client agent by
typing /opt/microsoft/configmgr/bin/uninstall at the command
line.
This discovery method is disabled by default, and it runs weekly by default when
enabled. It can be configured for the central administration site (CAS) and
primary sites. Follow these steps:
You can modify the default discovery schedule from 1 week to between 1 hour
and 4 weeks. A weekly schedule is usually sufficient. For some scenarios—for
example, in the midst of a huge migration that affects AD—you may want to use
a different value.
The following are the different tabs for Active Directory System Discovery:
General: The General tab, shown in Figure 9.7, allows you to enable
System Discovery for the site. Specify AD containers to include in the
discovery by clicking the starburst icon or modify an already provided
container by clicking the edit icon to its right. Delete a container by
selecting it and clicking the red X.
Click the starburst icon to open the Active Directory Container page.
Specify a container to search during discovery. Provide an LDAP query or
click Browse and select a container from a hierarchy list. You can also
specify a global catalog (GC) query to find an AD container within multiple
domains. Next, specify the search options, which include recursively
searching AD child containers and discovering AD group objects.
Recursively searching child containers searches any child container within
the specified path. Discovering objects within AD groups also discovers
objects within groups in the search path.
Specify a service account to use for the discovery process. By default this is
the site server’s computer account, which should at least have read
permissions for the specified location. Alternatively, specify a specific
domain account with the same user rights.
Click OK after configuring the Active Directory container properties to
return to the Active Directory System Discovery Properties dialog.
Polling Schedule: Use this tab to modify how often ConfigMgr polls AD to
find computer data. By default, full discovery polling occurs every 7 days
starting Thursday 1/1/1998, and delta discovery runs every 5 minutes.
These settings are modifiable.
Active Directory Attributes: Specify the AD properties of discovered
objects to discover. Attributes discovered by default include name,
sAMAccountName, and primaryGroupID. Specify additional attributes,
such as adminCount, department, and division, by selecting them from the
available attributes list and clicking Add.
Options: Use this tab to exclude computers from discovery—for example,
to discover only computers that have logged on or updated their computer
account password with the domain within a given period (90 days by
default). This lets you keep the ConfigMgr environment clean even if
Active Directory is not. These settings are disabled by default.
When enabling options to exclude computers from discovery, the default values
are set to 90 days and are modifiable. These settings could depend on the value
you configured for clients to update their computer password (30 days by
default) and on the number of days within which a client must contact the key
management server (KMS) if KMS is the activation mechanism.
Once you enable Active Directory System Discovery or discover clients using
Active Directory Group Discovery, clients begin to appear in the Devices node
of the Assets and Compliance workspace; these clients do not yet have the
ConfigMgr client installed. It is easy to determine whether a client is not
installed as the Client column in the Devices view is set to No.
FIGURE 9.7 Enabling Active Directory System Discovery.
The ConfigMgr client sends a DDR for Heartbeat Discovery every 7 days by
default. Using Heartbeat Discovery with the Delete Aged Discovery Data setting
in the Site Maintenance task lets you configure when to delete an inactive client
from the site database. (Site maintenance tasks are discussed in Chapter 24,
“Backup, Recovery, and Maintenance.”) The ConfigMgr client logs Heartbeat
Discovery actions in the InventoryAgent.log file, found in the
%windir%\CCM\Logs folder.
With site-wide client push installation, discussed in the “Pushing the Client”
section, configure the heartbeat schedule to run less frequently than the client
rediscovery period for the Clear Install Flag site maintenance task, discussed in
Chapter 24. If the Clear Install Flag task is set to a lower value than the client
rediscovery value, ConfigMgr reinstalls the client even if it is running as
expected.
After it is assigned to a site, the client uses the site’s initial MP and composes a
list of available MPs (the MP list), stored locally in WMI. This list contains MPs
specified during setup and MPs matching the client’s site code, available in AD.
The client sorts the list; HTTPS-capable MPs are first if configured with a PKI
certificate based on random order or by boundary group configuration if the
option Clients prefer to use management points specified in boundary groups is
enabled in the hierarchy settings. The list is extended with HTTP-capable MPs
in random order or MPs specified by boundary group settings, if enabled. If it
has a PKI certificate, the client tries all HTTPS-capable MPs first.
The client updates the MP list every 25 hours, when CCMExec is restarted, and
when it receives a new IP address that resets the order of MPs to use. If the client
cannot contact an MP from the MP list, it uses an alternative method to search
for an MP, in the following order:
DNS and WINS are used when an MP was not specified during client setup and
the AD schema is not extended for ConfigMgr. The ConfigMgr client consults
DNS or WINS and adds the MPs published in DNS or WINS to its MP list.
You can also configure clients such that MPs assigned to a boundary group are
preferred over other available MPs. This requires enabling the option Clients
prefer to use management points specified in boundary groups on the General
tab of the Hierarchy Settings Properties dialog box and adding MPs as a site
system server in the References tab of the Boundary Groups dialog box.
When a client may only communicate with a specific MP or specific MPs, you
can define these MPs in the client’s Registry. This scenario could be useful for
clients in a demilitarized zone (DMZ) environment that are allowed to
communicate only with MPs in that same DMZ. Define the MPs for a client to
use by specifying the FQDN of the MP(s) as a Reg_Multi_SZ value for the
AllowedMPs key in the HKLM\SOFTWARE\Microsoft\CCM Registry path.
You can specify multiple MPs, one per line.
Each client agent runs the Configuration Manager Health Evaluation scheduled
task, scheduled at the primary site level. If the client is powered off or in sleep
mode, the task runs when the computer is booted or comes out of sleep mode.
This scheduled task calls ccmeval.exe, evaluates client health status, and sends
results to the site server by using state messages. If it cannot deliver a message,
it uses an FSP if one is deployed. ccmeval.exe loads the ccmeval.xml evaluation
file, found in the %windir%\CCM folder, which contains the client health
evaluation rules. Open this file to see the checks and actions that occur.
Microsoft does not support modifying ccmeval.xml to include custom checks.
For information about the health checks performed, see
https://docs.microsoft.com/sccm/core/clients/manage/monitor-
clients#BKMK_ClientHealth.
You can configure the client health mechanism to only perform checks rather
than attempt to remediate. To configure health-only scanning, open the Registry
and navigate to HKLM/Software/Microsoft/CCM/CCMEval to change
the NotifyOnly value from FALSE to TRUE.
Results are displayed in the console under Monitoring -> Client Status ->
Client Check. From there you can configure client status settings, which specify
evaluation periods for client activity and retention of client status history from 0
to 90 days. You can also schedule client status updates to recur between 1
(default) and 31 days.
You can modify the evaluation periods between 1 and 30 days for the following
settings:
For example, when the software inventory evaluation period is set to 7 days and
the site server has not received software inventory data from a client in that time,
it considers that client inactive for software inventory. The ConfigMgr client is
considered inactive when it is inactive for all listed activities.
You can also update client status by selecting Refresh Client Status on the
ribbon bar; this triggers the stored procedure and refreshes the charts with the
latest information, as shown in Figure 9.9.
Look at the Results panes of the Client Status, Client Activity, and Client Check
nodes for an overview of statistics and recent alerts. Clicking the corresponding
regions in the chart or hyperlinks in the Results pane creates a temporary
collection that contains the computer objects belonging to that selection. The
Statistics node uses the All Desktop and Server Clients collection by default;
change this to any other device collection by clicking Browse and selecting
another collection.
ConfigMgr lets you specify client settings at the collection level, meaning you
can define different settings as necessary. Note that this can lead to conflicts if a
client belongs to multiple collections with client settings. You can set priorities
to help manage these settings; the lowest number wins. Design these priorities
carefully to maintain consistent client behavior, as you would when designing
group policy in AD.
Client settings also assist with VDI scenarios. Each client randomizes scheduled
times for hardware inventory, software inventory, software update scans,
software update deployment evaluations, compliance settings evaluations,
application deployment evaluations, and endpoint protection scans on VMs
sharing the same host.
Each ConfigMgr installation has default settings, which are configured at the
hierarchy level and applicable to every user and device that does not have
custom settings. You can apply other (custom) settings to override the defaults.
Default client settings have a priority of 10,000, which means you could
theoretically define 9,999 custom client device and user settings. Custom device
settings are deployed to device collections; custom user settings are deployed to
user collections. When creating custom settings, keep them at a minimum and
provide meaningful names so you know what each one does.
Some settings can use a simple or custom schedule, as shown in Figure 9.10.
Following is information about each:
You can deploy custom settings to one or more collections. Select a setting and
choose Deploy from the ribbon bar and specify the collection to which to apply
the settings.
To view the result of client settings applied to a device or user, use the resultant
client settings capability provided in the Assets and Compliance workspace.
Right-click a device, user, or group and select Client Settings -> Resultant
Client Settings to open the Resultant Client Settings panes, which display the
effective client settings for that device, user, or group.
Each ConfigMgr client agent also has a cache folder where software
distribution-related files are downloaded before executing. This folder is
normally in %windir%\ccmcache and defaults to 5120MB. If the cache size is
too small, the client cannot download the files necessary for a certain task, which
then fails. Configure client cache size in the Configuration Manager Control
Panel applet on individual clients or by setting the Configure client cache size
setting in the Client Cache Settings device settings to Yes. You then can specify
the maximum size (in megabytes) or a percentage of disk space to use for the
client cache.
When the Enable user policy polling on clients setting is set to No, users do not
receive required applications or any other operations contained in user policies,
they do not receive revisions and updates for applications published in the
application catalog, and they do not see notifications about application approval
requests.
User policy requests from Internet clients work only when the Enable user policy
setting is set to True and the Internet-based MP can successfully authenticate the
user using Windows authentication.
The capability to report and alert on compliance helps monitor and manage
configuration drift. You can apply Compliance Settings device settings to
desktops, servers, mobile devices, and users; you can also use these settings to
remediate WMI, Registry, and script settings that are not natively compliant in
ConfigMgr. Automated remediation can drastically reduce the amount of time a
noncompliant configuration stays out of compliance.
You can also enable the use of User Data and Profiles management, which is
disabled by default. Prior to using this functionality, which is described in
Chapter 10, enable it using a client device setting.
Display Countdown Interval Before Log Off and Restart: This is set to
90 minutes by default and can be between 1 minute and 24 hours (1440
minutes).
Display Countdown Interval Before Final Log Off and Restart in
Minutes: This is set to 15 minutes by default and can be set between 1
minute and 24 hours.
Ensure that the intervals specified are shorter in duration than the shortest
maintenance window so the computer will restart during the window.
Allow Users to Enroll Mobile Devices and Mac Computers: This setting,
which is No by default, allows you to specify whether users can enroll
older-style mobile devices, such as Windows Mobile and Windows CE and
Mac computers. If this is set to Yes, set the Enrollment profile by clicking
Set Profile to open the Enrollment Profile dialog.
Allow Users to Enroll Modern Devices: Specify if users are allowed to
enroll modern devices using on-premise MDM. The default is No. If it is
set to Yes, you can set the Enrollment profile by clicking Set Profile to open
the Enrollment Profile dialog.
Client settings can define other Hardware Inventory settings for laptops versus
for traditional desktop systems. Configure the items you want to inventory by
modifying hardware inventory settings at the Default Client Agent settings level.
Perform the following steps:
MIF files can extend hardware inventory information or collect information that
is not available in the system. You could write a tool that collects information
from an end user, with output in MIF format ready to be picked up by
ConfigMgr inventory. MIF file information is sent to and stored in the site
database with the default client inventory data. There are two types of MIF files:
NOIDMIF: These files are automatically associated with the client where
the NOIDMIF file is inventoried. To have ConfigMgr process a NOIDMIF
file, place it in the %windir%\CCM\Inventory\noidmifs (default) folder.
IDMIF: IDMIF files are not associated with the computer they are collected
from. This means you can collect inventory about non-ConfigMgr devices.
These files are collected only if they meet the maximum custom MIF file
size specified value, which is less than 250KB by default. Store IDMIF files
in the %windir%\CCM\Inventory\idmifs folder to be picked up by
hardware inventory.
Modify MIF storage locations in the Registry by changing the values that specify
the locations of the NOIDMIF and IDMIF files. The single Registry key is
located under
HKLM\Software\Microsoft\SMS\Client\Configuration\Client
Properties, and you need to modify the NOIDMIF Directory and
IDMIF Directory values.
The ConfigMgr client scans the hardware currently installed on the client and
sends that information to the site server. Inventory takes hardware changes
(deltas) into account, letting administrators determine if there are changes to
hardware. Inventoried hardware is defined centrally in the ConfigMgr settings—
which you can adjust to include or omit specific hardware. If the client is not
connected to the network during inventory, inventory occurs, and the data is
uploaded when connectivity resumes. If the client is offline, inventory starts
once the client is available.
Hardware inventory also inventories the software listed in the Programs and
Features Control Panel applet, which typically suffices to determine software
installed on a client. However, not all software is advertised in that applet; use
software inventory for a full inventory of your software.
If standard hardware inventory does not provide the needed information, it may
be that what is inventoried is not configured in the applied client settings, or new
hardware may be available but unknown to ConfigMgr. You can modify
ConfigMgr to enable inventory of extra or additional hardware, as discussed in
online-only Appendix E, “Extending Hardware Inventory,” which you can
download from the book’s companion website, at
http://www.informit.com/title/9780672337901, on the Downloads tab.
Remote Tools settings can remotely manage client desktops for troubleshooting
purposes. This functionality enables remote control from a central point,
providing logging capabilities and report functionality. Remote Tools leverages
the Windows Remote Desktop Protocol (RDP) functionality. You can use it in
several ways—to completely take over the desktop using Remote Desktop or to
assist the end user by using the Remote Assistance functionality, where both the
end user and help desk view the same desktop.
Remote control behavior depends on the client’s effective default or client device
settings. Modify client settings by navigating to Administration -> Overview -
> Client Settings and selecting Default Client settings and then modifying
custom device settings or creating new settings. Open the Remote Tools section
and click Configure to open the Remote Control and Windows Firewall Client
Settings dialog. Enable the check box Enable Remote Control on client
computers to be able to configure other settings:
For more information about the Remote Tools settings, see the “Using Remote
Control” section, later in this chapter.
Software Metering device settings collect file usage data. Enable software
metering by using default client settings or custom client device settings,
described earlier in this section. To view data from software metering, navigate
to Monitoring -> Reporting -> Software Metering.
After enabling software metering, you can create software metering rules.
Follow these steps:
Use reports to view the information from software metering and create
collections based on the information they provide. These collections are based
on the Software Usage Data attribute class. Chapter 14 discusses creating
collections.
State messages sent by ConfigMgr clients to their MP or FSP report the current
state of ConfigMgr client operations. The result of these messages is shown in
reports. Various data in the console depends on the state messages received, such
as software updates and settings management.
For more information about state messaging, see Steve Rachui’s article at
https://blogs.msdn.microsoft.com/steverac/2011/01/07/sccm-state-messagingin-
depth/, and Chapter 3.
You can use device affinity when defining deployment types in applications.
Chapter 11, “Creating and Managing Applications,” covers user and device
affinity and using this information when deploying applications. Using default
settings, a user device affinity mapping is created after the device is used for 48
hours (2880 minutes) within 30 days. For ConfigMgr to automatically create
user device affinities based on the specified data, set Automatically configure
user device affinity from usage data to True.
User and Device Affinity settings for users allow you to specify whether to
enable a user to define their primary device. There is only one setting for user
and device affinity for users—if it is set to True, users can set their own device
affinity in the Application Catalog.
For Windows 7 and 8.1, telemetry can only be enabled or disabled. The
following options are available for Internet Explorer data:
Disable
Enable for local internet, trusted sites, and machine local only
Enable for Internet and restricted sites only
Enable for all zones
Start the Remote Control viewer from the Windows Start menu or the
ConfigMgr console. ConfigMgr also lets you start a Remote Assistance or
Remote Desktop session to the remote computer.
The notification bar in Figure 9.13 is quite visible on the remotely controlled
computer and displays the account name of the user remotely controlling the
computer. Remote control uses TCP port 2701; ports 2702 and 135 are no longer
used. If Kerberos authentication fails when you want to control a computer
remotely, the system prompts whether to use the less secure NT LAN Manager
(NTLM) authentication mechanism. If the connection to the remotely controlled
machine is disconnected, the remote computer is locked. Remote Control
supports multiple monitors.
Start the Remote Control viewer from the command line with CmRcViewer.exe,
located in the <%ConfigMgrInstallPath%>\AdminConsole\Bin\x64 folder.
Supply two values when connecting to a client computer with this utility:
Ensure that NICs support WOL and the use of magic packets.
Enable WOL on NICs and in the BIOS of destination systems.
If using subnet-directed broadcasts (discussed in the next section), configure
the network infrastructure to forward these broadcasts.
Configuring WOL
ConfigMgr has several WOL configuration options. Use the Wake On LAN tab
of the <site> Properties dialog, which is accessible from Administration ->
Overview -> Site Configuration -> Sites. Right-click <site code> - <site name>
in the Details pane and select Properties.
The Wake On LAN tab provides several approaches to how the site wakes up
computers. When enabling WOL on this tab, you must configure how to power
on your clients. The following options are available:
Subnet-directed broadcast
Unicast
To view the port used for the magic packet, select the Ports tab of the <site>
Properties dialog box. The default is UDP port 9; change it by double-clicking
the Wake On Lan (UDP) entry in the list box or select it and click Properties to
launch the Port Details dialog. A single port number is supported. Click
Advanced to access advanced options, which are mainly network and
ConfigMgr throttling controls; change these only if issues occur.
If the ARP cache of the device no longer contains the MAC address of the
target, it uses an ARP request to discover the MAC address. However,
because responding to an ARP request is a function of a running OS, the
magic packet cannot be delivered to the target. An exception is when the
network card and driver installed on a system have a feature called ARP
Offload and the feature is enabled.
Subnet Directed: ConfigMgr broadcasts the magic packet to the IP subnet
of the destination system, where each NIC compares the MAC address in
the magic packet to its own, waking up its system if there is a match and
enabling ConfigMgr to wake up those systems with changed IP addresses
still on that subnet. Subnet-directed WOL utilizes subnet-directed
broadcasts, requiring support from your network infrastructure. These
broadcasts are often disabled due to overhead or security concerns, as
enabling them opens the network to possible distributed denial-of-service
(DDoS) attacks such as Smurf attacks. Mitigate this by changing the default
port used by subnet-directed WOL packets and configuring the network to
allow only subnet-directed broadcasts from your site server.
For wake-up proxy to work correctly, at least three computers should be awake
and receive guardian computer functionality, meaning they stay awake and
ignore any settings related to power management.
The computers in the subnet that are powered on request that the network switch
redirect broadcast traffic to themselves and keep the ARP cache for the sleeping
computers populated. This issue, known as MAC flap, can cause network
monitoring or network intrusion to create alerts or shut down ports. The authors
recommend consulting your network group prior to implementing this feature.
Using WOL
ConfigMgr manages all the details for actually implementing WOL. You simply
tell the system when to use it. ConfigMgr supports WOL for these activities:
A check box appears on the Deployment Settings page of the deployment wizard
for each object if the deployment is set to Required; this cannot be changed after
you create the deployment. ConfigMgr then sends the WOL request to the
destination system at its scheduled mandatory time. Magic packets are sent only
from the primary site server. When the destination system wakes up, it initiates
any applicable mandatory deployments.
If a deployment becomes mandatory on a system after the time scheduled for the
deployment—such as by being added to a collection where a deployment is past
its mandatory time—that system will not have a magic packet sent to it.
WOL is a great addition to the ConfigMgr toolset, although third-party tools can
enhance its functionality. The two primary third-party alternatives (Green Planet
from Adaptiva and Night Watchman from 1E) fill some gaps and enable greater
flexibility for both WOL and power management by providing peer-to-peer
capabilities, where peer systems harvest MAC addresses and send WOL magic
packets based on ConfigMgr and other events.
Indicate peak hours by specifying the start and end times of the peak hours time
frame. You can then specify the power plan to use during and outside specified
peak hours. Select a plan by choosing it from a list. The following plans are
available by default:
Select View to open the power plan’s properties. Selecting the Customized Peak
(ConfigMgr) or Customized Non-peak (ConfigMgr) power plan changes this
option to Edit, allowing you to modify that plan, as shown in Figure 9.14, or
create a plan by providing a new name and description. Power plan settings can
be set for when a device is on battery or plugged in.
You can enable the option Wakeup time (desktop computers) and specify a time
when a desktop computer will wake from sleep or hibernation to install software
or updates.
Click Browse to copy power plan settings from a collection and then select a
device collection from the Select Collection dialog.
Many reports analyze power consumption and check applied power settings. See
https://docs.microsoft.com/sccm/core/clients/manage/power/monitor-and-plan-
for-power-management for more information.
Summary
This chapter discussed importing ConfigMgr clients by using discovery methods
or a manual process. It discussed client requirements to install the ConfigMgr
client agent, as well as the different ways to install the agent. When ConfigMgr
is installed in an Active Directory environment, you can use discovery methods
to find clients that need the agent. Once the client is installed, it must assign
itself to a ConfigMgr site and stay healthy.
The chapter discussed using different client device and user settings, allowing
you to granularly define those settings. It discussed managing the client,
leveraging WOL using ConfigMgr to wake up clients, and configuring power
plans to control the power settings configuration on ConfigMgr client agents.
CHAPTER 10
Managing Compliance
IN THIS CHAPTER
Configuring Compliance Settings
Understanding Compliance Settings
Creating Configuration Items
Developing a Compliance Strategy
Troubleshooting Settings Management
Settings management does not instantly fix these issues, but it helps in managing
them and reducing the amount of time spent trying to achieve compliance. It also
allows you to incorporate the issues into your current set of processes.
The only prerequisite for Compliance Settings is that the ConfigMgr client must
be installed on the machine. Compliance settings evaluation is completed by the
compliance and settings management component on the client, which is installed
during ConfigMgr client installation. It is then enabled on the client when the
Enable compliance evaluation on clients setting shown in Figure 10.1 is set to
Yes.
Each organization’s needs and wants around settings management vary, which is
why Microsoft created and continues to tune this component so that it can handle
many different situations users may need to evaluate or check on.
Microsoft Intune allows you to greatly enhance the number of devices you can
support with settings management. Information on Microsoft Intune is available
at https://www.microsoft.com/cloud-platform/microsoft-intune.
You can create a child CI if you need to make the properties of a CI more
restrictive or different in some way but want to maintain a relationship with the
original CI. A child CI inherits the properties of its parent. You cannot change
those properties, but you can add new information to the child CI. Create a child
CI by right-clicking an existing CI and selecting Create child configuration
item.
Baselines can contain software updates, which are not defined as CIs for the
purpose of adding them to baselines. You can add a software update by selecting
it when creating a baseline. When the client evaluates the baseline, the software
update is evaluated and then installed or not installed. Consider an example of a
hierarchy that receives updates in a variety of ways: via ConfigMgr, Windows
Server Update Services (WSUS), and the Internet. One way to determine if a
software update is installed on all your systems is by creating a configuration
baseline that contains the software update and having clients evaluate the
baseline.
As with CIs, there may be times when you have created so many baselines that
you need to filter them. ConfigMgr’s built-in filtering and search capabilities
inside the console can help limit the baselines shown or can help find a particular
baseline of interest. Following are some criteria specific to filtering
configuration baselines:
When your configuration baseline is built with all the items added to it, you are
ready to deploy that baseline to a collection of clients. You cannot directly
deploy CIs to clients; they must be assigned to a configuration baseline to be
deployed.
You might want to use these settings with a virtual desktop infrastructure (VDI)
environment. Use user data and profiles to control the following settings:
Folder Redirection: You can change where files are stored for the desktop,
start menu, documents, music, videos, favorites, contacts, downloads, links,
searches, saved games, application data, and pictures. You can redirect
these folders to remote or local devices. With remote, you can choose a
specified folder or use the user’s home folder.
Offline Files: You can enable or disable the use of offline files. If enabling,
you can set the background synchronization and whether to use metered
network connections. You can also enable slow links and set the latency
threshold and synchronization interval.
Roaming Profiles: You can specify redirection of the entire user’s profile to
a file share. This occurs at user login and synchronizes all changes to the
profile at logoff. Options include excluding folders from roaming profiles,
managing slow links and network settings, and managing access settings.
User data and profile settings deal with user settings and thus can only be
deployed to a collection of users. The target systems for these users must be
Windows 8.x and above. Use any or all of these settings for the best experience
for your users.
A Windows Intune subscription along with the service connection point (SCP) is
required to use iOS and Android devices.
Remote connection profiles have several prerequisites that are both internal
ConfigMgr dependencies and external dependencies:
Remote Desktop (RD) Gateway Server: A connection to an RD gateway
server must be in place for users outside the company network to connect to
work computers.
Firewall Settings: Any host-based firewall system must be configured to
allow the Mstsc.exe program through it.
Service Connection Point: ConfigMgr must have a configured connection
to Microsoft Intune.
User Device Affinity: For a user to connect to a work computer, that
computer must be a primary device of the user who is trying to connect.
Compliance Settings Manager Role: If using role-based management in
the ConfigMgr console, the user creating the remote connection profiles
must be assigned the compliance settings manager security role.
When remote connection profiles are first deployed to a client system and
evaluated, the Remote PC Connect local security group is created on that
machine. This security group is populated with the primary users of the
computer to which the profile is deployed. Members of the local administrators
group can add or remove users to the group; however, when the ConfigMgr
client next evaluates the remote connection profile (by default every seven days
on a simple schedule), it removes any users that are not primary users of the
machine and adds any users previously removed that are primary users of the
machine, as defined by ConfigMgr.
If the device affinity relationship between a user and the device changes,
ConfigMgr disables the remote connection profile and Windows Firewall
settings to prevent connecting to the computer.
The pages of the wizard differ depending on the type of CI you are creating;
however, the General page is the same for all types. Provide a name that
describes what the CI is about and optionally add a description. If there are many
CIs, it is easier to find the correct one if the name is descriptive. Then choose
between the following types of CIs:
Settings for Devices Managed with the ConfigMgr Client: This type of
system has an installed ConfigMgr client—typically desktops and server
type operating systems. There are several different types:
Windows 10: This option allows you to leverage the mobility features
built in to Windows 10. It does not provide the full set of options you
find for Windows workstations and servers.
Mac OS X (Custom): Use this option to check compliance with Mac
OS X preferences for an application or to run a custom shell script on a
Mac.
Windows Desktops and Servers (Custom): The most used option to
create a CI, this is for Windows 7, 8.x, and 10, and Server 2008 R2,
2012 R2, and 2016.
This Configuration Item Contains Application Settings: This check
box that goes with the Windows Desktops and Servers option lets you
check settings for an application using the product code.
Settings for Devices Managed Without the ConfigMgr Client: For these
mobile systems, such as iPads, phones, tablets, and so on, you can access
the mobility settings on the devices using Microsoft Intune.
Windows 8.1 and Windows 10: Use this option for tablets running
Windows 8.1 and 10; it allows you to check mobility settings for these
tablets.
Windows Phone: This option is for Windows Phone versions 8.0 and
8.1.
iOS and Mac OS X: Use this option to access the settings for any of
the iOS devices, such as an iPad or iPhone, as well as Mac OS X
mobility profiles.
Android and Samsung Knox: This option is for mobility settings for
Android tablets and phones and the Samsung Knox family of devices.
Use the Supported Platforms section of the Create Configuration Item Wizard to
choose Windows 10 64-bit, 32-bit, or both operating systems. The Device
Settings page of the wizard displays next; Figure 10.3 shows the available
options.
Each option you select creates a new menu item in the Create Configuration
Item Wizard. Each item has several different settings; for in-depth information
on these settings, see https://docs.microsoft.com/sccm/compliance/deploy-
use/create-configuration-items-for-windows-10-devices-managed-with-the-
client#windows-10-configuration-item-settings-reference.
FIGURE 10.3 Device Settings options for Windows 10 devices.
The last option listed in Figure 10.3 is Windows Information Protection (WIP),
formally known as Enterprise Data Protection. WIP includes new settings found
only on Windows 10 version 1607 and above and Windows 10 Mobile. WIP
settings help combat accidental data leakage, which occurs when employees
send corporate data from personal email accounts or save corporate documents
out to a public cloud; basically, this is when corporate-owned data is transmitted
on networks outside the corporate enterprise network. WIP provides the
following benefits:
Figure 10.4 shows the many properties that you can set for WIP:
FIGURE 10.4 Windows Information Protection properties.
App Rules: Use this section of the wizard page to create rules that set the
enterprise data protection mode for an application. You can set a rule to
allow protection for the application or make it exempt. You can use
wildcards for the product name, binary name, or version.
Paste/Drop/Share Restriction Mode: Set the mode you want enforced for
apps that meet the criteria previously defined in the App Rules section.
There are four modes to choose from:
Block: When inappropriate data sharing is found, the employee is
blocked from completing the action.
Override: Blocks inappropriate data sharing but allows the user to
override the block and share the data. If a user chooses to override the
block, the action is logged into the audit log.
Silent: Runs in the background and logs inappropriate actions in the
audit log.
Off: Turns off the restriction mode and does not protect your data or
log any information in the audit logs.
Corporate Identity (Required): Use this field to define your domain or
domains. If you have multiple domains, the first one defined is considered
your corporate identity and the others as being owned by the first one. Use
a | as a separator between domains.
Corporate Network Definition: Use this box to define the network
boundaries for WIP to protect. You can define boundaries in several ways:
Enterprise cloud resources
Enterprise network domain names
Enterprise proxy servers
Enterprise internal proxy servers
Enterprise IPv4 ranges
Enterprise IPv6 ranges
Neutral resources
Enterprise Proxy Servers List Is Authoritative (Do Not Auto-Detect):
Use this dropdown to treat the list of proxy servers defined in the corporate
network definition box as the complete list of proxy servers. If not
configured, Windows searches the immediate network for additional
servers.
Enterprise IP Ranges List Is Authoritative (Do Not Auto-Detect): Use
this dropdown to treat the list of IP ranges in the corporate network
definition box as the complete list of ranges. If not configured, Windows
searches for additional IP ranges on any domain-joined devices connected
to your network.
Show the WIP Icon Overlay on Your Allowed Apps That Are WIP-
Unaware in the Windows Start Menu and on Corporate File Icons in
the File Explorer: Use this dropdown to overlay an icon on the corporate
files or Start menu so the user knows that they are not WIP-aware
applications or files.
Upload a Data Recovery Agent (DRA) Certificate to Allow Recovery of
Encrypted Data (Required): Once your WIP policy is deployed to clients,
Windows begins encrypting corporate data on the local device. If the local
encryption keys are lost or revoked, the data is unrecoverable. Use this
option to include a public key for encrypting the data while you hold the
private key in case it is needed for decryption.
Show the Personal Option in the “File Ownership” Menus in the
Windows File Explorer and the Windows Save As Dialogs: Use this
dropdown to allow a user to choose whether a file is for personal or work
use when it is saved. Not Configured is the same as Yes. Selecting No turns
off the setting and does not provide the user with an option to save the file
as personal.
Prevent Corporate Data from Being Accessed by Apps When the
Device Is Locked (Applies Only to Windows 10 Mobile): Use this option
to add a PIN code on a Windows 10 mobile locked device that protects the
key used to encrypt the enterprise data on the device. Yes turns this on, and
No or Not Configured turns it off.
Allow Windows Search to Search Encrypted Corporate Data and Store
Apps: Use this option to toggle the ability for Windows Search to index
encrypted data and Windows Store apps. Yes turns this on, and No or Not
Configured turns it off.
Revoke Encryption Keys on Un-enroll: This option allows you to revoke
the user’s local encryption keys from the device when it is removed from
WIP. When the keys are revoked, the user cannot access that data. Yes is the
same as Not Configured and turns on the process of revoking the keys.
Selecting Mac OS X (custom) on the General tab opens the Supported Platforms
page, where you have the option to select what version of the OS applies to this
CI. You next are presented with the Settings page, which is blank by default.
Click New to add a setting. Figure 10.5 shows the page that appears, which
includes the following settings:
The Compliance Rules tab allows you to create new rules, edit rules, and delete
rules. If you created a rule as part of the Settings page, it shows up in this page.
The next page is the Summary page. Once you verify that everything looks
correct, the last pages are the Progress and Completion pages.
Detection Methods
A detection method in ConfigMgr contains rules that detect whether an
application is installed on a computer. Use this page to specify the criteria to
detect the application this CI targets. This detection occurs before the CI is
assessed for compliance. If the application does not exist, the client does not
evaluate the CI. There are four possible detection methods:
This Application Is Installed for One or More Users: Select this check
box to detect each user profile on the computer. Use when multiple users
using the same computer have installed the same application.
Figure 10.7 shows the Detection Methods page with some sample information.
FIGURE 10.7 Detection Methods page.
Settings
Evaluating device compliance requires a left and right-hand side of the equation.
If the two sides are equal, you have compliance. Settings are the conditions
found on the left side. By default, the Settings page is blank when a new CI is
created. Click New to start creating a setting and then set the following options:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Key Name: Manually enter the path to the Registry key you want
to use for compliance. If you selected Browse, this may already
be filled in.
This Registry Value Is Associated with a 64-Bit Application:
Specifies whether to search the 64-bit Registry keys in addition to
32-bit Registry keys when clients are running a 64-bit OS. If the
same key exists on both 64-bit and 32-bit Registry hives, both
keys are returned.
Registry Value: Check to see if a certain value in the Registry exists.
Hive Name: Choose hives from a dropdown menu. Use the
dropdown to manually choose the hive or click Browse to browse
the Registry, looking for the hive and key you want to use for
compliance. The following are the hive names:
Click here to view code image
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Key Name: Specify the path to the Registry key you want to use
for compliance. If you selected Browse, this may already be filled
in.
Value Name: Specify the Registry key value you want to use for
compliance. If you selected Browse, this may already be filled in.
This Registry Value Is Associated with a 64-Bit Application:
Specify whether to search 64-bit Registry keys in addition to 32-
bit keys when clients are running a 64-bit OS. If the same key
exists on both 64-bit and 32-bit Registry hives, both keys are
returned.
Script: Execute a script to return the results needed for the compliance
check.
Discovery Script: This can be a PowerShell, VBScript, or a
Microsoft JScript. Click Open or just paste in your script. The
script must return a value used in the compliance evaluation. For
example, if you wanted to check if a service is stopped, your
script would return Stopped.
Remediation Script (Optional): Use to fix a noncompliant
client. This can be a PowerShell, VBScript, or Microsoft Jscript
script. ConfigMgr can pass the compliant value to the script as a
parameter, if needed.
Run Scripts by Using the Logged On User Credentials: Allow
the script to be run by the current logged on user instead of using
the local system.
Run Scripts by Using the 32-Bit Scripting Host on 64-Bit
Devices: Use the 32-bit script engine to run a script when on a
64-bit device, fixing some issues when trying to run a script with
the 64-bit engine.
SQL Query: Run a SQL query and use the results as a value for
compliance evaluation. You might use this option to determine if all
SQL servers are running the same version of SQL:
SQL Server Instance: The instance of SQL Server to use: the
default instance, all instances, or a provided instance name.
Database: The SQL Server database to run the query against.
Column: The column containing the value you want to use for the
compliance evaluation.
Transact-SQL Statement: The SQL query to use to return the
value for compliance evaluation. Paste in your query or click
Open to open an existing query.
WQL Query: Use to run a query against the local machine’s WQL
database:
Namespace: The namespace to use to build out your query. An
example would be root\cimv2.
Class: The name of the class to use to build your query. An
example would be Win32_Service.
Property: The name of the property to use to build your query.
An example would be Name.
WQL Query WHERE Clause: A condition added to the query. An
example would be Name=CCMEXEC and StartMode=Auto.
XPath Query: Use to query data inside an eXtensible Markup
Language (XML) file to use for compliance evaluation:
Path: The path of the XML file. ConfigMgr supports the use of
all Windows system environment variables and the
%USERPROFILE% user variable in the pathname.
XML Filename: The filename containing the XML query used to
assess compliance on the client computers.
Include Subfolders: Search subfolders under the specified path.
This File Is Associated with a 64-Bit Application: Choose if the
64-bit system file location (%windir%\System32) should be
searched in addition to the 32-bit system file location
(%windir%\Syswow64).
XPath Query: Specify a valid full XML path language (XPath)
query used to assess compliance on the client computers.
Namespaces: Open the XML Namespaces dialog box to identify
namespaces and prefixes to be used during the XPath query.
Data Type: Choose the format of the data the condition returns before the
compliance evaluation is made. Certain settings do not have data types, and
some settings may not have all of the data types:
String
Date and time
Integer
Floating point
Version
Boolean
String array
Integer array
Compliance Rules
If settings are the left-hand part of the device compliance equation, then
compliance rules are the right-hand side of the equation. The settings are
compared against compliance rules to verify if the device is in compliance. You
may have noticed an additional tab for compliance rules while creating the
settings. Create the rules there or click New and create your compliance rules in
the dialog that appears.
Windows application CIs have an additional option at the bottom of this page:
This application runs only on computers that have 64-bit hardware. This
indicates that the application is 64-bit and will not run on a 32-bit version of
Windows, preventing the CI from being applicable and evaluated on 32-bit
versions of Windows.
Click Next, and you see the Progress page. This page flashes very quickly as the
choices made in the wizard are written to the database.
The Completion page shows a success or failure for each item created in the
wizard. Pay attention to this page to be sure all items were created successfully.
If a failure is shown, review those settings and fix the issue that caused the
failure.
The bottom of the Devices Settings page, displayed in Figure 10.8, shows a
check box for some additional settings not included in the default settings
groups. If this box is checked, an additional settings page is added. This page is
blank by default with an Add option that allows you to choose from several
settings. Because the list includes settings from all devices, you may want to sort
the list by the supported platforms to narrow down to the setting for which you
are looking.
Many settings are common to Windows 8.x devices and Windows 10 devices.
Microsoft provides in-depth information on Windows 8.1 and Windows 10 CI
settings at https://docs.microsoft.com/sccm/compliance/deploy-use/create-
configuration-items-for-windows-8.1-and-windows-10-devices-managed-
without-the-client#windows-81-and-windows-10-configuration-item-settings-
reference.
iOS has some of the same settings as the other devices, and it has many more as
well. View the full list of settings at
https://docs.microsoft.com/sccm/compliance/deploy-use/create-configuration-
items-for-ios-and-mac-os-x-devices-managed-without-the-client#ios-and-mac-
os-x-configuration-item-settings-reference.
Use the Certificates page to import a certificate to push down to the device.
Selecting Import allows you to choose the certificate and the destination store to
which you want to import the certificate.
Each page has the check box Remediate noncompliant settings; this allows you
to automatically remediate the setting when it is noncompliant. There is also a
dropdown for noncompliance severity for reports, which you use to choose the
severity to report when the item is noncompliant.
The Platform Applicability page points out settings not supported by all
platforms chosen on the Supported Platforms page. These settings are not
assessed for compliance on the unsupported platforms. Select Export report to
export the settings to a comma-separated values (.csv) file.
The Summary page displays a complete summary of the choices made in the
Create Configuration Item Wizard. Review this page to confirm that each item is
correct.
Click Next, and the Progress page flashes by very quickly as the choices made in
the wizard are written to the database.
The Completion page shows a success or failure for each item created in the
wizard. Pay attention to this page to be sure all items were created successfully.
If a failure is shown, review those settings and resolve the issue that caused it to
fail.
Creating Baselines
With your CIs created, your next step is to create a baseline. The baseline is a
collection of CIs. While a baseline can contain any number of CIs, you will want
to create multiple baselines so you can group the CIs that belong together.
Multiple baselines make it easier to report compliance or noncompliance and
help to troubleshoot errors with the CIs.
Add a name and description for the new baseline at the top of this dialog and
pick the desired categories at the bottom by clicking Categories. CIs and
baselines share the same set of categories from which to choose. Categories have
no specific functional purpose outside console organization.
The primary activity when creating a baseline is choosing the configuration data
it contains—collectively called evaluation conditions. Use the Add menu under
the Configuration data list box, which has three choices when selected:
Configuration Items
Software Updates
Configuration Baselines
Each choice results in an object picker dialog, where you select the
corresponding type of object to include in the baseline.
Required: The application defined in the CI must exist on the target system
in order to be compliant. All settings in the CI are also evaluated for
compliance.
Optional: Settings in the CI are evaluated for compliance only if the
application defined in the CI exists on a target system.
Prohibited: The application defined in the CI must not exist on the target
system in order to be compliant. All settings in the CI are ignored.
Change the configuration item revision included in the baseline by selecting the
CI in the Configuration data list box and selecting from the Change Revision
dropdown menu. This allows you to modify and test a CI without affecting the
baselines to which it belongs. The latest revision is included by default. Software
updates and baselines always use the latest revision.
Software updates are always set to Required, meaning they must exist on the
target system. Baselines are also set to Required, although this has no real
substantive meaning other than that the CIs in the baseline will be evaluated
according to the evaluation conditions set in that baseline.
To modify a baseline, including its evaluation conditions, select the baseline and
choose Properties from the ribbon bar or right-click the baseline and choose
Properties to see its properties dialog box. The Details pane appears at the
bottom of the page when any baseline is selected. The Summary tab lists basic
information about the baseline, including deployment status and the following
compliance statistics:
Compliance Count
Noncompliance Count
Failure Count
Deploying Baselines
After creating a baseline, you deploy it to a collection of clients. The deployment
assigns the baseline to the clients in the collection for evaluation. Each baseline
deployment has its own evaluation schedule, set by default to the schedule
defined in the default client settings for the hierarchy. To deploy a baseline,
navigate to Assets and Compliance -> Compliance Settings -> Configuration
Baselines. Select the configuration baseline you want to deploy and choose
Deploy from the ribbon bar or from the right-click context menu to open the
Deploy Configuration Baselines dialog box, displayed in Figure 10.11.
FIGURE 10.11 Deploy Configuration Baseline dialog box.
To modify a deployment, select it and choose Properties from the ribbon bar or
from the right-click context menu. You see a dialog nearly identical to the
Deploy Configuration Baselines dialog shown in Figure 10.10, where you can
refine any of the deployment properties except the targeted collection. To change
the targeted collection, you must create a new deployment for the baseline.
Do not expect immediate results after developing the process to create your CIs
and deploying the baselines. Clients must receive policies for these deployments,
evaluate them on the schedule assigned to them, and report the results back to
ConfigMgr. Be aware of this time-consuming process so that you are not put in
the position of needing results right away.
The list box in Figure 10.12 shows each baseline deployed to that client.
Clicking Evaluate at the bottom of the page lets users trigger evaluation of
selected baselines, enabling you to evaluate baselines in an on-demand
environment and get almost instantaneous results when needed. By clicking
View Report, you can let administrative users display a report that shows the
most current evaluation results of the selected baseline. This lets you look at the
compliance of a single machine; however, it is not intended be used as a report
but rather as a tool to verify that your CIs and baselines are working correctly.
Microsoft provides 22 reports out of the box for compliance settings. Figure
10.13 shows these reports.
FIGURE 10.13 Compliance Settings reports.
If you need to view the reports on a regular basis, you can create a subscription
to a report either in the ConfigMgr console or SSRS, specifying whether the
report should be delivered via email or pulled from a common network location.
After you set up the subscription, the process is automatic; this saves an
administrator the work of delivering the report.
Troubleshooting Settings Management
Compliance settings management is an automated system that works well but
sometimes can have problems. When issues arise, troubleshooting is necessary
to determine what the issue is, where it might be, and how to fix it.
Using the message IDs listed in Table 10.3 can help narrow down the issues but
can also add questions and necessitate research as the message IDs are not user
friendly. In these cases, it is useful to gather the client logs referred to in Table
10.3 and find the status message number in the log file. This can help show you
what was occurring right before the status message was created and right after it
was created. The error or problem may be in that small section of the log files.
These status messages also provide the ability to track and monitor the
evaluation status of baselines in your site.
Summary
Compliance Settings is an excellent tool that provides feedback about the
configuration and compliance of many different systems. Adding a Microsoft
Intune subscription allows you to also include iOS and Android devices, giving
your organization the ability to manage most of the devices that users use.
Remediation features also enforce compliance, ensuring standard configurations
and settings across the enterprise.
IN THIS CHAPTER
ConfigMgr Applications Overview
Creating and Modifying Applications
Creating Detection Methods
Managing and Creating Global Conditions
Managing Application Management, Application Configuration, and
Volume License Purchases
Integrating Windows Store for Business
Deploying PowerShell Scripts
ConfigMgr applications can associate users with one or more devices, and they
can install only when a particular user is logged on to a particular device type.
Deployment behavior is controlled by DTs, which means ConfigMgr
administrators can control if, when, and how software is installed. Applications
also use detection methods to verify that an application installed correctly.
This chapter discusses ConfigMgr applications. Chapter 12, “Creating and Using
Deployment Types,” discusses available DTs and creating new DTs. Chapter 14,
“Distributing and Deploying Applications and Packages,” describes delivering
an application to a device by creating collections, using distribution points
(DPs), and creating deployments.
Applications are shells; installation requires DTs, the key component of the
application. Each ConfigMgr application has a minimum of one DT defined.
At the time of writing this book, 16 types of DTs are available. This chapter
discusses the basics of DTs; Chapter 12 provides further detail. Some DTs
require the device that executes the DT to be enrolled in Intune; Table 11.1
identifies those types. Intune integration is covered in Chapter 16, “Integrating
Intune Hybrid into Your Configuration Manager Environment.”
Requirements are defined using global conditions; they can be based on the
operating system (OS) name and/or architecture, total physical memory, free
disk space, Active Directory (AD) site, organizational unit (OU), primary user,
and more. Global conditions can create requirements for a DT. While
requirements are not necessary, the authors recommend using them to ensure that
software is delivered to appropriate devices and/or users. The “User Device
Affinity” section, later in this chapter, discusses the primary user global
condition, which allows the ConfigMgr administrator to specify that the DT may
only execute when the primary user of the machine is logged on.
Operating system is Windows 8.1 x86 and the primary user is set to True
Operating system is Windows 8.1 x64 and the primary user is set to True
Operating system is Windows 10 x64 and the primary user is set to True
Operating system is Windows 10 x86 or x64
The first three DTs are Windows Installer-based DTs; the final one is an App-V
DT. The first three are obvious about whether the DT is installable.
Requirements are evaluated by priority, meaning if the OS is Windows 10 x86
and the primary user is set to False, only the fourth DT is installable. The
requirements ensure that full installation applies only to systems where the
primary user for the device is set to True. If the system is Windows 8.1 x64 and
the primary user is set to False, no DTs are applicable; a user attempting to
install would receive a message that requirements have not been met to install
the application.
A huge benefit of user device affinity is that the ConfigMgr administrator can
deploy applications to users without knowing the name of the device.
Administrators also have more control in deploying the application, as they can
create rules related to user device affinity as part of the deployment. Say you
have an application for Microsoft Visio with two DTs; the first DT installs Visio
with the full MSI file, and the second DT installs the Visio Viewer application:
You create a requirement rule for the full MSI version and require the
primary device to be set to True, as displayed in Figure 11.1. You also set
this DT as the first DT available, as the first requirement rule valid for the
DT is the one executed.
When a user attempts to install the software (or you set it as Required), the
application evaluates the first DT, and where the primary user is set to True,
the application installs the Windows Installer (.msi) version of Visio. If the
primary user is set to False, the Windows Installer application for Visio
Viewer is installed.
Three client system logs are used for application monitoring: AppintentEval.log,
AppEnforce.log, and AppDiscovery.log. Information on accessing log files is
available in Appendix A, “Configuration Manager Log Files” and at
https://docs.microsoft.com/sccm/core/plan-design/hierarchy/log-files.
Follow these steps to create a ConfigMgr application for 7-Zip with existing
Windows Installer content:
1. Specify the location or browse to the MSI for the application. The path must
be a universal naming convention (UNC). This example creates the x86 DT
first: \\Odyssey\DSL\Applications\Igor Pavlov\7-
Zip\v16.02\Deploy\x86\7z1602.msi.
2. Click Next. You may be warned that the .msi could not be verified. Click
Yes to import this file. The wizard imports the application information from
the specified MSI.
3. Click Next to see the results. These include the application name and
installation program, which is a default command line for a silent,
unattended Windows Installer installation. This information is used to create
the application’s first DT. The information may be minimal, with only the
name, installation program, and installation behavior displayed as General
Information. This populates the application information and is required for
the DT.
4. For 7-Zip, the installation should always install using system rights, so be
sure to select Install for system. Figure 11.2 shows the outcome of this part
of the wizard.
5. Click Next to continue to the Summary page and review the information.
Then click Next to create the application and DT.
6. On the Completion page, which shows successful completion of the
application or details about why the process was not successful, click Close.
The wizard provides only several configurable options; other options take
defaults. To view the details of this application and its DT to ensure that the
defaults are properly configured, select the application in the console and then
click Properties on the ribbon bar.
Name: The name is used in the console and for monitoring. Use a generic
name, as you may have multiple DTs for specific installation scenarios,
such as x86 versus x64. Give your DTs specific names so you can easily
identify them in logging and reporting.
Administrator Comments: This information is available only in the
console. Use this field to add information that is visible only to
administrators.
Publisher: Specify the software manufacturer, which appears in the
Software Center under the Publisher column and in the Application
Catalog.
Software Version: Use a user-friendly software version, as the end user
sees this in the Software Center and Application Catalog.
Optional Reference: This property, which is only available to
administrators, can be used to add information such as a work order or
request ID for software deployment.
Administrative Categories: These categories are used in the Application
Catalog. An administrator can select existing application categories or
create new ones.
Date Published: This additional field appears in Software Center. Use this
property to timestamp when an application is deployed.
Allow This Application to Be Installed from the Install Application
Task Sequence Action Instead of Deploying It Manually: Enable this
option for installation to occur during an OSD TS.
Owners: Enter an optional owner or click Browse to select a user or group
from AD.
Support Contacts: Enter a contact into this field or click Browse to select a
user or group from AD.
Additional data at the bottom of this tab includes dates created and modified and
by whom, current revision, current status (active or retired), and if the
application is superseded.
References Tab
The Reference tab displays three types of application relationships, which are
self-explanatory:
Applications that depend on this application
Applications that supersede this application
Virtual environments that contain this application
The tab shows whether changes made to the application affect another
application. You can also see revisions of the referenced application. You can
view the fine print, which tells you that there are no items in the list or that you
do not have permission to view all items. Depending on how role-based
administration (RBA) is configured, some administrators cannot see all
applications based on the configured scopes.
This section describes the different properties tabs for a DT. Chapter 12 contains
information on creating specific DTs. For each DT, select it and click Edit to
display its properties.
When you are finished setting the properties of the DT, click OK to go to the
application properties.
Supersedence Tab
Use the Supersedence tab to supersede an existing application with a new
application or a newer version of the same application. Supersedence can
automatically upgrade systems with an existing application or require the latest
version on one targeted collection while continuing to support the previous
version on a different collection. See the “Superseding Applications” section,
later in this chapter, for more information.
The next sections dive a little deeper into some of the components of a
ConfigMgr application.
The application deployment evaluation cycle can be triggered from the client (as
with hardware inventory), or it can be configured using client settings. If a
ConfigMgr application is deployed as required but not installed when the
application deployment evaluation cycle runs, ConfigMgr automatically triggers
an install/reinstall. Consider required applications to be a type of desired state. If
a required deployment for an application exists, ConfigMgr ensures that the
application is installed.
Detection methods are important because they report the current state of the
ConfigMgr application (installed, not installed, or required). Correctly
configuring detection methods is vital to keeping software from reinstalling.
While using the wizard to create a Windows Installer DT could save some steps,
it might cause additional pain in the future. Be sure you know the origin of the
installer (vendor, repackaged, and so on) and are aware of any additional steps
the installation performs.
Following are the basic steps to add a Windows Installer detection method:
1. From the Deployment Type Properties dialog, select Detection Method and
click Add Clause.
2. Choose the appropriate setting type. In this case, select Windows Installer
and click Browse.
3. Navigate to the desired .msi file and click Open. The product code appears.
By default, the rule only looks for the product code. You can modify the rule
to require a minimum version of the product code.
4. Click OK to save the detection rule.
Adding Other Detection Methods
In addition to the Windows Installer detection method, you can use built-in
methods based on file system and Registry properties. This section walks
through examples of each. Basic steps to add a file-based detection method
follow:
1. From the Deployment Type Properties dialog, select Detection Method and
click Add Clause.
2. Choose the appropriate setting type. In this case, select File System and
click Browse. Use the Browse File System dialog to browse the current
computer or a different computer (provided that the system is online and you
have administrative rights) by entering a computer name and clicking
Connect. Expand the computer information in the left frame, find the
desired file, and click OK.
The Detection Rule dialog appears, with file and folder information
populated. The middle section automatically populates based on the file
selected. It shows that 7zG.exe will be looked for in %ProgramFiles%\7-
Zip\. An additional file version check was added and is shown in the bottom
frame of Figure 11.3.
Notice the check box This file or folder is associated with a 32-bit
application on 64-bit systems. Selecting it enables the DT detection rule to
look first in the 32-bit file and Registry location; if not found, it looks in the
64-bit location on 64-bit operating systems. For example, if an application
installs in C:\Program Files (X86)\foo\foo.exe on a 64-bit system, enabling
this check box causes the rule to check both C:\Program Files
(X86)\foo\foo.exe and C:\Program Files\foo\foo.exe.
FIGURE 11.3 Creating a file system detection rule.
Following are the basic steps for adding a Registry-based detection method:
1. From the Deployment Type Properties dialog, select Detection Method and
click Add Clause.
2. Choose the appropriate setting type. In this case, select Registry and click
Browse.
3. Select the proper Registry key or value and click OK. You could create a
basic Registry rule, looking for the existence of the
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
{23170F69-40C1-2702-1602-000001000000} Registry key. As
mentioned previously, the check box to include the x86 Registry path on x64
systems is enabled. You can also specify specific Registry name and value
properties, if desired, as displayed in Figure 11.4.
You can also group multiple clauses and change connectors between ANDs and
ORs, as shown in Figure 11.5. In the dialog shown in Figure 11.5, select the last
two rows in the grid and click Group and then toggle the Or to an And. Also,
change the first And to an Or, as shown in the figure. This enables ConfigMgr
to look for either the product code or the combination of Registry key and file
path with version. 7-Zip is a good example of why you may want to create a
detection method, as shown in this figure: The 7-Zip installer is available as both
an .msi and an .exe, so the product code may or may not exist, depending on the
installer used.
The custom script detection method requires writing a custom script for
ConfigMgr to determine whether the software is installed. Be sure to return text
from the script to confirm that the software is installed. If no text is returned,
ConfigMgr understands that the software is not installed. The next two sections
provide sample scripts to leverage the custom script detection method.
Listing 11.1 is a sample PowerShell script that checks for the existence of a file
and verifies its version. Note the write-host Version Exists line. If all
tests pass (that is, the file exists and the version is correct), text is written to
standard output, signifying True for the script detection. If the script returns
text, ConfigMgr considers the application installed.
LISTING 11.1 PowerShell Script to Check for Existence of a File and Its
Version
Click here to view code image
Listing 11.2 is a sample Visual Basic script that checks for the existence of a file
and verifies the file version. Notice the wscript.echo "Proper
Version!" line in the code. If all tests pass (that is, the file exists and the
version is correct), text is written to standard output, signaling to ConfigMgr that
the application is installed.
LISTING 11.2 Visual Basic Script that Checks for Existence of a File and
Verifies the File Version
Click here to view code image
The Open option in the Script Editor dialog lets you browse to a script file to
import it. You can enable scripts to run in the 32-bit environment on a 64-bit
system. Some applications install to the 32-bit section of the Registry; this check
box allows you to determine the environment where your script will run. The
check box has no effect on 32-bit operating systems.
For more information about the application model and how it works, see
https://blogs.msdn.microsoft.com/steverac/2015/06/01/configmgr-2012-the-
application-model-and-advanced-detection-logic/.
To review the built-in global conditions, open the Deployment Type properties
dialog, select Requirements, and then click Add. Then choose from one of three
categories, discussed in the following sections.
Active Directory Site: Specifies that the DT can only run for systems that
are part of or not part of any specific AD site or sites.
Configuration Manager Site: Specifies that the DT can only run for
systems that do or do not belong to a specific site code or codes.
CPU Speed: Specifies a CPU speed requirement, in megahertz.
Disk Space: Specifies an amount of free disk space that must be met to run
the DT for the application. Select the system drive, a specific drive, or any
drive. The value is specified in megabytes. You can use operators such as
Equals, Not equals, Greater than, Less than, Greater than or equal to, and so
on.
Number of Processors: Specifies the number of processors the device
should have to run this DT.
Operating System: Specifies that the DT can only run on a specific OS,
such as on Windows 7 64-bit operating systems.
Operating System Language: Configures the operating system language or
languages as a requirement for the DT.
Organizational Unit (OU): Specifies that the DT runs only on devices that
belong to an OU that you add. To include child OUs, select the Include
child OUs option.
Total Physical Memory: Specifies how much memory is required to run
the DT for the application. The value is entered in megabytes.
Figure 11.10 leverages the global condition created in Figure 11.9. Select the
custom condition named Computer Model with the operator Contains followed
by the computer model for the value. Note that some computer manufactures pad
the Model property with extra spaces, so use Contains instead of Equals when
possible. Now this requirement rule will be met only if the computer model
property contains HP Elitebook 820 G2.
The developer incorporates the Microsoft Intune SDK while developing the
app and makes the app publicly available in the app store.
The managed browser app does not open sites with expired or untrusted
certificates. It cannot use any settings set for the built-in browser of the device,
as it cannot access those settings. The browser cannot block access when
intermediate services are used to access the site, such as using the cached or
translated version of the page from a search engine. If the Require simple PIN
for access or Require corporate credentials for access mobile application
management policy setting is set and a user clicks the help link on the
authentication page, the help can be used to browse to any Internet site, even
sites blocked in the application management policy.
The value in conflict is removed and a built-in conflict value of the app is
used if the conflict occurs during its first deployment.
If MAM policies are already applied and a conflicting policy is applied with
conflicting settings, existing policy settings are retained.
Policy settings are tattooed in the device and not removed when the device is
unenrolled from ConfigMgr, even if the app is uninstalled and reinstalled.
Managed browser policies can also conflict; in this case, URLs are not enforced
if the modes in each policy are the same or different or when the policy is
received for the first time. If a second policy is applied with conflicting policies,
these policies are ignored.
Intune supports the following token types (which are placed between the {{ }}
characters):
{{userprincipalname}}
{{mail}}
{{partialupn}}
{{accountid}}
{{deviceid}}
{{userid}}
{{username}}
{{serialnumber}}
{{serialnumberlast4digits}}
{{udidlast4digits}}
<dict>
<key>userprincipalname</key>
<string>{{userprincipalname}}</string>
<key>mail</key>
<string>{{mail}}</string>
<key>partialupn</key>
<string>{{partialupn}}</string>
<key>accountid</key>
<string>{{accountid}}</string>
<key>deviceid</key>
<string>{{deviceid}}</string>
<key>userid</key>
<string>{{userid}}</string>
<key>username</key>
<string>{{username}}</string>
<key>serialnumber</key>
<string>{{serialnumber}}</string>
<key>serialnumberlast4digits</key>
<string>{{serialnumberlast4digits}}</string>
<key>udidlast4digits</key>
<string>{{udidlast4digits}}</string>
</dict>
After creating the app configuration policy, associate it with a DT when you
create the deployment. Use the App Configuration Policies page of the Deploy
Software Wizard, available when deploying Apple DTs.
Apple Volume License Purchasing
ConfigMgr administrators can deploy and manage iOS apps purchased in
volume from the Apple App Store, using the Apple Volume Purchase Program
(VPP) for Business. This requires ConfigMgr to be configured in hybrid device
management mode, using Microsoft Intune. After joining the VPP, you can
configure the VPP token to be uploaded into ConfigMgr. The following
functionality becomes available:
View the token’s information in the Apple Volume Purchase Program Tokens
node. This includes when it was last updated, the expiration date, and when it
was last synchronized. Volume-licensed apps are also visible in License
Information under Software Library -> Application Management -> Store
Apps. Select an app and click Create Application to create a ConfigMgr
application containing the iOS volume-purchased app using deeplinking. When
deploying this type of app, Microsoft supports it only as a required app.
For Windows 10 Azure AD-joined devices, users and devices can connect
directly to the store to get the app (called an online app) and its license. For all
other scenarios, apps can be cached for direct deployment within the on-premise
network (an offline app); no store or Internet connection is needed.
If any of these constraints makes the task more difficult, consider using a TS.
You can create a generic TS to install software in a well-defined sequence.
However, you can only deploy task sequences to devices.
NOTE: USING A TS TO INSTALL COMPLEX SOFTWARE
CONFIGURATIONS
While task sequences are designed primarily for deploying operating systems,
they can deploy ConfigMgr applications and packages. This is useful with
complex applications or situations, such as when the installation is a
combination of ConfigMgr applications and packages.
The following procedure installs FreeMind, which requires Oracle Java. The
example uses an Oracle Java ConfigMgr application and the FreeMind
ConfigMgr application. Perform the following steps to create the dependency:
The figure shows that only the last revision is currently referenced. You can
select and delete any revision without a reference. A primary site has a site
maintenance task, Delete Unused Application revisions, that removes any
revision that is not referenced and that is at least 60 days old.
To revert to a previous version, select the desired version and click Restore.
Notice that newer versions do not disappear. When you select a revision to
restore, ConfigMgr clones the desired revision into a new revision.
Older revisions may still have assigned references. View a revision to identify
the reference and then go to the reference and reconfigure it to a newer revision,
if desired. You cannot delete a revision that has references.
Superseding Applications
Use supersedence when moving to a new revision of a product. Say you have
FooApp version 1.0 and are deploying to multiple collections. When FooApp 2.0
releases, create a new application for FooApp 2.0. When you know it works,
supersede FooApp version 1.0 with version 2.0.
If an application has more than one DT, select the desired old and new DTs to
map them to run together. You do not need to re-deploy an old version of
software to take advantage of supersedence. Say that myApp version 1.0 has
been in production for a year, and you just upgraded to ConfigMgr Current
Branch. Create an application for myApp version 1.0, create myApp version 2.0,
and supersede myApp 1.0. When you deploy myApp 2.0, ConfigMgr detects
that 1.0 is installed and follows supersedence rules.
If the installer can install the software unattended (without user interaction),
you could use it as a DT within an application or as a program within a
package.
If the software cannot be installed with an installer but can be installed
unattended or requires company-specific modifications, it uses a
repackaging process. This process involves capturing a software installation
procedure, modifying it, and repackaging the installation to make it
repeatable for large-scale rollouts. Microsoft provides the Orca tool to
perform some minor adjustments to its Windows Installer .msi installers.
However, most organizations repackaging software use third-party tools
from InstallShield, Raynet, or Flexera. Repackaging has been used since
early versions of Systems Management Server (SMS)/ConfigMgr.
To test software packages, you need a testing lab (also discussed in Chapter 4,
“Architecture Design Planning”) that includes computers representative of the
systems to which you will deploy the package.
The authors recommend using a hybrid lab environment that includes physical
and virtual systems. Using both types of systems minimizes the number of
systems required yet provides many of the benefits of a physical lab. Create a set
of tests that identify the types of conditions to test before releasing the software
package. Following are some examples:
Installing the software package where there is not enough disk space
Deploying to an unsupported platform
Deploying where the software is already installed
Deploying with other software packages installed that may cause conflicts
While tests vary depending on the specific software, identifying potential failure
conditions ahead of time and testing for them can significantly increase the
likelihood of creating a functional package.
ConfigMgr executes the command line specified in the DT or program, waits for
the process to finish, and determines whether the installation was successful
based on return codes; this means there is time when ConfigMgr logging is
unavailable. The authors recommend enabling logging on the installation
command line or globally on a per-machine basis. If this is enabled, you can
determine why an installation failed.
Because of how task sequences run, you must take extra precautions when
installing applications in a TS, for several reasons:
The task sequence runs in the context of the Local System account.
The explorer.exe task is not running during a task sequence.
The installer must be fully unattended, and no user interaction is allowed. If
the installer requires interaction, the task sequence fails.
Microsoft supports write filters with the Commit changes at deadline or during a
maintenance window (requires restarts) option (enabled by default) in the
Deploy Software Wizard. When this option is enabled, the software is installed
when the deadline is reached or when the device enters a maintenance mode
time frame defined by the settings for the collection of which it is a member; this
is known as forced persist. If this option is not enabled, ConfigMgr assumes that
you have another process for committing the software; this is called
opportunistically persist.
When ConfigMgr disables the write filters, the device is put in a servicing lock
mode, and only members of the Local Administrators security group are allowed
to log on.
By default, the individual who creates the script cannot approve it. You can
modify this behavior in the Hierarchy Settings Properties dialog box by clearing
the check box at the Do not allow script authors to approve their own script
option on the General tab.
1. Open the ConfigMgr console and navigate to Software Library -> Scripts.
2. Click Create Script in the Create group on the Home tab.
3. On the Script page of the Create Script wizard, configure the following
settings:
Script Name: Provide a name for the script.
Script Language: For now, there is only one option available
(PowerShell), but this may change in the future.
Script: Paste the script or click Import and browse for a script to
import.
Once the script is created, it displays in the script list with the status Waiting
for approval. Scripts must be approved before they can be run on a
collection.
1. Open the ConfigMgr console and navigate to Software Library -> Scripts.
2. Click on a script that has the Waiting for approval or Approved status and
then click Approve on the ribbon bar to start the Approve or Deny Script
wizard.
3. In the wizard, either approve or deny the script and provide comments for
later reference.
Monitoring Scripts
A ConfigMgr administrator can view the results of running scripts from the
Monitoring workspace in the ConfigMgr console. Follow these steps:
1. Open the ConfigMgr console and navigate to Monitoring -> Script Status.
2. In the Script Status list, view the results of each script that ran on a client
device. Exit code 0 typically means that the script ran successfully.
Summary
This chapter discussed creating ConfigMgr applications and explained how
applications include DTs. DTs have detection and requirement rules, which you
can use to deploy software using fewer collections. This chapter also covered the
application state and how to reinstall required applications based on detection
rules.
This chapter described how to use custom scripts for detection methods, as well
as how to create and leverage global conditions. It covered exporting and
importing of applications, revision history, dependency, and supersedence. It also
covered deploying PowerShell scripts that run against collections. Chapter 12
shows how to create DTs for different types of applications.
CHAPTER 12
Creating and Using Deployment Types
IN THIS CHAPTER
Creating and Using Windows Installer Deployment Types
Creating and Using Application Virtualization Deployment Types
Using Deployment Types for Mobile Devices
Creating and Using Other Deployment Types
Requirement rules, which are used with DTs, are flexible and can leverage just
about anything on a system, including SQL or LDAP queries, primary user
information, and so on. ConfigMgr applications are deployed to a user or a
group of users, with a DT identifying the type of device being used and where
the device is situated at that time.
As shown on the Deployment Types tab of the 7-Zip 16.02 application in Figure
12.1, you now have two DTs.
Now that you have created a new DT, review Chapter 11 to determine if you
need to make any changes. The wizard shows a limited set of options for the DT.
View the properties and make additional changes.
The default restart behavior of the MSI file will be used; ConfigMgr cannot
control restart behavior for this type of DT.
The detection method uses the MSI product code and product version.
You can only use a Windows Installer database file (.msi); no other files can
be used (like Windows Installer .mst or .msp file types, or setup.exe).
Per-user MSI files are installed for a single user; per-machine MSIs are
installed for all users on a device.
App updates are supported only when the MSI upgrade codes of the
versions are the same.
1. From the application properties, select the Deployment Types tab and click
Add to create a new DT.
2. For DT type, select Microsoft Application Virtualization. For location,
browse to the .xml file for the App-V package.
3. On the Import Information page, which shows a success message, click
Next.
4. In the General Information page, notice that the command line is missing.
The installation command line is not required for App-V packages. Modify
the information as needed and click Next.
5. Examine the Requirements page, which already contains requirements for
this package. The information is included in the .xml file imported for the
DT. Click Add to add additional requirements if needed.
6. Click Next on each remaining page to save the DT. When complete, edit the
DT. The General, Requirements, and Dependencies page are similar to those
for the Windows Installer DT created in Chapter 11. The following step
review the tabs customized for App-V packages, namely Content and
Publishing.
Applications residing in the same connection group interact and share the file
system and Registry on client computers. For example, Microsoft Outlook and a
third-party add-in for Outlook could be delivered separately from each other.
You can give priority to applications within the connection group, allowing their
file system or Registry changes to take precedence over those of an application
with lower priority. The next section describes how to create an App-V virtual
environment for FreeMind, a mind-mapping tool that requires the Oracle Java
Runtime Environment.
With the App-V virtual environment specified, you can create a deployment for
the FreeMind 1.0.1 application. Although you created the App-V virtual
environment, you also must specify that the FreeMind 1.0.1 - Microsoft
Application Virtualization 5 DT is dependent on the Oracle Java JRE 8 Update
11 - Microsoft Application Virtualization 5 DT.
Check whether the connection group is active on the client by using the Get-
AppVClientConnectionGroup PowerShell cmdlet, available on each
App-V client after importing the AppvClient.psd1 module and changing the
execution policy. Figure 12.4 shows the outcome of running the cmdlet.
FIGURE 12.4 Output of the Get-AppVClientConnectionGroup cmdlet
when the virtual environment is running.
After enrolling devices in the hybrid environment, you can manage your
Windows-based, Android-based, or iOS devices with ConfigMgr through Intune.
You can deploy applications to those devices by using either deeplinking or
sideloading; these concepts are explained in the next sections.
All vendors provide methods for developers to test their applications on devices.
To prevent mass deployment of these applications, there must be a way to
restrict running them:
With the release of Windows 8.1, Microsoft introduced the universal app
concept, where an app could be written such that it could be used both on
Windows Phone and Windows devices, although it still had to be specifically
compiled for each device type. With Windows 10, apps can be written once
based on one common application programming interface (API) set and run on
all flavors of Windows 10 (Windows Phone, Windows PC, Xbox, Internet of
Things [IoT], and Hololens). This simplifies creation from the developer and
deployment perspectives. These apps are now called universal Windows apps
based on the Universal Windows Platform (UWP); traditional Win32
applications are called Windows desktop apps.
Requirements for installing apps have changed with each evolution of the
Windows OS. This can be confusing, particularly if you have multiple versions
of Windows in your environment.
For Windows devices that are not or cannot be joined to a domain, such as
Windows RT devices, you must acquire an enterprise sideloading key, which is a
special product activation key. Windows 8 and 8.1 Pro, which can be domain-
joined, also require a sideloading key. These requirements were changed with
Windows 8.1 Update, as domain-joined Pro editions no longer require a
sideloading key. As of Windows 10, sideloading keys are no longer necessary.
Apply the sideloading key and reactivate the Windows installation on the device.
As of May 1, 2014, Microsoft customers in certain volume licensing programs
are provided enterprise sideloading rights at no additional cost. Other customers
can purchase enterprise sideloading rights for an unlimited number of devices
for as little as $100. (See http://microsoft-news.com/you-can-buy-windows-8-1-
enterprise-sideloading-rights-for-an-unlimited-number-of-devices-for-100/ and
the volume licensing reference guide at
http://download.microsoft.com/download/9/4/3/9439A928-A0D1-44C2-A099-
26A59AE0543B/Windows_8-1_Licensing_Guide.pdf.)
Use the slmgr.vbs script for activation with the ConfigMgr client. When
managing the client with Microsoft Intune, upload the sideloading key to the
ConfigMgr console; it is enrolled during the next maintenance window.
1. Start the Group Policy Management Console (GPMC) and browse to the
GPO to which you are adding the new policy setting. Right-click the object
and select Edit.
2. Browse to Computer Configuration -> Policies -> Administrative
Templates -> Windows Components -> App Package Deployment.
Double-click Allow all trusted apps to install and modify its setting to
Enabled.
3. Close the GPMC.
Verify that the policy was applied correctly by opening the local group policy
editor on your target machine and browsing for the setting of the group policy
that you set using the GPO.
You can deploy the certificate profile to a collection containing all the devices to
which you want to deploy the application so that they receive the policy. After
the machines install the policy with the deployment, the certificate is installed
during the next scheduled compliance evaluation.
If installation fails, check the AppEnforce.log log file, located in the \Logs folder
under the ConfigMgr agent installation folder.
Host an .ipa file on the DSL and then follow these steps:
Unlike with other platforms, installing sideloaded applications for iOS requires
the user to access the web version of the company portal. The user should start
Safari and browse to https://portal.manage.microsoft.com to log in with his or
her Windows Intune account. From there, the user can choose to install the
applications that are available for installation on the iOS device.
5. Ensure that the URL in the Location field on the General page now contains
the Apple App Store location. Click Next to continue.
6. Confirm that the import was successful in the Import Information page. If it
was not, click Previous and verify that the URL in the Location field on the
General page is correct. Click Next to continue.
7. On the General Information page, modify the name, if needed. You can also
enter administrator comments and select the languages to include in this DT.
Click Next.
8. Specify requirements on the Requirements page. Click Add to open the
Create Requirement dialog. In this case, select All iOS 8 iPhone or iPod
touch devices, All iOS9 iPhone or iPod touch devices, All iOS 8 iPad
devices, and All iOS9 iPad devices as the platform on which this
application can run. You can also create a requirement for the ownership of
the device as personal or company. Click Next.
9. Review the Summary page. Click Next to create the DT.
10. On the Completion page, verify that the DT was created successfully. Click
Close to close the wizard.
6. Complete the User Experience page, which provides the standard settings
for user experience.
7. Fill out the Requirements page, which is similar to the one discussed earlier
in this chapter, in the “Creating a Windows Installer–Based Deployment
Type” section. Chapter 11 includes an in-depth look at requirements, also
known as global conditions. This optional field is blank, implying that the
installation will occur on all operating systems and platforms targeted with
the installation.
8. Click through the Dependencies, Summary, and Progress pages, which are
the same as when creating a DT for a Windows Installer–based application.
Before deploying these app packages, gather application information using the
CMAppUtil utility, available with the OS X client installation files. Output is a
.cmmac file, which must be supplied with the OS X package when importing the
DT in ConfigMgr.
Complete the following steps to create a .cmmac file for an Apple Disk Image
file you can use to install Acrobat Reader DC:
1. Confirm that the package is copied to the folder that contains the extracted
files from the macclient.dmg file used to install the ConfigMgr client.
2. Open a terminal window and navigate to that folder. Type mkdir
AcroReaderDC to create a subfolder to store the .cmmac file.
3. Execute CMAppUtil by typing ./CMAppUtil -C
/users/sysadmin/Downloads/AcroRdrDC_1501720050_MUI.dmg
-o AcroReaderDC. You now have a AcroRdrDC Installer.pkg.cmmac
file in the AcroReaderDC folder.
4. Copy the AcroRdrDC Installer.pkg.cmmac.pkg.cmmac file to the DSL.
After creating the .cmmac file, you can define the application DT for Mac OS X.
Follow these steps:
After a deployment is created, the user receives a popup indicating that new
software is available. The user can install the software or let ConfigMgr install it
at the specified deadline. Use the CCMClient.log file on that system to
troubleshoot any issues.
FIGURE 12.15 Completion page of the Create Deployment Type Wizard for a
Mac OS X package.
In order for synchronization with the Windows Store for Business to work,
Azure services must be set up and configured for the Windows Store for
Business, as described in Chapter 6, “Installing and Updating System Center
Configuration Manager.”
Summary
This chapter discussed the creation of available DTs for ConfigMgr applications
and provided extra context for the options possible when creating a DT. It
explained how to create a virtual environment in which you can specify which
App-V 5 virtual applications can interact with each other. It described how to
deploy and test apps, either provided directly or via the app stores for the
different platforms.
Chapter 13, “Creating and Managing Packages and Programs,” describes how to
create packages and programs.
CHAPTER 13
Creating and Managing Packages and
Programs
IN THIS CHAPTER
Understanding Packages and Programs
Creating a Package from a Definition File
Configuring Package Properties
Defining Program Properties
Creating Packages Using the Package and Program Wizard and for UNIX
and Linux Systems
While Microsoft prefers that you use the application model, in several scenarios,
using a package makes more sense or is the only option:
Scripts that do not install an application on a computer (such as a script to
defragment a disk drive)
One-off scripts that do not need continual monitoring
Scripts that run on a recurring schedule and cannot use global evaluation
Applications that do not have very good detection methods or that require
complex detection methods
Providing just the files to the operating system (OS) and not necessarily
having to provide a program (mainly with task sequences during OS
deployment [OSD])
This chapter, along with Chapters 11 and 12, focuses on software deployment. It
discusses some key terms associated with software deployment using packages
and programs, and it provides further detail on how to create and configure
packages and programs. Chapter 14, “Distributing and Deploying Applications
and Packages,” discusses how you can deliver a package to a device by creating
collections, using distribution points (DPs), and creating deployments.
While programs are not required, a package must contain at least one program if
it is to perform any action other than provide a pointer to source files. A
definition file provides answers to the majority of the questions required to
create a package. An MSI provided as a package definition file includes six
default programs for use with software distribution, each allowing the package to
run in different ways:
Each program specifies the command line used to run the program in the method
described. As an example, a per-system unattended installation includes a switch
to run the program without user intervention.
Because this chapter focuses on ConfigMgr packages, the next sections walk
through the steps to create a package and provide examples of the process.
Packages can come in many flavors:
Packages That Use a Definition File: You can create ConfigMgr packages
either with a definition file or without. SMS 1.x definition files used an
extension of .pdf (package definition file). With SMS 2.0, definition files
had either a .pdf or .sms (Systems Management Server) extension.
Although these two file types still exist and you can use them with
ConfigMgr to create a package, they are relatively uncommon now.
Originally, SMS used the .pdf extension; this was later changed to .sms, as
the .pdf extension was also used for portable document format files. For
information about creating .pdf and .sms definition files, see
https://technet.microsoft.com/library/bb632631.aspx.
The package definition file most commonly used by Configuration
Manager is a Windows Installer file. Windows Installer (.msi) files are
discussed in the next section, “Creating a Package from a Definition File.”
Packages That You Can Create Without a Definition File: These
packages are discussed later in this chapter, in the “Creating a Package
Using the New Package Wizard” section.
A Package That Does Not Even Need to Have Source Files as Part of the
Package: This is often used when ConfigMgr runs a program already
stored on the system.
FIGURE 13.1 Create Package from Definition Wizard Package Definition page.
2. Click Browse in the wizard and navigate to the .msi. Choose the x86
version for this example. Figure 13.2 shows the imported package definition
metadata for 7-Zip version 16.02. Click Next to continue.
The next page offers three different ways to manage source files:
This Package Does Not Contain Any Source Files: This may be
useful when ConfigMgr is running a program already stored on the
system.
Always Obtain Files from a Source Directory: This is the most
commonly used option.
FIGURE 13.2 Create Package from Definition Wizard Package Definition page
metadata.
Create a Compressed Version of the Source Files: This may be
useful when you need to decrease storage requirements or do not
expect the package to change.
3. Select the second option for this package—Always obtain files from a
source directory. Click Next. If the option you selected specifies that source
files are part of the package, the wizard verifies the location of the source
files.
4. Specify the package source location by choosing Network path or Local
folder. As a best practice, always try to use a network path. Applications (as
discussed in Chapter 11) require a Universal Naming Convention (UNC)
format of \\<servername>\ <sharename>\<filename>. A UNC path is
required if you convert a package to an application using the Package
Conversion Manager (also discussed in Chapter 11). Specify the path to the
package source installation folder. As the contents of the selected folder and
all subfolders are sent to each targeted DP, try to keep source files organized
to reduce any chance of extra files and folders being distributed with a
package. Click Next to continue.
5. Review the Summary page of the wizard, which lists the options chosen to
create the package, including the name of the package, how to handle source
files, and the location of the source directory (folder). Click Next to create
the package. The Progress page appears briefly and automatically changes to
the Completion page.
6. Review the status of this page and then click Close. Using the information
in the MSI file, the wizard creates a set of installation options for the
program, including Per-system attended, Per-system unattended, Per-system
uninstall, Per-user attended, Per-user unattended, and Per-user uninstall, as
shown in Figure 13.3.
The Programs tab (refer to Figure 13.3), displays the programs for the selected
package. Because you ran the Create Package from Definition Wizard against an
MSI file, you can see the six programs automatically created for 7-Zip.
Persist Content in the Client Cache: Persist content to ensure that the
installation source remains in the local cache (%windir%\ccmcache). Use
this option for software that may need to be rerun regularly but not require
content updates. Package source size affects the size of available cache.
Enable Binary Differential Replication: Use binary differential replication
for packages containing large files, such as the installation .wim file for
OSD. These algorithms require additional overhead for calculating which
bits need to be transferred to DPs for each file in the package source.
The default setting for this dialog is Use package properties for status MIF
matching. MIF files, which have an extension of .mif, were used in older
versions of SMS/ConfigMgr to verify whether software was correctly installed.
(For information about MIF files, see
https://technet.microsoft.com/library/bb633139.aspx.) Enable the Use these
fields for status MIF matching radio button only if you can complete the MIF
matching information, such as the MIF filename. Choosing the wrong MIF
filename (and other text box configurations in the dialog) may cause ConfigMgr
to consume the wrong MIF file and incorrectly report installation status to the
site server. If you have software that requires a MIF file to correctly report
status, consider moving to the application model, discussed in Chapter 11, so
you can include additional detection rules to determine whether software is
installed.
General
Requirements
Environment
Advanced
Windows Installer
OpsMgr Maintenance Mode
These tabs together define how the program will function. The following
sections review the content of each, using the 7-Zip package as an example.
Start In: This optional 127-character text field specifies the absolute path to
the program you are installing (such as c:\install_files\program.exe) or the
folder relative to the DP you are installing in (such as install_files). This
defaults to blank for the 7-Zip installation program.
Run: This dropdown specifies whether the program will run normal,
minimized, maximized, or hidden:
Normal: This is the default mode, and it means the program runs
based on system and program defaults.
Minimized: Running minimized shows the program only on the
taskbar during installation. The window exists on the taskbar during
the installation process; however, it is not the active window
maximized on the user’s workstation.
Maximized: Use this option when installing programs that require user
intervention. It is also good for package testing.
Hidden: This mode hides the program during installation and is
recommended for fully automated program deployments.
The 7-Zip installation program defaulted to the Normal configuration.
After Running: This dropdown selection determines what occurs after the
program completes. The options follow:
No Action Required: The 7-Zip installation program defaults to this
option, which means no restart or logoff is required for the program.
Configuration Manager Restarts Computer: This option is useful
when deploying a program that requires a reboot but the reboot is not
initiated as part of the program.
Program Controls Restart: Select this option if the program requires
a reboot and the program will perform the restart program.
Configuration Manager Logs User Off: Use this option to log off the
user after installation.
Note that both the ConfigMgr restarts computer and ConfigMgr logs
user off options take place forcefully, after a grace period. This means
that if either of these options is used, any applications running on the
clients will not have the opportunity to save their data or state.
Category: Category is a dropdown selection used to help find specific
programs in ConfigMgr when deployed to the Application Catalog. This
field defaults to blank, but you can create a new category by typing in the
text for the category’s name.
Change the program’s configuration on the General tab for the 7-Zip installation,
as follows:
The command line will run the installation silently and log to
%windir%\temp\7z1602_install.log if run using the Local System account.
For the 7-Zip program, change the properties on the Requirements tab to set the
estimated disk space to 5MB and the maximum allowed runtime (in minutes) to
15. Also, specify that this program can only run on the following platforms: All
Windows 7 (32-bit), All Windows 8 (32-bit), All Windows 8.1 (32-bit), and
All Windows 10 (32-bit). This allows the software to be installed on the
described platforms, regardless of service pack.
Only When a User Is Logged On: Select this option when the program
ConfigMgr is installing needs to have the user logged in to install.
Whether or Not a User Is Logged On: This is the most common option; it
runs the program using the Local System account (run with administrative
rights).
Only When No User Is Logged On: Selecting this option means the
installation does not occur until the user logs out of the system.
The conditions under which a program can run directly tie into the Run mode
options:
Run with User’s Rights: This option is available only if the option Only
when a user is logged on is chosen for when to run the program.
Run with Administrative Rights: This default option is available in any of
the three configurations that determine when a program can run. Choosing
this option makes a check box available that allows users to interact with
the program.
Allow Users to Interact with This Program: Use this option when the
user needs to interact with the program. This is excellent for
troubleshooting when packages are not installing correctly. When this
option is selected, the user interface is visible to the logged-in user, and the
user can interact with the program. As an example, choose this option if the
program requires the user to make a selection or click a button. If a program
runs without this option selected and the program requires user
intervention, it waits for the user interaction (which never occurs) and
eventually times out when the maximum allowed runtime occurs (defined
on the Requirements tab of the program; if undefined, the program times
out after 12 hours).
Runs with UNC Name: This default setting runs the program using the
UNC name. A client runs from the UNC path only if the deployment is
configured with the Run from Distribution Point option set. By default,
content is downloaded from a DP to the client cache and run from there
(normally %windir%\ccmcache\).
Requires Drive Letter: When this option is selected, the program requires
a mapped drive to install but allows ConfigMgr to use any available drive
letter.
Requires Specific Drive Letter (Example: Z): When this option is
selected, the program requires a specific drive letter to be mapped for
installation. (If you choose this option, an additional box is provided to
specify the letter to map.) If the drive letter is not available on the client
system, the program will not run.
Reconnect to Distribution Point at Logon: This last setting specifies that
the client will reconnect to the ConfigMgr DP when logging in to the
system. This option is available only if the program runs only when a user
is logged on, with the user’s rights, and requires either a drive letter or a
specific drive letter (such as the drive letter Z).
The available fields shown in Figure 13.11 are Windows Installer product code
and Windows Installer file. You can define these by clicking Import and
specifying the MSI file used for the program. Choosing the MSI file populates
both fields.
FIGURE 13.11 Program Windows Installer tab.
For the 7-Zip program, click Import and select the Windows Installer file used
for the installation (in this case, 7z1602.msi) and click Open. The product code
and filename are automatically populated, as shown in Figure 13.11.
The sections also discuss how to create a package and program for software that
can be deployed to UNIX or Linux systems with an installed ConfigMgr agent.
Microsoft does not support deploying ConfigMgr applications to UNIX or Linux
systems. Use packages and programs for UNIX and Linux systems to install new
software deployments, install updates for software already available, patch a
UNIX/Linux computer, or run scripts. ConfigMgr supports maintenance
windows to control execution of programs on UNIX and Linux systems.
FIGURE 13.13 Package page of the Create Package and Program Wizard.
3. On the Program Type page, select one of three options:
Standard Program: Specify a standard program used to deploy
software to a computer system.
Program for Device: Use this option for creating a package to deploy
to supported mobile devices running Windows CE.
Do Not Create a Program: Use this option with a package to access
the source files on a DP. This type of package (with no program) is
often used with OSD for running scripts, utilities, and such.
In this case, select Standard Program and click Next.
4. On the Standard Program page, enter the required information (the name
and command line) and modify any other required settings, as shown in
Figure 13.14. Click Next to continue.
5. On the Requirements page, select whether another program must run first,
any platform restrictions, estimated disk space, and maximum allowed
runtime, as shown in Figure 13.15. For this example, select All Windows 10
(32-bit) for the specified platforms and click Next.
6. Review the Summary page, and if the information looks correct, click Next,
confirm that the wizard completed successfully, and click Close.
FIGURE 13.14 Standard Program page of the Create Package and Program
Wizard.
FIGURE 13.15 Requirements page of the Create Package and Program Wizard.
Refer to the section “Creating a Package from a Definition File,” earlier in this
chapter, for information on how to view and modify properties of the package
and program. To create a new program for an existing package, right-click the
desired program and select Create Program from the context menu.
Complete the following steps to define a package and a program for the Dropbox
client version 8.4.19:
With the package and program created, you can distribute the files to DPs and
deploy the program to a custom collection containing the hosts to which you
want to install the Dropbox client.
On the Linux client, you can use the scxcm.log file to troubleshoot package
deployment issues. If installation was successful, Dropbox appears under a
submenu of Applications.
Summary
This chapter provided examples of creating packages in ConfigMgr both with
and without a package definition file. It also discussed programs and packages
and available configuration options, as well as tips for avoiding common issues
when creating packages. Chapter 14 includes additional details on deploying
packages and ConfigMgr applications to users and client systems, and it also
discusses the user experience.
CHAPTER 14
Distributing and Deploying Applications
and Packages
IN THIS CHAPTER
Creating and Managing Collections
Using Distribution Points
Deploying Applications and Packages
Understanding the End-User Experience
Monitoring and Troubleshooting
Chapter 11, “Creating and Managing Applications,” Chapter 12, “Creating and
Using Deployment Types,” and Chapter 13, “Creating and Managing Packages
and Programs,” discuss applications with deployment types (DTs) and packages
with programs; later chapters discuss software updates, mobile device
management, endpoint protection, and operating system deployment (OSD). All
these object types have at least three things in common:
Deployable: All are objects you deploy to one or more systems or users. As
you deploy, you also want to monitor the deployment’s status.
Targeted Group: To leverage any of these objects, you must target a group
of systems or users. In Configuration Manager (ConfigMgr) terminology,
these target groups are called collections.
Content Availability: Almost everything you deploy has associated content
that must be available for the ConfigMgr client to install.
Collections may also be the most dangerous object type in ConfigMgr. If you
modify the rules of a collection, you may significantly increase its number of
devices or users. If the collection has mandatory software deployments, settings
management configurations, or even OSD mandatory assignments, the ensuing
chaos and churn could quickly create a “resume-generating event.” Always use
extreme caution when modifying collection membership.
Creating a Collection
All software deployments except task sequences and software updates can be
targeted to user collections. Consider the following when targeting deployments:
Click Next to display resources that meet the criteria and then select one or more
devices in the Select Resources page. Complete the wizard, and the collection
membership appears in the console. You may have to refresh the view to see the
new members.
Importing a query copies the query statement to the collection. This means the
statement in the collection is not linked to the query rule. If you later modify the
query rule (in the query), the query rule for the collection does not change. The
example in this section walks through the process of creating a rule for all
systems that have 7-Zip installed. Follow these steps:
1. Enter a query rule name and select Edit Query Statement to modify the
default query.
2. On the Query Rule Properties dialog, select Criteria and click the starburst
icon to create a new rule.
3. In the Criterion Properties dialog, select Simple value as the criterion type
and click Select.
4. In the Select Attributes dialog, choose Add/Remove Programs for the
attribute class and Display Name as the attribute. Click OK.
5. Back in the Criterion Properties dialog, change the Operator dropdown to is
like.
6. For Value, enter 7-Zip%, as shown in Figure 14.1. Click OK.
If you have x64 systems, you may need to create an additional query-based rule,
depending on whether the application has a native 64-bit installation or uses x86
installation files. For this example, create a second query rule but select
Installed Applications (64) for the attribute class.
After saving the rule, the Query Statement Properties dialog displays both rules
with an AND join. Select the AND join and press &| (the second icon from the
right) to change it to an OR. You can also see additional actions and parameters
you can add to the query criterion. For example, in addition to switching And to
Or, you can group using parentheses or change to a Not query.
Using Include and Exclude Rules
ConfigMgr allows you to use include and exclude rules:
Updating Collections
Collections can have membership rules updated as full, manual, incremental, or
cascading. Consider this when designing a collection structure, as the rules can
negatively impact performance. The next sections discuss these updates.
SMS_G_System_CollectedFile
SMS_G_System_LastSoftwareScan
SMS_G_System_AppClientState
SMS_G_System_DCMDeploymentState
SMS_G_System_DCMDeploymentErrorAssetDetails
SMS_G_System_DCMDeploymentCompliantAssetDetails
SMS_G_System_DCMDeploymentNonCompliantAssetDetails
SMS_G_User_DCMDeploymentCompliantAssetDetails (for
collections of users only)
SMS_G_User_DCMDeploymentNonCompliantAssetDetails (for
collections of users only)
SMS_G_System_SoftwareUsageData
SMS_G_System_CI_ComplianceState
SMS_G_System_EndpointProtectionStatus
SMS_GH_System_*
SMS_GEH_System_*
If you need to use any of these classes, configure the full collection membership
update to occur on an interval that meets your requirements.
Cascading Updates
When a collection is updated, any collections with incremental updates enabled
specifying that collection as a limiting collection are automatically reevaluated,
and any collection using that collection as its limiting collection is reevaluated as
well.
General Tab: View and modify the name and comment for the collection
and modify its limiting collection. You can enable the All devices are part
of the same server group option; for information about configuring this
option, see Chapter 15, “Managing Software Updates.” The tab also shows
when the collection was last updated, when the last update occurred, and its
Collection ID.
Membership Rules Tab: Edit or delete membership rules. You can also
enable incremental updates and configure the collection update schedule, as
discussed in the previous section.
Power Management Tab: Specify or modify power management settings.
Chapter 9, “Client Management,” discusses the options.
Deployments Tab: View deployments assigned to this collection. If many
deployments are targeted to the collection, filter as desired.
Maintenance Windows Tab: View and modify existing maintenance
windows and create new windows. The next section discusses configuring
maintenance windows.
Collection Variables Tab: Define collection variables. Chapter 22,
“Operating System Deployment,” discusses collection variables.
Distribution Point Groups Tab: View the associated DP and add
distribution point groups to the collection. See the “Associating Collections
with Distribution Point Groups” section, later in this chapter, for
information about associating collections with distribution point groups.
Security Tab: View current administrative users with permissions on the
collection. Chapter 23, “Security and Delegation in Configuration
Manager,” discusses setting security permissions on collections.
Alerts Tab: View and add alert thresholds set for endpoint protection (see
Chapter 19, “Endpoint Protection”).
Name: Provide a name for the schedule; the authors recommend including
the purpose of the schedule in the name (for example, 01:00 - 04:00 -
Weekly – every 1 weeks - Sunday - All Deployments).
Time: Specify when the maintenance window should be effective by
providing a start and end time. You can also enable the option to use
Coordinated Universal Time (UTC).
Recurrence Pattern: Configure the recurrence pattern of the maintenance
window. By default, this is weekly every 1 week on Sunday, but can be
modified to the following:
None: There is no recurrence; the maintenance window applies only
once.
Monthly: The monthly recurrence is 1 month by default and set to
between 1 and 12 months. You can also configure the day of the
month. This can be a specific day, the last day of the month, or the
first, second, third, fourth, or last Sunday through Saturday.
Weekly: The weekly recurrence is 1 week by default and set between 1
and 4 weeks. You can configure the day it should occur.
Daily: The daily recurrence is 1 day by default. This can be set
between 1 and 31 days.
Apply This Schedule To: Set to All Deployments by default but can be
modified to Software Updates or Task Sequences.
The following sections walk through the process of creating DPs and DP groups,
sending content to DPs, monitoring DP status, advanced configuration, and
troubleshooting.
Distributing Content
After importing content on a definitive software library (DSL) into ConfigMgr,
distribute it to DPs to make it available for clients. Content can be sent to DP
groups or individual DPs. After it is sent, it can be validated on a regular
schedule on the DPs to verify that it is still the same as its source. When content
is updated, it must also be updated on the DPs.
1. Navigate to the desired object (multi-select if desired), select it, and choose
Distribute Content from the ribbon bar.
2. On the General page of the Distribute Content Wizard, enable the Detect
associated content dependencies check box near the bottom of the page if the
object has associated dependencies (such as dependent applications,
programs configured to run another program first, and so on).
3. On the Content Distribution page, click Add and choose an option:
Collections: Use this option to select a collection associated with a DP
group. Note that you will only see collections associated with the
group. Collections associated with DP groups automatically deploy
content to those groups when targeted with a deployment, as
demonstrated in the “Deploying Applications and Packages” section,
later in this chapter.
Distribution Point: Choose this option to selectively choose one or
more DPs. Leverage DP groups when possible.
Distribution Point Group: Use this option to choose one or more DP
groups. If you later add a DP to an existing DP group, all content
distributed to that group is automatically distributed to the new DP.
4. Click Next on the remaining pages of the wizard to view summary and
progress information.
Note that you can add new DPs for a task sequence (TS), which sends all task
sequence–associated content to the DP.
A DP can be in multiple DP groups. You may have a DP group called All DPs,
which distributes content to all your DPs; and you may also have a group called
All Europe DPs, which contains a subset of DPs for Europe. You could add a
scope for each DP group to allow the Europe Admins security group to send
content only to the All Europe DPs group.
To associate a DP, view properties for the desired collection and select the
Distribution Point Groups tab. Click Add and choose the DPs you want to
associate to the collection.
You can also view the properties of a DP from the Administration workspace and
manage associations on the Group Relationship tab.
Refreshing and Removing Content on Distribution Points
You should not need to refresh content often in ConfigMgr, unless you receive a
status message error about a hash value check failure (discussed in the
“Validating Content” section, later in this chapter). To refresh, view the package
properties, select Content Locations, highlight the desired DP, and click
Redistribute.
To remove content from multiple DPs, you must follow this process to remove
each DP, one at a time. If you deployed content to a DP group, choose the
desired DP group and click Remove to remove the content from all DPs targeted
through the DP group.
Validating Content
As Chapter 6 mentions, you can enable content validation on a weekly or daily
basis or at multiple intervals. Content is validated by enumerating all content
that should be on the DP, performing a hash check for each item on each
required file, and comparing that with what is stored in ConfigMgr.
The information is reported to the site server as pass or fail. ConfigMgr only
reports the data; there is no built-in method to automate the process to attempt to
re-send to DPs or to revalidate. The time you configure for content validation is
local to the site server; if your primary server is in Chicago, and you configure
content validation for a server in Bangalore to be every day at 6:00 PM, that time
is local to Chicago, so the actual run time is at 5:30 AM each day in Bangalore
(due to the 12.5-hour time difference). The task is configured as a scheduled task
on the DP, and modification of that task should occur from the primary site
server through the Content Validation dialog.
You can update DPs for the following types of objects: packages, DTs, driver
packages, OS images, OS installers, and boot images. You cannot update DPs
from any properties of an application, as the content source is defined on the DT.
You can add DPs for an application. When you need to update a DP, choose the
desired DT and click Update Content.
Schedule Tab: Select a time period and specify its availability settings:
Open for All Priorities: Data is sent to the DP without restrictions.
Allow Medium and High Priority: Only medium-priority and high-
priority data is sent to the DP.
Allow High Priority Only: Only high-priority data is sent.
Closed: ConfigMgr does not send any data to the DP.
Rate Limits Tab: Configure rate limits as follows:
Unlimited When Sending to This Destination: Send content to the
DP without rate limit restrictions.
Pulse Mode: Specify the size of the data blocks sent to the DP. You
can specify a time delay between blocks; use this when sending data
across a low-bandwidth network connection.
Limited to Specified Maximum Transfer Rates by Hour: Use this
option to have a site send data to a DP using only the configured
percentage of time. ConfigMgr will divide the time it can send data; it
does not identify the network’s available bandwidth. Data is sent for a
short block of time, followed by blocks of time when no data is sent. If
the maximum rate is set to 50%, ConfigMgr will transmit data for a
period of time followed by an equal period of time when no data is
sent. The actual amount of data or size of the data block is not
managed; only the amount of time is managed.
When you create a primary or secondary site, file replication routes are created
automatically. A route specifies how data is transferred between sites. Configure
routes by navigating to Administration -> Hierarchy Configuration -> File
Replication. If your hierarchy contains a CAS with primary sites and/or
secondary sites, file replication routes should already be available. To create new
file replication routes—say to optimize traffic flowing between a CAS and a
secondary site behind a primary site—create a direct file replication route
between the CAS and the secondary site.
Open file replication route properties to configure the file replication account,
which by default is the computer account of the sending site server. You can also
specify the schedule and rate limits used, which is similar to the schedule and
rate limit settings on a DP, described in the previous section.
See Chapter 5 for more information about file replication routes, configuring the
number of threads, and retry settings.
As with DP status, View Status lets you drill down to identify issues.
FIGURE 14.5 Distribution point group status.
Using either cache type or combining both is particularly helpful when you have
multiple systems in a remote office without a DP. Enabling BranchCache or Peer
Cache reduces the number of systems crossing the WAN link to download
source content.
Say you have packaged all MUI language packs for Windows 7. Rather than
distribute all European language MUIs to a Cleveland DP (where it is unlikely
most of them would be needed), distribute the content to the parent site of the
Cleveland DP and enable the check box Distribute the content for this
package to preferred distribution points. When this option is enabled, if a
client requests content and the content is not available in the boundaries of a DP,
ConfigMgr distributes the content to the DP to make it available locally for all
managed systems. If you configured the application to allow fallback to a remote
DP, this takes precedence over the setting Distribute the content for this package
to preferred distribution points.
Using Content
You can reuse content in other ConfigMgr environments by exporting it from
one ConfigMgr environment and importing into another. You can also export
content for backup purposes.
1. Select one or more package objects and choose Export from the ribbon bar
to start the Export Application Wizard.
2. On the General page, enter a file path for where to store the exported
content. Enter the file extension .zip, as shown in Figure 14.6.
FIGURE 14.6 Export Content example.
Following is a brief description of the other options in Figure 14.6:
Export All Application Dependencies, Supersedence Relationships,
and Conditions and Virtual Environments: When this option is
selected, the export includes all dependence and supersedence
information, global conditions, and defined virtual environments for
Application Virtualization. For packages, this includes packages
referenced with the Run another program first option. For task
sequences, it includes all packages, applications, driver packages, and
more referenced in a TS (that is, all objects that appear under the
References area for a TS). If this check box is not enabled, you only
export the selected object.
Export All Content for the Selected Applications and
Dependencies: This is specific to source files that are referenced by an
object. Enabling this check box may significantly increase the size of
the exported content.
3. Review the information on the Review Related Objects page and step
through the rest of the wizard to completion.
1. Select an object node and select Import (or Import Application, depending
on your location) from the ribbon bar.
2. Select the UNC path to the exported content (for example, \\<servername>\
<sharename>\myExportedApps.zip).
3. Review the File Content page. If some content was previously imported,
there may be additional options to skip or overwrite.
4. Complete the wizard.
Figure 14.7 displays the following package settings available for configuring
how prestaged content will be managed:
1. Select one or more package objects and choose Create Prestaged Content
File from the ribbon bar to start the Create Prestaged Content File Wizard.
2. On the General page, choose a path to store the compressed content, enable
the check box to export all dependencies if desired, and add any additional
administrator comments.
3. Review the Content page and confirm that the content you want to prestage
is listed. If you need to add or remove content, cancel the wizard and return
to step 1. If the content you want prestaged is selected, click Next.
4. On the Content Locations page, click Add and choose one or more DPs to
use as the source for the prestaged content process, shown in Figure 14.8.
Select DPs on your local network if possible.
FIGURE 14.8 Create Prestaged Content File Wizard.
Figure 14.8 shows Charon.odyssey.com, which has two of the three desired
packages available, and Athena.odyssey.com, which has all three packages.
The Charon DP is first in priority, so all content that is available from
Charon is collected first, and Athena is used as needed. Click Next.
5. Review the Summary page and continue the wizard to completion.
To successfully import prestaged content, first target the desired DPs with the
package, using one of the prestaged content settings for the package.
After sending content to the DPs, you will see status messages (under
Monitoring -> Distribution Status -> Content Status) that state the DP is waiting
for prestaged content. Transport the prestaged content to the desired location by
using a simple file copy over the WAN or copy the prestaged content to media
and ship it to the remote location. Follow these steps on the DP to import
prestaged content:
extractcontent.exe /p:c:\temp\mycontent.pkgx /i
1. Navigate to Administration -> Site Configuration -> Sites and select the
site you want to configure.
2. Select Properties from the ribbon bar to open the Site properties. Select the
Deployment Verification tab, shown in Figure 14.10.
3. On the Deployment Verification tab, set the following:
Default Size: The default size is, by default, set to 100. Modify it to
anything between 1 and 1,000,000 to hide collections with
memberships that exceed the default size. When 0 is specified, the
setting is ignored, meaning all collections are visible.
Maximum Size: Modify the maximum size to specify collections that
are hidden if they have more members than the maximum size. This
option is set to 0 by default, which means it is turned off. The setting
can be from 1 to 1,000,000. The value of this setting must be 0 or more
than the Default size setting.
Collections with Site System Servers: Specify how collections
containing site system servers should be treated. You can block these
collections, causing the deployment to not be created, or choose to
warn, meaning a verification is required before the deployment is
created.
After modifying these settings, click OK to apply your changes and close the
Site Properties dialog.
FIGURE 14.10 Deployment Verification tab of Site properties.
Simulating Deployments
ConfigMgr allows you to simulate an application deployment. This helps you
determine the number of systems that will run each DT. In a simulated
deployment, clients download and evaluate policy and return state messages.
This view also shows packages, applications, software updates, and OSD task
sequences. You can search, hide optional software, and use the Show dropdown
to filter to show only OSD, applications (including packages), or software
updates. The user selects the desired application and clicks Install to start
installation. The Status column shows the status, such as downloading,
installing, installed, and so on. Virtually all information on this page is
searchable, and if a help document exists for an application, you can link to it
directly from here.
The user can also view the Installed Software tab to review installed
applications. The Options tab, shown in Figure 14.15, lets the user specify when
to install software. The user can specify work hours in the Work information
section and enable the check box Automatically install or uninstall required
software and restart the computer outside of the specified business hours. If
this option is enabled, required software with a deadline in the future
automatically installs at the next available user-defined window instead of
waiting for the deadline, which could cause the installation to occur at a time
that is not so convenient for the user. If the user configured a local business
hours installation window for 10:00 PM tonight, and the deadline is 5:00 PM
today, the software runs at the deadline instead of waiting for the window.
FIGURE 14.15 Options tab in the old Software Center.
This figure shows that the 7-Zip installation requires approval. If you select the
7-Zip application, the Install button in the bottom frame changes to Request.
Clicking Request changes the view to allow the user to enter a reason for
requesting the software, as shown in Figure 14.17.
After submitting the request, the user can select the My Application Requests tab
to view its status. When a request is submitted, the ConfigMgr administrator (or
a delegated authority) can navigate to the Software Library -> Overview ->
Application Management -> Approval Requests node in the ConfigMgr
console and approve the request. If it is approved, the user can install the
software on any device, based on the application’s requirements.
If the user ignores the notification, it reappears, depending on the specified and
active Computer Agent client settings specific to that workstation. An icon also
stays active in the system tray. If the user clicks the notification or the View
Required Software message from the system tray icon, a Software Center
window opens, as shown in Figure 14.22. The user can click the View details
hyperlink to open the Software Center for more detail regarding the application
or package to be installed. The user can also initiate the installation from
Software Center. In addition to viewing details, the user can use the following
options to control installation behavior:
The last option the user can specify is whether the software installation is
allowed to restart the computer automatically, if needed.
FIGURE 14.22 Software Center installation options.
Depending on the error level returned by the installation, the computer may need
to be restarted or the user may have to log off to complete installation. In this
case, the computer is either rebooted directly (if the option to reboot the
computer automatically is selected) or rebooted depending on the specified
Device Client Settings for Computer Restart active on the workstation. The user
is also notified with a dialog box to reboot the computer to complete installation.
The information in Figure 14.26 summarizes the deployment status. In one view,
you can see the content status (to confirm that content is on the DPs),
deployment status, and created and modified dates for the software. The links
under Related Objects take you quickly to other areas of the console that you
may need for troubleshooting.
Click the Deployment Types tab at the bottom to see the status of each DT if the
deployment is for an application. Back on the Summary page, click View Status
in the Completion Statistics section. A Deployment Status page appears, as
shown in Figure 14.27. This page provides a considerable amount of detail. The
top-right corner shows the summarization time. If the view is open a long time,
click Refresh to see if an update summarization occurred. If not, click Run
Summarization to trigger summarization for this deployment across your
hierarchy.
Success: The installation returned a success exit code; for applications, the
deployment state is reevaluated on an interval (by default seven days), so
you may see many Already Compliant messages under Success.
In Progress: The installation is currently in progress: downloading, waiting
for a maintenance window, or installing.
Error: An error occurred during the installation, which could be a failure
exit code or a fatal error from the installer.
Requirements Not Met: The installation was evaluated against the system
and determined that the target system does not meet the platform
requirement or the DT requirements.
Summary
This chapter focused on collections, content, deployment, and deployment
monitoring. While the previous three chapters discussed ConfigMgr applications
and packages, this chapter discussed creating a collection, distributing content,
and deploying software. It also described the end-user experience, with both the
old and new Software Center applications. The chapter discussed monitoring
deployment status, and simulating application deployment.
IN THIS CHAPTER
What’s New with Software Updates in ConfigMgr Current Branch
Creating Your Update Design
Planning for Software Updates
Configuring Components
Creating and Deploying Updates
Understanding Windows 10 Servicing
Client Experience
Troubleshooting Software Updates
Using the System Center Update Publisher
As you move forward with Windows 10 and Office 365, new software updates
features can help improve your overall ConfigMgr experience. This chapter
explains how software updates work and how to configure and use this feature to
help your overall patching needs.
Based on the information in this section, as well as other factors unique to your
own organization or environment, consider developing a patch strategy and
policy document that includes items such as a time line, a rollback process, and
testing procedures. Update it monthly to indicate what patches are in scope and
distribute it as part of your notification process.
Capacity Planning
Capacity planning is one of the most important items to consider when starting
the planning process. You need to know how many systems to patch to
determine how much infrastructure you need; too little leads to major issues with
performance and customer experience, and too much means capital assets are not
fully used—which could mean wasted money. Capacity planning can be broken
into two items:
SUP Lists
When multiple SUPs are installed in the same site, the client gets a list of these
SUPs when it receives a policy to enable the software updates agent or when it
cannot contact the SUP it has been using. The client randomly selects a SUP
from the list. Priority is given to SUPs that are in the same forest as the client.
The list of SUPs provided to the client is also dependent on the type of client
requesting the list:
Intranet-Based Clients: These clients receive a list of SUPs configured to
allow only connections from the intranet or connections from both intranet
and Internet clients.
Internet-Based Clients: These clients receive a list of SUPs configured to
allow only connections from the Internet or from both intranet and Internet
clients.
SUP Failover
The client receives a list of all the SUPs in the site and randomly chooses a SUP
to use for scan data. It continues to use this same SUP until it cannot connect to
the SUP and the scan fails. Once this happens, the client goes into a retry mode
and performs the following steps:
1. When the first scan fails, the client retries in 30 minutes, using the same
SUP.
2. If the failure reoccurs, the client tries again four times, with a 30-minute
time-out after each retry.
3. After the fourth failure, the client waits an additional two minutes and then
tries the next SUP in the SUP list.
4. When the client is successful with the next SUP in the list, that becomes the
SUP the client will always use. If connecting to the next SUP in the list fails,
the client starts over with step 1.
If there are problems with the active SUP or you need to take that SUP down for
maintenance, you can manually fail over the clients to a new SUP, as long as the
clients already know that there are multiple SUPs in the site. Navigate in the
ConfigMgr console to Assets and Compliance -> Overview -> Device
collections and select the collection for which you want to switch SUPs. On the
ribbon bar, click Client Notification and select Switch to next Software
Update Point. This creates a client notification item sent to the client via the fast
channel, telling the client to pick a new SUP from its SUP list.
Switching to a new SUP has a cost, as the SUP’s failover design is different from
that of DPs or management points (MPs), which affects client and network
performance. The client will see an increased size in the catalog when switching,
resulting in some performance issues with the network, the client, and the new
SUP. This is why when a client successfully scans against a SUP, it preserves
that affinity. Take care when failing over clients to a new SUP to avoid causing
undue network or client issues.
WSUS can support up to 25,000 clients if the WSUS server is colocated on the
ConfigMgr server. If you need to support a larger number of clients, the authors
recommend installing WSUS on a dedicated server. If needed, 150,000 clients
can be supported when the SUP is installed on a remote system that meets
WSUS requirements to support this number of clients. Rather than using a large
single dedicated system, the authors recommend installing multiple WSUS/SUP
servers to offset the number of clients reporting to each server.
get-WindowsFeature update*
Because WID is a default entry, you do not have specify it on the command
line.
To use SQL Server as your database, use this command:
Click here to view code image
Once the installation is complete, you must run the post-installation tasks.
Make sure you are in the %ProgramFiles%\Update Services\Tools folder.
Assuming that you are still in PowerShell, run one of the following
commands:
If you installed WSUS with the WID, run this command:
Click here to view code image
Both examples assume that you are using C:\WSUS as the folder to store the
WSUS content; change the drive letter and folder as needed. The SQL Server
example shows the machine name and assumes the default instance; if using a
named instance, change it to <machine name\instance name>.
If WSUS is installed on Windows Server 2012 R2, you must apply hotfixes for
WSUS to support Windows 10 and Windows Server 2016. Apply these updates
before your first sync with Microsoft Updates:
Configuring Components
With WSUS installed and ConfigMgr running, the next step is to prepare
ConfigMgr and your Windows infrastructure for software updates functionality.
While it is relatively straightforward to install and configure a SUP, this is where
all your research and knowledge about your organization will help as you make
decisions on the items that need to be updated and what the update schedule
should look like.
The configuration process is not difficult, but it has many steps, and it is easy to
get confused. With this in mind, the authors have broken down the process in
two parts:
SUPs should be installed in a top-down fashion, meaning that you start at the
CAS, if one exists, and then move to primary sites and then secondary sites, if
needed. When installing a SUP, you configure it as part of the installation
process; you can edit the configuration after the SUP is installed. To begin
installation, navigate in the ConfigMgr console to Administration -> Overview
-> Site Configuration -> Servers and Site System Roles. Locate the server you
want to use as your SUP and select Add Site System Roles from the ribbon bar
or from the right-click context menu to launch the Add Site System Roles
Wizard. If the server is not listed, add it to ConfigMgr by choosing Create Site
System Server from the ribbon bar.
The General page of the Add Site System Roles Wizard includes the following
selections, displayed in Figure 15.2:
Specify an FQDN for This Site System for Use on the Internet: Check
this box if this SUP will be used in a DMZ. This allows you to enter the
FQDN to be published to the Internet DNS servers. The client obtains this
name when it downloads policy and will try to connect to it when it is an
Internet-based client (IBC).
Require the Site Server to Initiate Connections to This System: By
default, site systems initiate connections to the site server to transfer data,
which can be a security risk when the connection is initiated from an
untrusted network to the trusted network. Check this box when site systems
accept connections from the Internet or reside in an untrusted forest so all
connections are initiated from the trusted network after installing the site
system and any site system roles.
Site System Installation Account: The default option here is to use the site
server’s local system account to connect to the remote system to begin
installation. If the destination server is in an untrusted forest or if the local
system account does not have permissions to access the server, add an
account for ConfigMgr to use. Ensure that this account has full
administrative permissions on the remote machine.
FIGURE 15.2 General Page of the Add Site System Roles Wizard.
Many organizations use a proxy server to control Internet access. The Proxy
page of the wizard is where you enter the server name and port number that the
proxy server uses. If your organization goes the extra mile and secures access to
the proxy server with an account, that information must be entered at bottom of
this page also, with the account name in the form domain\username, as well as
the password. The authors recommend using a separate service account and
following the rules of least privilege.
On the System Role Selection page of the wizard, select Software Update Point
to add several subpages to the wizard. Figure 15.3 shows those subpages, and the
next sections describe these subpages in detail.
FIGURE 15.3 Subpages of the Add Site System Roles Wizard.
At the bottom of the page, determine what WSUS reporting events to view.
These are status messages the WUA creates on the client system to tell WSUS
the results of the scan it has run. ConfigMgr does not use these messages; they
are only visible inside the WSUS administration console. Your choices follow:
The authors recommend keeping the default setting: Do not create WSUS
reporting events, as this reduces overhead at the client.
Simple Schedule: The simple schedule allows you to set how often the
synchronization runs, in days and hours. The recurrence pattern is set to the
number you choose, such as every 7 days.
Custom Schedule: A custom schedule allows you to choose exactly—down
to the day, hour, and minute—when the synchronization runs, as well as the
recurrence pattern.
Alert When Synchronization Fails on Any Site in the Hierarchy: This
option allows an alert to be created when the SUP synchronization fails.
When it is enabled, this option is for all SUPs in the hierarchy. The alert can
be seen in the console under Monitoring -> Alerts.
Classifications Page
As you might imagine, the overall number of updates for the entire line of
products and operating systems is overwhelming. To help manage this massive
number of updates, Microsoft divides updates by classifications. The Classifying
Updates page allows you to select the type of classifications for which you want
updates. There are nine different classifications to choose from, with Security
Updates turned on by default:
When you sync with Microsoft Updates, the classifications are checked to see if
they have any new updates. It is a best practice to clear all classifications before
synchronizing software updates the first time; once the sync finishes, select the
classifications from the properties of the SUP and then re-initiate the sync.
You see this Classifications page of the wizard only when you configure the first
SUP at the site, and it is not available if you install additional SUPs. You can
change any setting by choosing the properties of the first SUP in the site.
Products Page
The Products page contains the list of products for which you can download
related metadata. As the list is very large and an organization may not need all of
the updates, Microsoft has broken the list into two types, allowing you to be
more selective in the types of products you need updates for:
Product Families: This is an option for when you need the updates for
everything in the entire family, such as Office. Instead of drilling down and
choosing Office 2013, you would check the top box, and all Office products
would be checked.
Products: This is a specific edition of an OS or product. An example of this
would be choosing only the Windows 10 product out of the Windows
product family.
Figure 15.4 shows the product families and products, with the Office product
family checked and only the Windows 10 product checked in the Windows
product family.
Product settings can only be configured at the top-level site. Once the changes
are made, the software updates metadata is replicated to all child-level sites.
Realize that the more products you sync, the longer the sync with Microsoft
Updates takes; there is also a performance hit on the client side, as it takes longer
to scan the catalog when more products are in it. The authors recommend
selecting only products that are active in your organization.
Languages Page
The Languages page is the last configurable page of the wizard. This page
allows you to choose the languages you want the software updates to appear in.
There are two choices to select:
Software Update File: This item allows you to select the different
languages for which you want the software update files to be downloaded.
For each language you select, one or more software update files are
downloaded. For example, if you select English, French, and Spanish, then
for every software update you want to deploy, ConfigMgr will download
the corresponding configured language versions of the software update file.
Take care when selecting the languages, as your software update
deployment package could be very large. The authors recommend that you
select only the languages most often used in your organization. During the
download process, you have the option of modifying the number of
languages you want to download; this is an option you need to configure for
each download.
Summary Details: This option allows you to download the software
updates metadata in the selected languages you choose. The metadata
consists of items such as the name, description, products that the update
supports, update classification, article ID, applicability rules, and so on.
Because this is metadata, and metadata is replicated to other sites, this
option is available only at the top-level site. The authors recommend
selecting only the languages most common in your organization, as the
more languages that you select, the longer synchronization with Microsoft
Updates takes.
WCM.log: This log file is for the SMS WSUS Configuration Manager,
which is responsible for connecting to WSUS and configuring it according
to the settings selected in the SUP properties. In this log, you are looking
for items like the following:
Click here to view code image
WSUSCtrl.log: This log file is for the SMS WSUS Control Manager,
which is responsible for connecting to the WSUS server and verifying that
connectivity is working correctly and that WSUS is running with the
supported version. In this log file, you are looking for things like the
following:
Click here to view code image
Checking for supported version of WSUS (min WSUS 3.0 SP2 + KB2720211
+ KB2734608)
Supported WSUS version found
Successfully connected to local WSUS server
There are no unhealthy WSUS Server components on WSUS Server
Armada.Odyssey.com
Wsyncmgr.log: This log file is for the SMS WSUS Sync Manager. This
component is responsible for communicating with WSUS and telling it to
sync with Microsoft Updates. When that finishes, it syncs with the WSUS
database. In this log, you are looking for items like the following:
Click here to view code image
Synchronizing WSUS server armada.odyssey.com ...
sync: Starting WSUS synchronization
sync: WSUS synchronizing categories
sync: WSUS synchronizing updates
Done synchronizing WSUS Server armada.odyssey.com
Synchronizing SMS database with WSUS server Armada.Odyssey.com
Sync succeeded
Sync failed: WSUS update source not found on site CAS. Please refer to
WCM.log for configuration error details. Source: getSiteUpdateSource
This error is caused by a timing issue. Before you can sync updates, WCM
must connect to the WSUS server and configure it. This issue will fix itself
over time, with the retry in 60 minutes.
Several settings in the Default Settings dialog affect how software updates work:
Figure 15.6 shows the settings possible for Specify intranet Microsoft update
service location. This group policy object (GPO) allows you to set the internal
location of the WSUS server clients will use to scan against and from where they
will download updates. If this GPO is being applied to an organizational unit
(OU) that contains ConfigMgr clients, the GPO must be set to either Not
Configured or Disabled; both settings turn off this GPO.
FIGURE 15.6 GPO setting for Specify intranet Microsoft update service
location.
ConfigMgr creates a local group policy setting for the client to point to the
ConfigMgr SUP with the WSUS server installed. A domain-based GPO
overrides the local group policy setting and causes the ConfigMgr client to show
this message in its WUAHandler.log file: Group policy settings were
overwritten by a higher authority (Domain Controller).
The domain GPO causes software updates to fail on the client. If this GPO was
enabled, once it is disabled, make sure the clients refresh their domain policy to
remove the GPO before retrying software updates.
Figure 15.7 shows the GPO settings for the Windows Update Agent.
Settings in this GPO affect how the WUA works on the client and effectively
control how it automatically handles updates, downloads, and installation of
those updates. The keyword in the previous sentence is automatically; with
ConfigMgr, the WUA should not do anything automatically, as the WSUS server
itself does not have any updates for the clients; all updates are delivered via the
content distribution mechanism in ConfigMgr and not WSUS. When a
ConfigMgr client wants to do anything related to software updates, it directly
controls the WUA to achieve the desired result; this includes update scans,
reevaluations, and installation.
The authors recommend setting this GPO to Disabled. In the past, doing this was
a problem because it caused an issue with updates to the WUA itself. Those
updates were picked up by WSUS; however, since they were part of the
Infrastructure Updates class, they were automatically set to approved
in WSUS, causing them to be pushed out to all the clients as they connected to
the WSUS server. To work around this issue, Microsoft now includes WUA
updates in the WSUS catalog, so when ConfigMgr syncs with WSUS, the
updates appear in ConfigMgr to be deployed to your clients.
Note that setting this GPO to Disabled doesn’t actually disable the WUA service.
It does disable all of the automatic functionality of the WUA, including
scanning. This means the WUA is not automatically installing any updates or
causing any issues with ConfigMgr; the service is there and running when
needed but not doing anything until ConfigMgr tells it to through the
WUAHandler component.
You may have noticed in Figure 15.8 that some of the updates show different
icons. The icons indicate the status of the update. There can be several different
statuses for the updates. Table 15.1 lists the different colors of icons and their
meanings.
Table 15.1 is also valid for software update groups and deployment packages.
Figure 15.8 shows an extra column added. It is very useful in troubleshooting to
add columns to the display. In this case, Unique Update ID is added. In the client
logs, updates are referenced by this ID. Add columns by right-clicking a column
name, which causes a long list of additional column names to appear; just pick
the one you want.
Software Update Details: This tab displays information about the update,
such as its bulletin ID, article ID, revision date, maximum severity rating,
description, and application languages, as well as the affected products.
Maximum Run Time: This is a value of time in minutes that the update
installation is allowed to run. This number is different for each update;
Windows 10 updates are typically 30 minutes, and other OS versions
typically run 10 minutes. When using maintenance windows, this value is
used to calculate whether there is enough time to install the update within
the time remaining in the window.
Custom Severity: You can set the custom severity of an update to one of
five values, whose meanings you and your organization can define.
ConfigMgr does not use these values in any way, but you can use them for
filtering purposes:
None
Low
Moderate
Important
Critical
Content Information: This read-only tab contains information about the
actual update file(s), whether it is downloaded, the size of the update (in
megabytes), and the URL from which to download. Normally, ConfigMgr
handles the download of the files listed in this tab; however, you can
reference this tab if you find you need to review the location ConfigMgr is
using or wish to download the file yourself. If you select a line in this list
box and press Ctrl+C, the entire line is copied to the Windows Clipboard,
and you can then paste it into Notepad to extract the URL.
Custom Bundle Information: Bundles are groups of updates that are
installed together, normally because they are tightly related or have
interdependencies. If an update is part of a bundle, that bundle information
is listed here.
Supersedence Information: This tab lists any updates that this update
supersedes or any updates superseding it. When there are multiple versions
of an update, this tab is a good source of information for the latest version
of the update.
You can select multiple updates to modify either their maximum runtime or
custom severity at one time.
Sort the list of updates by clicking on any displayed header. You can also filter
the list of updates to display only those you are interested in working with or
examining. The first filtering technique is a simple text search: To evaluate and
filter content from any displayed column that contains text, type in the word or
phrase you want to search for in the Search box above the update list’s header
and click Search. Note that columns such as Required that contain counts,
Downloaded that contain Boolean values, and Date released that contain dates
are not considered to contain text and thus are not evaluated by the simple text
search functionality. To clear the filter, click the X next to Search.
You can create advanced filters by combining multiple criteria and columns
using Add Criteria to the right of Search. This drops down a list where you can
select the categories on which you want to filter the list; select the categories and
click Add to add an advanced filter section underneath the Search input box,
where you can define the values for which to search. You can add criteria to the
filter by selecting Add Criteria from the Search section of the ribbon bar.
Even with advanced filters, you may find that there are so many software
updates that you can get lost looking for something. Consider using subfolders
of the All Software Updates node to organize your updates. Create and manage
these subfolders by using the Folder tab on the ribbon bar or by right-clicking
the All Software Updates node. You can apply filters to any subfolder. You must
manually move updates into the subfolders you create. One popular method of
using the subfolders is to create one for each year and under the yearly subfolder
create each month, then add the month’s updates into those subfolders. There are
several methods for organizing software updates, but filters remain one of the
best choices; they are dynamic, persistent, easily modified, and self-defining.
Both filters and subfolders are part of the global data replicated to all sites in a
hierarchy, making them available at every site.
SUGs do not contain actual updates; a SUG contains a reference or pointer to the
update. You cannot deploy updates to clients without a SUG. When software
updates are deployed to a collection of clients, the list of software updates in the
SUG is sent to the client in the form of a client policy authorization list.
Create SUGs by selecting updates from the All Software Updates node or one of
its subfolders. Use filters to help narrow down the updates you want to include.
After selecting the updates, choose Create Software Update Group from the
right-click context menu or from the Home tab of the ribbon bar to launch the
Create Software Update Group dialog box. In this dialog, shown in Figure 15.9,
enter the name and description for the new SUG. New SUGs appear under the
Software Update Groups node in the navigation tree of the console.
If a SUG already exists and you want to add or remove software updates from
the group, select the updates and choose Edit Membership from the right-click
context menu or from the Home tab of the ribbon bar to launch the Edit
Membership dialog; place a checkmark next to each update you want to add.
Remove the checkmark next to any update you want to delete from the SUG. By
doing this, you are not actually deleting the update from ConfigMgr; you are just
removing the reference to the update in the SUG.
It might seem as though the SUG and the deployment package are tied together
as one unit. This is not true; the deployment package is not tied to the SUG. A
SUG can have software updates that span multiple deployment packages.
Clients install software updates in a deployment by using any DP that has the
software updates available, regardless of the deployment package. If a package
is deleted for an active deployment, clients can still install the software updates
in the deployment as long as each update was downloaded to at least one other
deployment package and is available on a DP that is accessible to the client.
After the last deployment package containing a software update is deleted, client
computers cannot retrieve the software update until the update is again
downloaded to a deployment package. Software updates appear with a red arrow
in the ConfigMgr console when the software update files are not in any
deployment packages. Deployments appear with a double red arrow if they
contain any updates in this condition.
You cannot create a deployment package from the console. Use one of two
wizards to create the deployment package:
The Download Software Updates Wizard, displayed in Figure 15.10, contains six
or eight pages, depending on what is selected for a deployment package. If
Select a deployment package is selected, there are only six pages; if Create a
new deployment package is selected, there are eight pages. In either case, the last
three pages are the same as with almost all wizards in ConfigMgr—the
Summary, Progress, and Completion pages. The following are the other
Download Software Updates Wizard pages:
FIGURE 15.10 The Download Software Updates Wizard.
Deployment Package: Select an existing deployment package by clicking
Browse, or create a new package. If creating a new package, you must
provide a name and description for the package; this appears in the
Deployment Package node. You also must choose the source location of the
package by using a URL path. The location you choose must exist before
you run the wizard.
Distribution Points: Select the DPs to which you want to send this
package. You can choose from either a list of DPs or a DP group from
a dropdown menu.
Distribution Settings: Choose the type of settings to use with this
distribution. You can choose your priority from a dropdown menu,
whether you want to distribute the package to preferred DPs, and the
behavior you want to occur when the DP is enabled for prestaged
content.
Download Location: Choose to use Microsoft Updates or a network share
as the location from which to download updates. Most organizations choose
to use Microsoft Updates. If your site does not have Internet access, select a
network share as the location. This requires preloading the updates from a
machine with Internet access and copying them to the network location to
be used by the wizard.
Language Selection: Choose the language to use when downloading the
update files. For example, if you choose English and French, the wizard
downloads two files for each update—one in English and one in French.
Deployment packages are similar in nature to software packages but have some
distinct differences:
Since there are many software updates across a wide range of operating systems,
deployment packages can be very large, which can cause issues when the content
is distributed to DPs. A common failure for software updates is not ensuring that
all applicable update packages are properly replicated and available on DPs
where clients will request the updates. In general, the authors recommend
making all your update packages available on every DP unless your DPs are
tight on space or you have severe bandwidth limitations. The authors also
recommend organizing deployment packages by the release date of updates, such
as by year, by half year, or even by quarter, rolling over the updates into the
yearly package as needed. This lets you cut down the size of the packages that
are most often used.
There are two methods for creating an update deployment. Both use the Deploy
Software Updates Wizard, but one has fewer pages in the wizard than the other:
This version of the wizard contains nine pages; the last three are the same as
with almost all wizards in ConfigMgr (Summary, Progress, and Completion),
and the other pages are discussed in the following sections.
General Page
The first page of the wizard has five items to complete, and some of them are
required before you can move on to the next page. These are the items on the
General page:
Scheduling Page
The Scheduling page allows you to select information about when the
deployment will be scheduled to run. The time set here is also the time when end
users begin to see notifications of the updates availability if notifications are
enabled. If the deployment was set to Required on the previous page, this is the
time that updates are available for downloading by the client. There are three
options on this page:
Schedule Evaluation: This dropdown menu option allows you to set
whether a client will use local time or Coordinated Universal Time (UTC).
The authors recommend accepting the default value, Client local time.
Software Available Time: This radio button allows you to choose when the
deployment is available to the client. You have two choices:
As Soon as Possible: The deployment is available to the client as soon
as it receives the policy for the deployment. If you choose Use the
client local time in the Schedule evaluation item and choose this
option, the current time on the machine where you are running the
ConfigMgr console is the time that is set for clients to evaluate when
updates are available or when they are installed. If the client is in a
different time zone, these actions occur when the client’s time reaches
the evaluation time.
Specific Time: If this option is chosen, the two menus below it
become available. The first is a dropdown menu for the month and
day, and the second is for the time to set.
Installation Deadline: This option is available only if Required was chosen
in the Deployment Settings page. It allows you to choose a date and time
when the required deployment to install the software updates will start
automatically. The same two options available in the Software available
time are presented here: a dropdown menu for the month and day and the
exact time for the deadline.
The actual installation deadline time is the specific time you configure plus
a random amount of time, up to two hours. This reduces the potential
impact of all client computers in the destination collection installing the
software updates in the deployment at the same time. You can configure the
Computer Agent -> Disable deadline randomization setting to disable the
installation randomization delay for the required software updates. The
authors recommend not disabling randomization, as doing so would have
all clients run the software updates installation at the same time.
Delay Enforcement of This Deployment According to User Preferences,
up to the Grace Period Defined in Client Settings: This option allows the
end user to delay the installation of software updates until the grace period
set in the client agent becomes applicable. This allows an end user returning
from vacation or being away for an extended period from having to wait
until all required deployments are installed before being able to use the
system. The user can delay the installation until the grace period ends.
User Experience Page
Use the User Experience page to customize the end user’s experience with
software updates deployments. Some choices are dependent on the Type of
Deployment setting. There are three areas to configure:
User Notifications: Use this option to choose what you want the user to see
when balloons display in the system tray. There are three choices:
Display in Software Center and Show All Notifications: This option
lets the end user see the deployment in Software Center and see all the
balloon notifications for the deployment in the system tray.
Display in Software Center, and Only Show Notifications for
Computer Restarts: This choice shows the deployment in Software
Center but shows the notification only when the computer needs a
restart.
Hide in Software Center and All Notifications: This hides the
deployment from the end user, who will not see anything in Software
Center and will not see balloon notifications in the system tray. This
can cause issues because the end user is not notified when the reboot
occurs and may lose data. This option is not available when Type of
Deployment is set to Available.
Deadline Behavior: This option allows you to choose what can be done to
the system when it is outside the maintenance window. You can choose to
install software updates or restart the system. If this option is unchecked,
updates are not installed until the maintenance window time starts. This
option is grayed out if Type of Deployment is set to Available.
Device Restart Behavior: Choose whether to suppress system restart on
servers and workstations. Some software updates require a system restart
after the install. This option allows you to suppress that restart and have the
user restart the system at a convenient time. The authors recommend always
suppressing the restart for servers to prevent unplanned outages. This
option is grayed out if Type of Deployment is set to Available.
Write Filter Handling for Windows Embedded Devices: This option
allows you to check the box to commit the changes at the deadline or during
a maintenance window. Windows Embedded systems use an overlay to
store changes made to the OS; those changes are removed when the device
is restarted, restoring the device back to its original state. If deploying
software updates to Windows Embedded systems, you should check this
box so update installations are not lost. When you do check this box and a
Windows Embedded system gets a software updates deployment, the
ConfigMgr client requires the Windows Embedded system to reboot; it
enters Service mode, allowing only administrators to log in. ConfigMgr
then installs the software updates and restarts the Windows Embedded
system in Normal mode.
Alerts Page
Use the Alerts page to configure the criteria to create an alert inside the
ConfigMgr console. This page also lets you specify how you want to handle
Operations Manager (OpsMgr) alerts when the client has the OpsMgr agent
installed. The option for the ConfigMgr alert creation is only available if Type of
Deployment is set to Required. The following options are available on the Alerts
page:
Configuration Manager Alerts: This option starts with a check box that
enables the alert to be generated. Checking the box makes two options
available for edit:
Client compliance is below the following (percent)
Offset from the deadline time
The alert generation time box shows you the day and time the alert will be
generated if the criteria are met. This box is not editable. Take care when
setting the criteria for the ConfigMgr alert, as incorrect settings could cause
false alerts to be generated.
Operations Manager Alerts: This allows you to choose what to do with
the OpsMgr agent when that agent is installed on the system and software
updates need to be installed. There are two check boxes, which are
unchecked by default:
Disable Operations Manager Alerts While Software Updates Run:
This check box does not actually put the OpsMgr agent into
maintenance mode but suppresses alerts by pausing the OpsMgr health
service running on the client. This can be seen by event ID 1217 in the
application event log.
Generate Operations Manager Alert When a Software Update
Installation Fails: When a software update fails to install, event ID
11708 is usually generated. When this box is checked, the OpsMgr
agent looks for this event ID and generates an OpsMgr alert. The
OpsMgr agent is required and must be running on the client for this to
occur.
General Page
Much like the General pages of other wizards, the General page of the Create
Automatic Deployment Rule Wizard is where you start defining the basic items
of the ADR, including the following:
Name: This is required; unlike with other wizards that automatically fill in
the name, the Create Automatic Deployment Rule Wizard leaves it blank.
Use a name that is meaningful; it should describe what the ADR is creating.
Description: This is an optional field where you can enter a brief
description about the deployment.
Template: This is a dropdown menu that brings up a list of templates that
were previously saved. ConfigMgr also includes four templates for your
use. The wizard uses the pre-created template you select to show the pages
and settings that are in the template. This allows you to create ADRs of the
same nature and settings faster and helps avoid human mistakes. To create a
template, complete the Create Automatic Deployment Rule Wizard and stop
on the Summary page, which has a Save as Template option on the top-right
side. Selecting this option allows you to choose what settings on the pages
you want to include in the template and a name for the template (refer to
Figure 15.12).
The right-hand side has the option Manage Templates, which allows you to
bring up a list of templates, select one, and then either rename the template
or delete it.
Collection: This is a required field. Click Browse and select a collection
that will be targeted by this ADR. You can only select device collections.
Each Time the Rule Runs and Finds New Updates: Use this item to
choose what to do with the SUG if the ADR finds new updates when it
runs. You can have the ADR create a new SUG for the new updates or add
those to an existing SUG. If you choose to add the updates to a new SUG,
beware that a single rule with this option enabled can create hundreds of
SUGs in a small amount of time. The authors recommend adding the
updates to an existing SUG.
Enable the Deployment After the Rule Is Run: This check box enables
the software updates deployment that the rule created after it completes its
run. If this option is unchecked, the rule creates the deployment but leaves
it disabled. The authors recommend leaving the deployment disabled until
you verify that all settings are set correctly. You may want to send the
deployment to a test collection to confirm that everything works properly.
When the verification is complete, change this setting to enable the
deployment.
The Property filters section in the top area of this page of the wizard provides
several check boxes for the item or items to use for criteria that the software
update must meet. You can check as many of these as you like or as few as one
of these items. After you select a check box, the bottom area fills with a link that
you can select.
Search criteria at the bottom of the page has a link that allows you to fill in the
criteria you want to use. The items you check in the Property filters section
determine what type of criteria you are allowed to enter (free text, numeric, and
product selection). You can use quotes (“ ”) for an exact string match or the
minus sign (-) to indicate that it does not match the item. For example, entering -
Itanium in the title property criteria will exclude all updates that include Itanium
in their title property. Once you have your criteria, click Add to add the criteria
to the search list.
Do Not Run This Rule Automatically: Select this rule when you want to
only run the ADR manually. This might be an option when first setting up
ADRs to verify that they are selecting the correct software updates.
Run the Rule After Any Software Update Point Synchronization: This
allows the ADR to run after the SUP synchronizes with Microsoft Updates.
The authors recommend using this setting, which allows the ADR to truly
be automatic and deploys software updates to the clients shortly after they
are released.
Run the Rule on a Schedule: This allows you to set a fixed date and time
for the rule to run, such as the second Wednesday of each month at 2:30
PM. Select Customize to select a date and time to use. The authors
recommend that if you set a schedule for the ADR to run, you should
coordinate the time to run after your SUP synchronization time, so you
evaluate the latest set of software updates.
When the ADR runs, it logs its information in the RuleEngine.log file. This file
is located with the rest of the ConfigMgr logs in the Logs folder.
Prior to Windows 10, Microsoft would release new versions or builds of the
Windows product line every few years—think Windows XP, Windows Vista,
Windows 7, Windows 8, and Windows 8.1. This meant that an organization went
through a massive upgrade every several years, after testing the new version of
Windows. Large organizations might still be deploying a version of Windows
when Microsoft released a newer version. This caused some organizations to
skip newer versions and not be current on newer features of the product.
Microsoft changed the game with Windows 10; instead of new versions every
few years, you will see new functionalities and features in smaller incremental
updates two times a year. Microsoft created two ways for Windows 10 to be
updated:
Feature Updates: These are changes to Windows 10 that add new features
and functionalities to the product. These are what previously would have
been released in a new version of Windows, such as going from Windows 8
to Windows 8.1.
Quality Updates: These are security fixes, product hotfixes, and rollup
updates. An example would be the Patch Tuesday security fixes released
every month. Another change for organizations is that the quality updates
are now released as one cumulative monthly update instead of as several
smaller updates.
These new servicing channels mean that you must upgrade your Windows 10
devices at a much faster pace than previously to keep your systems current and
keep you in a supported mode. More information about servicing branches and
servicing of Windows 10 in general can be found at
https://technet.microsoft.com/itpro/windows/manage/waas-overview#servicing-
branches.
Table 15.2 shows the servicing options and their life cycles.
Microsoft has created a sample of what the deployment rings might look like:
Preview: This is a pilot of IT users; users get this release through the
Windows Insider Program and the Windows Insider for Business Program.
Targeted: This is a pilot of business users; these devices should be across
multiple teams and groups. These teams or groups should represent most of
the departments in an organization. This ring should be used to test the
release before it goes out for deployment to the global set of devices.
Broad: This is a deployment to broad IT users; this will be your deployment
to the rest of organization.
Critical: This for devices that are deemed critical by the business. These
devices should receive the update only after the rest of the organization has
tested the release and shown that it does not present issues that would affect
these critical devices.
While not every organization will use the deployment rings, you should consider
how many rings are needed and what users might encompass those rings. This
way you can ensure that most issues with deployments of feature updates are
found in pre-deployment testing and within the targeted ring.
The deployment rings are based on the servicing branches, so you begin by
creating collections of the different servicing branches. This allows you to easily
find users for each ring you need to create. The collections of these servicing
branches are easily created in ConfigMgr, using an OS property collected as part
of the ConfigMgr client discovery inventory, OSBranch. A WQL query that
creates the collection follows:
select * from SMS_R_System where SMS_R_System.OSBranch = 0 and
SMS_R_System.OperatingSystemNameandVersion like "Microsoft Windows
NT
Workstation 10.0%"
The values you can use for OSBranch are 0 for Current Branch, 1 for Current
Branch for Business, and 2 for Long-Term Servicing Branch; this terminology
has been replaced with the Semi-Annual Channel for Current Branch and
Current Branch for Business and Long-Term Servicing Channel for Long-Term
Servicing Branch. However, ConfigMgr and the OSBranch entries still use the
terms Current Branch, Current Branch for Business, and Long-Term Servicing
Branch; look for these to change in later releases of ConfigMgr and Windows
10. The second part of the query limits the data returned to only Windows 10
workstations.
Once your servicing branch collections are created, create collections for your
rings by using the servicing branch collections as a limiting collection. This
should give you a good idea of how many systems are in the different servicing
branches and the users you would include in the different rings your deployment
process uses.
With the GPOs set and the machines at the correct serving level, when the
ConfigMgr client runs the discovery process, the OSBranch property is
collected and sent to the ConfigMgr database. This allows you to create your
servicing branch collections. Either use GPOs or set a local machine policy for
this information to be collected.
Figure 15.15 shows the dashboard with some of its tiles. Eight tiles provide
Windows 10 information:
The dashboard provides a great deal of information in a visual form, giving most
users the information they need at a glance. To obtain more information, you
need to drill deeper into the Windows 10–managed systems.
Servicing Plans
With the metadata for the Windows 10 upgrade packages inside ConfigMgr, you
are ready for the next step: a servicing plan. A servicing plan allows you to
upgrade your Windows 10 devices from one build to another. Servicing plans do
not allow you to upgrade Windows 7 or Windows 8.1 to Windows 10; those
types of upgrades need to use an upgrade sequence as described in Chapter 22,
“Operating System Deployment.” Servicing plans only use the upgrades
software updates classification; other updates, such as cumulative security
updates, must still use the software updates workflow.
Servicing plans are created using a wizard and share the same rule engine as the
ADR. Some pages in the wizard are the same as the ones covered earlier in this
chapter, in the “Using Automatic Deployment Rules” section. To start, open the
ConfigMgr console and navigate to Software Library -> Overview ->
Windows 10 Servicing -> Servicing Plans and choose Create Servicing Plan
from the ribbon bar or from the right-click context menu to launch the Create
Servicing Plan Wizard, displayed in Figure 15.17.
As Figure 15.17 shows, the wizard has several pages. You may have seen many
of these pages when creating the SUG or ADR, downloading updates, and
deploying updates. The following are the first four pages, which are unique to
the Create Servicing Plan Wizard:
General: This page is similar to the General pages of other wizards; add a
name that is meaningful and an optional description for this servicing plan.
Servicing Plan: This page allows you to select the target collection to use
for the servicing plan upgrade. Browse to choose from device collections;
user collections are not allowed.
After you complete the wizard, the servicing plan will run by default after the
next SUP sync; change this by highlighting the servicing plan and choosing
Properties from the ribbon bar or from the right-click context menu and
navigating to the Evaluation Schedule tab. Once the rule runs, it adds updates
that meet the specified criteria to a SUG, downloads the updates to the
deployment package, distributes the updates to the configured DPs, and deploys
the SUG to clients in the target collection. The name of the SUG is automatically
created and is changeable by choosing the properties of the SUG.
When the servicing plan rule runs, it downloads the upgrade and/or update
packages from Microsoft Update. These packages are in excess of 2GB, and the
rule will download x64 and x86 versions of the packages. Once downloaded, the
packages are distributed to the DPs. Allow time for the download and content
distribution to occur before the deployment becomes available to the end user.
The authors recommend setting the available time to four hours or more from the
current time of creating the servicing plan.
Since the servicing plan rule and ADR use the same engine, you can monitor the
process of the rule running in the RuleEngine.log file. Downloads are logged in
PatchDownloader.log.
Client Experience
The discussion so far in this chapter has covered the server side, configuring
settings, and creating the deployment. Now it is time to consider the client side
of things. What does the user see? What types of notifications take place? Is
there any interaction with the user? When does a reboot occur? Many answers to
questions such as these are determined by the configured settings and by some of
the processes created in your update design.
Almost all client activity for software updates takes place in the background,
across multiple client components. These components interact with each other,
creating and managing internal jobs to detect the updates needed, scanning to see
the state of updates the machine has and needs, downloading the needed updates,
installing the updates, and reporting the status of the updates (installed, failed,
reboot needed, and so on).
Compliance Scanning
Each computer performs compliance scanning based on the schedule set in the
Software Updates section of client settings. The ConfigMgr’s client scan agent
triggers the client’s WUA to download the update catalog from the WSUS
instance corresponding to the SUP with which the client is configured to
communicate. The catalog is then cached locally, and the system is scanned for
update applicability. Note that the entire update catalog is not downloaded each
time; only the changed portion of the catalog is downloaded; this is typically
called the delta. To manually start compliance scanning, initiate a software
updates scan cycle from the ConfigMgr Control Panel applet.
Scan results are stored in WMI, using the ccm_updatestatus class in the
root\ccm\softwareupdates\updatesstore namespace. State
messages send the results back to the ConfigMgr site. These are XML messages
cached on the client for 15 minutes (by default) and submitted in bulk to the
client’s site MP. They relay point-in-time information about the client to the site.
The WUA performs the compliance scan and marks each update with a
compliance state. An update can be in one of four states:
Required: This means the update is still needed on the client system or that
it is installed but requires a restart. If the update needs a reboot, it is not
considered installed until that reboot occurs.
Not Required: This means the update is not applicable on the local system.
Installed: This means the update is already successfully installed on the
local system.
Unknown: There are many reasons for an unknown update status, including
communication issues, client scan issues, and configuration issues. The
client’s WUAHandler.log is the first place to check to verify proper
configuration.
Scan results are good for 24 hours; this is called the time to live (TTL). When
the TTL expires, the results are not considered accurate. When the client receives
a software updates deployment, the TTL is ignored, and a fresh scan is
performed.
Using Notifications
Notifications inform the user of what is occurring on the system. Some users like
notifications, and others do not. Some users like to be told what is happening;
others do not want to be interrupted with notifications. If notifications are
disabled in client settings, no notifications from ConfigMgr are ever displayed
on the client machine. If notifications are enabled, there are different levels that
can occur, based on settings in the deployment. Table 15.3 shows these different
levels and the notifications the user will see.
In addition to the balloon, a new item is added to the system tray—a box with a
red plus sign. If you right-click this icon and choose View Required Software,
the dialog box shown in Figure 15.21 appears.
View Details: Click this link to open the full Software Center program and
see all details for each software update that needs to be installed.
Right Now (Recommended): Choosing this option starts the installation
immediately.
Outside My Business Hours: Each system has a defined set of business
hours, found inside Software Center. By default, business hours are set at 5
AM through 10 PM Monday through Friday. Selecting this option causes
the software updates to only install outside those hours. Clicking a
hyperlink in this option opens Software Center, which shows the business
hours.
Snooze and Remind Me Later: Select this dropdown to choose to be
reminded at a later time.
Restart My Computer Automatically if Needed: If this option is checked,
the system reboots without warning after installing the software updates, if
needed.
The software changes dialog box shown in Figure 15.21 and these options are
displayed only when the software updates deployment is set to Available and the
deadline has not been reached.
If the user chooses to install the updates through Software Center -> Updates,
he or she can click on a single update to display the information about that
update and a button that allows for update installation or scheduling of update
installation, as shown in Figure 15.23.
A user who wants to install all the updates at once can click Install All (refer to
Figure 15.22).
Once the updates are installed, if a reboot is needed, a Restart required balloon
notification is displayed, as shown in Figure 15.24.
Since the user may not be ready to reboot at that specific time, ConfigMgr places
an icon in the system tray, as shown in Figure 15.25, to remind the user to
reboot.
If the user chooses not to reboot before the deadline, the icon remains in the
system tray, and the user is notified with balloon notifications according to the
reminders set up in Client Settings -> Computer Restart.
At each step, state messages are sent to the MP with which the client is
communicating. These state messages help track the installation status of the
updates and can be seen in the console by navigating to Monitoring ->
Overview -> Deployments. If a reboot is needed, the update is not considered
installed until it occurs. After the reboot, there may be a delay in reporting that
the update is installed. To prevent this delay, Microsoft added a check box
forcing a software updates deployment reevaluation upon restart to the User
Experience tab of the software updates deployment. If this option is checked,
after the reboot occurs, the ConfigMgr client runs the reevaluation, sees that the
update is installed, creates a state message, and sends it to the MP, where it is
processed into the database.
In addition to the information presented here, four excellent blog posts are
available that review and step through the in-depth minutia of the software
update process, as viewed through the log files. Some of these are older posts but
still can be applied to ConfigMgr Current Branch:
https://blogs.msdn.microsoft.com/steverac/2011/04/10/software-
updatesinternals-mms-2011-sessionpart-i/
https://blogs.msdn.microsoft.com/steverac/2011/04/16/software-
updatesinternals-mms-2011-sessionpart-ii/
https://blogs.msdn.microsoft.com/steverac/2011/04/30/software-
updatesinternals-mms-2011-sessionpart-iii/
https://blogs.technet.microsoft.com/configurationmgr/2016/08/25/software-
updates-in-configuration-manager-current-branch-deep-dive-client-
operations/
Most errors experienced with WSUS are configuration errors, including not
matching the ports configured during installation of WSUS and then configured
in the SUP. Remember that with WSUS 4.0 and above, the default port is 8530.
Also common are Internet connectivity issues due to firewalls, proxy servers,
and other mitigating factors. Confirm that the system running WSUS has
Internet connectivity if you are downloading the update catalog directly from
Microsoft and ensure that you have properly configured the proxy account if one
is required.
Downloading Updates
Update downloads from Microsoft can fail. Recall that WSUS does not
download the updates in ConfigMgr; you must manually initiate download of all
updates when not using ADRs. This is an interactive process; ConfigMgr
initiates a connection to the Microsoft download servers using credentials of the
user currently logged in to the console. Test connectivity for that user by opening
Internet Explorer and navigating to http://www.microsoft.com/downloads. (If a
proxy server is required to connect to the Internet, configure the settings in
Internet Explorer.) If the logged-in user does not have permission to perform the
action, the download does not occur.
For ADRs, the site server hosting the SUP downloads the updates for you. This
uses that system’s local system account, which in turn uses that system’s AD
computer account for its identity on the network.
The PatchDownloader.log file logs download activity for updates and contains
information about the update download process. The file is located in different
places, depending on who is running the downloads:
SMS_CCM\Logs: When the ADR runs, it runs as Local System and creates
the log file in this folder.
%User%\AppData\Local\Temp: When downloading updates, the file is
created under the user’s temp folder. Some folders are hidden, so make sure
you are viewing hidden files to see them.
Back Up the WSUS Database: You may ask why, as there is nothing in the
database that you cannot recover by rebuilding the SUP or synchronizing
with Microsoft Updates. While this is true, why waste the time to resync
everything when you can restore a small backup and be up and running
again quickly? Plus, if you are using System Center Update Publisher
(SCUP), a lot of custom information will be lost if you lose the SUSDB.
Use SQL backup or any other backup program that works with SQL
databases. This can even be set up as an automated process using a SQL job
and the SQL agent.
Run the WSUS Server Cleanup Wizard: ConfigMgr now provides a
check box for this in the Supersedence Rules tab of the SUP properties of a
site. However, this is only run every 30 days. In some organizations, it
should be run every week. If it has been a long time since this was last run
—or perhaps has never run—the wizard may time out. The fix is to run it
repeatedly until it stops timing out.
Decline Superseded Updates: Since the client downloads the entire catalog
the first time and then delta updates afterward to scan against, that catalog
will contain any superseded updates that have not been declined. Declining
the superseded updates reduces the size of the catalog and the amount of
time the client needs to complete a scan.
Re-index the WSUS Database: An index allows the database to be read
faster, giving results quicker. Over time, with updates and deletions, the
index can become out of date and may actually cause a slowdown in
reading data. For optimal performance, re-index the database monthly or
every week, if possible.
Microsoft has released some best practices for software updates with ConfigMgr,
which can help give the best performance overall:
SCUP is not included with ConfigMgr but is a separate and free download from
Microsoft, available at http://www.microsoft.com/download/details.aspx?
id=11940. The tool lets you import updates from non-Microsoft products into
ConfigMgr or define your own for third-party products or in-house applications;
these non-Microsoft updates sit side-by-side with the Microsoft updates in the
ConfigMgr console and are managed and deployed exactly the same way as
Microsoft updates contained in the WSUS catalog. Many administrators have
also used SCUP to deploy Microsoft updates not included in the WSUS catalog.
Updates are updates, and managing them the same way regardless of their source
has great value.
Installing SCUP
Windows Server 2008 R2 is removed for use as a SUP with all publicly released
ConfigMgr builds after ConfigMgr Current Branch version 1610, and since
SCUP does not yet support the WSUS version released with Windows Server
2016, you must use Windows Server 2012 R2 for your SUP role if you need to
use SCUP. SUP servers running WSUS 4.1, which is included with Windows
Server 2012 R2, are not able to communicate with WSUS versions 3.0, 3.2, and
4.0. As SCUP is very tightly integrated with WSUS, the machine you install
SCUP on must have the same 4.1 version of the WSUS console installed on it as
the SUP to which you want to publish. If you try to use a different version of
WSUS on the SCUP machine, you will get an error when trying to publish to the
WSUS server. This error shows up in the SCUP log file as a version mismatch:
Publish: A fatal error occurred during publishing:
Publishing operation failed because the console and
remote server versions do not match. Because of this issue with
the version mismatch, there are only two operating systems you can use to install
SCUP:
Windows 8.1
Windows Server 2012 R2
You can install SCUP on any system with connectivity to your top-level SUP,
including the site server or a remote workstation that also has the WSUS
administration console installed (or full WSUS) and is one of these listed
operating systems.
No matter which OS you choose for SCUP installation, you still must complete a
workaround to allow local administrators to publish updates from SCUP to the
Windows Server 2012 R2 WSUS server. This workaround involves editing the
Registry and DCOM permissions. Details are at
https://technet.microsoft.com/library/hh134747.aspx#PublishToServer2012.
(This site talks about Windows Server 2012 but is also relevant for Windows
Server 2012 R2.)
SCUP uses a local SQL Server Compact Edition database, so there is no need to
provide permissions or connectivity to a full SQL Server instance. SQL Server
Compact Edition is a local, single-user, Microsoft Access-like database engine
that is automatically installed with SCUP. For more information on SQL Server
Compact Edition, see
http://technet.microsoft.com/library/ms173037(v=sql.105).aspx.
If the correct version of the WSUS console and binaries are not installed on your
machine, you will not be able to click Next to move forward. Installing the 3.0
SP 2 version of WSUS is not an option at this point; you must install the RSAT
tools for Windows 8.1 on the workstation and restart the SCUP installation.
Configuring SCUP
Once the installation is complete, you can launch SCUP and start the
configuration. It is important with UAC enabled that SCUP is always launched
as an administrator. SCUP includes its own separate console and requires a small
amount of initial configuration. Figure 15.27 shows the SCUP console.
FIGURE 15.27 SCUP console.
After launching the SCUP console, select the Application menu from the ribbon
bar and choose Options. There are five sections in the resulting Options dialog:
One last requirement on any client where you wish to deploy updates
published using SCUP is to enable the Allow signed content from intranet
Microsoft update service location policy. This is typically set using a GPO
and can be found under Computer Configuration -> Administrative
Templates -> Windows Components -> Windows Update in the group
policy object editor.
ConfigMgr Server: Use this tab to enable the integration with ConfigMgr.
Make sure you connect to your top-level site. Use the FQDN as the name
and click Test Connection to verify connectivity. If using automatic
publishing, enabling ConfigMgr integration allows SCUP to query the
compliance status of updates and fully publish them in ConfigMgr only if
actually requested by clients and they fall under a particular size. Prior to
fully publishing updates, the two thresholds at the bottom of this page are
checked:
Requested Client Count (Threshold): This is the minimum number
of clients that must request an update. If this number is not met, SCUP
only publishes the metadata for the update.
Package Source Size Threshold (MB): This is the maximum size of
the content for an update. If the size of the update is over this number,
only the metadata for the update is published.
Trusted Publisher: This tab allows you to see the publishers trusted by
SCUP, view the certificate of the trusted publishers, and remove a publisher
from the list. Publishers are added to the Trusted Publishers list when a
catalog is imported into SCUP and when publishing a software update. You
cannot add certificates here; you can only remove or view them.
Proxy Settings: This tab allows you to configure the proxy settings, if
necessary, for SCUP to download third-party update catalogs. If your
organization requires access to the Internet to go through a proxy server
using username and password credentials, you must enable these settings
and add the correct information before you can download any third-party
catalogs.
Advanced: The options on this tab allow you to view the location of the
SCUP repository, enable some general settings, enable certificate
revocation, set the location for local source publishing, and run the
Software Updates Cleanup Wizard.
Database File: This is the location of the SQL Compact Edition
database file used by SCUP; it is read-only and user specific, meaning
that each user can have specific settings and software updates to
publish. The authors recommend using only one user, as using
multiple users tends to complicate the process more than help it.
Add Timestamp When Signing Updates: This adds a timestamp
from an authoritative Internet source when signing updates, which is
useful because it makes updates deployable even after the certificate
used to sign them has expired. With this option enabled, the updates
are always deployable, as long as the updates were signed during the
valid lifetime of the signing certificate. If this option is not chosen,
updates signed by an expired certificate cannot be deployed.
Check for New Catalog Alerts on Startup: This option enables alerts
on console startup to notify you of updated update catalogs. When
enabled, the startup of SCUP is delayed for a small amount of time,
which can make it look like SCUP is hung.
Enable Certificate Revocation Checking for Digitally Signed
Catalog Files: This option verifies that the certificates used to sign
imported update catalogs have not been revoked.
Always Check the My Documents\LocalSourcePublishing Folder
for Software Update Content Before Attempting to Download
from the Specified Download URL: Using this option enables you to
manually download content referenced in update catalogs instead of
SCUP automatically downloading the content. This option is useful for
SCUP consoles that are not connected to the Internet.
Use a Custom Local Source Path: Use this option to specify a custom
local path for manually downloaded content.
Software Update Cleanup Wizard: This option launches a wizard
that searches for updates published in ConfigMgr that are not in the
default WSUS catalog or the SCUP repository. These are updates
previously published by SCUP that were deleted from SCUP and thus
orphaned in ConfigMgr. If any updates meeting these criteria are
found, you can select them to be cleaned up. Cleaning up an update
expires it in ConfigMgr, making it no longer deployable. This
operation is irreversible and should be performed only on updates that
are no longer needed.
Third-party vendors can use SCUP to create update catalogs for their own
products and then make these catalogs available to you for direct import and use
in ConfigMgr using SCUP. There are two types of catalogs: those from
Microsoft partners and directly listed in SCUP and those from other sources.
Directly import catalogs from Microsoft partners in the SCUP console by going
to the Catalogs workspace and choosing Add Catalogs from the ribbon bar to
launch the Add Partners Software Updates Catalogs dialog, which lists available
catalogs that you can pick for import into SCUP. The list of catalogs also
includes download URLs, support URLs, and descriptions. Importing a catalog
into SCUP is not the same as actually publishing the updates into ConfigMgr, so
this step is harmless and reversible with respect to ConfigMgr.
To import one of these types of catalogs, navigate to the Catalogs workspace and
click Add on the ribbon bar to launch the Add Software Update Catalog Wizard,
where you input five pieces of information:
Catalog Path: The path to the CAB file containing the catalog. This can be
a local path, a UNC, or a URL.
Publisher: The name of the publisher of the catalog. You can use the name
entered here to sort and filter updates in the SCUP console as well as the
ConfigMgr console.
Name: The name of the catalog.
Description: An applicable description for the catalog.
Support URL: A URL where support information for the catalog can be
accessed.
After adding a catalog to SCUP, you must import the updates in that catalog into
SCUP to use them. Select or multi-select the update catalogs listed in the
Catalogs workspace and choose Import from the ribbon bar or from the right-
click context-menu to launch the Import Software Updates Catalog Wizard.
There are no real options in this wizard except selecting additional or deselecting
chosen catalogs for import.
During the update import process, you may be presented with a Security
Warning dialog asking you to accept content from the publisher. Choosing
Always Accept content from the publisher trusts the publisher and accepts all
future content from that publisher. You can view or remove the code signing
certificate from that publisher in the Trusted Publishers page of the Options
dialog.
Also available from the Catalogs workspace are options to edit and remove a
catalog from the ribbon bar or from the right-click context menus of the catalogs.
You cannot edit a vendor-signed catalog; selecting Edit displays a dialog box
with read-only information about the catalog. Removing a catalog does not
remove the updates imported from that catalog.
Existing publications are listed in the navigation list box on the left; this is a
simple list rather than a tree, as there is no hierarchy with publications. Selecting
a publication displays the list of updates it contains. Additional options available
from the Home tab of the ribbon bar for a selected publication include the
following:
The following options are available on the Publication tab of the ribbon bar for a
select publication:
Once you publish information into WSUS, you may find it takes two ConfigMgr
synchronization cycles before your update appears in the ConfigMgr console.
For example, say you have published a group of Adobe Reader updates to
WSUS. When ConfigMgr synchronizes with WSUS, it learns that a new product
is available. That new product appears under the Products tab of the top-level
site’s SUP properties. Figure 15.30 shows the list with the new product in it.
FIGURE 15.30 SCUP product added to a list.
You must check the box under the Adobe product list that so that on the next
synchronization of ConfigMgr with WSUS, the product is added to the list of
software updates that it synchronizes. If you don’t check the box, your SCUP-
published software updates will not appear in the ConfigMgr console.
SCUP Updates
All updates imported into SCUP and ready for publication into ConfigMgr are
listed in the Updates workspace. Updates are organized under the All Software
Updates node in the navigation tree by publisher first and then by their
applicable product. Use the Search box on the upper right of the update list to
filter the list of updates currently displayed.
The Details pane at the bottom displays detailed information about the selected
update from the update list. If you select multiple updates, information from the
first update selected is displayed in the pane.
For each update, you can choose one of several different operations from the
ribbon bar or the update’s right-click context menu; most of these operations are
valid and available when multiple updates are selected. The options follow:
Updates must be published either directly using the Publish option from the All
Software Updates list in the Updates workspace or the Publish option available
in the Publications workspace. Adding an update to a publication does not
publish the update in ConfigMgr.
Updates can exist in multiple publications or none at all, but they are published
only once to ConfigMgr, if at all. Every occurrence of an update in a publication
or the All Software Updates list shares the same publication type and date.
1. Select the All Software Updates node and choose Create Vendor from the
right-click context menu or choose the Folders tab and select Create ->
Vendor from the dropdown menu. Enter the vendor name in the resulting
dialog box.
2. Select the new vendor folder you just created and choose Create Product
from the right-click context menu or choose the Folders tab and select
Create -> Product from the dropdown menu. Enter the product name in the
resulting dialog box.
Alternatively, you can use an existing vendor or product folder; vendor folders
may contain multiple product folders, and products may contain multiple
updates. Updates are displayed in the Updates view on the right when a product
folder is selected in the navigation tree.
Delete and Edit options are available from the right-click context menu of a
selected vendor or product folder and the ribbon bar; Edit shows a dialog box,
where you can rename the folder.
After creating your vendor and product names, you are ready to proceed with
creating your custom updates. Updates must be one of the following file types:
Windows Update (.msu) files are not directly supported because WSUS does not
support them by design; they are typically associated with hotfixes that are not
really intended for mass distribution. If you find that you need to use an MSU
file, a workaround is explained in depth at
https://blogs.technet.microsoft.com/dominikheinz/2011/10/17/deploying-
custom-msu-updates-with-sccm-and-scup.
To create a new custom software update, choose Create from the Home tab of
the ribbon bar and then select Software Update from the resulting dropdown.
You do not have to select any specific node or node type in the navigation tree
for this option to work. This launches the Create Software Update Wizard, which
has 10 pages; 7 of the pages require information to be entered, and the last 3 are
the standard Summary, Progress, and Confirmation pages. The following are the
7 pages where you need to enter information:
In addition to doing individual updates, you can create software update bundles.
Although not very common, software update bundles ensure that specific
software updates are deployed at the same time. The WUA handles software
update bundles very much like it handles software updates.
Create a software update bundle by selecting Create from the Home tab of the
ribbon bar and then selecting Software Update Bundle from the resulting
dropdown. You do not have to select any specific node or node type in the
navigation tree for this option to work. This launches the Create Software
Update Bundle Wizard, whose pages are mostly identical to those in the Create
Software Updates Wizard, with the exception of the following:
Optional Information: This page only differs because of the lack of the
Impact and Restart behavior options.
Bundle Updates: This page allows you to select the updates you wish to
include in the bundle. You can choose from any updates inside SCUP.
The Rules workspace lists all previously saved rules. Just because a rule is used
by an update does not mean it is saved. You must explicitly save a rule before it
appears in this workspace; there are no default saved rules in SCUP.
Use the Rules workspace to construct and save reusable rules for use with the
installable and installed rule definitions in updates. You can also create rules
directly in the Software Update Wizard on the Installable Rules and Installed
Rules pages by using the small disk icon. To load a previously saved rule on
these pages, click the yellow starburst icon and choose Saved Rule from the
Rule type dropdown.
File
Registry
System
Windows Installer
Each rule type is self-explanatory to configure and not covered in depth here.
However, because they are nearly identical to the rules used in compliance
settings, you can reference Chapter 10, “Managing Compliance,” for detailed
explanations.
Summary
There are many options for deploying software updates to Windows systems, but
when you combine the power of ConfigMgr with proven tools like WSUS and
WUA, none of those tools can compare to the power and options available with
ConfigMgr. ConfigMgr gives you the flexibility to update single systems, groups
of systems, or all systems in a single user-friendly tool. Add to that the ability to
service the new Windows 10 systems with core updates to move them from
current state to CB or CBB, and there really is no other choice.
SCUP provides a method to patch your third-party products and any homegrown
applications your organization may have created. Wrap all this together, and you
have a tool that provides the comfort of safely delivering software updates,
Windows 10 core updates, and third-party updates with the ability to customize
your settings and have a user-friendly experience.
The next chapter explains how you can integrate Intune with ConfigMgr to
provide hybrid management of on-premise and mobile devices using a single
console.
CHAPTER 16
Integrating Intune Hybrid into Your
Configuration Manager Environment
IN THIS CHAPTER
Introducing Microsoft Intune
User Identity Options
Preparing Your Environment for Intune
Integrating Intune with Configuration Manager
Troubleshooting Intune Hybrid
The past several years have seen dramatic changes in the information
technology (IT) landscape. To meet the shift toward mobile devices, enterprises
are recognizing the “consumerization of IT” and incorporating consumer devices
into their IT infrastructure. This movement is being led by tech-savvy users
demanding the ability to use the latest devices to access corporate resources from
any location. To facilitate this access, employees must allow some control over
their devices, and they must agree for their devices to be enrolled in a
management solution.
Intune standalone means that mobile device management is carried out using a
cloud portal. A hybrid solution involves integrating Intune and ConfigMgr,
which makes it possible to manage your mobile and on-premise devices using
the ConfigMgr console. The best solution—and the one you should use—is the
one that works best for your organization. Do note that, as of the time this book
was published, Microsoft has stated that Intune standalone is their recommended
deployment topology. Microsoft has also developed migration strategies for
customers to migrate from Intune hybrid to Intune standalone. With that said,
Microsoft has also committed to supporting customers using Intune hybrid.
Intune hybrid and standalone both have pros and cons; however, the rapid
cadence of releases from Microsoft constantly changes the advantages of each
solution, making it futile to even attempt to provide a comparison table in this
book, as it would be obsolete before the book is even published. For more
information on choosing between the models, see
https://docs.microsoft.com/sccm/mdm/understand/choose-between-standalone-
Intune-and-hybrid-mobile-device-management.
The wait was quite frustrating for customers, and they often chose to implement
standalone Intune as a result. With the release of ConfigMgr Current Branch,
Microsoft has committed to upgrading the entire ConfigMgr solution at a rapid
rate, using the new servicing model. This makes it easier to add new features in a
reasonable time frame.
If you are unsure whether the product is an appropriate fit for your organization,
you can sign up for a trial in one of two ways. Note that you can transition your
trial to production in each case:
Existing Microsoft cloud customers can sign up for a 90-day EMS trial
through the FastTrack program, at http://fasttrack.microsoft.com/ems. This
program allows customers to explore new resources at their own pace. It
helps with planning for successful rollouts and onboarding of new users.
Use the Intune admin console to check how much storage you are using.
Navigate to Admin -> Storage Use. You can purchase additional storage as
needed.
Cloud Identity
The cloud identity model is not commonly used in an enterprise environment.
The model uses Azure AD to create and manage users. Azure AD verifies
passwords, and on-premise identity configuration is not required.
This model is normally used only in small organizations that do not have on-
premise AD.
Various tools are available to synchronize the user accounts and password
hashes. Azure AD Connect was the recommended tool at the time this book was
published, and it is the only tool currently undergoing Microsoft development.
Azure AD Connect is discussed in the “Synchronizing Active Directory”
section, later in this chapter.
Federated Identity
The federated identity model requires a synchronized identity model to be in
place already. However, unlike with the synchronized identity model, the
password hash is not synchronized to Azure AD, as passwords are verified by
on-premise AD to provide a single sign-on experience.
This model typically uses Active Directory Federation Services (ADFS) and is
the most complex model to implement. Additional network and server
infrastructure is required to achieve high availability.
This work will already have occurred if you are using Office 365 services. The
following sections describe these tasks in detail.
3. Select Add Domain and enter your custom domain name. This book uses
the domain EMSlab.ie.
4. The next screen of the wizard, shown in Figure 16.2, presents instructions to
verify your ownership of this domain. You must add a specific record to the
DNS records of the domain, and Microsoft verifies that new record. This
action does not affect any existing DNS records.
FIGURE 16.2 Verifying the domain.
Two verification methods are available:
Adding a TXT record (preferred)
Adding an MX record (alternative)
Adding a TXT record is the easiest option. Follow the hyperlink in the
wizard for additional information on this process with the various domain
name registrars.
The DNS record can take up to 24 hours to propagate fully after being
added, although it is normally available within an hour. Once the record is
propagated, click Verify. You will receive the error “Verification DNS
record not found” if you have not waited a sufficient amount of time before
verification. Once the domain is verified, its status changes in the portal.
The “Adding and Verifying a Custom Domain” section, earlier in this chapter,
discusses adding to Intune a custom domain name that is verified by Microsoft.
This section shows how to add that domain as a UPN suffix in Active Directory.
To add a UPN, log on to a domain controller (DC) and perform the following
steps:
This book uses the commonly implemented synchronized user identity model
(password synchronization). Azure AD Connect is the recommended tool for
integrating your on-premise AD with Azure AD; it replaces older directory
synchronization tools such as DirSync and Azure AD Sync, both of which
reached end-of-support in April 2017.
NOTE: ABOUT PASSWORD SYNCHRONIZATION
Password synchronization involves synchronizing the hashes of user
passwords from your on-premise AD to Azure AD. It allows users to log on to
Microsoft Online services using the same password they use to access local
network resources. This is not a single sign-on solution, as there is no token
sharing or exchange in the process.
At the time this book was published, Azure AD Connect 1.1 was the current
version of the tool. This version has new and improved features, including the
following:
This book assumes that you are using the most common topology, which is a
single on-premise forest with one or more domains and a single Azure AD. This
scenario is supported by the Azure AD Connect express installation.
These tasks are discussed in the following sections. After ConfigMgr and Intune
are integrated, you will be able to manage mobile devices. This is described in
detail in Chapter 17.
The discovery agent contacts a DC to locate the user resources. It discovers user
accounts from the specified OUs in Active Directory Domain Services and
creates discovery data records (DDRs) when sufficient resource information can
be found. The users are then available in the ConfigMgr console.
SELECT UserPrincipalName,
COUNT(*) AS NumOfOccurances FROM (SELECT
RIGHT(User_Principal_Name0,
LEN(User_Principal_Name0)-PATINDEX('%@%',
User_Principal_Name0)) AS UserPrincipalName FROM
CM_P01.dbo.v_R_User)
AS sub GROUP BY UserPrincipalName
11. Check the box to enable multi-factor authentication, if required. (There are
several methods of configuring MFA, but they are beyond the scope of this
book. See https://docs.microsoft.com/azure/multi-factor-
authentication/multi-factor-authentication for more information.) Click Next
to continue.
12. Review the configuration in the Summary dialog box and click Next to
configure the Intune subscription.
13. Close the wizard.
The Intune Subscription is now added, and you can verify that a new site system
is created (manage.microsoft.com). This is the cloud distribution point.
You can now configure management of the various platforms (see Figure 16.15),
as discussed in Chapter 17.
The Intune connector role is not present in ConfigMgr Current Branch, and the
service connection point (SCP) is now responsible for this functionality. This site
system role is discussed in Chapter 6, “Installing and Updating System Center
Configuration Manager.”
The authors recommend adding the SCP during ConfigMgr installation. This is
actually the default action. If you skipped this step during installation, you must
add the role now. The role can only be added on a central administration site
(CAS) or standalone primary site. Follow these steps:
Right-click any component and choose Messages -> All to see detailed
information, including errors and warnings.
SMS_Cloud_Services_Manager
SMS_CloudUserSync
SMS_DMP_Downloader
SMS_DMP_Uploader
Table 16.3 describes log files that are useful in troubleshooting Intune
integration issues.
You can enable verbose logging for any of the components (but do not forget to
turn it off again). Follow these steps:
Several online documents are available to assist you, including the following:
For urgent issues, you can contact Microsoft by telephone. You can find a full
list of local numbers for Intune support in the TechNet library. Local language is
supported in most locations, and English is supported in all locations. See
https://technet.microsoft.com/library/jj839713.aspx for further information.
For a less urgent issue, you can create an online support request through the
Office 365 admin center, at https://portal.office.com. Follow these steps:
Summary
This chapter described the tasks you need to perform to integrate Configuration
Manager and Intune in a hybrid solution. It discussed a number of choices that
need to be made during the process.
The integration is relatively straightforward. This chapter showed how to add the
service connection point and Intune subscription. Configuring the Intune
subscription enables you to customize the Intune company portal on the clients.
IN THIS CHAPTER
Enabling Devices for Management
Managing Company Devices
Protecting Mobile Devices
Configuring Mobile Devices
Inventorying Mobile Devices
Deploying Apps
Using the Company Resource Access Workspace
On-Premise Mobile Device Management
Table 17.1 lists the devices supported for management by ConfigMgr and
Intune.
Each platform has different prerequisites. For example, only iOS devices require
that you create and install an Apple Push Notification (APN) certificate before
enrolling those devices. Further information is available in the “Enabling iOS
Devices for Management” section, later in this chapter.
The device, highlighted in Figure 17.3, is now available for management in the
ConfigMgr console. Note the automatic naming convention for Android devices:
Username_Android_Enrollment_Date_Time.
FIGURE 17.3 Viewing an Android device in the Configuration Manager
console.
The next time you open the properties page, you do not see the path to the APN
certificate; it is replaced by the text <Certificate on file>.
FIGURE 17.5 Enabling iOS devices.
1. Search for the Intune Company Portal app in the Apple App Store and
then download and install the app.
2. Launch the app and log in to Intune with your user account, using the UPN
configured in Chapter 16.
3. The first steps of this wizard are the same as when enrolling an Android
device. Follow the wizard through the Company Access Setup, Why enroll
your device, We care about privacy, and What comes next pages. Click
Enroll to enroll your device.
4. Click Install to install Management Profile, as shown in Figure 17.6. This
profile contains the Device Enrollment Challenge and is signed and verified
by IOSProfileSigning.manage.microsoft.com.
FIGURE 17.6 Installing the iOS Management Profile.
5. After the enrolling certificate is installed, again click Install to install the
mobile device management profile.
6. Click Trust to verify that you trust the profile’s source.
7. Click Open when prompted to open the page in the Company Portal.
8. Company Access Setup requires no more attention, so click Continue and
then click Done on the next page. The Intune Company Portal for iOS is
installed, and the device is enrolled.
9. Select Rate App if you wish to give feedback on the setup experience.
The device is now available for management in the ConfigMgr console. The
automatic naming convention for iPhones is Name_iPhone.
At this point, the device could be enrolled in Intune by navigating to Settings ->
Accounts -> Work access and choosing Enroll in device management.
However, it is more useful to integrate with Microsoft Azure during this process.
Performing an Azure AD join of the device lets you take advantage of advanced
Azure features such as multi-factor authentication (MFA). You can configure
Azure so that automatic Intune enrollment is part of the process.
1. Start the initial setup of a Windows 10 Mobile device. Continue through the
out-of-box experience until you get to the Who owns the device? page,
shown in Figure 17.8.
2. Under My work or school owns it, click Set up for work.
3. Read the information on the What happens next page and click Next to
continue.
4. On the Let’s get you signed in page, sign in with your user account (UPN)
and password.
5. If MFA is configured, and you are prompted to verify your identity, choose
your preferred verification method and continue through the wizard. You
may also be prompted to provide a work PIN if Passport for Work is enabled
on your Azure tenant.
The wizard informs you “You’re all set!” This means the device has been added
to Azure AD and enrolled in Intune.
FIGURE 17.8 Joining Windows 10 Mobile to Azure AD.
The device is now available for management in the ConfigMgr console. Figure
17.9 shows the automatic naming convention for Windows Phone devices:
Username_WindowsPhone_Enrollment_Date_time.
FIGURE 17.9 Windows 10 Mobile in the Configuration Manager console.
The prerequisites for enrolling and managing Windows computers are the same
as those for Windows mobile devices, as already discussed in this chapter, in the
context of Windows Mobile. Intune auto-enrollment is discussed in the
“Automatic Intune Enrollment” section, earlier in this chapter, and Chapter 16
discusses external DNS records.
1. In Windows, navigate to Start -> Settings -> Accounts -> Access work or
school.
2. Under Connect to work or school, select Connect.
3. On the Set up a work or school account page, click Join this device to
Azure Active Directory (see Figure 17.11).
4. Sign in with your user account (UPN) and password.
5. If MFA is configured, and you are prompted to verify your identity, choose
your preferred verification method, and continue through the wizard. You
may also be prompted to provide a work PIN if Passport for Work is enabled
on your Azure tenant.
There are several differences in the way that ConfigMgr manages personal and
company devices:
The inventory data collected is different for personal and company devices.
For example, for iOS and Android devices, all software is inventoried for
company devices, while the inventory for personal devices shows managed
apps only.
You can use device ownership as a global condition when targeting a policy
or an app to a group of devices.
There are a number of methods to enroll company-owned devices for MDM with
Intune and ConfigMgr, discussed in the following sections. Some of these
methods are dependent on the device type and how it was purchased.
The high-level process for iOS enrollment using the Apple Configurator follows:
The devices are enrolled as user specific, and you can target these devices with
apps and policies based on the user. However, sometimes app deployment to
specific users is not required, and you may want to quickly bulk-enroll many
devices that will be shared by users. The device enrollment manager is a special
Intune account with permission to enroll more than 15 devices.
Select Wipe company content and retire the mobile device from
Configuration Manager if you require a selective wipe. This is useful in a
BYOD scenario if the user is leaving the company. In this scenario, the device is
no longer managed, and corporate data is removed. Personal data is not affected
by a selective wipe.
Tables 17.2 and 17.3 list the company data removed for each platform when
retiring a device and choosing selective wipe.
TABLE 17.3 Data Removed with Selective Wipe (iOS and Android)
Content iOS Android Samsung Knox
Company Apps are uninstalled. Apps and Apps are
apps and App data is removed. data remain uninstalled.
associated installed.
data
VPN and Removed. Removed. Removed.
Wi-Fi
profiles
Certificates Removed and revoked. Revoked. Revoked.
Settings Mostly removed Removed. Removed.
(review TechNet
documentation).
Management Management profile is Device Device
agent removed. administrator administrator
privilege is privilege is
revoked. revoked.
Email For email profiles N/A For email profiles
profiles provisioned by provisioned by
Microsoft Intune, the Microsoft Intune,
email account and the email account
email are removed. and email are
removed.
Select Wipe the mobile device and retire it from Configuration Manager if a
full wipe is required. This action restores the device to factory defaults; all data,
applications, and settings are removed. This option is useful when a device is
stolen or lost.
Resetting Passcodes
Passcode Reset is one of the additional remote device actions that you can
perform (refer to Figure 17.16). If a user forgets the passcode for his or her
device, you can provide assistance by removing the passcode or forcing a new
temporary passcode. The behavior is platform dependent (see Table 17.4).
You can view the state of a passcode reset by selecting View Passcode State
(refer to Figure 17.16). You can also select this from the Remote Device Actions
menu.
You can view the state of a remote lock by selecting View Remote Lock State
or by using the Remote Device Actions menu.
If a user sets up Activation Lock on a device and then leaves the company
without resetting this option, the device cannot be reactivated without the user’s
Apple ID and password. Activation Lock Bypass overcomes this problem, and
this feature is now supported in Configuration Manager.
To use this feature, select Activation Lock Bypass from the Remote Device
Actions menu.
Define the settings you require by creating configuration items and adding them
to a configuration baseline. You apply the settings to mobile devices by
deploying the baseline to a collection of devices. This process is discussed in the
next section, “Creating Configuration Items and Baselines.”
The settings are not supported on all platforms. The settings that are available
are categorized. Select the required categories when working through the wizard.
Now you need to create a configuration baseline, adding the CIs so they can be
deployed to a collection of devices. Follow these steps:
The last step in this process is to deploy the configuration baseline to a collection
of devices. Perform the following steps:
Microsoft has led the way in publishing OMA-URI values that can be used to
manage devices. Useful examples of custom URI settings for Windows 10 are
available at https://docs.microsoft.com/intune/deploy-use/windows-10-policy-
settings-in-microsoft-intune.
The scheduled check-in intervals for the various platforms are as follows:
iOS: Every 6 hours
Android: Every 8 hours
Windows Phone: Every 8 hours
Windows Computers Enrolled as Mobile Devices: Every 24 hours
Users can also manually sync a device at any time to immediately check for
policy, using the Company Portal app.
Inventory classes reported by the devices are platform specific; Figure 17.23
shows an example. Mobile devices report full inventory each time. Right-click a
device in the console and select Start -> Resource Explorer to view the
inventory data.
FIGURE 17.23 Inventory collection from various personal devices.
Figure 17.24 shows the inventory of all the apps that are collected on a Windows
10 computer enrolled as a company device.
FIGURE 17.24 App inventory for a company device.
Deploying Apps
Chapter 11, “Creating and Managing Applications,” and Chapter 12, “Creating
and Using Deployment Types,” describe how to create and manage applications
and deployment types (DTs). This section concentrates specifically on deploying
apps to mobile devices. The process is the same as with other devices: Use the
Create Application Wizard to create an application and use the Deploy Software
Wizard to deploy it to a collection of mobile devices.
In general, there are three types of apps you can deploy to mobile devices, each
of which behaves differently when deployed to a device:
Store Apps (Google Play, App Store, Windows Store): The user uses a
link to the app in the store to download and install the app. The user must
have a store account to download the app (with the exception of a Microsoft
Store for Business app).
Line-of-Business Apps (.xap, .appx, .ipa, .apk): These are apps developed
in-house, and they must be side-loaded to the devices.
Web Applications: These are deployment types that specify a link to a web
application. The deployment type adds an icon for the web application on
the user’s device. The icon type varies per platform.
Web clip (iOS)
Widget (Android)
Shortcut (Windows)
MAM policies are supported on iOS (versions 8.1 and later) and Android
(version 4 and later) only. Follow these steps to create a MAM policy and
associate it with the DT of an app:
SELECT
SMS_R_System.ResourceId,SMS_R_System.ResourceType,SMS_R_System.Name,
SMS_R_System.SMSUniqueIdentifier,
SMS_R_System.ResourceDomainORWorkgroup,
SMS_R_System.Client
FROM SMS_R_System
INNER JOIN SMS_G_System_DEVICE_OSINFORMATION ON
SMS_G_System_DEVICE_OSINFORMATION.ResourceID =
SMS_R_System.ResourceId
WHERE
SMS_G_System_DEVICE_OSINFORMATION.Platform like "Windows Phone"
and
SMS_G_System_DEVICE_OSINFORMATION.Version like "8.1%"
SELECT
SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,
SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,
SMS_R_SYSTEM.Client
FROM SMS_R_System
INNER JOIN SMS_G_System_DEVICE_COMPUTERSYSTEM ON
SMS_G_System_DEVICE_COMPUTERSYSTEM.ResourceId
= SMS_R_System.ResourceId
WHERE
SMS_G_System_DEVICE_COMPUTERSYSTEM.DeviceModel like "%iphone%"
SELECT SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,
SMS_R_SYSTEM.Name, SMS_R_SYSTEM.SMSUniqueIdentifier,
SMS_R_SYSTEM.ResourceDomainORWorkgroup, SMS_R_SYSTEM.Client
FROM SMS_R_System INNER JOIN SMS_G_System_DEVICE_COMPUTERSYSTEM ON
SMS_G_System_DEVICE_COMPUTERSYSTEM.ResourceId
= SMS_R_System.ResourceId
WHERE
SMS_G_System_DEVICE_COMPUTERSYSTEM.DeviceModel like "%ipad%"
SELECT
SMS_R_System.ResourceId,SMS_R_System.ResourceType,SMS_R_System.Name,
SMS_R_System.SMSUniqueIdentifier,
SMS_R_System.ResourceDomainORWorkgroup,
SMS_R_System.Client
FROM SMS_R_System
INNER JOIN SMS_G_System_DEVICE_OSINFORMATION
ON SMS_G_System_DEVICE_OSINFORMATION.ResourceID =
SMS_R_System.ResourceId
WHERE
SMS_G_System_DEVICE_OSINFORMATION.Platform like "Android%"
In the ConfigMgr console, navigate to Assets and Compliance -> Overview ->
Compliance Settings -> Company Resource Access. Right-click Certificate
Profiles and select Create Certificate Profile to open the dialog displayed in
Figure 17.28. Select the type of profile you want to create and enter the required
details to complete the wizard. Deploy the profile to a collection of users or
mobile devices as normal.
Certificate profiles are supported on all device types that can be enrolled in
Intune.
In the ConfigMgr console, navigate to Assets and Compliance -> Overview ->
Compliance Settings -> Company Resource Access. Right-click Email
Profiles and select Create Exchange ActiveSync Profile to open the dialog
displayed in Figure 17.29. Enter a name for the profile and the required details to
complete the wizard. Deploy the profile to a collection of users or devices.
FIGURE 17.29 Configuring email profiles.
There are a number of options to specify when configuring the email profile:
Email profiles are supported on all device types that can be enrolled in Intune.
In the ConfigMgr console, navigate to Assets and Compliance -> Overview ->
Compliance Settings -> Company Resource Access. Right-click VPN Profiles
and select Create VPN Profile. Enter a name for the profile and enter the
required details to complete the wizard. Deploy the profile to a collection of
users or devices.
In the ConfigMgr console, navigate to Assets and Compliance -> Overview ->
Compliance Settings -> Company Resource Access. Right-click Wi-Fi
Profiles and select Create Wi-Fi Profile. Enter a name for the profile and the
required details to complete the wizard. Deploy the profile to a collection of
users or devices.
No authentication (open)
WPA-Personal
WPA2-Personal
WPA-Enterprise
WPA2-Enterprise
WEP
802.1X
Each security type offers different encryption options. Note that all types may
not be supported on all platforms.
Management Capabilities
The following features are available for management with on-premise MDM:
1. Import the trusted root certificate and client certificate discussed in the
previous section.
2. Navigate to Settings -> Accounts -> Work access and select Connect to
work or school.
3. Enter your local domain credentials. The first attempt fails, as Windows
attempts to authenticate with Azure AD and is unable to do so as you are
using local credentials.
4. When you are prompted to enter a server name, enter the FQDN of the
enrollment point. You are then connected to the ConfigMgr enrollment point.
5. When you are prompted to authenticate, enter your local domain credentials.
The device is now connected and available in ConfigMgr, where it has been
enrolled as a mobile device.
Summary
This chapter discussed managing mobile devices. It described how to enroll the
various device types (Android, iOS, Windows Phone, and Windows) with
Microsoft Intune so that they can be managed using the Intune/ConfigMgr
hybrid solution. The enrollment process is slightly different for each platform.
The chapter also discussed the difference between personal and company
devices and described some ways to assist administrators with the enrollment of
company-owned devices.
Chapter 18 discusses conditional access, including how you can protect access to
corporate resources by forcing users to enroll their devices.
CHAPTER 18
Conditional Access in Configuration
Manager
IN THIS CHAPTER
Understanding Modern Authentication
Implementing Configuration Manager Policies
Enabling Conditional Access for Exchange Online
Enabling Conditional Access for SharePoint Online
Enabling Conditional Access for Skype for Business Online
Enabling Conditional Access for Exchange On-Premises
Monitoring and Troubleshooting Conditional Access
At the time this book was published, ConfigMgr’s conditional access feature
could secure access to the following services:
ADAL assists developers in easily obtaining access tokens from Azure Active
Directory (AD) and Windows Server Active Directory Federation Services
(ADFS) for Windows Server 2012 R2, which can be used to request access to
protected resources.
ADAL removes the need for modern apps to use basic authentication protocols
and allows them to use browser-based authentication (known as passive
authentication), where the user is directed to an identity provider’s web page to
authenticate.
Apps that act as clients can leverage modern authentication. Modern
authentication conversations have the following features:
Table 18.1 shows the current availability of modern authentication across Office
applications.
Modern authentication may not turned on by default for all services. For
example, Table 18.2 shows the default modern authentication states for Office
365 services.
TABLE 18.2 Modern Authentication States for Office 365 Services
Service Default Details
State
Exchange Off Turn on with PowerShell; see
Online http://social.technet.microsoft.com/wiki/contents/articles/32711.ex
online-how-to-enable-your-tenant-for-modern-authentication.aspx
SharePoint On Not available.
Online
Skype for Off Turn on with PowerShell; see
Business http://social.technet.microsoft.com/wiki/contents/articles/34339.sky
Online for-business-online-enable-your-tenant-for-modern-authentication.
8. Review the details on the Summary page. Click Next to complete the
wizard. The compliance policy is now created.
9. Click Close to close the wizard.
You now can use the compliance policy in conjunction with conditional access
policies to control access to corporate services, as described in the following
sections.
Figure 18.5 shows the flow that conditional access policies for Exchange Online
use to evaluate whether to allow or block devices.
FIGURE 18.5 Conditional access policy flow for Exchange Online.
The Microsoft Outlook app for iOS and Android is also supported for
conditional access for Exchange Online (see Table 18.7). These are modern apps
and require modern authentication to be turned on for Exchange Online.
Set-OrganizationConfig -OAuth2ClientProfileEnabled:$true
3. Verify that the change was successful by running the following command:
Click here to view code image
Evaluating the Effect of the Conditional Access Policy for Exchange Online
In the ConfigMgr console, navigate to Monitoring -> Reporting -> Reports.
Under Device Management, run the report List of Devices by Conditional
Access State to identify devices that will be blocked from Exchange Online
when you enable conditional access. Select the collection to be evaluated and
choose View Report. Figure 18.6 shows a sample report. Notice that one of the
devices shown is not compliant, so email access to this device will be blocked.
Notify affected users to remediate their devices before enabling conditional
access; otherwise, they will not have access to email.
These groups are Azure AD security user groups and can be configured in one of
two portals:
The user successfully added an Exchange Online mail account but sees only a
single email, shown in Figure 18.9, warning that further action is required. This
notification email cannot be customized.
The email contains further instructions and explains that the device must be
enrolled with Intune before corporate email can be accessed. The user can click
the Get started now hyperlink shown in Figure 18.10, which directs the user to
download and install the Intune company portal. See Chapter 17, “Managing
Mobile Devices,” for information on device enrollment.
Once the device is enrolled and compliant, the user can access his or her
corporate email.
Figure 18.11 shows the flow used by conditional access policies for SharePoint
Online when a targeted user attempts to connect to a file using a supported app
such as OneDrive.
You can control access to SharePoint Online from the apps listed in Table 18.9.
These apps require modern authentication, which is turned on by default for
SharePoint Online.
The user opens a browser and navigates to the SharePoint site. The user wants to
open a Word document, as shown in Figure 18.13.
However, the device has not been enrolled, so the user cannot open the
document and is notified that this SharePoint site is secured by conditional
access, as shown in Figure 18.14.
Figure 18.15 shows the flow used by conditional access policies when a targeted
user attempts to use Skype for Business Online on his or her device. The
following sections describe the prerequisites and steps for enabling conditional
access.
FIGURE 18.15 Conditional access policy flow for Skype for Business Online.
You can also control access to Skype for Business Online from the Skype for
Business apps for Android and iOS.
3. Verify that the change was successful by running the following command:
Click here to view code image
Get-CsOAuthConfiguration
Evaluating the Effect of the Conditional Access Policy for Skype for
Business Online
To evaluate the effect of the conditional access policy, navigate to Monitoring -
> Reporting -> Reports in the ConfigMgr console. Under Device Management,
run the report List of Devices by Conditional Access State to identify devices
blocked from Skype for Business Online when you enable conditional access.
Select the collection to evaluate and choose View Report. As shown earlier in
Figure 18.6, one of the devices shown is not compliant, and access to Skype for
Business will be blocked for that device.
These groups are Azure AD security user groups and can be configured in one of
two portals:
Configuring the Conditional Access Policy for Skype for Business Online
All configurations for Skype for Business Online are carried out directly using
the Intune portal, https://manage.microsoft.com. Follow these steps:
FIGURE 18.16 Enabling conditional access for Skype for Business Online.
3. Check the box Enable conditional access policy.
4. Choose the specific platforms for the policy.
5. Select the required targeted and exempted groups.
6. Click Save to save the policy, and it takes effect immediately.
Figure 18.17 shows the flow that conditional access policies for Exchange On-
Premises use to evaluate whether to allow or block devices. The following
sections describe the process.
FIGURE 18.17 Conditional access policy flow for Exchange On-Premises.
Clear-ActiveSyncDevice
Get-ActiveSyncDevice
Get-ActiveSyncDeviceAccessRule
Get-ActiveSyncDeviceStatistics
Get-ActiveSyncMailboxPolicy
Get-ActiveSyncOrganizationSettings
Get-ExchangeServer
Get-Mailbox
Get-Recipient
Get-User
Set-ADServerSettings
Set-ActiveSyncDeviceAccessRule
Set-ActiveSyncMailboxPolicy
Set-CASMailbox
New-ActiveSyncDeviceAccessRule
New-ActiveSyncMailboxPolicy
Remove-ActiveSyncDevice
Follow these steps in the ConfigMgr console to add the Exchange Server
connector:
Evaluating the Effect of the Conditional Access Policy for Exchange On-
Premises
To evaluate the effect of the conditional access policy, navigate to Monitoring -
> Overview -> Reporting -> Reports in the ConfigMgr console and run the
report List of Devices by Conditional Access State to identify devices that will
be blocked from accessing Exchange after you configure the conditional access
policy.
Select the collection to be evaluated and choose View Report. As shown earlier
in Figure 18.6, one of the devices shown is not compliant, and email access will
be blocked.
Navigate to Assets and Compliance -> Overview -> User Collections in the
ConfigMgr console to create these collections.
The conditional access policy does not have to be deployed. It takes effect
immediately.
Refer to Figures 18.9 and 18.10, earlier in this chapter, which show that the user
successfully added a mail account but sees only a single email warning that
further action is required. The email contains instructions and explains that the
device must be enrolled with Intune before corporate email can be accessed.
The following sections discuss what you can do to monitor and troubleshoot
conditional access issues.
Client Side: What client is configured in your solution? Are you using a
modern app or a built-in mail client? Remember that not all combinations
are supported. For example, modern apps are not supported for
implementing conditional access with Exchange On-Premises.
Server Side: If you are using modern apps, remember that modern
authentication may not be turned on by default for Exchange Online or
Skype for Business Online.
Compliance Policy: Compliance policies are optional. However, have you
deployed a policy that includes the settings you require?
Conditional Access Policy: Has conditional access been enabled for the
service you require? Have you configured your targeted and exempted users
correctly?
At the time this book was published, you could create free Microsoft support
requests for all Intune-related activities. If you have difficulties with
troubleshooting, locate your local number for Intune support at
http://technet.microsoft.com/jj839713.aspx.
Summary
This chapter described conditional access, one of the most widely implemented
features of the hybrid ConfigMgr and Intune solution. It discussed how
conditional access ensures that access to corporate data can be limited to devices
that are managed and compliant. This chapter talked about modern
authentication, the cornerstone for conditional access for modern apps, and
explained terms such as ADAL and OAuth.
IN THIS CHAPTER
Protection Capabilities of Microsoft’s Antimalware Platform
Prerequisites for Endpoint Protection
Planning and Considerations
Deploying and Configuring Endpoint Protection
Monitoring and Reporting in Endpoint Protection
Endpoint Protection Actions and Alerts
Windows Defender Advanced Threat Protection
Key antimalware capabilities built into Windows 10 are also discussed. These
capabilities leverage Windows Defender, the default antimalware solution for
Windows 10. Microsoft does not intend to replace the security capabilities of
Windows with Defender/SCEP. Keep this in mind if you have many legacy
systems to manage or maintain.
This strategy often means that Microsoft’s antimalware platform lags in lab
testing due to the use of real-world prevalence-based telemetry. In addition,
Microsoft focuses heavily on preventing false positives across its antimalware
development life cycle, and it has one of the industry’s lowest false positive
rates. Given the number of devices in the world running Microsoft Security
Essentials and Windows 10 Windows Defender, Microsoft needs to ensure that
its false positives are extremely low.
In addition, Microsoft does not provide controls and settings to define different
thresholds based on process “risk,” as defined by an administrator or similar
advanced controls. Instead, Microsoft makes these determinations based on its
malware research and telemetry. The response is then codified into the definition
updates. When a new threat creates a need for a new way to protect systems,
Microsoft releases a change into its engine or the platform itself—again, based
on the complexity of the change.
Using Antirootkits
Antirootkit and diagnostic scanning address the growing dangers of rootkits and
other complex malware (complex referring to malware that has a deep
understanding of its target operating system and how to obfuscate itself from
detection). To address the threat posed by rootkits and other complex threats,
SCEP/Defender includes kernel support libraries, which allow it to detect initial
attempts of obfuscation or already obfuscated code. SCEP/Defender can hook
into the Windows boot process to remove malware during the next restart prior
to the kernel loading; this process is similar to the process by which kernel
binaries are updated. It also provides the ability to perform low-level scans. See
the section “Using Windows Defender Offline,” later in this chapter, for more
information.
Diagnostic Scanning
SCEP/Defender’s quick scan is often assumed to be inferior to a full scan. The
quick scan should be named intelligent scan, though, because its diagnostic
scanning capability allows SCEP/Defender to automatically vary the scan
intensity. By default, if RTP has been constantly enabled and there has been no
malware activity, the quick scan is low intensity, and many low-level/expensive
elements are disabled.
BM and DSS are intrinsically linked because BM triggers DSS to report the
compromised network utility binary to Microsoft’s Windows Defender cloud
protection (formerly MAPS). DSS then receives a response from Microsoft,
confirming that the network utility is compromised. This response takes the form
of a new micro-definition that instructs RTP to prevent the compromised
network utility from launching. Windows Defender refers to the combination of
MAPS and DSS settings as cloud-based protection. Ensure that MAPS/cloud
protection is enabled to be able to receive the high level of protection and the
most responsive protection. For more information on cloud-based protection, see
https://cloudblogs.microsoft.com/microsoftsecure/2015/01/14/maps-in-the-
cloud-how-can-it-help-your-enterprise/.
ConfigMgr Current Branch version 1710 can configure these security features.
This chapter does not focus on these technologies; rather, it focuses on the
antimalware capabilities of Windows Defender, given the change in ConfigMgr
from managing SCEP on Windows 7 and earlier versions to Windows Defender
on Windows 10. For general information on the overall capabilities of Windows
Defender outside antimalware and Windows 10 threat protection capabilities, see
https://docs.microsoft.com/windows/threat-protection/.
Windows Defender is specifically called out in this section rather than SCEP in
Windows 10 and Windows Server 2016 because it is built in and enabled by
default rather than being an add-in, as with previous versions of Windows. SCEP
on Windows 10 and Windows Server 2016 acts a management and monitoring
layer on top of Windows Defender. In contrast, previous versions of SCEP
installed a complete standalone instance of the Microsoft Common Antimalware
Platform.
The final element is the Antimalware Scan Interface (AMSI). This generic
interface is designed to allow applications to integrate with the antimalware
product present on a device. AMSI is intended to tackle the problem of script
obfuscation by malware writers. As scripts and automation code are non-
executable and instead leverage script engines for execution, they are good
targets for delivering obfuscated payloads. These obfuscated payloads must be
deciphered to their native format prior to execution by the script engine.
AMSI allows script engines including PowerShell and VBScript, along with
other applications, the ability to submit deciphered code to the antimalware
engine on the system prior to execution. As the code is now deciphered, it
becomes easier for signatures to catch the malicious code. For more information
and detailed examples of how AMSI works, see
https://cloudblogs.microsoft.com/microsoftsecure/2015/06/09/windows-10-to-
offer-application-developers-new-malware-defenses/.
By leveraging WinPE, WDO can scan and clean files that would normally not be
accessible on a running system. It can also perform raw disk scans to identify
malware that uses slack space, providing remediation against some of the more
complex varieties of malware and rootkits.
NOTE: MALWARE THAT USES SLACK SPACE
Slack space refers to space marked as deleted by a file system. This is a
perfectly normal design that improves performance, as file systems should
only mark data as deleted without overwriting the deleted data. Once the data
is marked as deleted, the underlying physical storage units/sectors can be
reused to write new data.
Malware can use this slack space to obfuscate itself from protection software
running inside the OS. This is usually done by corrupting the boot process,
allowing the malware to launch prior to the OS and make changes to the boot
order and gain privileged access to low-level application programming
interfaces (APIs). The malware can then repeatedly infect a supposedly clean
machine with each restart. An example of malware using this technique is
Alureon.
SCEP and Windows Defender both attempt to notify the user and the
administrator that malware requiring a WDO scan (or offline) scan has been
found. SCEP and Defender always attempt to remove what is accessible in the
running OS or during a restart. When this is not possible, their state is changed
to indicate that an offline scan is required.
In versions prior to Windows 10 and Windows Server 2016, a user or local on-
site PC support technician would have to download a version of WDO and
install it on a clean PC, as the installation process would obtain the latest drivers
and create boot media. The user or technician would then have to use that boot
media to boot the infected PC into WDO and allow a scan to complete. The
duration of the scan would depend on the malware and whether raw disk
scanning was required. Raw disk scanning allows WDO to ignore disk locations
marked as free or unpartitioned and scan them as though they were formatted.
With Windows 10, WDO is now built in to the main Defender settings and can
be launched directly from the Windows Settings app.
Build a collection that finds all clients in a Full scan required state and
target them with a more aggressive scan policy that requires a daily full
scan during lunch hours.
Build a collection that targets a simple package and program that restarts the
client computer (perhaps an existing restart wrapper from software
distribution). The collection can include clients in the Restart required
antimalware state.
For these reasons, SCEP does not supplant Windows Defender on these systems.
Instead, it provides enterprise management and monitoring capabilities on top of
Windows Defender. The underlying client user interface remains unchanged and
continues to refer to Windows Defender. This is important, as it may require any
end-user guidance to address both SCEP and Windows Defender when multiple
Windows versions are in use.
The installation process on a hierarchy and a standalone primary site is the same
(barring the selection of servers/sites available). The following steps can be used
to deploy the EPP (in this case, on the CAS):
When the wizard completes, ConfigMgr installs the EPP role. To modify the
default behavior of the MAPS membership settings, navigate to Administration
-> Overview -> Site Configuration -> Server and Site Systems. Double-click
the Endpoint Protection Point role and then access the MAPS tabs to make
changes.
Confirm installation of the EPP role by reviewing the EPSetup.log file in the site
server’s log files folder. The log should end with the line “Installation was
successful.”
The final file included in a definition update release is the Microsoft malware
protection engine, MpEngine.dll. The engine uses the VDMs described in these
bullets to scan and protect against malware, including viruses and spyware. The
engine is generally updated once a month, along with the baseline. The engine
often gains new protection capabilities in response to advancements and
innovations made by malware authors.
Over the next month, the delta VDM files slowly grow until the next rebaseline.
In terms of file size, Microsoft publishes guidance in KB article 977939
(https://support.microsoft.com/kb/977939) as follows:
MpEngine.dll: 14MB
MpAvBase.vdm: 58MB
MpAvDlta.vdm: 28MB
MpAsBase.vdm: 36MB
MpAsDlta.vdm: 4MB
Confirm that the ADR was created successfully. The authors recommend testing
the ADR by running it manually once to validate that it is working as expected.
Ensure that when you test, you use a test collection rather than the production
device collection.
The MMPC also hosts definition updates that are available for direct download
(https://www.microsoft.com/security/portal/definitions/adl.aspx). These cover
not just SCEP/Defender but all Microsoft antimalware products. The definition
updates contain complete definitions and thus are quite large. At the time this
book was published, the 64-bit definitions were between 111MB to 124MB.
Sizes vary constantly, based on when the updates are in the rebase cycle (see the
“Definition Updates Architecture” section, earlier in this chapter) and malware
activity.
The MMPC update method is used only if the SCEP/Defender client cannot
obtain definitions for at least 14 days. This helps protect against scenarios where
malware may have disabled WU components or convinced the user to do so.
This is an automated process with no configuration or setup required; the
SCEP/Defender client simply downloads the definitions directly from the
MMPC. However, because it is automated and unmanaged, there is no protection
against wide area network link usage. As this method is used as a last resort, it
should be enabled wherever possible.
There are no steps to configure this process for Microsoft Update. The
SCEP/Defender client calls out to WUA and requests a scan directly against
MU. (WUA can communicate with WSUS and MU simultaneously.) However,
configuring this process for WSUS requires that you perform specific
configuration steps:
If using a WSUS server that is a SUP, follow the steps in the “ConfigMgr
Software Update Management Source” section, earlier in this chapter—
specifically those that configure software update synchronization to include
the products and classifications for definition updates.
If using a standalone WSUS server, follow the steps in this section to
configure the products and classifications for definition updates.
Regardless of whether you are using a standalone or SUP-enabled WSUS
server, you must configure WSUS approval rules in the WSUS console to
enable WSUS to supply the definition updates when requested by WUA
clients.
https://www.niallbrady.com/2013/02/22/how-can-i-deploy-system-center-
2012-endpoint-protection-definition-updates-from-a-unc-file-shares/
https://blogs.technet.microsoft.com/charlesa_us/2015/05/20/configmgr-
2012-how-to-deploy-scep-definition-updates-via-unc-share-for-isolated-
environment/
https://blog.thesysadmins.co.uk/sccm-2012-scep-unc-definition-updates-
automation-powershell.html
Psexec.exe -s -i regedit.exe
3. From the Registry Editor, delete the following keys and then immediately
shut down the computer:
Click here to view code image
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
Antimalware\InstallTime
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
Antimalware\Scan\LastScanRun
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
Antimalware\Scan\LastScanType
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
Antimalware\Scan\LastQuickScanID
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft
Antimalware\Scan\LastFullScanID
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RemovalTools\MRT\GUID
4. Shut down the reference computer (if you have not already) and capture the
reference computer for imaging.
As with all other ConfigMgr data, you can extract SCEP/Defender data for use
in other systems. This may include security information and event management
(SIEM) solutions to provide a data feed into a security operations center (SOC).
It also enables integration with service management solutions to automatically
trigger tickets for malware response by security administrators or local desktop
support technicians.
System Center Endpoint Protection Status: This is the primary view and
is generally used for most daily in-console monitoring.
Malware Detected: This simpler view provides a list of all malware by
collection and a count of infected machines. This view is typically used for
secondary analysis after a malware incident has been identified.
By default, the All Desktop and Server Clients collection appears in the Status
view. Perform the following steps to add more collections to this view:
1. Open the properties of the collection you want to include in the dashboard.
2. Click the Alerts tab in the Properties dialog box.
3. Check the View this collection in the Endpoint Protection dashboard
check box and click OK.
The dashboard views do not pull live data for scalability and performance
reasons. They are based on summarized data, refreshed every 20 minutes by
default. You can increase or decrease the frequency by going to the Endpoint
Protection Status view (the node directly above the two dashboard views),
clicking Schedule Summarization, and configuring an appropriate
summarization interval. Take care when setting a more frequent summarization,
as doing so increases the load on your ConfigMgr site infrastructure (primarily
the site database).
The various elements of the Status view are designed to provide actionable
information to a ConfigMgr administrator or security professional. The
remainder of this section explains the expected actions for each element of the
view. They are grouped into two areas: Security State (see Figure 19.14) and
Operational State (see Figure 19.15).
The Security State group is composed of two elements. This section of the view
is designed to provide information about security-related incidents where either
SCEP/Defender has detected malware, SCEP/Defender requires additional steps
to remediate malware, or SCEP/Defender itself is not running/installed. The
following are the various elements in this group:
The reports also provide historical information, like the hardware inventory
reports. However, the SCEP historical data defaults to 365 days, as opposed to
90 days for hardware inventory. You can reduce this value by modifying the
Delete Aged Endpoint Protection Health Status History Data maintenance tasks
on the primary sites that manage SCEP/Defender clients. For more information
on site maintenance, see Chapter 24, “Backup, Recovery, and Maintenance.”
The following are the reports and the recommended usage of each one:
Following are the top views to leverage when extracting data for use with other
systems:
The next sections explain the available alerts and configuration, available
actions, and how to use those actions. They also provide a brief overview of
automating alerts and actions. The automation topics are meant to provide
guidance on what interfaces and classes/views/cmdlets to use rather than in-
depth or prescriptive guidance on building scripts or software development kit
(SDK) solutions.
Client actions cause clients to download new definitions, run scans, download
policy, and/or evaluate software updates. These actions are delivered using either
standard client policy (by default, once an hour) or client notifications
(immediately). You can also use the download policy client notification action to
cause standard client policy to be processed sooner. Client actions are triggered
by right-clicking a client from a device collection and selecting either Client
Notification or Endpoint Protection from the menu.
Allow This Threat: This action creates an antimalware policy that allows
the selected malware to run. The created policy is deployed to the All
Systems collection. This action allows you to respond to false positives or
allow potentially unwanted programs (PUPs). Use the Download Computer
Policy client notification action to cause impacted clients to immediately
process this policy.
Restore Files Quarantined by This Threat: This action allows you to
restore quarantined files associated with this malware. Like the previous
action, it allows you to respond to false positives or PUPs. The action
allows you to only restore the files or restore the files and add an exclusion
for the files. If you choose not to exclude the files, they are quarantined
when next scanned by SCEP/Defender.
Exclude Selected Files or Paths from Scan: This action creates a policy
that excludes the selected paths from malware scanning. This also excludes
the path for all SCEP/Defender real-time and schedule scan activities. If
responding to a false positive, using the Allow this threat action may be
more appropriate.
When the file is ready, you can use ConfigMgr to distribute it and onboard
clients. This process is simple and involves supplying the onboarding file as part
of the policy wizard. The policy can then be deployed and monitored like any
other ConfigMgr policy. To create the Windows Defender ATP onboarding
policy, follow these steps:
Summary
This chapter provided an in-depth look at the protection technologies and
capabilities of SCEP/Defender and Windows. It also provided a guide to
designing SCEP deployment, along with configuration and monitoring of that
deployment. The chapter covered more advanced topics around programmatic
access to EP data across alerts and reporting data, providing a look into how to
integrate EP into security event management solutions.
IN THIS CHAPTER
Introducing the Queries Node
Creating Queries
Using the ConfigMgr Query Builder
Understanding Criterion Types, Operators, and Values
Writing Advanced Queries
Understanding Relationships, Operations, and Joins
Using Query Results
Using Status Message Queries for In-Depth Analysis
While ConfigMgr comes with a handful of predefined queries, the goal of this
chapter is to help you become comfortable writing your own—first by using the
ConfigMgr query builder and then, with enough practice, by hand. This chapter
provides information on objects, classes, and attributes, as well as descriptions of
criterion types, operators, and joins to provide insight for you to build your own
queries.
When you select a query in the List pane, the ribbon bar displays the following
set of options, also shown in Figure 20.1:
To select additional columns, right-click a column header (see Figure 20.2), and
select a column.
FIGURE 20.2 Choosing columns in the Queries node.
If you find that adding and removing columns adds excessive white space
between column values, you can resize the columns to overlap data or fit them
in. To resize columns, choose the separator bar between the column headers and
drag it to the left or right. To resize a column to fit the contents automatically,
right-click the column header and choose Size Column to Fit. Optionally, resize
all columns to fit by right-clicking and choosing Size All Columns to Fit.
While viewing all columns of interest is useful, it may be difficult to sort through
the number of queries in the List pane. Clicking any column header sorts the List
pane results in the order of the arrow: up for ascending or down for descending.
Sorting is also accessible via the menu by right-clicking the column header area.
You can also sift through queries by grouping them by type. You can group
queries by any column if the column has been selected for display. To group by a
column, right-click in the column header area, choose Group By, and select the
column. Figure 20.3 shows how the List pane looks when grouping by the
Resource class. Grouping queries together lets you collapse and expand groups.
FIGURE 20.3 The List pane when grouping by the Resource class.
If running a query results in many returned objects, you can use the search bar to
narrow the results. This makes finding information extremely fast, as it does not
require sorting the results or scrolling up and down to find a particular object.
Once you have a result set from your query, you can perform the following
actions, also shown in Figure 20.4, against any of the objects in the set (provided
that the resource class is a system resource):
Creating Queries
ConfigMgr comes with a handful of queries out of the box that illustrate a very
small subset of the rich amount of data available. Consider them a starting point;
take time to review these queries to understand the available query properties.
Using the query builder is a safe way to retrieve data from ConfigMgr. Since
class joins are built automatically behind the scenes, there is less concern that an
improper query will be resource intensive (although this is not entirely
mitigated). The next sections provide insights into WQL, the available object
types to query, use of the query builder, and available operators.
Following is an example of a WQL query that lists devices with more than
1,024MB of RAM:
Click here to view code image
select * from SMS_R_System inner join SMS_G_System_X86_PC_MEMORY
on
SMS_G_System_X86_PC_MEMORY.ResourceID = SMS_R_System.ResourceId
where
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory >= 1048576
An object type
One or more attribute classes
One or more attributes
Object Types
An object type is a set of attributes representing a ConfigMgr database object.
Such objects include applications, deployments, devices, and so on. Table 20.1
lists commonly used object types and their descriptions.
Attribute Classes
An attribute class is a container object that groups related attributes together.
Use the example in the “Building Queries Using the WMI Query Language”
section to examine the Memory attribute class, which contains attributes such as
AvailableVirtualMembory, TotalPageFileSpace,
TotalVirtualMemory, TotalPhysicalMemory, and so on. As all these
attributes are logically related to memory, they are grouped into the Memory
attribute class.
Most attribute classes exist as part of the System Resource object type.
Information in these attributes is provided by hardware inventory. If the
available information is inadequate, you can extend the hardware inventory,
which enables you to add even more attribute classes to the System
Resource object type. Extending hardware inventory is discussed in online-
only Appendix E, “Extending Hardware Inventory,” which you can download
from the book’s companion website, at
http://www.informit.com/title/9780672337901, on the Downloads tab.
Attributes
An attribute is a property in an attribute class that is used for displaying or
filtering data. For example, the TotalPhysicalMemory attribute of the
Memory attribute class contains the total amount of RAM available, expressed
in kilobytes. Figure 20.5 illustrates the relationship of an object type to an
attribute class and an attribute class to an attribute.
select SMS_R_System.Name,
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory
from SMS_R_System inner join SMS_G_System_X86_PC_MEMORY on
SMS_G_System_X86_PC_MEMORY.ResourceID = SMS_R_System.ResourceId
This query returns all devices and their total physical memory. To return only a
certain set of results, use attributes as a part of the criteria set to filter data based
on an expression. The example in the “Building Queries Using the WMI Query
Language” section uses the TotalPhysicalMemory attribute to specify that
the query should bring back only information from devices with over 1024MB
of RAM. The query is next modified to add criteria specifying the memory
requirements:
Click here to view code image
select SMS_R_System.Name,
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory
from SMS_R_System inner join SMS_G_System_X86_PC_MEMORY on
SMS_G_System_X86_PC_MEMORY.ResourceID = SMS_R_System.ResourceId
where
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory >= 1048576
The easiest way to create a new query is with the Create Query Wizard. Perform
the following steps to launch the wizard and create the query:
1. Click the Queries node and choose the Create Query action to launch the
wizard.
2. On the first page, the General Query Settings page, fill in the name of the
query. For this example, use the name Systems with Minimum 4GB RAM.
Following are some other fields on this page:
Comment: This field is optional, but as a best practice you should use
it to help identify the query and indicate its purpose. Fill in the
comment with Systems with Minimum 4GB (4194304KB) RAM.
Import Query Statement: Use this field to browse through existing
queries and use one as a starting point for building a query. As this
query is built from scratch, do not use this feature at this time.
Collection Limiting: This feature limits results to objects that exist as
members of a specified collection. You can specify the collection in
the dialog as part of the query properties or have it prompt for a
collection each time the query executes. Do not use collection limiting
at this time.
3. Create a new query statement by clicking Edit Query Statement. The
Create Query Wizard now displays the Query Statement Properties dialog
box.
To display device names and their associated total physical memory, add the
attributes to the Results section. Click New to display the Result Properties
dialog box. Click Select to bring up the Select Attribute dialog box and add
the following paired values:
Attribute Class: System Resource
Attribute: Name
Attribute Class: Memory
Attribute: Total Physical Memory (KB)
When completed, the General tab of the Query Statement Properties dialog
box should look as shown in Figure 20.6.
4. Now that you have defined the attributes you want to see in your query
results, the next step is to specify criteria to display systems that match the
requirements. In the Query Statement Properties dialog box, choose the
Criteria tab. Click New to display the Criterion Properties dialog box.
Leave the default criterion type (discussed later in this chapter, in the
“Understanding Criterion Types, Operators, and Values” section) as Simple
value. Click Select to display the Select Attribute dialog box and add the
Memory class and the Total Physical Memory (KB) attribute.
Click OK to return to the Criterion Properties dialog box and set Operator to
is greater than or equal to. Specify 4194304KB (4GB, expressed in
kilobytes) as the value, as shown in Figure 20.7.
Click OK to close the Criterion Properties dialog box. Notice that the
Criteria tab is now filled with the criterion properties you just created, as
shown in Figure 20.8. Click OK to close the Query Statement Properties
dialog box and return to the General Query Settings page.
select SMS_R_System.Name,
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory
from SMS_R_System inner join SMS_G_System_X86_PC_MEMORY on
SMS_G_System_X86_PC_MEMORY.ResourceID = SMS_R_System.ResourceId
where
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory >= 1048576
The criteria of the query follow after the word where. This is known as a WHERE
clause, and it is made up of a property, an operator, and a value, closely
matching the focus of this section. The query uses the following as the property,
operator, and value:
Property:
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory
Operator: >= (greater than or equal to)
Value: 1048576
A WHERE clause limits the scope of data returned. The WHERE clause illustrated
in this section returns devices with greater than 1024MB of physical RAM. The
next sections examine these elements in more detail.
Null Value: This criterion type compares an attribute to null. One such use
of this criterion type would be to search for devices where the Active
Directory (AD) Domain Name value is unknown.
To search for devices where the value is missing, the criteria can be set to is
NULL. Inversely, the criteria can also search for where the value is present
(or is not NULL).
Simple Value: This criterion type compares an attribute to a constant value.
This is the most basic and yet widely used type of criterion. This is the type
used in the memory query example in the previous section.
Prompted Value: This criterion type prompts for the value to compare
against at runtime. As an example, using the memory query, instead of
specifying 1048576, the criterion type can be left as <prompted value>,
providing the administrative user executing the query the ability to populate
the value to something else. If 2048MB were more desirable, the
administrative user would enter the value 2097152 at runtime.
List of Values: This criterion type compares the value to a list of constant
values. A useful example is when searching for devices that match a certain
chassis type. To find devices that match a desktop profile, you could use the
values 3, 4, 6, and 7 as a starting point. Figure 20.10 shows the properties of
the list of values criterion type when constructing such a query. Note that
while you can add multiple values, you are restricted to using one operator
type.
Relational Operators
Depending on the criterion and data type, you will find that certain operators
may not be available. Because operators in ConfigMgr are relational in nature,
the available operators depend on the data type of the specified attribute. For
example, whenever a date value is used, such as Workstation Status - Last
Hardware Scan, additional operators become available that are specifically
designed to query dates and parts of dates.
Date and Time Operators: This type of operator requires a value that
matches the specified date/time operator. The operators match those found
for the other criterion types (with the exception of NULL), prepended with
one of the following: day, day of week, day of year, hour, millisecond,
minute, month, quarter, second, week of year, or year.
Numerical Operators: This type of operator requires a numerical value;
otherwise, the query fails. The numerical operator consists of the following:
is equal to, is greater than, is greater than or equal to, is less than, is less
than or equal to, and is not equal to.
String Relational Operators: This type of operator requires a string to
evaluate against the operator. Operators such as LIKE are available with
strings.
Table 20.2 lists available operators for each criterion type when using the string
data type.
Logical Operators
Sometimes a query with a single expression will have insufficient criteria to
return the correct set of data. For example, say that the criterion is more than
simply looking for devices with greater than 1024MB of RAM, and you are also
interested in devices that have more than 800MB of free disk space. You can join
the expressions together by using the logical AND operator to cause both
expressions to evaluate.
AND: Finds all objects that match both expressions joined by AND. This is
illustrated with the RAM and free space example in the “Building Queries
Using the WMI Query Language” section of this chapter.
OR: Finds all objects that match either expression joined by OR. An
example of an OR expression is to search for ConfigMgr client versions
that match 5.00.7561.0000 OR 4.00.6487.2157.
NOT: Finds all objects that do not match the expression the NOT operator
is applied to. For example, using NOT on an expression looking for
ConfigMgr client version 5.00.7561.0000 would return any object with a
different version of the client installed.
The Value field also accepts wildcards to help shape the query correctly.
Wildcards work with operators that use the LIKE clause. Any other operators
assume that the wildcard is a literal character. Table 20.3 details available
wildcards and their functions.
You can mix and match wildcards together to create more definitive filters in
order to match widely and narrowly at the same time. For example, say that you
want to find the names Apollo, Ares, Artemis, Athena, Erebos, and Hermes. The
following are wildcards you can use to find them:
Using the query builder is a much simpler process than writing WQL queries by
hand. However, the query builder is limited in the options it displays in Design
view. ConfigMgr supports the use of Extended WQL for query writing, which
supports SELECT clauses such as COUNT, DISTINCT, ORDER BY,
DATEPART, and so on. Some of these options, such as DISTINCT and ORDER
BY, are exposed, as shown in Figure 20.11. Other equally useful syntax must be
manually entered—specifically the date and time functions.
Writing queries with certain criterion types, such as a subselect value query, is
considered advanced because the process of writing such queries is not
particularly straightforward. This type of query is extremely helpful when
querying multi-valued attributes such as Add/Remove Programs.
The next section considers several of the restrictions of the Extended WQL
implementation as used in ConfigMgr to help understand what is available when
writing advanced queries.
FIGURE 20.11 SELECT DISTINCT and ORDER BY exposed in the query
builder.
The results of COUNT do not display properly and are therefore not useful
for querying through the ConfigMgr console.
COUNT and DISTINCT cannot be used together in a WQL query.
While supported, UPPER and LOWER are not helpful because WQL is
entirely case-insensitive.
The SMS provider does not support querying against system properties.
These properties are easily identifiable as they all begin with a double
underscore—for example, __CLASS, __NAMESPACE, __PATH, and so on.
If the query is using the collection limiting option, the ORDER BY clause
will not work.
You cannot use date and time functions in the query following the SELECT
clause. However, they can be used as a part of the WHERE clause, as shown
in the next section.
Datepart: This parameter specifies the portion of the date to add the
number to.
Number: This integer value is added to the specified datepart.
Date: This is the initial date value to which to add the integer. For
example, the following query looks for 30 days ago from July 20, 2017
Click here to view code image
DateAdd(DD,-30,"7/20/2017")
DateDiff(DD,"7/20/2017",Getdate())
Getdate(): Returns the current date value of the system executing the
command. Following is an example that looks for 30 days ago from today:
Click here to view code image
DateAdd(DD,-30,GetDate())
The next section explores some different advanced queries. Understanding them
can assist in broadening your query writing ability.
The next sections provide examples of advanced queries, which you should find
useful as a basis for constructing your own queries. You can use them as-is to
tease out data for quick reporting, or you can apply a complex filter to isolate
clients for targeting.
select SMS_R_System.Name,
SMS_G_System_WORKSTATION_STATUS.LastHardwareScan
from SMS_R_System
inner join SMS_G_System_WORKSTATION_STATUS on
SMS_G_System_WORKSTATION_STATUS.ResourceId =
SMS_R_System.ResourceId
where
DateDiff(dd,SMS_G_System_WORKSTATION_STATUS.LastHardwareScan,GetDate())
<= 15
Look closely at the WHERE clause. The DateDiff function is used to calculate
the difference between the last hardware scan date and the current date. If the
calculated difference is less than or equal to 15 days, the device is included in
the results.
This example uses DateDiff, but you can accomplish the same result with
DateAdd. DateAdd can manipulate the current date (GetDate) into a date 15
days ago. By comparing the hardware scan date against the DateAdd
manipulated date, you can bring back only devices that match the criterion, as
illustrated here:
Click here to view code image
select SMS_R_System.Name,
SMS_G_System_WORKSTATION_STATUS.LastHardwareScan
from SMS_R_System inner join SMS_G_System_WORKSTATION_STATUS on
SMS_G_System_WORKSTATION_STATUS.ResourceId =
SMS_R_System.ResourceId
where SMS_G_System_WORKSTATION_STATUS.LastHardwareScan >
DateAdd(DD,- 15,GetDate())
The query in the WHERE clause creates a list of computers that match the
criterion of having Microsoft Silverlight installed (see Figure 20.12). The outer
query uses an IS NOT IN operator to list any computers that are not in the initial
query. Finally, this query uses another criterion to qualify that the query should
be limited to information where the resource is a ConfigMgr client.
FIGURE 20.12 Subselect query that looks for all clients without Microsoft
Silverlight.
Because it uses a prompted value, the query prompts the user to provide a
computer name at execution. Because the LIKE operator is in use for the
prompted value, you can use a wildcard to mask part of the computer name and
potentially return more than one computer.
Querying for Devices Not in a Specified Collection
This query is designed to show devices that are not in a collection that you
specify:
Click here to view code image
Much like the earlier example with Microsoft Outlook (see the section
“Querying for Devices Without Microsoft Outlook Installed”), this is a subselect
query. However, this query statement uses a class that, while it is not exposed in
the query builder’s design mode, can be pasted or typed into the query language
window.
Let’s examine the query used earlier in this chapter, in the section “Querying for
Devices with a Hardware Scan in the Past 15 Days.” To quickly convert this
query to SQL, look at the ConfigMgr logs. Open smsprov.log and execute the
query you want to convert. Look for a line that begins with Execute WQL.
This entry displays the actual WQL query issued:
Click here to view code image
Execute WQL =
select SMS_R_System.Name,
SMS_G_System_WORKSTATION_STATUS.LastHardwareScan
from SMS_R_System inner join SMS_G_System_WORKSTATION_STATUS on
SMS_G_System_WORKSTATION_STATUS.ResourceId =
SMS_R_System.ResourceId
where
DateDiff(dd,SMS_G_System_WORKSTATION_STATUS.LastHardwareScan,GetDate())
<= 15
The query in the log matches the referenced query! The next line in the log that
begins with Execute SQL contains the SQL query:
Click here to view code image
Execute SQL =
select all
SMS_R_System.Name0,___System_WORKSTATION_STATUS0.LastHWScan
from vSMS_R_System AS SMS_R_System INNER JOIN
WorkstationStatus_DATA AS
___System_WORKSTATION_STATUS0 ON ___
System_WORKSTATION_STATUS0.MachineID = SMS_R_System.ItemKey
where DATEDIFF
(day,___System_WORKSTATION_STATUS0.LastHWScan,GETDATE ()) <= 15
The diagram in Figure 20.14 helps illustrate how two classes such as System
Resource and Workstation Memory are joined together. Figure 20.15 is a
graphic display of the join for System Resource and Memory (on Resource ID),
providing combined results from both tables.
Outer joins, on the other hand, include full, left outer, and right outer. Queries
are often optimized based on the join type selected. Depending on the join, this
may mean the difference between pulling some select records and pulling every
record in the joined classes. Here is how data is brought together based on the
join used:
Inner: All joins created in the ConfigMgr Query Builder automatically use
the inner join when the join type is not specified. The inner join will only
provide matching results.
Full: In contrast to the inner join, the full join type displays all the results
for the base and the join attribute.
Left: When using a left join type, all the results from the base attribute are
displayed. In addition, the matching results from the join attribute are
displayed.
Right: The right outer join type is exactly the opposite of the left outer join
type. The matching results from the base attribute are displayed, along with
all the results from the join attribute.
When might you deviate from the default? Say that you want to retrieve a list of
all your devices as well as the name and version number of internally developed
software. The developer who wrote that software did not always populate the
version number correctly. Such a query with the default inner join type would
bring back only records where the device name, the software name, and the
software version exist. Because you need to see the devices where the software
is installed but the version value is potentially empty, you switch the join type to
a left join to include all records.
select SMS_R_System.Name,
SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes
from SMS_R_System inner join SMS_G_System_SYSTEM_ENCLOSURE on
SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId
If you use the default join, only devices with a chassis type will be displayed. By
switching the join type to left, all devices are displayed, with a blank value for
chassis type. The next query, where the inner join has been replaced with a left
join, shows the join type modified to left:
Click here to view code image
select SMS_R_System.Name,
SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes
from SMS_R_System left join SMS_G_System_SYSTEM_ENCLOSURE on
SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId
With information available regarding AD accounts, you can use discovery data
to build collections to support your ConfigMgr deployment. Collections can be
created to group AD computer accounts together to install the ConfigMgr agent.
Querying Inventory Data
The System Resource class, discussed earlier in this chapter, in the
“Understanding Query Objects, Classes, and Attributes” section, contains
discovered attributes about an object. However, this class contains more than just
discovered data.
All queries requiring data from hardware or software inventory need to utilize
the System Resource class. In fact, most of the queries covered in this chapter
use the System Resource class, which shows how prevalent this class is!
Table 20.5 illustrates some popular hardware and software inventory classes.
This is just a small list of the rich amount of inventory data that ConfigMgr
provides. Over time, as your environment changes, inventoried classes also
change. ConfigMgr is flexible enough to evolve with these changes. Refer to
Chapter 9, “Client Management,” for information on modifying hardware
inventory classes.
If you find that a device does not contain the expected inventory class, the
device may not be healthy. In such circumstances, the device may be incapable
of running the inventory scan or sending the inventory to the site server, and the
expected information may never reach the site server.
1. Select the Queries node and click Export Queries in the ribbon bar.
2. In the Export Objects Wizard, click Next.
3. Select the queries you wish to export, as displayed in Figure 20.16, and
click Next.
4. Enter a valid path and filename for the export and ensure that it ends with a
.mof extension. Click Next.
5. Confirm the settings and click Next. Click Close to exit the wizard.
FIGURE 20.16 Selecting queries to export.
When these steps are complete, you can copy or move the file to a suitable
location for importing into a different hierarchy. Before looking at the import
steps, let’s examine the file content of a sample export, which is based on the
query built earlier in this chapter, in the “Querying for Devices with a Hardware
Scan in the Past 15 Days” section. The content of the file follows:
Click here to view code image
//
*******************************************************************************
//
// Created by SMS Export object wizard
//
// Tuesday, August 09, 2016 created
//
// File Name: C:\Queries\HardwareScan.MOF
//
// Comments :
//
//
//
*******************************************************************************
Importing queries is just as easy as exporting queries. For example, perform the
following steps to import a query object:
1. Right-click the Queries node and choose Import Objects. The Import
Objects Wizard launches.
2. In the wizard, click Next.
3. Supply the path and name of the file to import. Click Next.
4. Review the name (or names) of the object(s) to import. Click Next and
review the comments. Click Next when complete.
5. Confirm the settings on the summary screen and click Next. Click Close to
exit the wizard.
When you import a query into a collection, the additional attributes specified in
your query are ignored and replaced with a default set. This also occurs if you
paste the WQL from a query to the collection rule directly. Looking at the
previous memory query, first examined earlier in this chapter, in the “Building
Queries Using the WMI Query Language” section, note the attributes requested
in the Select statement below:
Click here to view code image
select SMS_R_System.Name,
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory
from SMS_R_System inner join SMS_G_System_X86_PC_MEMORY on
SMS_G_System_X86_PC_MEMORY.ResourceID = SMS_R_System.ResourceId
The following shows how the query is modified after it is imported or pasted
into a collection:
Click here to view code image
Notice that while SMS_R_SYSTEM.Name still exists, the attribute for memory,
SMS_G_System_X86_PC_MEMORY.TotalPhysicalMemory has been
replaced with other values.
ConfigMgr comes stocked with more than 60 different status messages. If one of
the standard status messages does not contain the information you are seeking,
you can create a custom status message. There currently is no documentation
that provides a translation between the status message IDs and their meanings. It
is best to build your queries from the existing queries as much as possible, since
the criteria may list the necessary message ID values. For example, Figure 20.17
shows the query criteria for the query titled Deployments Created, Modified, or
Deleted.
FIGURE 20.17 Status message criteria, displaying message IDs and types.
For example, examine the following default status message query, titled Remote
Control Activity Initiated by a Specific User:
Click here to view code image
This query requests two pieces of information: property value and time. When
using a query to look for a property value, the value can be manually entered or
selected from a dropdown list. If you are not familiar with the data or the format,
it is often easier to use the dropdown. Once the dialog is loaded, the dropdown
list is filled with values.
You can enter time values by using the Specify date and time option, which
provides a calendar view as well as a time frame. If the specific date and time are
unknown, use the Select date and time option, which provides some generic
values to use as a date, such as 1 hour ago, 12 hours ago, 2 weeks ago, 1 year
ago, and so on. View the query information after executing the query to confirm
what was entered if you use the values as expressed in Figure 20.18, including a
date and time value of 1 hour ago.
FIGURE 20.18 Using date and time in a status message query.
1. Launch the Create Status Message Query Wizard. Give the query a name
such as Clients That Received and Rejected a Specific Deployed
Program.
2. To make it easier to create the new query, click Import Query Statement
and select the query titled Clients That Received a Specific Deployed
Program. Click OK.
3. Click Edit Query Statement. Note that the contents of the selected query
are imported.
4. Switch to the Criteria tab and highlight the line labeled [Status message as
stat].Message ID is equal to 10002. Double-click the line or select the
properties icon to bring up the Criterion Properties dialog.
5. As shown in Figure 20.19, change Criterion Type to List of values and
Operator to is in and add the following to the Value to match section: 10002,
10018, and 10019.
6. Click OK to commit the changes and close all the dialog windows.
7. After returning to the Create Status Message Query Wizard, click Next to
view the summary. Click Next again to create the query. Finally, click Close
to end the wizard.
FIGURE 20.19 List of values criteria to display selected status message IDs.
Most status message queries are named descriptively enough to identify their
purpose. However, it is helpful to point out some of the more useful queries.
Table 20.6 lists some useful queries and helps you understand the various
sources of data from which these queries can draw information.
TABLE 20.6 Useful Status Message Queries
Status Message Query Description
All Audit Status Shows the activity of a specific user.
Messages for a Specific
User
Client Configuration Allows for tracking of failures related to
Requests (CCRs) processing client configuration requests (CCR).
Processed
Unsuccessfully
Collections Created, Displays audit messages related to collection
Modified, or Deleted modification, displaying collections that have been
modified or deleted and by whom.
Deployments Created, Displays audit messages related to creation,
Modified, or Deleted modification, and deletion of deployments.
Remote Control Shows the activity of any remote control sessions
Activity Initiated by a started by a specified user.
Specific User
Server Component Tracks changes made to any of the myriad
Configuration Changes ConfigMgr server components.
Server Components Shows fatal errors displayed by any Configuration
Experiencing Fatal Manager server component.
Errors
Summary
Queries are an excellent means of gathering data, testing results for collections,
and understanding the requirements of creating reports. This chapter discussed
using the ConfigMgr query builder to construct queries. It showed how to use
advanced functions to create complex queries when the query builder does not
suffice. This chapter covered the fundamentals of classes and operators to equip
you to build your own queries. In addition, the chapter showed how to convert
WQL to SQL, as well as examples of advanced queries, and it discussed creating
status message queries.
CHAPTER 21
Configuration Manager Reporting
IN THIS CHAPTER
Overview of SSRS and Configuration Manager Reporting
Understanding Configuration Manager Data
Introducing Transact-SQL
Building a Report Design
Building a Basic Report
Advanced Reporting Concepts
Although many reports are available out of the box, at some point you will need
additional information, either within an existing report or in a completely new
one. This is when you will want to create your own reports to leverage the
information collected by ConfigMgr. The next sections introduce you to SSRS,
the ConfigMgr RP, and the optional features that are installed to enable
ConfigMgr reporting.
As part of the RP installation, the default ConfigMgr SSRS reports are created
on the SSRS website. Because the appropriate security permissions are applied
to each report during this time, this process can take several minutes to
complete.
These inventory classes also maintain history data that you can use in your
reports. No other inventory classes maintain history data. As a general rule, there
are two SQL view name identifiers for these items:
The SQL view names starting with v_GS_* identify the latest and current
hardware inventory data.
The v_HS_* views identify history data for the hardware inventory.
Table 21.2 and Table 21.3 provide listings of hardware data views.
In addition to these SQL views, there is one very important SQL view that does
not follow the naming rules in this section: the v_ADD_REMOVE_PROGRAMS
SQL view. This SQL view provides the combined details of the
v_GS_ADD_REMOVE_PROGRAMS and
v_GS_ADD_REMOVE_PROGRAMS_64 views. This view is extremely helpful
for viewing both 32-bit and 64-bit Add/Remove Programs entries.
Table 21.4 lists the two SQL views where most information is located when this
inventory collection method is enabled and configured correctly.
Introducing Transact-SQL
SQL Server uses Transact-SQL, also referred to as SQL or T-SQL, to query SQL
databases. The language will be familiar to many ConfigMgr administrators, as
it is the parent language to WMI Query Language (WQL), which is used to
create collections in ConfigMgr.
SELECT
FROM
WHERE
ORDER BY
These sections form the basic core of a SQL query. Not all these sections are
mandatory to obtain results from a query; however, they are recommended to
produce clear and easy-to-read results.
To help better explain each section, Listing 21.1 shows the breakdown of these
sections.
LISTING 21.1 SQL Query to Locate All Computers Within the Odyssey
Domain
Click here to view code image
SELECT
RV.Netbios_Name0,
RV.Operating_System_Name_and0,
RV.AD_Site_Name0
FROM
dbo.v_R_System RV
WHERE
RV.Resource_Domain_OR_Workgr0 = 'Odyssey'
ORDER BY
RV.Netbios_Name0,
RV.Operating_System_Name_and0,
RV.AD_Site_Name0
Listing 21.2 shows the lines comprising the SELECT section. The
Netbios_Name0, Operating_System_Name_and0, and
AD_Site_Name0 columns are identified in Listing 21.2. Notice that they are
separated by commas.
SELECT
RV.Netbios_Name0,
RV.Operating_System_Name_and0,
RV.AD_Site_Name0
FROM
dbo.v_R_System RV
WHERE
RV.Resource_Domain_OR_Workgr0 = 'Odyssey'
Using ORDER BY
The T-SQL section shown in Listing 21.5 allows for the column results to be
sorted; the default sort order is alphabetical. Sorting the results makes them
easier to read. Very much like the WHERE statement, this is an optional
component. For performance reasons, the authors recommend that sorting be
done within T-SQL on the server rather than within reports.
ORDER BY
RV.Netbios_Name0,
RV.Operating_System_Name_and0,
RV.AD_Site_Name0
Using Operators
With any computer language, there are a number of operators that allow you to
perform operations on SQL data. T-SQL is no exception; Table 21.10 lists the
common SQL operators.
The key to ensuring a useful report or dashboard is to ensure that you are
consistent with report styles and appearance. When you take time to ensure that
you are consistent—with your T-SQL query, the report style, with colors and
fonts, and even with report titles—your reports can’t help but look and feel
professional.
You start by creating a summary report or dashboard that shows the overall
status of what it is you are reporting.
You then allow the users to drill though to a list report that provides more
details about the computers or objects.
Finally, you drill through to the details about the specific computer or
object.
Overall Software Update Status: This count report (dashboard) shows the
overall software update status for a company.
List of PCs by Missing Software Updates: This report provides a list of
computers missing one or more software updates.
Software Update Details for a Computer: This report shows a detailed list
of all software updates for a specific computer.
Incorporating a general report series design provides value for everyone from
your chief technology officer (CTO) to your help desk staff. Here’s how:
The authors suggest that when you define style guides for your reports, you
should start with your company’s graphic designer or webmaster. These
individuals should be able to provide you with your organization’s style guide. If
your company does not have a graphic designer or webmaster, use Table 21.11 to
define your own report style guide.
Understanding how to build a basic report is important, as this report type is the
foundation on which all reports are created. It does not matter if the report is a
simple report or a very complex dashboard with multiple distinct areas. Much as
you need a strong foundation for a house, you need to have a good
understanding of how to create a basic report, or you will have difficulty creating
complex reports.
These tools are also used to design SSRS reports for other System Center
products, such as Operations Manager and Service Manager. All examples in
this chapter use SSDT-BI 2014 for Visual Studio 2013, which the authors
suggest you use for creating reports. Table 21.12 lists some of the reasons for
this recommendation.
1. From the Windows Start menu, navigate to Microsoft SQL Server 2014 ->
SQL Server Data Tools for Visual Studio 2013.
2. At the Microsoft Visual Studio start page, click File -> New -> Project to
create a new project.
3. In the New Project window, shown in Figure 21.3, select Report Server
Project from the Business Intelligence node under Templates. At the bottom
of the window, enter a name for the project—which automatically populates
the Solution name field—and specify a location to store the project.
Notice that the Create directory for solution check box is checked by
default. This option creates a folder under the location you have specified to
contain the project files, configuration, and reports. Click OK to create the
project.
FIGURE 21.3 Creating a report project.
4. Once the project is created, add a new shared data source. Under the
Solution Explorer window, on the top-right side of the Visual Studio
window, right-click Shared Data Sources and select Add New Data
Source.
5. On the Shared Data Source Properties window, specify a name for the
shared data source and click Edit to configure a connection string.
6. In the Connection Properties window, specify the server name of the server
containing the ConfigMgr database and then use the dropdown to specify the
ConfigMgr database name under the Select or enter a database name field.
7. Click Test Connection to ensure that the connection is successful and then
click OK to close the Connection Properties window.
8. Confirm that the settings for the shared data source properties are correct
and click OK.
After the solution/project and share data source have been created, they can be
used by multiple reports moving forward. This is where SSDT-BI shines: It
allows you to work on multiple reports at the same time or just copy and paste
between reports to reduce duplication of effort.
1. From the Solutions Explorer window, on the far right side of SSDT, right-
click the Reports folder and select Add -> New Item.
2. In the Add New Item window, select Report from the list of items, specify a
name for the report, such as System Details, and click Add.
The center window of SSDT now contains a new blank report that is ready to be
populated.
1. In the Report Data window, on the left side of SSDT, right-click the Data
Sources folder and select Add Data Source (see Figure 21.4).
FIGURE 21.4 Selecting Add Data Source.
2. In the Data Source Properties window, specify a name for the data source
and select Use shared data source reference. From the dropdown, select
the shared data source added in the Getting Started with SSDT-BI section
(OdysseyReportDS) and click OK.
Creating a Dataset
After the data source is linked to the shared data source, you need to create a
dataset. The dataset is where you insert the T-SQL query that you created for this
report. A report can have more than one dataset; for example, you might have
one dataset to populate a prompt and another dataset for the report itself. Follow
these steps to create a dataset:
1. In the Report Data window, on the left side of SSDT, right-click the
Datasets folder and select Add Dataset (see Figure 21.5).
FIGURE 21.5 Adding a dataset.
2. In the Dataset Properties window, specify a name for the dataset and then
select Use a dataset embedded in my report. From the Data source
dropdown, select the data source you created in the “Creating a Data Source”
section of this chapter. In the Query field, paste the query previously created
in SQL Server Management Studio. (This example uses the query in Listing
21.1, 21list01_System Details.sql, which is included in the online content for
this book. For additional information, see Appendix D, “Available Online.”)
Click OK to create the dataset.
Pointer: The pointer is the default selected item when using SSDT. This is
the simple mouse pointer that allows you to select items within a report.
Textbox: This item allows you to enter simple text for your report, such as a
label, or specify expressions to be populated when the report is executed,
such as the current date or page number.
Line: The line item adds a simple line to your report for visual effect. It can
be used to separate sections or information.
Table: The table item is similar to the properties of an Excel spreadsheet. In
an SSDT table, you can group data together, identify header columns and
rows, and more. Tables are some of the most popular items used in
reporting.
Matrix: A matrix is a special type of table similar to a pivot table in
Microsoft Excel. Data in a matrix can be grouped together and can grow
both by columns and rows.
Rectangle: The rectangle item allows you to group other report objects
together and treat them as a single object within a report.
List: A list is a grouping of report items. It allows you to add items from
other reports in the list and display them in free form instead of within a
grid.
Image: The image item allows you to import images or pictures into a
report. This item is commonly used to display a company logo in the header
or footer sections of a report.
Subreport: This item allows you to embed another report within the current
report. The body section of the targeted report will be displayed within this
item when the report is executed.
Chart: This item creates a chart within the report to represent your data.
Various kinds of charts that can be selected, such as a bar, line, pie, or
pyramid charts.
Gauge: The gauge item can display a value, an expression, or a field in
either a radial or linear type of gauge. Gauges are similar to charts;
however, they are intended to display summary data.
Map: This item allows you to display data against a map. There are two
types of map charts:
Marker Map: This type of map allows you to pinpoint a location.
Bubble Map: A bubble map shows the number of items for a given
area.
Data Bar: This item displays a visual indicator of a value. It tends to be
used within a table item.
Sparkline: Similar to a data bar, a sparkline is often used within a table.
This is a miniature line chart without any labels.
Indicator: An indicator is similar to a gauge; it displays minimal
information so that at a quick glance, a user can determine the value that is
represented. In most cases, indicators are used within tables.
Tables can be used to display the results of a query (dataset) in a report. Within
the table, you can add the individual columns you want to display. When the
report is executed, the query results populate the table item. Follow these steps
to add a table and populate the query columns to the report:
1. From the toolbox, drag the table item to the blank report. Notice that, by
default, the table item creates three columns, as displayed in Figure 21.7.
Previewing a Report
SSDT-BI lets you preview a report to see how it will look on your SSRS server.
To preview a report, perform the following steps:
1. Click Preview (see Figure 21.9) at the top of the report to view the end
product. The preview action executes the query in the dataset and populates
the report items with data.
2. Ensure that everything displays as intended and that the columns are
appropriate widths, such that no information is cut off or missing. If
additional changes are required, make any necessary adjustments and
preview your report again to ensure that those items are resolved. To return
to Design mode after previewing is complete, click Design at the top of the
report.
Publishing a Report
Once you have created a report, you can publish it to the ConfigMgr folder on
your SSRS server. It takes approximately 10 minutes for ConfigMgr to evaluate
the new report and make it available within the console. The authors recommend
that reports be accessed from the website instead of the console for performance
reasons, as discussed earlier in this chapter, in the “Notable Reporting Point
Information” section. Using the SSRS website also allows non-ConfigMgr
administrators to access a report without the need to access the ConfigMgr
console.
There are two methods to publish a report: manually adding a report to SSRS
and publishing a report from SSDT-BI to the SSRS website. These are discussed
in the following sections.
1. In SSDT, open the SSRS project that contains your custom reports.
2. From the SSDT menu at the top, select PROJECT and click Properties,
shown in Figure 21.13.
FIGURE 21.13 Selecting PROJECT from the SSDT menu and clicking
Properties.
3. In the project’s properties page, click Configuration Manager at the top
right of the page.
4. In the Configuration Manager page, in the Configuration column of the
project row, use the dropdown list to change the value to Release, as shown
in Figure 21.14. Ensure that the Build and Deploy column values are
checked and click Close.
FIGURE 21.14 Setting the project configuration to Release.
5. In the properties page, under the Deployment section, enter the SSRS virtual
directory URL under the TargetServerURL value. For this example, the
value is http://armada/ReportServer. Optionally, to set the folder in SSRS
to store your reports, set the folder path as the TargetReportFolder value. The
value is set to ConfigMgr_CAS/Odyssey to store the reports under the same
folder created in the “Manually Adding a Report to SSRS” section, earlier in
this chapter. Click OK when complete as shown in Figure 21.15 to apply
your changes, and then close the Property window.
All these topics and more are covered in the deep dive provided by System
Center Configuration Manager Reporting Unleashed (Sams Publishing, 2016).
Summary
ConfigMgr provides a number of reports; however, they never seem to answer
the questions asked by management, service desk managers, and end users.
Therefore, being able to create meaningful custom reports is truly beneficial to
any company.
IN THIS CHAPTER
What’s New with OSD in Current Branch
OSD Deployment Scenarios
Tools Used with OSD
Planning for OSD
Using the Console
Using Tasks and Variables in a Task Sequence
Site System Roles for OSD
Getting Ready for Deployment
Creating the TS Media
Troubleshooting OSD Deployments
Following are some reasons OSD is the tool to use for this task:
OSD is about automating the entire process, from image creation and image
maintenance to actual image deployment.
OSD is not just about creating and deploying an image. It is an entire
process that allows you to define actions before the image is applied to a
system. This includes partitioning and formatting the drive or even BIOS
upgrades and actions after applying the image, such as software update
installation or application deployment.
OSD is dynamic, enabling different yet automatic deployment time behavior
based on an unbounded set of criteria, including hardware type, location,
and intended user or system roles.
OSD is extensible to meet the needs of any organization. The Microsoft
Deployment Toolkit (MDT) and its subset feature, User Driven Installation
(UDI), are excellent examples of this extensibility.
OSD is integrated into ConfigMgr, enabling you to utilize the other
powerful features of the product, including software distribution, software
updates, and reporting, all from a single management console in a seamless
manner.
This chapter covers OSD in depth, including applicable scenarios, detailed use,
guidance, best practices, and troubleshooting. This single chapter cannot and
does not cover the complete range of information and knowledge required to
deploy Windows fully in an enterprise environment, nor does it cover
supplemental tools such as MDT.
Replace: While similar to the refresh scenario, the replace scenario involves
replacing the physical system. It also preserves applicable user data and
reinstalls authorized applications.
OSD fully automates the mini-setup process with the unattend.xml configuration
file. It builds the appropriate file or uses one that is supplied, inserting
information automatically into the file, including the product key, organization
name, networking information, and domain credentials. Incorporating this
functionality increases OSD’s flexibility by eliminating the need to maintain
multiple Sysprep files supporting multiple deployment scenarios.
Using OSD fully automates and completely integrates the many details of using
the tools in the ADK. You can also use it to manipulate images outside OSD.
The tools in the ADK follow:
Microsoft ties the ADK to the version of Windows you are using but makes it
backward compatible; for example, the Windows 8 version of the ADK works
with Windows 8 and Windows 7, so the question is when to upgrade the ADK.
The authors recommend upgrading when you upgrade Windows; this lets you
keep everything tightly integrated with support for the current version and
backward compatibility with older versions of Windows that are not yet
upgraded.
LoadState.exe
ScanState.exe
As their names imply, ScanState.exe captures the data and settings whereas
LoadState.exe restores them.
These questions and their answers will guide your efforts; the answers provide a
blueprint for your Windows rollout. Depending on your organization, you may
not be able to answer all these questions yourself, and it may take time to gain
consensus from all the key players. Knowing the answers ahead of time will save
you work or rework later.
When you understand the requirements and are equipped with the answers to the
previous questions, you can move forward. The following items may assist in
this planning process:
Be sure to perform all your imports and testing in a lab environment. You may
find that you did not need all those drivers after all, or maybe you do not need to
modify your WinPE image. Once testing is complete and you have a successful
image, move all the needed items over to your production hierarchy.
The wizard has seven pages, three of which are the standard Summary, Progress,
and Completion pages included in all ConfigMgr wizards. The following
sections cover the pages that are unique to this wizard.
Import All Drivers in the Following Network Path (UNC): Use this radio
button to import a number of drivers at once. The path you specify to the
folder containing the drivers must be in Universal Naming Convention
(UNC) format; you cannot specify a drive letter. Some hardware
manufacturers create a file with all the drivers for a specific model of their
hardware; once this file is expanded to a folder containing all the drivers,
you can use this option to import all those drivers at once.
Import a Specific Driver by Specifying the Network Path (UNC) to its
.inf or txtsetup.oem File: If you need to test a specific driver and not a
whole package, use this option to import that single driver. Again, the path
must be a UNC path and point to an .inf file or a .txtsetup.oem file. These
two file types are part of the driver files you download.
Specify the Option for Duplicate Drivers: This dropdown menu allows
you to select how the import wizard should handle a duplicate driver. These
are the options:
Import the driver and append a new category to the existing categories.
Import the driver and overwrite the existing categories.
Do not import the driver.
This page includes a lot of information, and the more drivers you add, the busier
it looks. The first part of the page shows the path location from where the drivers
will be imported. Two check boxes follow:
Hide Drivers That Are Not in a Storage or Network Class (for Boot
Images): Select this check box to allow the user to filter out drivers that
would not be used in a boot image.
Hide Drivers That Are Not Digitally Signed: This is checked by default.
If a driver is not digitally signed, it should not be loaded; this is a security
precaution.
The middle of the page contains a list box listing the drivers found by the
wizard. If you chose to install a single driver, details are shown for that driver
only. There is a check box beside each driver; all are checked by default. To skip
importing a driver, uncheck its box. The list box also shows the class,
architecture, version, and whether the driver is signed.
Enable These Drivers and Allow Computers to Install Them: This check
box determines if the driver is enabled or disabled after the import
completes. Uncheck the box to disable the drivers so they are not usable
when the import finishes.
Assign This Driver to One or More Categories for Filtering: This option
allows you to choose an existing category or create a new one to which to
add the drivers. You can either create a new category or click Categories to
see categories already created and choose one.
The driver packages are in the list box; choose one or more or all. At the bottom
of the list box, click New Package to create a new package if you are not using
any existing packages.
The middle of the page displays a list box showing all boot images. None are
checked by default. Place a checkmark next to each image into which you want
to inject the drivers. You can choose more than one boot image. If you do not
want to inject drivers into a boot image, leave its check box unchecked.
After importing the drivers, you must distribute the driver package or packages;
if you are injecting drivers into the boot image or images, they also must be
distributed to DPs. Right-click the driver package or boot image and choose
Distribute Content to open the Distribute Content Wizard, where the only page
allows you to choose the DPs to which to distribute the content. The authors
recommend choosing all DPs if using OSD in multiple locations.
Data Source: Enter the full path to the OS image you want to add. The path
must be a UNC path that points all the way to the .wim file. You do not
need to create a unique folder for each WIM file, as the path must point to
the actual file. If you are not using unique folders, the authors recommend
assigning a complete and descriptive name for each .wim file so you can
distinguish between them.
General: Define the name, version, and comments about the WIM image
you are adding. The name is automatically filled in based on what is in the
WIM; change it to anything you want.
After adding the OS image to ConfigMgr, you must distribute it to your DPs to
be available for use in OSD. Right-click the image and choose Distribute
Content to open the Distribute Content Wizard; the only page asks you to
choose DPs to which you want to distribute the content. The authors recommend
choosing all DPs if using OSD in multiple locations.
Data Source: Enter the path to the Windows source files used for the
upgrade. These should be the files from your Windows install media. The
path must be a UNC and point to the folder containing setup.exe.
General: Define the name, version, and comments about the upgrade
package you are adding. The name is automatically filled in, based on the
name of the source folder name; you can change this to anything you want
for the name.
When the OS upgrade package is added to ConfigMgr, distribute it to your DPs
to be available for use in OSD. Right-click the package and choose Distribute
Content to open the Distribute Content Wizard; the only page allows you to
choose the DPs to which to distribute the content. The authors recommend
choosing all DPs when using OSD in multiple locations.
WinPE is ideal because it is small, easy to deliver, and fast, and it runs from a
RAM disk without needing persistent storage. It also shares the core kernel and
driver model with Windows itself, can run any valid native Windows executable,
and provides much of the same automation-enabling functionality, including
batch scripting and VBScript.
The default boot images work for most organizations for OSD requirements, but
there may be a time when you need to add a separate boot image to ConfigMgr.
This is fully supported—but only when you use a boot image based on a
supported version of WinPE:
WinPE 10: This version of WinPE is part of the Windows 10 ADK and
installed as a prerequisite for ConfigMgr. It is also the version of WinPE on
which the default boot images are based. This version is customizable from
within the ConfigMgr console.
WinPE 5: This version comes from the Windows 8.1 ADK. It cannot be
customized from the ConfigMgr console. The boot images are supported
but must be customized elsewhere, using the version of DISM installed
with the Windows 8.1 ADK.
WinPE 3.1: From the Windows Automated Installation Kit (AIK)
supplement for Windows 7 Service Pack (SP) 1, this version is an upgrade
to the Windows 7 AIK. You cannot customize it in the ConfigMgr console.
Data Source: Enter the path to the boot image you want to add. The path
must be in UNC format and point to the actual .wim file.
General: Define the name, version, and comments about the boot image
you are adding. The name and version are filled in automatically, although
you can change the name to anything you want. The authors recommend
adding comments to explain what this boot image is for, to avoid confusion
with other boot images.
While you can create completely custom boot images from scratch, this
generally is not necessary as the built-in boot images are sufficiently
customizable to meet nearly any need. The following customizations are
available in the Customization tab shown in Figure 22.7:
Prestart Commands: Prestart commands run before the OSD process.
They are typically used to display information and prompt the interactive
user for input such as the system’s location, desired name, or role. There are
no predefined prestart commands; this type of customization is completely
up to your needs and abilities. In general, any valid Windows script (batch,
VBScript, Jscript, or PowerShell script) will work. Prestart commands often
require additional files, such as executables or scripts that are not part of the
default boot image. Add these files by specifying the folder containing them
in the Properties dialog. Using this section to add files to the boot image is
helpful even if not using a prestart command; these could be diagnostic
scripts that help in troubleshooting. Add cmd/c to the start of the
command line that runs any program; otherwise, the command will not
close after it runs, forcing the deployment to wait for the command to finish
and putting you in a loop where nothing else starts.
You can also enter prestart commands when you create specific boot media,
which means you can create the media and commands at the same time.
More information about the prestart commands can be found at
https://docs.microsoft.com/sccm/osd/understand/prestart-commands-for-
task-sequence-media.
Windows PE Background: Specify an image to use as the background
during OSD instead of the default provided by Microsoft. You can
customize the background to your organization’s logo and color scheme, for
example, so users know the OSD process is from your organization.
Windows PE Scratch Space (MB): This is temporary RAM-based storage
used by WinPE applications that need to write temporary files. WinPE
points the application to this area, and the application sees it as a hard drive
to write the files it needs.
Enable Command Support (Testing Only): Check this check box to
launch a command prompt anytime during the OSD process by pressing F8.
This is useful for troubleshooting. When the process is working correctly,
the authors recommend unchecking this box so users are not able to open
the command prompt.
The Drivers tab is another area you might want to customize in the Boot Image
Properties dialog. It allows you to inject drivers into the image so they can be
used at boot time. Click the yellow starburst icon to bring up the Select a driver
dialog box, which lists all the drivers imported into ConfigMgr and allows you
to pick drivers to add to the image. The authors recommend using only boot-
critical drivers, such as network and mass storage drivers. Ensure that the drivers
you are adding match the architecture of the boot image: x64 drivers for an x64
image, x86 drivers for an x86 boot image.
After making any changes to your boot images, update the DPs by right-clicking
the boot image and choosing Update Distribution Points; if the boot images
have not been distributed to the DPs, choose Distribute Content.
Figure 22.8 shows several different TSs you can choose from. Each presents
some different pages as well as some of the same pages as in the Create Task
Sequence Wizard.
After creating your TS, edit its properties to verify that the correct boot image is
selected, among other items. Edit the properties by right-clicking the TS and
choosing Properties or highlighting the TS and then choosing Properties from
the ribbon bar.
General: Use this tab to change the name of the TS, add a description for
the TS, add a category for the TS, and choose between using the default text
Running: <task sequence name> or creating a custom text entry
to show the user when the TS is executing.
Advanced: This tab has several options you can select:
Run Another Program First: This check box is valid only for TSs
started while in an existing OS. It runs the specified program from the
specified package before executing the TS if the program has not been
previously run on the system. If the Always run this program first
option is selected, the specified program is always run, regardless of
its previous run status or result.
Suppress Task Sequence Notifications: Checking this check box
turns off any notifications to the user that the TS is available for
execution.
Disable Task Sequence on Computers Where It Is Deployed: You
can select this option to disable the TS.
Maximum Allowed Run Time (Minutes): The number of minutes
specified for this option is used when calculating whether a TS should
run in an available maintenance window. If a TS exceeds this time, it is
terminated.
Use a Boot Image: Choose the boot image to use for this TS. For non-
OSD TSs, such as those used to deploy applications or a complex
series of ordered tasks that may involve some advanced conditional
logic available in a TS, you can choose to use no boot image.
Run on Any Platform or Run Only on the Specified Platforms: Use
this option to limit the platforms on which a TS can run. Choose from
a series of Windows versions or choose to run on any platform.
These TSs use the same pages that the Install an existing image package page
uses except for the following pages that are removed from the TS:
State Migration
Include Updates
For more in-depth information on this TS and about how to use VHDs within
ConfigMgr, reference https://docs.microsoft.com/sccm/osd/deploy-use/use-a-
task-sequence-to-manage-virtual-hard-disks.
Use the Upgrade the Windows Operating System page to select an upgrade
package to use; the middle of the page then shows the package’s OS version,
edition, language, and architecture. This allows you to verify that you selected
the correct upgrade package to use. At the bottom of the page is a dropdown
menu to choose the correct index of the Windows edition you want to use. You
can enter your product key as well. Figure 22.9 shows the upgrade TS created
with this wizard in Edit mode.
The TS adds in a Pre-Upgrade group and a Post-Upgrade group that allow the
upgrade to Windows 10 to occur with checks and balances:
Prepare for Upgrade: This adds the step Check readiness for upgrade to
the TS to ensure the target system has enough memory, processor speed,
and free disk space to meet Windows 10 prerequisites. If the target system
does not meet these standards, the TS fails. You may need to modify the
settings for your organization’s standards. You can add additional steps to
uninstall applications, drivers, or other items known to not be compatible
with Windows 10.
Post-Processing: Add applications, drivers, or other items to install after
the upgrade finishes.
Rollback: This is added by default and should not be removed. If an error
occurs during the upgrade, the TS variable _SMSTSSetupRollback is
set to True. This step has a condition to check that variable; if it is set to
True, the TS rolls back the upgrade to the previously installed OS. If there
are additional steps you need to take after that rollback occurs, add them to
this group.
These custom TSs are usually created for non-OSD tasks that typically must be
executed in a particular set of steps. These TSs are the perfect solution for those
deployments. For more information about steps to add to these custom TSs, see
https://docs.microsoft.com/sccm/osd/understand/task-sequence-steps.
To edit a TS, navigate to Software Library -> Overview -> Operating Systems
-> Task Sequences and right-click the TS, or select the TS, and from the ribbon
bar choose Edit to launch the TS editor. Figure 22.10 shows the TS editor for a
TS created using the Install an Existing Image Package Wizard.
FIGURE 22.10 Editing a Task Sequence.
Using Tasks
The wizard creates a very basic TS, which you must customize for your
organization. You can add, delete, or move steps in the TS. To delete a step or
group from the TS, highlight the item and choose Remove from the menu; to
move an item up or down in the TS list, highlight the item and then click the
Move up or Move down icon on the menu.
To add a group or a task, select the Add menu item. Tasks are divided into seven
categories, with tasks under each one. Figure 22.11 shows the first of these built-
in categories and the tasks in the General category.
FIGURE 22.11 General Group of Tasks.
When you add a task to the TS (see the “Add Condition” bullet in the Options
tab discussion that follows), the editor adds the task below the current
highlighted step. Each task has its own set of parameters that must be filled for
the task to execute correctly. When a task is added to the TS, it shows an icon
with a red X beside the name, indicating that it has a required parameter that
must be completed; once all parameters are filled in, the icon turns into a green
checkmark, indicating that the step is ready to execute. Each task has two tabs:
Properties
Options
The Properties tab contains all parameters that must be completed for the task to
become execution ready. In-depth information on each task and its parameters
can be found at https://docs.microsoft.com/sccm/osd/understand/task-sequence-
steps.
The Options tab generally has the same settings for each task; sometimes there is
an additional parameter, but none are required. The Options tab always has the
following items:
Disable This Step: Allows you to disable the step so it is not performed
when the TS executes. A common use for this is when you are creating a TS
and are not sure if all steps need to be performed.
Continue on Error: Allows the TS to continue running if the step that is
running fails. The error is logged in the SMSTS.log file, and the TS
continues to the next step. This is handy for troubleshooting issues when a
step in the TS keeps failing but you need to execute the rest of the TS.
Add Condition: Allows you to add logical conditions to the step. If a
condition evaluates to true, the step executes; if the condition is false, the
step is skipped. The most common use for conditions is when installing
drivers. For example, you may have a driver package for each model of
system you are deploying. You would want to check the model number of
the system to see if the drivers should be applied.
Conditions can be combined by using If statements to form a master
conditional statement. This is a collection of substatements that evaluate to
either True or False, based on the logical evaluation of those substatements.
There are three types of master statements, and each type of evaluation
affects how the master statement is evaluated:
All child statements must be true.
Any child statement is true.
No child statements are true.
You can chain If statements together to form complex logical statements.
If statements in this context closely resemble the traditional logical
operators AND/OR, and can be used in a similar way.
Using Variables
A major advantage of TSs over ConfigMgr’s traditional software delivery
mechanism is that they maintain state between steps. This state is embodied in a
series of built-in variables and custom variables that survive reboots because
they are stored in a locally persistent file, allowing you to pass data or
configuration items from one step to the next. In fact, the task the TS is currently
executing is also part of the state of the TS. Variables are encrypted for security
when transmitted between ConfigMgr and the target system. Three types of
variables are available:
Action: These variables specify parameters for specific tasks. The variable
is used by a single step in the TS and is initialized before the step is run and
is only available while the step is running. The value for the variable is
removed after the step finishes. Nearly all action variables are directly
editable using the task sequence editor.
Custom: This is a simple name/value pair that you can define as you see fit.
Built-in: These variables are almost always read-only. They start with an
underscore and are automatically generated by the TS; they generally
describe the environment where the TS executes. The value of the variable
is available throughout the entire TS.
Each GUI field shown in a task in the TS editor has a corresponding TS variable.
Setting these values in the GUI defines the action’s runtime behavior, making
your TS static for the most part. Setting TS variables based on collection
membership or using a script while executing the TS makes your TSs dynamic,
performing tasks differently or even performing different tasks based on runtime
conditions. You can set action variables and custom variables in a number of
ways:
You can also set a TS variable on a device collection or computer resource in the
ConfigMgr console. For device collections, open the collection’s Properties page
and navigate to the Collection variables tab; for computer resources, open the
resource’s Properties page and select the Variables tab. TSs initiated on
applicable resources will have all variables initially set. If you leave the value of
a collection or computer variable blank, the built-in TS UI prompts the user for
values for these empty variables.
1. Task sequence variables set at runtime (using a Set Task Sequence Variable
task or the Microsoft.SMS.TSEnvironment COM object)
2. Task sequence variables set on computer resources
3. Task sequence variables set on collections
4. Task sequence variables set at design time in the GUI
Applications
Boot images
Driver packages
Operating system images
Operating system upgrade packages
Software distribution packages
Software update deployment packages
While the system is executing the TS, it requests these types of content as
needed. The content is downloaded from the DP to the local client and processed
according to the step in the TS. Not all of the package may be used; it depends
on the tasks in the TS.
Starting with ConfigMgr 2012, the PXE point is included as part of the DP
properties. Install PXE and configure it by navigating to Administration ->
Overview -> Distribution Points; then either right-click the DP name and select
Properties or select the DP and from the ribbon bar, choose Properties, and
click the PXE tab. Figure 22.12 shows the PXE tab of a DP’s properties.
FIGURE 22.12 PXE tab of a DP’s properties.
The first step in installing and configuring the PXE point is to check the box
Enable PXE support for clients. You see a warning popup dialog box, as
shown in Figure 22.13. The warning explains that PXE uses certain ports to
transfer packets across the network. These ports must be open to allow traffic
through the firewall on systems and routers for PXE to work correctly. If you are
using a Windows firewall, ConfigMgr opens the ports for you. Click Yes in the
warning dialog box to be presented with the PXE tab to configure; click No, and
the checkbox remains unchecked with the rest of the PXE tab grayed out.
FIGURE 22.13 PXE port warning message.
How exactly does PXE work? At a high level, the steps are as follows:
1. The system boots, and because no OS is installed or the user presses the F12
key, the NIC attempts to get a DHCP address and start the process of PXE
booting; the PXE packet is sent to the DHCP server.
2. The PXE-enabled DP sends back a packet that contains the boot filename
and location along with the WDS network boot program.
3. The client opens a session and starts transferring boot files from the server.
4. The system boots into WinPE, and the TS boot shell is started from the SMS
folder that is in the WinPE image.
For more detailed information about how PXE works and several processes in-
between these steps, see the complete walkthrough at
https://support.microsoft.com/help/10082/troubleshooting-pxe-boot-issues-in-
configuration-manager-2012. This article is for ConfigMgr 2012 but also applies
to ConfigMgr Current Branch.
Using Multicast
Multicast is group communication in which information is simultaneously
addressed to a group of destination computers. Say you have 10 systems that
need to download an OSD image; normally each system downloads the image,
for a total of 10 downloads. Multicasting means only one image is downloaded
for all 10 systems, assuming that they all need the same image. Note that
multicasting requires considerable network configuration and bandwidth tuning.
In addition, OSD imaging packages and packages included as part of the TS are
the only items that can use multicasting in ConfigMgr, and it occurs only inside
WinPE. This section does not cover multicasting in depth—just enough to set it
up. For complete information, see
https://blogs.msdn.microsoft.com/steverac/2008/10/18/setting-up-multicasting-
in-sccm. While written for ConfigMgr 2012 R2, this blog post also applies to
ConfigMgr Current Branch.
While there are many options on this page, most organizations can enable
multicasting and leave all settings at their default values.
If you intend to use multicasting, the next step in the process is to enable the OS
image packages and any packages used during WinPE to use multicast. Navigate
to Software Library -> Overview -> Operating Systems -> Operating
System Images and select your OS image. Then choose Properties either from
the ribbon bar or after right-clicking on the OS image. Select the Distribution
Settings tab of the properties dialog that appears. At the bottom of the page, look
for the Operating system deployment settings section, which offers these
options:
User State Size: User state data usually consists of the user’s data stored in
the Documents folder. This is a mix of documents, pictures, music, and
other data, and it could be quite large, depending on the organization’s
policy for user data. For example, if you include Outlook Personal Store
(PST) files, this can be many gigabytes of data. How many migrations will
occur at the same time? These all must be taken into account when
considering the amount of space to allocate for the SMP.
Retention Policies: These policies deal with the amount of time to keep
user data on the SMP. It may not be as simple as capture the data, restore
the data, and then delete it. What happens if a user has issues a day or a
week after the data was deleted? How do you deal with a user who says not
all the data has been restored to the new system? Consider these questions
when determining how much space is needed and how long that space will
be in use on an SMP; you may determine that you need to place SMPs in
different locations or even on separate servers.
After gathering the SMP information, answering the questions, creating the
policies, and creating the SMP’s server layout, you can install the SMP. Navigate
to Administration -> Overview -> Site Configuration -> Servers and Site
System Roles. If adding the role to an existing server, highlight that server and
either right-click it and choose Add Site System Roles or from the ribbon bar
choose Add Site System Roles. If adding the SMP role to a new server to the
ConfigMgr hierarchy from the ribbon bar, choose Create Site System Server.
Both options launch a wizard with very similar pages:
General: Click Browse and select the FQDN name, add a site code from a
dropdown list, select an FQDN for the system to use if it will be on the
Internet, define whether the site server will initiate connections to this site
system, and choose what site system installation account to use. If adding
the SMP role to an existing server, some fields are grayed out.
Proxy: This page allows you to define what proxy to use if one is needed.
System Role Selection: This page lists all roles that can be installed on this
server. If using an existing server, roles that are already installed on the
server do not display. Place a checkmark in the box for State Migration
Point.
State Migration Point: As shown in Figure 22.16, this page allows you to
configure options for the SMP. You must complete three options:
Folder details: Define the folder to use for SMP data. Clicking the
yellow starburst icon allows you to choose a folder location, which
must already exist. You can also select the maximum number of clients
and the minimum amount of free disk space.
Deletion Policy: Select when you want to remove the SMP data
marked for deletion: immediately or after a certain number of days or
hours.
Restore-Only Mode: Set the SMP in a restore-only mode so no new
SMP data can be written to it. This might be useful when disk space is
filling up. You can turn this on, wait for data to be restored, and delete
the data and turn it back off.
Boundary Groups: This page allows you to associate an SMP to a
boundary group so clients know which SMP to use. The Add and Create
choices allow you to add a previously created boundary group or create a
new boundary group.
The final three pages of this wizard are the standard Summary, Progress, and
Completion pages.
FIGURE 22.16 SMP settings page.
There are six pages to the wizard; the last three are the standard Summary,
Progress, and Completion pages. The following are the unique pages:
General: This page provides information only, and there is really nothing to
configure. It shows the TS you selected, and at the bottom a check box is
automatically checked to allow detection of any associated content
dependencies to the TS.
Content: This is another information-only page. You might notice a slight
delay in moving from the General page to this page; this is because of the
content detection occurring in the background. This page shows all the
content associated with the TS, and this content is now added to the
distribution, which means you can distribute all the content at one time.
Content Destination: Select a collection, a DP, or a DP group to which to
send the content by using the dropdown menu under Add. If you have DP
groups, the authors recommend using that as your choice, to get the content
to every DP in the group.
Depending on the content already distributed, the number of DPs to which you
are sending content, the size of the content, and how many sites are in the
hierarchy, it may take some time to finish distributing the content to the DPs. It
is not unusual for a TS to need over 10GB of content. The images can be quite
large, depending on what is actually in them. Before proceeding to the next step
of deploying the TS, the authors recommend waiting for all the content to be
distributed.
You may run into an issue with a low-bandwidth site where it takes too long for
content to reach the DP. Solve this by prestaging the content. Select the TS in the
console and choose Create Prestaged Content File from the ribbon bar to bring
up a wizard that walks you through creating the prestaged content file. After
creating the file, use other means to get the content copied over to the DP. When
the file is on the DP, use the Extract Content tool to add the content to your DP.
For more information about prestaging content, see
https://docs.microsoft.com/sccm/core/servers/deploy/configure/deploy-and-
manage-content#a-namebkmkprestagea-use-prestaged-content.
General Page
The first page of the wizard, General, has five items to complete, and some of
them are required before moving to the next page:
Task Sequence: Filled automatically with the name of the TS you selected
to deploy. Change the default by clicking Browse.
Collection: Required; allows you to select the collection to which you want
to deploy the TS. Click Browse to select a collection from the list. You can
select only one collection.
Scheduling Page
The Scheduling page allows you to select information about when the
deployment will be scheduled to become available or executed. It has four
options:
Schedule When This Deployment Will Become Available: Select the day
and time for the TS deployment to become available.
Schedule When This Deployment Will Expire: Select the day and time
when this TS deployment will expire.
Assignment Schedule: This option is available only if Purpose on the
Deployment Settings page is set to Required. It allows you to set a schedule
for when the TS deployment becomes mandatory. You can choose an exact
date and time, or you can assign it to become mandatory as soon as
possible, after a logon event, or after a logoff event.
Rerun Behavior: This option is available only if Purpose on the
Deployment Settings page is set to Required. It provides a dropdown menu
that allows you to choose how ConfigMgr will handle reruns of the
deployment. These are the options:
Never rerun deployed program
Always rerun program (default option)
Rerun if failed previous attempt
Rerun if succeeded on previous attempt
Notification Settings: Choose what the user can see and run. There are two
choices:
Allow Users to Run the Program Independently of Assignments:
This option is available only if the Purpose setting on the Deployment
Settings page is set to Required. If this option is checked, the end user
can see this TS deployment in Software Center and run it at will.
Show Task Sequence Progress: This option allows the user to see the
progress bar the TS shows when running each step of the TS.
Unchecking this box allows the non-OSD TS to run silently.
Activities Performed Outside of the Maintenance Window: This option
allows you to select between allowing software installation and system
restarts to occur if the available time of the deployment falls outside a
scheduled maintenance window assigned to the collection.
Write Filter Handling for Windows Embedded Devices: Check this box
to commit the changes at the deadline or during a maintenance window.
Windows Embedded Systems (WES) use an overlay to store changes made
to the OS; those changes are removed when the device is restarted, and the
device is restored back to its original state. When you check this box and
the WES gets a TS deployment, the ConfigMgr client requires the WES to
reboot and enter service mode, allowing only administrators to log in.
ConfigMgr then executes the TS and restarts the WES back into normal
mode.
Allow Task Sequence to Run for a Client on the Internet: This option
allows a non-OSD TS to run on an Internet-based client. OSD imaging is
not supported on these clients.
Alerts Page
Use the Alerts page to configure the criteria to create an alert inside the
ConfigMgr console when the threshold is met. Two options are available:
Removable USB Drive: Create media using a USB drive plugged into the
machine running the console; if you remoted into the site server, the USB
drive must be plugged into that site server. Selecting this option makes the
Drive box available so you can select the USB drive. You can also format
the drive and make it bootable. One caution on using a USB drive: Be sure
it is large enough to hold the full set of media. Stand-alone media includes
all drivers, packages, applications, boot images, and the OS image. It is not
unheard of for the stand-alone media to be 32GB or more.
CD/DVD Set: Choose the media size from a dropdown menu; 650MB,
4.7GB, 8.5GB, or unlimited. The sizes correspond to sizes of CD and DVD
media. The thought is that you write the information to an ISO file and then
burn the ISO file to CD or DVD for the machine to be booted with it.
Before choosing the media size, have a good estimate of the content size. If
the content is more than 8.5GB, you can make multiple files of the size you
choose, or you can choose unlimited and create only one file.
Media File: This option, which is available when the CD/DVD set is
chosen, allows you to click Browse and select a folder and filename to use.
You can also enter the path and filename (ending with .iso) in the list box. If
you did not start the ConfigMgr console with the Run as Administrator
option and UAC is enabled, you may receive an error saying you do not
have write permissions to the location. Solve this by right-clicking the
console icon and choosing Run as Administrator.
Security Page
Stand-alone media contains everything needed to deploy an organization’s
image, and it is possible that some sensitive information may be contained on the
device where the media is being written. The Security page allows you to require
a password to be entered before someone can start the OSD process once WinPE
boots. If you check the box Protect media with a password, you must enter and
confirm the password.
The purpose of this page is to select the DP or DPs with all the packages you
need to create the stand-alone media. It may be that all packages are distributed
to all the DPs; in this case, you might end up selecting multiple DPs so that all of
the content is covered.
Customization Page
Use the Customization page to add any custom commands (which run before the
TS begins) to the stand-alone media:
Variables: At the top of the page, add any OSD variables you want to use.
Clicking the yellow starburst icon launches a dialog box that allows you to
add the variable name and value and then confirm the value. There is also a
box that allows you to hide the value from the ConfigMgr console. For a
refresher on OSD variables, see the “Using Variables” section, earlier in
this chapter.
Enable Prestart Command: Checking this box enables a text box where
you enter the command you want to run before the TS begins. There is also
a check box to include any files you might need for the prestart command.
Check this box to select the package that the files are in by using the Set
option; click Browse to choose what DP that package is on so it can be
downloaded by the stand-alone media installer. An example might be that
you need to run a script to check the ConfigMgr database to see if the
machine running the stand-alone media is already in the database. You
might need to delete that entry for the TS to run correctly. More in-depth
information is available at
https://blogs.msdn.microsoft.com/steverac/2015/04/22/power-belongs-to-
youthe-osd-prestart-command/.
Dynamic Media: Allows the media to query MPs to find the correct MP,
based on the site boundary for the IP address of that system.
Site-Based Media: Allows you to pick an MP to use during the OSD
process. That MP will be used until the ConfigMgr client is installed, at
which point it will find an MP based on the site boundary information.
Security Page
The Security page for bootable media is similar to the Security page in the stand-
alone media in that you can choose a password to protect the media; you can
also select the certificate you want to use. These are the available options on the
page:
Boot Image: Pick the boot image you want to use for this media creation.
Choose the boot image that will work with the systems you are imaging; for
example, if imaging x86 systems, pick an x86 boot image.
Distribution Point: Choose the DP from which the wizard will download
the boot image. When creating the boot media, the wizard must download
the boot image to a local folder on the system running the console. If no
DPs are shown when you click Browse, you must distribute the boot image
content to your DPs.
Associated Management Points: The option varies depending on the
option you selected on the Media Management page. If you choose
Dynamic Media, a list box appears, allowing you to click Add to select
multiple MPs for the boot media to use when starting communication. If
you choose Site Media, the box is a single list box where you can click
Browse to select a single MP to use for that initial communication.
The wizard has only two pages besides the standard Summary, Progress, and
Completion pages—the Media type and Boot image pages. These pages are
described earlier in this chapter for other media creations. The capture media
contains the ConfigMgr binary files as well as the boot image that you selected
in the wizard.
The wizard has several pages, some of which have been discussed before. The
Task Sequence page of this wizard is the same page as the Stand-Alone
CD/DVD seen in the wizard for stand-alone media. The following sections
discuss pages of the wizard that are different.
Media Properties Page
Use the Media Properties page to define the following properties for this WIM
file and the actual filename to use:
Created by
Version
Comment
Media file
Images Page
Use the Images page to choose the image you want to use for the prestaged
media. It is automatically populated from the TS chosen in earlier pages of the
wizard. It provides the following options:
Image Package: Click Browse and select the image package that you want
to use with this media.
Image Index: Sometimes an image WIM file contains multiple images,
which are separated in the WIM file by different indexes. You see this
mostly on OS images that come from the OS manufacturer. An example is
the Windows 10 image file, which can contain the Home, Professional, and
Enterprise versions in the same WIM file. Use this option to choose the
index you want to use from a dropdown menu.
Distribution Point: Click Browse and choose the DP you want the wizard
to use to pull the content from when creating the prestaged media WIM file.
Select Application
Select Package
Select Driver Package
Each page has a list box with Add and Remove choices to select from a list of
applications, packages, and driver packages, allowing you to add those items to
the WIM file. This allows the content to be stored locally in the WIM file so that
if a step in the TS references it, the content is pulled from the local store and not
from a DP across the network. It allows you to add tasks into the TS that will
install applications, packages, and drivers without having the system connected
to the network.
Monitoring OSD
In past versions of ConfigMgr, monitoring could be a difficult and clumsy task.
Starting with ConfigMgr 2012 and more so in ConfigMgr Current Branch,
monitoring involves a rich set of tools an administrator can use to understand
where a system is in the process and what has occurred with that system. The
first step to monitoring the OSD process is to navigate to Monitoring ->
Overview -> Deployments. Find your OSD deployment in the list and select it.
If it is difficult to find the OSD deployment among all the other deployments in
this list, sort the list by feature type: Just click the Feature Type column. When
you find your OSD deployment and select it, the bottom of the page shows a pie
chart with the current summarization status of the deployment, which can
provide a quick update. Choose View Status from the ribbon bar or from the
right-click context menu to open the Deployment Status page, which shows the
following five states possible for the deployment:
Success: Machines listed here are those that have successfully completed
the OSD deployment. They report in green.
In Process: These machines are currently running the OSD deployment but
are not yet finished. These are reported in yellow.
Error: These machines received the OSD deployment but ran into an error
when trying to download the content or execute the deployment. Dig deeper
by looking at the lower part of the page to see the asset details. One of the
details is the error code returned from the client; use this as a starting point
to look for the issue with that client.
Requirements Not Met: Machines in this state received the deployment but
did not meet the rules that allow the deployment to run.
Unknown: All systems appear in this state after the deployment is created.
When a system returns a state message, it moves out of this state. If you see
machines in this state after the deployment runs for some time, they did not
receive the deployment and could be broken clients.
The Monitoring view can help you understand the deployment status and where
machines are in the process (successful or still work in progress), but if you need
to dig a little deeper, reporting might be your next step. ConfigMgr has an
extensive report library you can access by navigating to Monitoring ->
Overview -> Reporting -> Reports.
With each version of ConfigMgr, the number of reports has increased, and
Current Branch has 478 reports. Of these reports, 28 of them deal specifically
with OSD and TSs. By default the reports are sorted by the Name column in the
ConfigMgr console. To focus solely on OSD reports, click the Category column
and look for Task Sequence. If using the SQL Server Reporting Services (SSRS)
web interface, you see the reports divided between four categories:
Some of the 28 reports are more helpful than others. The authors recommend
looking at the following 3 reports as a starting point:
To enable command support, ensure that the box Enable command support
(testing only) is checked. If you change the boot image here or in one of the
other tabs, you must redistribute the boot image to your DPs before the change
becomes active in WinPE. Once the box is checked and a system boots that boot
image, pressing the F8 key on the keyboard opens a command window where
you can run commands. For example, if you need to verify the IP address, you
can run ipconfig /all in the window to return the IP information. A
command that administrators commonly run to test network connectivity is the
ping command. Use this command to verify that you can reach other network
locations.
When creating TS media, the log file is CreateTsMedia.log, found on the site
server in the ConfigMgr installation folder \AdminConsole\AdminUILog. If on a
remote machine running the console, the log is located in
%ProgramFiles(x86)%\Microsoft Configuration
Manager\AdminConsole\AdminUILog. The filename is the same.
The log file when using TSs for deployments is SMSTS.log. This log file lives in
different places, depending on the stage of the deployment process. It contains a
detailed record of every TS-related action on the target system and usually
contains any error that occurred as well as successful executions of TS steps.
Referencing this file is the single most important step for troubleshooting a TS
and should be the first thing you ask for when troubleshooting. Press the F8 key
to open the command window to obtain the log. Table 22.1 shows the location of
the log, depending the state of the TS.
You may need to check the SMSTS.log if the TS fails, but you may discover that
the target system rebooted before you could access the file. An example of this
might be when you are testing your TS; you initiate the sequence and then go
home for the night, expecting to check it in the morning, only to find the system
rebooted and is sitting at the network page. This probably means that the TS
encountered an error, the machine waited the default 15-minute timeout and then
rebooted, WinPE loaded, and you lost everything in the log about the error. The
authors suggest that in such a situation, you reset the default time-out for when
an error occurs. You can do this by adding a step to your TS that changes the
value of the SMSTSErrorDialogTimeout variable. Figure 22.21 shows an
example where the value is set to 86,400 seconds (24 hours). Changing the value
for this setting should give any administrator adequate time to see the error and
collect the logs for review.
FIGURE 22.21 Setting the SMSTSErrorDialogTimeout variable.
TSs can get very long (200 steps are more); if this occurs, the log file rolls over,
and you lose valuable information that might be needed for troubleshooting. You
are left trying to reproduce the issue and catch log files before they roll over. You
can change the parameters of the SMSTS.log file, which are hard-coded by
default when WinPE boots. They are set in the WinPE Registry; press the F8 key
to open the command window and type regedit.exe. In the Registry editor,
navigate to
HKLM\Software\Microsoft\CCM\Logging\TaskSequence, which
shows you the following values about the logging for SMSTS.log:
LogDirectory=X:\Windows\Temp
LogEnabled=1
LogLevel=0
LogMaxHistory=2
LogMaxSize=2097152
These values turn on logging and set the values; the ones you will want to
change are LogMaxHistory and LogMaxSize, which modify the number of
rollover logs and the size of a log. If you change these in the Registry, they will
not take effect. The authors recommend changing the values using the
SMSTS.ini file; this text file contains the settings you want for those Registry
values. SMSTS.ini is read at WinPE boot time, before any TS runs and before
the TS environment is built. The settings are usually the first line in your
SMSTS.log file. Changing the values here allows your settings to be in place
from the very beginning. The format of the file is very simple, just the settings
you want to change:
Click here to view code image
[Logging]
LOGMAXSIZE=5120000
LOGMAXHISTORY=6
DEBUGLOGGING=1
Create a text file named SMSTS.ini, edit the file to include these options using
the values you want to set, and save the file. Be sure the file is named
SMSTS.ini, as sometimes when creating text files, the file may end up with an
extra .txt extension (for example, SMSTS.ini.txt). Once the file is created, copy
the file to the following two locations on your ConfigMgr site server:
<ConfigMgr_install_directory>\OSD\bin\i386
<ConfigMgr_install_directory>\OSD\bin\x64
Now navigate to Software Library -> Overview -> Operating Systems ->
Boot Images, select the boot image, and choose Update Distribution Points
from the ribbon bar or after right-clicking Boot Images to start the process of
creating an updated boot image. The process injects SMSTS.ini into the WinPE
image and distributes the image to your DPs. If you have set up PXE booting
with WDS, the image used when a machine PXE boots is also updated. If using
more than one boot image, you must update the others as well. When the log
values are working the way you want, you must still collect them. The blog entry
at https://blogs.msdn.microsoft.com/steverac/2008/07/15/capturing-logs-during-
failed-task-sequence-execution can help automate part of that process. Be aware
that no matter how much automation you have, there will still be times when you
must collect the files manually.
The SMSTS.log file is not the only log file created or updated during the OSD
process. The Setup Windows and ConfigMgr task runs the Windows Setup
program, which creates and keeps several logs updated throughout the process.
The following logs are some of the ones that may be of importance when
looking for solutions to problems:
%SystemRoot%\Panther\setuperr.log
%SystemRoot%\Logs\DISM\dism.log
%SystemRoot%\Logs\CBS\CBS.log
%SystemRoot%\Debug\NetSetup.log
Once you have a log file, you need to view it. As it is a text file, you can use
Notepad, but it will not be formatted for the best viewing. The preferred tool to
view all ConfigMgr log files is CMTrace.exe, found in
<ConfigMgr_install_directory>\Tools. CMTrace was built by the ConfigMgr
product team and is updated with each version of ConfigMgr. It is designed to
present the ConfigMgr logs in a more readable format, showing the log text,
component, date and time, and the thread that wrote the log entry, which is
valuable because many ConfigMgr components are multithreaded. You can
search up or down the log for information. Errors are highlighted in red and
warnings in yellow. You can also choose your own words and colors to highlight
those words. The error lookup tool, accessed from the Tools menu or by pressing
Ctrl+L, allows you to enter the error code and returns the text message
associated with that error.
A very useful but often overlooked feature of CMTrace is its ability to open
multiple log files and merge them chronologically. This can be helpful if you
need to trace the flow of an object across multiple components. Access the
feature by opening CMTrace without any log files open and then select the open
folder icon or choose File -> Open to see the list of log files; at the bottom of the
page, select the Merge selected files check box to open the files as a single file
and then arrange the lines by their date and time values.
The PXE boot screen on the target system may also contain some valuable
information. Figure 22.22 shows the boot screen for a virtual machine.
FIGURE 22.22 PXE boot screen for a virtual machine.
One often overlooked issue with clients having PXE boot failures is the IP
address. A quick look at the PXE boot screen shows whether the client obtained
a DHCP IP address. This screen also gives the IP address of the DHCP server it
is talking to, its default gateway, the IP address of the WDS server, and the MAC
address and GUID of the client system. Notice that it also says that ConfigMgr is
looking for a policy. This is important because it determines whether the client is
known or unknown to ConfigMgr. This is where the hardware identifier
explained in the “Boot Image Command-Line Support” section, earlier in this
chapter, comes in to play and allows you to PXE boot or not.
Many PXE issues are related to the network. One item that helps with some
network issues is being able to change the default TFTP block and window size.
If the default sizes are not working because of custom network changes, you
may encounter time-out errors when trying to download the boot image.
ConfigMgr now allows you to customize two settings:
TFTP Block Size: This is the size of the data packets sent by the server to
the client downloading the file. A larger block size allows the server to send
fewer packets, meaning fewer round-trip delays between the server and the
client. However, large block sizes lead to fragmented packets, which are
unsupported by most PXE client implementations. Change this value by
locating the following Registry key on the PXE-enabled DP:
HKLM\Software\Microsoft\SMS\DP\RamDiskTFTPBlockSize
the default value is 4096 (4K). (If the key does not exist and you need to
change the block size, you must create the key.)
TFTP Window Size: TFTP requires an acknowledgment (ACK) packet for
each block of data sent. The server does not send the next block until it
receives an ACK for the previous block. TFTP windowing is a feature in
WDS that allows you to define how many data blocks fill a window. The
server sends the data blocks back-to-back until the window fills, and then
the client sends an ACK packet. Increasing this window size reduces the
number of round-trip delays between the client and server, decreasing the
overall time for downloading a boot image. To change this value, locate the
following Registry key on the PXE-enabled DP:
HKLM\Software\Microsoft\SMS\DP\RamDiskTFTPWindowSize
the default value is 1. (If the key does not exist and you need to change the
block size, you must create the key.)
The wizard may take several minutes to populate the page of updates, as it must
scan the image to get the list of updates needed. This process relies on a working
Software Updates installation in ConfigMgr. The wizard uses the synchronized
software updates as a baseline to scan against so it knows what updates can be
applied. It is key to synchronize the updates for the OS versions of the images
being used. The offline servicing process works only for security updates for the
OS; Microsoft Office updates are not applied. The wizard has the standard
Summary, Progress, and Completion pages as well as two pages for user input:
Choose Updates: The list box in the middle of this page is populated with
the updates applicable to the image you selected. How many are listed
depends on how long ago the image was last updated. The older the image,
the more updates it will need. Beside each update is a check box for you to
select or deselect that update. By default all updates are selected. Above the
list box are two options: a check box to select or unselect all updates at one
time and a dropdown that allows you to choose between x64 and x86
architectures.
Set Schedule: Select the schedule to use to update the image. Choose As
soon as possible or pick an exact date and time to use. Two check boxes are
checked by default: Continue on error, and Update distribution points with
the image. Sometimes an error will occur when trying to apply the update to
the image; the Continue on error option allows the process to continue and
not stop on that error. The Update distribution points with the image check
box allows DPs to be updated with the newly updated image when the
process is finished.
The process is fairly simple: The image is copied to a temporary location on the
machine running the console, the image is mounted, updates are applied using
the DISM tool, the image is saved as it is unmounted, the old image is renamed,
and the new image is copied back to its permanent location. The DPs are then
updated if the box was checked in the wizard. The entire process is logged in the
OfflineServicingMgr.log file located in the <ConfigMgr_install_directory>\Logs
folder.
Summary
OSD is a large topic that cannot really be covered in a single chapter. If you
search, you will find entire books dedicated to OSD and the deployment of OSs
in general. Many organizations have dedicated deployment experts whose only
job is deploying Windows and implementing OSD. Good or bad, you will be
learning OSD and deployment techniques as long as you are in the business of
Windows deployment.
The next chapter discusses security issues you should consider when
implementing System Center Configuration Manager.
PART IV
Configuration Manager Administration
IN THIS PART
CHAPTER 23 Security and Delegation in Configuration Manager
CHAPTER 24 Backup, Recovery, and Maintenance
CHAPTER 23
Security and Delegation in Configuration
Manager
IN THIS CHAPTER
Planning for Security and Delegation
ConfigMgr Security Solutions
About Role-Based Administration in ConfigMgr
Securing Administrative Access to ConfigMgr
Securing the ConfigMgr Infrastructure
The rising number of high-profile data breaches in recent years has increased
awareness of the importance of security in information technology (IT). This
chapter discusses security issues to consider when implementing System Center
Configuration Manager (ConfigMgr). It includes a detailed discussion of how to
safeguard Configuration Manager workflows and protect ConfigMgr from
compromise. The chapter begins with a discussion of how to address security
requirements during ConfigMgr design and planning. Configuration Manager is
a powerful platform you can use to implement core security controls. This
chapter includes an overview of those controls. It presents ConfigMgr role-based
administration (RBA), which allows you to assign access to IT support personnel
on a least-privilege basis. The chapter also discusses how to prevent
unauthorized administrative access to Configuration Manager and takes a deep
dive into options for hardening your ConfigMgr environment against malicious
attack.
Much of this chapter focuses on the last question. This section looks at the first
two, discussing things to consider as you think about what you are protecting
and from what you are protecting it.
You need to protect the data stored in the ConfigMgr site database. The site
database contains extensive information about your environment. An attacker
could use this information to learn about your systems, networks, and
applications, as well as your organization’s security posture. Many ConfigMgr
features collect and store user information. Recently there has been increased
emphasis on securing personally identifiable information (PII). PII is any data
about an individual that can be used to establish his or her personal identity. PII
is highly regulated in many jurisdictions, most notably in the European Union
(EU); be aware of those privacy regulations. Engage with the persons
responsible for privacy in your organization to learn what requirements are in
place for personal user data. You may need to limit the data you collect or
implement additional controls to protect user data.
Protect your site systems and the services they provide. A ConfigMgr service
failure could affect normal operations, user productivity, and security; users
could lose access to applications, and administrators could be unable to patch
systems efficiently.
In addition to protecting ConfigMgr itself, plan your solution with a view toward
protecting your larger environment. The “ConfigMgr Security Solutions”
section, later in this chapter, discusses how to use ConfigMgr to protect systems
and data. Realize that a ConfigMgr security breach or an administrator’s mistake
could compromise the security of managed systems.
Working with the security team can help avoid costly delays and poorly planned
security controls. During design and planning, work with your security group to
identify threats to each ConfigMgr service you plan to provide and select risk
management strategies to deal with those threats. Most threat actors have a
financial motivation. In the past, payment card and banking information was
commonly targeted for financially motivated cyber-crime. Recent trends include
using extortion and increased targeting of intellectual property and health
information. In addition to financially motivated cyber-criminals, significant
threat actors include disgruntled employees and others with personal animosity
toward an organization, political “hacktivists” seeking to promote some cause,
and nation-states seeking economic or military advantage. Following are some
important changes to the threat landscape since the publication of System Center
2012 Configuration Manager (SCCM) Unleashed (Sams Publishing, 2013):
The next section introduces security concepts and terminology used throughout
the chapter. If already familiar with concepts such as the CIA (confidentiality,
integrity, availability) triad, risk management, and layered defense, you may
choose to skim this section briefly or skip it altogether.
A Security Primer
The principal objectives of information security are to protect data
confidentiality and integrity, as well as service availability. It is also essential to
maintain a reliable audit trail of actions taken on the system. Following is a
description of these objectives:
Risk Avoidance: You might decide that the business value of undertaking a
technology initiative does not justify the risk. As an example, you might
determine that the value to your company of Internet-based client
management (IBCM) is not sufficient to justify exposing your ConfigMgr
infrastructure to the Internet.
Risk Mitigation: You might decide to implement countermeasures to
address potential threats to reduce risk. Much of the material in this chapter
relates to risk mitigation strategies.
Risk Acceptance: You might decide to accept certain risks if the business
value of the activity and cost of implementing additional controls to
mitigate risk outweigh the potential losses posed by the risk. As an
example, say that you determine that using a file server running an older
version of Windows as a distribution point (DP) provides sufficient
business value to justify the risk, while the cost of providing a more secure
system is not justified by the risk mitigation it would provide.
Microsoft has worked with CIS and IAD to develop best practices for Windows
operating systems, Active Directory (AD), and other Microsoft products.
Microsoft provides a free tool, Microsoft Security Compliance Manager
(https://www.microsoft.com/download/details.aspx?id=16776), for use in
comparing your systems against baseline Microsoft recommendations. You can
customize the baselines to the needs of your organization and export them to use
in ConfigMgr compliance settings, AD group policy, and other security tools.
Active Directory: Although ConfigMgr sites and hierarchies can span more
than one AD forest, such an arrangement might compromise your AD
security design. The forest is a security boundary in AD. Weigh the
importance of maintaining the strongest possible security boundary between
forests against the possible administrative advantages of a single
ConfigMgr hierarchy to manage multiple forests.
ConfigMgr Site Selection: The fewer sites you have, the easier it is to
maintain site security. Additional sites increase the number of site servers,
site databases, and intersite communications links to administer and secure.
However, in some cases you might require additional sites. Chapter 4,
“Architecture Design Planning,” discusses reasons to deploy additional
sites.
Site System Role Assignment: You should move client-facing roles, such
as the management point (MP) and DP, off the site server. The risk of a
network attack is greatly reduced if you restrict client access to only server
roles that require it. The site server and site database server are the most
important roles in your site; opening network access required for clients to
establish a connection to these systems is a risk you should consider
eliminating.
Separating server roles generally reduces the requirement for services and
open network ports on each system, which reduces the system attack
surface. Weigh this advantage against the effort required to support and
secure additional site systems. As installing Internet Information Services
(IIS) on a server greatly increases its attack surface, you should generally
separate server roles requiring IIS from those that do not. You also should
separate the Fallback Status Point (FSP) server role from all other system
roles. The FSP must accept unauthenticated client data, presenting a risk to
which you would want to avoid exposing other site roles.
Perhaps the most important security consideration for assigning system
roles is to avoid using systems hosting other applications as site systems,
especially those with applications based on IIS or SQL Server. Poorly
written or vulnerable web and database applications are favorite targets of
attackers and could be exploited to gain control of a site system. Placing a
DP on a server that provides file and print services presents a much lower
risk.
Server Placement: Deploy site systems in locations that are as secure as
possible in terms of physical and network access. An attacker with physical
access to a site system could compromise your system by installing a
hardware device such as a keystroke logger or booting the system to an
insecure operating system (OS). Restrict network traffic to that which is
necessary for ConfigMgr operations and basic server functions. Using a
host-based firewall or taking advantage of the microsegmentation
capabilities available through network virtualization provides the most
granular control of network traffic. If possible, place the site server and site
database server in a secure network zone, isolated from systems with lower
security requirements, such as user workstations.
Managing Clients on the Internet: If you plan to manage clients on the
Internet, consider using a cloud management gateway for managing
Internet-based clients. Doing so eliminates some security challenges
associated with Internet-based client management, especially the need to
expose your on-premise infrastructure to the Internet.
Administrative Workstations: If administrators must reach site systems
from less-secure network zones, have them use a virtual private network
(VPN) to connect to systems in the higher-security zone. Consider
providing an extra measure of security by using a “jump box.” In this
scenario, administrators establish a Remote Desktop Protocol (RDP)
session to the jump box to run the console and other tools rather than
connect directly to site systems.
Grant the least privilege necessary for each administrator to carry out his or
her responsibilities. Assigning overly broad privileges to users or
administrators greatly increases the chances of compromising systems or
data. Review permissions in the built-in roles; consider customizing the
roles by removing permissions not required in your administrative model.
Employ separation of duties wherever possible to make it more difficult to
abuse administrative access. When a person carries out improper activity on
his or her own, the level of effort and risk of detection are much lower than
when the person colludes with others. For example, a user with the
Application Administrator role could introduce unauthorized code into an
application and then target specific systems for attack. Assigning the
Application Author role and the Application Deployment Manager role to
separate individuals can mitigate this risk. The extent to which you choose
to separate responsibilities for related tasks depends on your security
requirements and available resources.
Several ConfigMgr features can provide significant risk mitigation for your
managed systems. The next section reviews these features.
The ConfigMgr RBA security model is similar to that of other System Center
components. Sets of related administrative tasks are grouped together to define
roles. ConfigMgr administrators are assigned roles based on job function. The
roles provide the minimum privilege required to carry out the user’s
responsibilities. The next section shows how ConfigMgr administrators in the
Odyssey domain provide the web server administrators with the minimum
permissions necessary to manage the specific servers for which they are
responsible.
Security Roles
A security role consists of a set of related permissions that allow a user to
perform specific tasks. Configuration Manager provides several built-in roles
that address common administrative responsibilities. You can create additional
roles and customize them to the particular needs of your organization. Security
roles are hierarchy-wide and replicate to all sites.
To view the roles and their descriptions, navigate to Administration -> Security
-> Security Roles. The Full Administrator role provides unrestricted access to
all ConfigMgr operations. If your organization separates security administration
from operational duties, you might assign the Security Administrator and
Operations Administrator roles to separate users; however, you must have at
least one user with the Full Administrator role. The “Auditing ConfigMgr
Administrative Actions” section, later in this chapter, explains how auditors or
security personnel can keep an eye on all administrative users, including full
administrators.
You can export a custom role and import it into a different hierarchy. For
example, you might develop and test all custom roles in your lab environment
and import them in production. After creating a custom role, you can edit its
permission set and other properties on the role’s property sheet. Built-in roles
and roles imported from other hierarchies are not editable.
Using Security Scopes
Security roles define the operations a user can perform on each class of
securable objects. You can further limit an administrative user’s access rights to
a subset of the securable objects of each class. Depending on the class of
securable object, you could accomplish this through collections or security
scopes:
Permissions on some types of objects apply to all type instances, and you cannot
restrict these by collection membership or security scope.
You can associate objects of the following types with security scopes:
Antimalware settings
Application
Authorization lists
Boot image packages
Boundary groups
Client settings
Configuration items
Configuration policies
Device enrollment profiles
Device setting items
Device setting packages
Distribution point groups
Distribution point info
Driver packages
Firewall policies
Global conditions
Image packages
Metered product rules
Migration jobs
Operating system install packages
Packages
Queries
Sites
Software updates packages
Subscriptions
Task sequence packages
Virtual hard disk (VHD) packages
Virtual environments
There are two built-in security scopes: All and Default. Administrative users
assigned the All security scope can administer all objects related to their role.
Built-in instances and newly created instances of securable objects are assigned
the Default security scope. Perform the following steps to create additional
security scopes:
After creating a new securable object, set its security scopes. Follow these steps:
1. Locate and right-click the object in the ConfigMgr console. Use the
standard Ctrl and Shift options to multi-select objects for which you want to
specify the same scopes.
2. Choose Set Security Scopes.
3. In the Set Security Scopes dialog, select one or more scopes to associate
with the objects and then click OK. Figure 23.5 shows the Set Security
Scopes dialog.
FIGURE 23.5 Associating the Web Server Resources security scope with an
object.
By default, all administrative users have permissions on the All Systems and All
Users collections. You may choose to remove these default permissions. If you
do, users can only see and manage resources in collections to which you
explicitly grant access. This practice minimizes the chance a user could
accidentally gain access to resources he or she does not need to see. Allowing
access to All Systems and All Users collections simplifies administration by
eliminating the requirement to grant access explicitly to individual collections.
Note that when you create a collection, you can base the new collection on an
existing collection. Users with access to the original collection inherit access to
collections based on the original one.
FIGURE 23.7 Specifying the security scope for which a group has a specific
role.
FIGURE 23.8 The objects secured by a single security scope report for
configuration items with security scope Web Server Resources.
FIGURE 23.9 RBAViewer showing roles held by a user with associated security
scopes and collections.
Protecting against these risks requires effective security at the AD and database
layers; it also depends on maintaining a strong auditing policy. The following
sections address these issues.
This section described some specific AD security practices that are particularly
relevant to ConfigMgr administrative access. Microsoft provides guidance on
AD security best practices at
https://technet.microsoft.com/library/dn487446.aspx.
JEA provides role-based administration for anything you can manage through
PowerShell, including Windows, AD, and various applications. It allows you to
provide users with access to specific administrative tasks on designated systems
without adding them to the administrators group. JEA uses PowerShell Desired
State Configuration (DSC) to enable centralized administration of task
delegation. It does not work with traditional graphical user interface (GUI)-
based administrative tools. If you require use of the GUI tools by administrators
with limited, delegated permissions, consider third-party role-based access
control products.
ConfigMgr provides several reports based on audit messages. Table 23.1 lists
reports you can use to audit sensitive actions.
Active Directory
Site systems
SQL Server activity
Network infrastructure devices
Threats to systems generally fall into one or more of the following categories:
The following sections discuss methods to mitigate these risks through secure
design supplemented by security technology.
Hardening PowerShell
Attackers generally gain initial access to systems by exploiting some weakness
such as a software vulnerability or a careless user. Once on the box, the attacker
can use PowerShell to access data and other system resources or to attack other
systems on the network. Set the strictest execution policy consistent with your
operational requirements to guard against administrators accidentally running
dangerous scripts; however, an attacker can easily bypass the execution policy
after the initial compromise. Microsoft has responded to the increase in
malicious use of PowerShell by delivering several new or enhanced security
features in PowerShell 5.0. Consider taking advantage of each of these features:
Endpoint detection and response (EDR) is one of the hottest new security
technologies. Working with preventive technologies such as traditional
antimalware and application whitelisting, EDR implements a prevent, detect,
respond approach to security, described earlier in this chapter, in the section
“Planning for Security and Delegation.” EDR software monitors endpoints
(including end-user systems and servers) for suspicious or anomalous activity,
correlates detections across the enterprise, and enables administrative or
automated responses.
Configure SQL Server to use Windows authentication only and enable logging at
least for failed logon attempts. Use a low-privilege domain account rather than
Local System for the SQL Server startup account. When you run SQL Server in
a low-privilege account context, you must register the service principal name
(SPN) manually for the server in AD. Clients use the SPN to locate SQL
services. Use the procedure described at
http://technet.microsoft.com/library/hh427336.aspx#BKMK_ManageSPNforDBSrv
to register the SPN.
Securing Additional Site Systems
Microsoft provides guidance for securing specific site system servers at
https://docs.microsoft.com/sccm/core/plan-design/hierarchy/security-and-
privacy-for-site-administration. Microsoft provides specific recommendations
for the following site systems:
Site servers
Site database servers
Site systems that run IIS
Management points
Fallback status point
The authors highly recommend using PKI certificates rather than self-signed
certificates wherever possible. The following features require PKI:
HTTPS communications
Support for clients on the Internet
The Microsoft Intune connector for mobile device management
The next sections discuss the two principal scenarios where ConfigMgr uses
cryptographic controls: securing network communications and securing content
distribution.
The site server should have the highest level of system, network, and physical
security you can provide. There may be instances in which you cannot provide
the same level of security for all site systems. In such instances, consider
enabling the Require the site server to initiate connections to this site system
setting on the less secure systems. To enable this setting, check the appropriate
box on the General page of the Add Site System Roles Wizard. This site system
setting protects the site server by preventing less secure systems from initiating
communication to the site server.
ConfigMgr can only protect the content you provide; you must ensure the
integrity of the source files. Download software only from trusted sources and
verify the files after download. Similarly, inspect any physical media used to
receive files for a certificate of authenticity and tamper-resistant packaging.
Scan all source files for malware and keep them on a secure network share or
storage system. Consider using file integrity monitoring software to prevent
alterations.
Site system installation accounts are used to install and configure site
systems.
Client push installation accounts are used to install and configure client
systems when using the client push installation method. Client push is less
secure than other client installation methods; avoid using it if possible.
OSD accounts are generally AD domain accounts, although you can use local
accounts for the capture operating system image account and the task sequence
run as account.
In addition to the accounts listed in Table 23.3, OSD and software distribution
use the network access account to access network resources when the client
computer account and/or current user does not have access. This account
typically is used for client computers in workgroups or untrusted domains or
during OSD before the computer joins the domain. Grant the account domain
user permissions only.
For granular access to packages, specify one or more package access accounts
on a per-package basis. Package access accounts can be any Windows user or
group. Generally use existing groups as package access accounts rather than
creating accounts for this purpose. The default package access permissions are
assigned to the local Users group with read permission and local Administrators
with full control. In general, you change these defaults only to restrict those
packages that you do not want all users to be able to access. Occasionally you
might grant modify permission for package access accounts if a setup program
needs to write back to the source folder.
Software Update Point Proxy Server Account: The software update point
(SUP) uses this account to authenticate to a proxy server or firewall to
synchronize with Microsoft Updates or an upstream Windows Server
Update Services (WSUS) server. Use any account that can authenticate to
your proxy server or firewall and access the site for WSUS synchronization
for this account.
Software Update Point Connection Account: WSUS services use this
account to configure settings and request synchronization. This account is
required only if the SUP role is assigned to a remote server or a network
load balancing (NLB) cluster. The account must be a member of the local
Administrators group on the SUP.
Each discovery account requires read access to the AD containers specified for
discovery. The Active Directory forest account also requires full control
permissions to the System Management container to publish to AD.
Miscellaneous Accounts
Following are some additional accounts that ConfigMgr uses:
Exchange Server Connection Account: The site server uses this account
to connect to the Exchange server for mobile device management. Chapter
15 discusses how to configure this account and the permissions it requires.
Remote Tools Permitted Viewer Accounts: Any Windows users or group
can be included in the permitted viewers list to allow remote control access
to clients. Chapter 9 describes how to configure permitted viewer accounts.
Under most scenarios, it is better to use RBA to delegate remote control
access than to use permitted viewers.
SMTP Server Connection Account: The site server uses this account to
authenticate the mail server using Simple Mail Transfer Protocol (SMTP) to
send email alerts for Endpoint Protection.
Source Site Account: ConfigMgr Current Branch uses the source site
account to connect to ConfigMgr 2007 sites during migration. This account
requires read access on the source site and all objects to be migrated.
Chapter 7 describes the configuration and use of this account as well as the
source site database account.
Summary
This chapter discussed infrastructure security considerations for ConfigMgr and
the appropriate delegation of administrative access. It described the RBA model,
ConfigMgr cryptographic controls, and security accounts. The chapter also
provided general considerations for secure hierarchy design, audit support, and
server configuration and placement. Chapter 24 describes ConfigMgr backup,
recovery, and maintenance.
CHAPTER 24
Backup, Recovery, and Maintenance
IN THIS CHAPTER
Implementing Configuration Manager Backup
Recovering Configuration Manager Sites
Maintaining a Configuration Manager Site
Monitoring Configuration Manager
The maintenance of the solution is also often disregarded. You must maintain
data integrity and currency, and ConfigMgr provides a number of maintenance
tasks to assist with this. In addition to backup and recovery, this chapter
discusses the regular tasks you should perform in order to guarantee a healthy
ConfigMgr environment. It also describes configuring the built-in maintenance
tasks. Optimizing SQL Server and Windows Server Update Services (WSUS)
are more advanced tasks, but they can drastically improve the performance of
the infrastructure.
This chapter describes how to implement a backup solution using both methods.
However, the SQL backup method is the recommended approach. Some of the
considerations follow:
The Backup Site Server maintenance task backup merely copies the
database, log files, and other system files to the backup folder location. A
SQL database backup compresses the files, which could result in a massive
reduction in disk space requirements for larger sites.
SQL database backups utilize advanced features such as retention periods
and data integrity checks.
SQL database backups allow you to back up other important databases at
the same time (such as ReportServer, ReportServerTempdb, and SUSDB).
The Backup Site Server maintenance task backup stops ConfigMgr services
before copying the database, log files, and system files. SQL backups do
not require loss of service while performing backups.
SQL database backups allow configuration of email notifications on success
or failure.
SQL database backups provide more granular control over scheduling.
ConfigMgr Current Branch backup routines must now include the
CD.Latest folder, which is required for site recovery. The folder is
automatically included as part of the Backup Site Server maintenance task
backup, but this folder must be backed up separately if you implement a
SQL database backup.
For organizations employing dedicated ConfigMgr and database
administrators, the advantage to utilizing the Backup Site Server
maintenance task backup is that it provides the ConfigMgr administrator
with full control over the backup process.
In the ConfigMgr console, follow these steps to enable and configure site
backup:
6. Configure the backup schedule (days of the week, start time, and latest start
time).
7. Choose Enable alerts for backup task failures. These failure alerts are
available in the Alerts node of the Monitoring workspace.
8. Monitor backup progress with the Smsbkup.log file. This log file is useful
when troubleshooting failed backups. Figure 24.2 shows backed-up files.
CD.Latest: This folder contains the ConfigMgr source installation files for
the currently installed version. Each time an update is applied to the
ConfigMgr site, the files in this folder are updated as well.
SiteDBServer: This folder contains a copy of the ConfigMgr database and
log files (CM_<site code> .mdf and CM_<site code> .ldf).
SiteServer: This folder contains SMSbkSiteRegSMS.dat. It also contains a
subfolder called SMSServer, with four additional folders (data, inboxes,
Logs, and srvscct) and the install.map file.
Files: The files are BackupDocument.xml, ConfigMgrBackup.ini, and
Smsbkup.log.
Customizing Backups
You can customize ConfigMgr maintenance task backups by using the following
files:
This section describes how to create a backup task in which SQL Server backs
up the core items required for a successful ConfigMgr site recovery. This
procedure, which was developed by Steve Thompson, MVP, consists of these
tasks:
Configure the SQL Server Agent task to back up the CD.Latest folder.
Configure a SQL Server maintenance plan to back up the databases.
Begin by choosing the location of the backup and creating a folder to hold the
backup files (H:\SQLBackup for the purposes of this book). Also, create a
CD.Latest folder within the backup location.
1. Launch SQL Server Management Studio and expand the SQL Server Agent
node.
NOTE: SQL SERVER AGENT NODE
The SQL Server Agent node may not be visible in SQL Server Management
Studio. This normally means that your user account does not have the required
SQL permissions. Resolve this by launching the tool as administrator.
Click Next.
5. Change the maintenance task order by selecting the Execute SQL Server
Agent Job and clicking Move Down until this task is listed last. Click Next
to continue.
6. On the General tab of the Define Back Up Database (Full) Task dialog box,
click the dropdown arrow beside Databases and choose All user databases.
Click OK.
7. Select the Destination tab of the Define Back Up Database (Full) Task
dialog box (see Figure 24.6).
The content library location is the SCCMContentLib folder on the site server. It
is normally found on the disk drive that had the most available space when the
site was installed.
SCCMContentLib
SMSPKG
SMSPKGSIG
SMSSIG$ (primary site only)
SMSPKGX$ (where X is the drive letter; primary site only)
Recover the Site Server Using an Existing Backup: Select this option to
reinstall the site using a backup that was created by the ConfigMgr Backup
Site Server maintenance task (before the failure).
Reinstall the Site Server: Use this option when no backup exists. You must
use the server name, site code, and database name of the failed site.
Recover the Site Database Using a Backup Set: Use this option if you
have a backup of the site database created by the ConfigMgr Backup Site
Server maintenance task prior to the failure.
Create a New Database for This Site: Use this option when there is no
database backup. It is only useful in a hierarchy when data can be replicated
from the CAS.
Use a Site Database That Has Been Manually Recovered: Use this
option when you have already restored the SQL database and now must
complete the recovery process.
1. Navigate to the location of the backed-up files (in the CD.Latest folder).
Extract the files, if required. If recovering the entire server, copy the files to
the new site server.
2. Launch setup by double-clicking splash.hta in the root of the CD.Latest
folder.
3. In the Microsoft System Center Configuration Manager Setup Wizard, click
Install to continue.
4. Read and ensure that you understand the notes on the Before You Begin
page. Click Next to continue.
5. Select Recover a site on the Available Setup Options page, shown in Figure
24.10. Click Next.
The site code and site name on the Site and Installation Settings page is
prepopulated and grayed out. This information is derived from the backup
files specified in step 6.
12. Verify or browse to choose an alternative installation folder. You can
optionally install the ConfigMgr console during the restore by checking the
option Install the Configuration Manager console. Click Next to continue.
13. In the Database Information page, which is also prepopulated with
information taken from the backup files, specify the SQL Service Broker
(SSB) port or accept the default and click Next to continue.
14. On the second Database Information page, select paths for the SQL Server
database and log files or accept the default locations. Click Next to continue.
15. Accept the ConfigMgr terms on the Usage Data page. (See Chapter 6 for
details.) Click Next.
16. Review the settings summary and click Next to begin the prerequisite
check. The wizard runs the prerequisite checker and identifies any
prerequisite issues. Errors and warnings are displayed on the Prerequisite
Check page. All activities are logged to C:\ConfigMgrPrereq.log.
17. Select Begin Install to start the recovery process. The restore may take a
considerable amount of time, depending on the size of the database to be
restored and server performance. You can monitor the process on the Install
page of the wizard. Full details of the recovery process are also available in
C:\ConfigMgrSetup.log.
An administrator should also carry out regular tasks to maintain and optimize the
environment:
The following sections discuss these tasks in detail. Site maintenance options
that are required under specific circumstances are also described.
In the ConfigMgr console, follow these steps to configure the maintenance tasks:
Fragmented indexes cause performance issues with SQL databases, and this gets
worse over time. It is crucial to perform regular re-indexing of the ConfigMgr
database. Execute the following T-SQL command on a database to establish
whether there is excessive fragmentation.
DBCC Showcontig
Figure 24.11 shows the results of running this command in a test lab, where
some of the tables have extensive fragmentation. If the site database is
fragmented more than 10%, action is required to rebuild the indexes.
Click Next.
FIGURE 24.12 Database re-index maintenance tasks.
5. Accept the default task execution order and click Next to continue.
6. On the Define Reorganize Index Task page, use the database dropdown
arrow to select All user databases. Accept the other configuration settings
and click Next.
7. On the Define Rebuild Index Task page, use the database dropdown arrow
to select All user databases. Accept the other configuration settings and
click Next.
8. On the Define Update Statistics Task page, use the database dropdown
arrow to select All user databases. Accept the other configuration settings
and click Next.
9. Accept the default settings on the Define History Cleanup Task page and
click Next to continue.
10. Select the location to save the report. Alternatively, enter an email recipient.
Click Next.
11. Review the wizard summary and click Finish to create the maintenance
plan.
1. From the Tools menu of Server Manager, open the Windows Server Update
Services (WSUS) console and select Options -> Server Cleanup Wizard
(see Figure 24.13).
This script re-indexes the WSUS database. The steps to execute it vary,
depending on whether you installed SUSDB on SQL Server or a Windows
Internal Database (WID). The link provided in the previous paragraph also
contains instructions for use.
The authors recommend using this script if WSUS has been installed using the
WID. For re-indexing the WSUS database using SQL, refer to the “Advanced
SQL Optimization” note earlier in this chapter.
Four site maintenance options are available, as shown in Figure 24.15 and
described in the following sections:
The Modify SMS provider configuration option lets you change the SMS
provider configuration for a site by adding a new provider or uninstalling an
existing provider.
Summary
This chapter discussed backup, recovery, and maintenance of ConfigMgr. It
described the different ways to implement backup solutions and the various
scenarios for recovering sites.
IN THIS PART
APPENDIX A Configuration Manager Log Files
APPENDIX B Co-Managing Microsoft Intune and ConfigMgr
APPENDIX C Reference URLs
APPENDIX D Available Online
APPENDIX E Extending Hardware Inventory (Online Only)
APPENDIX A
Configuration Manager Log Files
IN THIS APPENDIX
Viewing Log Files
Configuring Logging
Client Logs
Server Logs
Configuring Logging
Most ConfigMgr logs are enabled by default. As part of troubleshooting, it may
be necessary to enable additional debug or verbose logging. In production, you
should not configure additional logging on an ongoing basis; it should be
enabled only to troubleshoot a specific issue. This is because the additional
detail in those logs can consume a large amount of disk space. Those additional
details may also obscure normal operational information, hampering
identification of more mundane operational issues day-to-day.
HKLM\Software\Microsoft\SMS\Components\<component_name>\Verbose
Logging
HKLM\Software\Microsoft\SMS\Tracing\SQLEnabled
SQL statements may be truncated in the log file. Tracing those long
statements requires the use of SQL Server Profiler.
NAL Logging: Network Abstraction Layer (NAL) logging can be useful
when troubleshooting file share access issues. It provides low-level
information on file share login and access attempts. To enable NAL
logging, set the following Registry value (a DWORD value) to 7:
Click here to view code image
HKLM\SOFTWARE\Microsoft\NAL\Logging\Verbosity
HKLM\SOFTWARE\Microsoft\NAL\Logging\LogTo
Client and MP Logs: Perform the following steps to enable debug logging:
1. Create the DebugLogging key:
Click here to view code image
HKLM\Software\Microsoft\CCM\Logging\DebugLogging
HKLM\Software\Microsoft\CCM\Logging\@Global\Loglevel
Client and MP logs are configured the same way as they share a common
framework and hosting process (ccmexec.exe). For more information on
ccmexec, see Chapter 3, “Looking Inside Configuration Manager.”
Admin Console Logs: Perform the following steps to enable debug
logging:
1. Open the following file in Notepad:
Click here to view code image
%ProgramFiles%\Microsoft Configuration
Manager\AdminConsole\bin\Microsoft.ConfigurationManagement.exe.config
Client Logs
Client logs are located under %windir%\CCM\Logs. If the ConfigMgr client is
installed on an MP after the MP is installed, the logs will be located under
%ProgramFiles%\SMS_CCM\Logs. The following are the ConfigMgr core
client log files (with logs often/commonly used for troubleshooting marked
(Frequently Used.)). For a comprehensive list of client log files by ConfigMgr
functionality, see https://docs.microsoft.com/sccm/core/plan-
design/hierarchy/log-files#BKMK_FunctionLogs.
CAS.log (Content Access Service): Responsible for package/content
caching. (Frequently used.)
Ccm32BitLauncher.log: Responsible for executing applications marked as
run as 32-bit.
CcmEval.log: Responsible for ConfigMgr client health evaluation.
CcmEvalTask.log: Responsible for invocation of the CcmEval process.
CcmExec.log: Core log file for the ccmexec.exe process. Main
component of the ConfigMgr client.
CcmMessaging.log: Responsible for communication (or messaging)
between the client and management points.
CcmNotificationAgent.log: Responsible for client push notification and
waking up the ConfigMgr client in response to a client notification channel
event.
CcmPerf.log: Responsible for ccmexec.exe Windows performance
counters.
CcmRestart.log: Responsible for any ConfigMgr client-initiated restarts.
CcmSdkProvider.log: Logs client software development kit (SDK)
interfaces usage.
CcmSetup.log: Logs high-level client installation process and result.
(Frequently used.)
ccmsetup-ccmeval.log: Logs activities performed by ccmsetup.exe related
to client status and remediation.
CertificateMaintenance.log: Logs Active Directory (AD) and MP
certificate operations and trust between client and MP.
CIAgent.log: Provides details about the process of remediation and
compliance for compliance settings, software updates, and application
management.
CiDownloader.log: Logs details about configuration item (CI) definition
downloads. CIs underpin software updates, application management,
compliance settings, drivers, and resource profile management.
CiTaskMgr.log: Logs scheduling tasks for each action, such as content
download or installation, for applications and their deployment types.
(Frequently used.)
Client.msi.log: Logs details of the client installation process. Triggered by
ccmsetup.exe (described above). (Frequently used.)
ClientAuth.log: Logs authentication and signing activity for messages sent
to the MP.
ClientIdManagerStartup.log: Part of the client registration process.
CmHttpsReadiness.log: Log for the ConfigMgr HTTPS Readiness
Assessment Tool.
CmRcService.log: Logs remote control activities on the device.
ContentTransferManager.log: Logs the scheduling of Service Message
Block (SMB) access or Background Intelligence Transfer Service (BITS)
download of package content. This is the component responsible for
content download. (Frequently used.)
DataTransferService.log: Logs all BITS job management activities for
both policy and package download. (Frequently used.)
DcmAgent.log: Records high-level information about the evaluation,
conflict reporting, and remediation of configuration items and applications.
DcmReporting.log: Records information about reporting policy platform
results into state messages for configuration items.
DcmWmiProvider.log: Records information about reading configuration
item synclets from Windows Management Instrumentation (WMI).
EndpointProtectionAgent.log: Logs installation of System Center
Endpoint Protection (SCEP) client and Endpoint Protection policy
deployment.
execmgr.log: Logs details about legacy packages and program deployment
along with task sequences. (Frequently used.)
ExpressionSolver.log: Logs details about the detection method used when
verbose or debug logging is enabled.
ExternalEventAgent.log: Logs details about gathering of SCEP malware
detection from the event log.
FileBITS.log: Logs information related to package access for content
hosted on SMB shares.
FileSystemFile.log: Logs file collection and software inventory activities
from the WMI provider.
FSPStateMessage.log: Logs all activity for state messages that are sent to
the fallback status point (FSP).
InternetProxy.log: Logs proxy configuration and usage by the ConfigMgr
client.
InventoryAgent.log: Logs heartbeat discovery along with hardware and
software inventory activities. (Frequently used.)
LocationCache.log: Logs actions related to maintenance and use of the
location cache.
LocationServices.log: Logs client actions related to locating MPs, software
update points (SUPs), and content on distribution points (DPs). Useful for
troubleshooting why a client cannot locate content or the MP/SUP. Shows
the network details sent by the client to the MP to locate a SUP or DP.
(Frequently used.)
MaintenanceCoordinator.log: Logs the actions for client maintenance
tasks.
Mifprovider.log: Logs the actions related to the WMI provider that
processes Management Information Format (MIF) files. This is a legacy
method of extending hardware inventory.
mtrmgr.log: Logs actions related to software metering.
PolicyAgent.log: Logs requests for policy. The Policy Agent makes these
requests using the Data Transfer Service. (Frequently used.)
PolicyAgentProvider.log: Logs policy storage and changes after Policy
Agent receives changes to client policy.
PolicyEvaluator.log: Logs details about the evaluation of policies after
Policy Agent receives those policies.
PolicyPlatformClient.log: Logs remediation and compliance of Microsoft
Policy Platform providers, except the file provider. These providers
underpin application management, software update management, and
compliance policies.
PolicySdk.log: Logs activities for the policy system’s software
development kit (SDK) interfaces.
Pwrmgmt.log: Logs information about configuring, enabling, and disabling
wake-up proxy client settings.
PwrProvider.log: Logs activities of the power management provider in
WMI. This provider gathers the current settings and power usage activities
on client computers and applies power plan settings.
SCClient_domain@username_1.log: Logs activities related to the
SCClient.exe (Software Center) for the specified user. domain@username
will match each Software Center user that has logged on to the client.
Scheduler.log: Logs all scheduled activities on the client, with the
exception of client health operations, which are handled by the Windows
Task Scheduler. (Frequently used.)
SCNotify_domain@username_1.log: Logs activity related to Software
Center-generated notifications to the client for the user specified by
domain@username. Historic log files are stored with the name format
SCNotify_domain@username_1-<date_time>.log.
SetupPolicyEvaluator.log: Logs initial creation of the configuration and
inventory policy in WMI.
SleepAgent_domain@SYSTEM_0.log: Logs main wake-up proxy
activities.
SmsCliUi.log: Logs ConfigMgr Control Panel applet usage.
SrcUpdateMgr.log: Logs activity for Windows Installer installations when
they are updated with current DP source locations.
StatusAgent.log: Logs status message creation and submission by other
client components.
SwMtrReportGen.log: Logs software metering report generation based on
data gathered by the metering agent (MtrMgr.log).
UserAffinity.log: Logs the processing of logon/logoff activity to generate
automatic user–device affinity.
VirtualApp.log: Logs details related to the management of Microsoft
Application Virtualization (App-V) deployment types and inventory of
App-V sequenced applications.
WedmTrace.log: Logs configuration, disablement, and enablement of the
Windows Embedded write filters.
WakePrxy-Install.log: Logs installation status when the wake-up proxy is
enabled on a client.
WakePrxy-Uninstall.log: Logs uninstallation status when the wake-up
proxy is disabled on a client.
NOTE: The WindowsUpdate.log File in Windows 10 Version 1607 Differs
from Previous Versions
In versions of Windows prior to Windows 10, the Windows Update log is in
cleartext and can be viewed with CMTrace, like any other ConfigMgr log file.
The log file itself, WindowsUpdate.log, is documented in the Microsoft
support article at https://support.microsoft.com/kb/902093. Starting with
Windows 10 Version 1607, the Windows Update client now uses Event
Tracing for Windows (ETW) for logging instead of cleartext. A human-
readable log file can be generated by running Get-WindowsUpdateLog
PowerShell command. The resulting WindowsUpdate.log is written to the
current user’s desktop. For more information on the changes in Windows 10
Version 1607 and later, see https://support.microsoft.com/kb/3036646.
Server Logs
The following sections group log files based on their server function: site server,
server installation and update logs, site system logs, and cloud management
gateway logs (in Azure). Microsoft has published a list of log files that is
scenario based; see the ConfigMgr documentation at
https://docs.microsoft.com/sccm/core/plan-design/hierarchy/log-files.
The following are the MP logs, which are stored under the
%ProgramFiles%\SMS_CCM folder:
CcmExec.log: Log file for the main process (ccmexec.exe) that hosts all
MP components as threads. Used to trace overall service and individual
component startup/termination.
CcmIsapi.log: Log file for the MP ISAPI (Internet Server Application
Programming Interface) extension used to process incoming client requests
sent to the \CCM_System URL subpath on the MP.
MP_CliReg.log: Log file for client registration activities. Useful for
troubleshooting failed client registration.
MP_Ddr.log: Logs the conversion of XML client-generated .ddr files into
site server format .ddr files. Copied by MP File Dispatch Manager
(MpFdm.log) to the site server for processing by DDM (ddm.log).
MP_Framework.log: Logs core activities of the MP components that run
under ccmexec.exe.
MP_GetAuth.log: Logs client authorization activities.
MP_GetPolicy.log: Logs client requests for policy. By default, it only logs
the start/stop of the component and not individual client requests. For
temporary debugging purposes, enable policy request logging by creating
the LogPolicyRequests DWORD value and setting the decimal value
to 1 in the following Registry key:
Click here to view code image
HKLM\Software\Microsoft\SMS\MP
The SUP and FSP logs are in the SMS\Logs folder on one of the remote site
systems and in the same folder as the Site Server logs when the SUP is installed
on the site server. They are the SUP log files:
CMGs push logs to Azure storage every five minutes. To aid with
troubleshooting, the Cloud Service Manager (CloudMgr.log) syncs the log files
down from Azure storage every five minutes to the site server. This is important
if there are connectivity issues from the site server to Azure storage, as it may be
necessary to access logs directly on the Azure VMs used by the CMG.
To access the logs on the Azure VMs, access the %approot%\logs folder on the
CMG VMs. The AppRoot environment variable is part of the Azure PaaS app
deployment model. It is where Azure Cloud Services deploys an Azure app, and
the folder is the root folder of the app.
IN THIS APPENDIX
Modern Management in Windows 10
Defining Co-Management
Configuring Co-Management in ConfigMgr
Beginning with Windows 10, Microsoft has significantly increased the release
cadence of Windows. Windows now receives approximately two major feature
updates every year. This cadence is referred to as the Semi-Annual Channel, and
it replaces earlier Current Branch and Current Branch for Business release
channels. Since the initial release of Windows 10, these updates have included
Windows 10 Anniversary Update (1607), Windows 10 Creators Update (1703),
and Windows 10 Fall Creators Update (1709). The four-digit number refers to
the year (for example, 17 refers to 2017) and month (for example, 09 refers to
September) in which the release’s development was finalized.
Defining Co-Management
While many architects and decision makers may have an aspirational or strategic
goal to move to modern management, there is significant effort in moving an
entire company from traditional agent-based PC management to modern
management. There are also human aspects to change to address, and an
organization will typically need to create operational roles and move away from
a project-based Windows deployment mindset.
There are parallels between moving to modern management and the challenges
that Exchange administrators went through when their organizations moved to
Exchange Online. Instead of managing an Exchange upgrade every few years,
Exchange administrators now consume multiple changes to Exchange Online
and Office 365 Pro Plus’s version of Outlook each year. New capabilities must
be understood, articulated, determined if they should be used, and then
configured; a Windows client administrator now needs to think in a similar
fashion.
The final section explains how to select and transition workloads from
ConfigMgr to Intune. This should be performed when you are ready to move
those workloads. You do not need to move all clients when you move a
workload; you can phase out that change across a group of client devices.
Co-Management Prerequisites
Multiple simple prerequisites—both ConfigMgr and Intune prerequisites—are
required for co-management:
1. Configure AutoPilot for new Windows 10 devices with the help of the
documentation at
https://docs.microsoft.com/windows/deployment/windows-10-auto-pilot.
2. Have AutoPilot trigger Azure AD Join automatically by following the
documentation at https://docs.microsoft.com/intune/windows-enroll#enable-
windows-10-automatic-enrollment. This also causes manually configured
Azure AD Join to be automatically enrolled in Microsoft Intune. Manual
Azure AD Join can be triggered during OOBE, when the user selects My
work or school owns it when asked who owns the PC; in this case, the user
can select Join Azure AD. Azure AD Join can also be performed on an
existing Windows 10 device by using the Settings app: Go to System ->
About and select Join Azure AD.
3. Configure Intune to install the ConfigMgr agent by following the steps
outlined earlier in this appendix, in the “Windows 10 Devices Enrolled in
Intune” section.
In addition to these workloads, you can also trigger remote actions on Windows
10 devices co-managed with Intune and ConfigMgr. These actions are triggered
from the Microsoft Intune blade in Azure Portal:
Factory reset
Selective wipe (not applicable for Azure AD Join devices)
Delete device
Restart device
Fresh start
APPENDIX C
Reference URLs
IN THIS APPENDIX
General Resources
Microsoft’s Configuration Manager Resources
Other Configuration Manager Resources
Blogs
Public Forums
Utilities
The links listed in this appendix are also available “live” at Pearson’s InformIT
website, at http://www.informit.com/title/9780672337901, on the Downloads
tab. Look for and select Appendix C, “Reference URLs.”
General Resources
A number of websites provide excellent resources for Configuration Manager.
This section lists some of the general resources available:
myITforum—http://myitforum.com—is a community of worldwide
information technology (IT) professionals established in 1999 by Rod
Trent. myITforum includes topics on System Center and IT.
The list of blogs and other ConfigMgr-related articles at myITforum.com is
enormous. This appendix includes some specific links and pertinent
information, but it does not include everything.
See http://myitforum.com for the Windows IT Pro forums.
IT Pro publishes online articles about System Center and other topics. See
http://www.itprotoday.com for information.
A source of information for all things System Center related, including
Configuration Manager, is System Center Central
(http://www.systemcentercentral.com).
FAQShop.com, published by Enterprise Client Management (ECM) MVP
Cliff Hobbs at http://www.faqshop.com/, provides hints, tips, and answers
to frequently asked questions (FAQs) related to Microsoft’s various systems
management technologies.
People-centric IT enables each person you support to work from virtually
anywhere, on any device, and gives you a consistent way to manage and
protect it all (see
http://download.microsoft.com/download/1/3/7/137B2CF6-79FE-438B-
BA00-F343022C3CE3/Enabling_Enterprise_Mobility_white_paper.pdf).
The Windows Server technical library is located at
https://docs.microsoft.com/windows-server/windows-server.
Microsoft’s white paper on performance tuning guidelines for Windows
Server 2016 is at https://docs.microsoft.com/windows-
server/administration/performance-tuning/. The following are links to
previous versions of performance tuning guidelines:
Guidelines for Windows Server 2012 R2 are at
http://msdn.microsoft.com/library/windows/hardware/dn529133.aspx.
Download performance tuning guidelines for Windows Server 2012,
2008 R2, and 2008 from
https://msdn.microsoft.com/library/windows/hardware/dn529134.
The Microsoft System Center website is at
https://www.microsoft.com/cloud-platform/system-center, and Microsoft’s
jumping-off point for System Center technical resources is at
http://technet.microsoft.com/systemcenter/.
Read about monitoring and tuning SQL Server for performance at
http://technet.microsoft.com/library/ms189081.aspx.
Find guidance on security considerations for SQL Server at
http://msdn.microsoft.com/library/ms144228.aspx.
To learn about moving databases configured for SQL Server AlwaysOn, see
http://blogs.msdn.com/b/sqlserverfaq/archive/2014/02/06/how-to-move-
databases-configured-for-sql-server-alwayson.aspx.
Review the process of upgrading the SQL Server test database at
https://docs.microsoft.com/sccm/core/servers/manage/test-database-
upgrade.
For a complete list of available operators, see the SQL Operators section
within the T-SQL online help at
http://msdn.microsoft.com/library/ms174986(v=SQL.110).aspx.
Find information about SQL Server 2017, 2016, and 2014 at
https://docs.microsoft.com/sql/sql-server/sql-server-technical-
documentation.
Use the SQL Server Profiler to view SQL requests sent to an SQL Server
database. See http://msdn.microsoft.com/library/ms187929.aspx for
information.
Read about the SQL Server Service Broker at
http://social.technet.microsoft.com/wiki/contents/articles/6598.sql-server-
service-broker-at-a-glance.aspx and
https://docs.microsoft.com/sql/database-engine/configure-windows/sql-
server-service-broker.
Find information about SQL Server Compact Edition (CE) at
http://technet.microsoft.com/library/ms173037(v=sql.105).aspx.
See http://technet.microsoft.com/ff657833.aspx for information on SQL
Server Reporting Services (SSRS). Installation information is at
http://msdn.microsoft.com/library/ms143711.aspx.
Mike Pearson discusses SSRS recovery planning at
http://www.sqlservercentral.com/columnists/mpearson/recoveryplanningforsqlreportingse
Register with SQLServerCentral to view the full article.
http://technet.microsoft.com/library/ms156421.aspx discusses moving the
SSRS databases to another computer.
Want to create drilldown SSRS reports? See
http://technet.microsoft.com/library/dd207042.aspx.
http://msdn.microsoft.com/library/ms157403.aspx provides a complete
listing of SSRS log files.
Leading security organizations include:
Center for Internet Security (CIS): https://www.cisecurity.org
Information Assurance Directorate (IAD): https://www.iad.gov/iad/
Australian Signals Directorate (ASD): http://www.asd.gov.au
Find the Microsoft Malware Protection Center (MMPC) at
http://www.microsoft.com/wdsi.
Microsoft’s antimalware guidance for security policies for Windows and
Windows Server is at https://support.microsoft.com/kb/822158.
Windows Defender Offline (WDO) is available at no cost for Windows 7
and later operating systems at
http://windows.microsoft.com/windows/what-is-windows-defender-offline.
Information about servicing branches and servicing of Windows 10 in
general is at https://technet.microsoft.com/itpro/windows/manage/waas-
overview#servicing-branches.
Feature update servicing for Windows Insider devices occurs completely
through Windows Update; see https://insider.windows.com.
Download the Windows Management Framework (WMF) from
https://www.microsoft.com/download/details.aspx?id=50395.
Windows Firewall logs and settings are described at
http://technet.microsoft.com/network/bb545423.aspx.
A bit dated but still useful International Data Corporation whitepaper
sponsored by Microsoft quantifies how businesses can reduce costs by
managing the Windows desktop. This whitepaper is available for download
at
http://download.microsoft.com/documents/australia/government/desktop_optimization_w
Read about WunderBar trivia at
http://blogs.msdn.com/b/jensenh/archive/2005/10/07/478214.aspx.
Information about the Windows setup logs is at
https://support.microsoft.com/help/927521/windows-vista,-windows-7,-
windows-server-2008-r2,-windows-8.1,-and-windows-10-setup-log-file-
locations.
According to the SANS Institute
(https://www.computerworld.com/article/2565944/security0/sans-unveils-
top-20-security-vulnerabilities.html), the threat landscape is increasingly
dynamic, making efficient and proactive update management more
important than ever before.
Symantec’s 2017 Internet Security Threat Report concluded that the cyber-
criminals revealed new levels of ambition in 2016, causing unprecedented
levels of disruption with relatively simple IT tools and cloud services
(https://www.symantec.com/security-center/threat-report).
Microsoft provides guidance on Active Directory (AD) security best
practices at https://technet.microsoft.com/library/dn487446.aspx.
For information on the impact of AD schema extensions and modifications,
see https://msdn.microsoft.com/library/ms677103.aspx.
For information on how to perform schema changes, see
https://msdn.microsoft.com/library/windows/desktop/ms676929.aspx.
A complete list of Active Directory supportability requirements is at
https://technet.microsoft.com/library/mt617258.aspx.
Information about search filters for AD Directory Services is at
https://msdn.microsoft.com/library/aa746475(v=vs.85).aspx.
https://msdn.microsoft.com/library/ms675090(v=vs.85).aspx lists attributes
defined by Active Directory.
Find information on LDIFDE at
http://technet.microsoft.com/library/cc731033.aspx. ConfigMgr-specific
instructions are at https://technet.microsoft.com/library/mt345589.aspx.
http://support.microsoft.com/kb/555636 describes exporting and importing
objects using LDIFDE.
An overview of Windows Azure Active Directory is at
http://www.windowsazure.com/services/active-directory/.
Troubleshoot Azure AD Connect installation issues with help from
https://support.microsoft.com/kb/3121701 and connectivity issues with help
from https://azure.microsoft.com/documentation/articles/active-directory-
aadconnect-troubleshoot-connectivity/.
Read about directory integration at
http://technet.microsoft.com/library/jj573653.aspx.
Prepare for directory synchronization with Azure Active Directory by
reading http://technet.microsoft.com/library/jj151831.aspx, which discusses
architecture and deployment considerations.
Information on password synchronization between on-premise directories
and Azure Active Directory is available at
http://technet.microsoft.com/library/dn246918.aspx.
Information on Windows Deployment Services (WDS) is at
https://docs.microsoft.com/sccm/osd/plan-design/infrastructure-
requirements-for-operating-system-deployment#BKMK_WDS.
https://en.wikipedia.org/wiki/Preboot_Execution_Environment provides in-
depth information on the Preboot eXecution Environment (PXE). A
troubleshooting guide for boot issues is at
https://support.microsoft.com/help/10082/troubleshooting-pxe-boot-issues-
in-configuration-manager-2012.
Device affinity allows you to marry a user to a single device; for more on
this, see https://docs.microsoft.com/sccm/osd/get-started/associate-users-
with-a-destination-computer.
Requirements for Windows To Go are at
http://technet.microsoft.com/library/hh831833.aspx#wtg_hardware.
Interested in learning more about the Microsoft Operations Framework
(MOF)? See https://technet.microsoft.com/library/dd320379.aspx.
Information on the MOF Deliver Phase is at
http://technet.microsoft.com/library/cc506047.aspx.
You can read about the MOF Envision SMF at
http://technet.microsoft.com/library/cc531013.aspx.
Infrastructure and operations maturity refers to an organization’s capability
to take on new challenges. Gartner recognizes five levels of infrastructure
and operations maturity and has developed a self-assessment tool that
organizations can use to understand their level of maturity, available at
https://www.gartner.com/doc/2481415/itscore-overview-infrastructure-
operations.
For a full discussion of infrastructure and operations maturity, see
https://www.savision.com/resources/blog/how-mature-your-it-department.
See
https://msdn.microsoft.com/library/windows/desktop/aa367449(v=vs.85).aspx
for information about the Windows Installer.
To learn about Service Modeling Language (SML), see
http://www.w3.org/TR/sml/. For additional technical information on SML
from Microsoft, visit http://technet.microsoft.com/library/bb725986.aspx.
Usage data collection provides information to the product group on your use
of ConfigMgr, allowing them to better understand how ConfigMgr is used
and ensure that their testing emulates real-world scenarios. For more
information, see
https://docs.microsoft.com/sccm/core/servers/deploy/install/setup-
reference#bkmk_usage and https://docs.microsoft.com/sccm/core/plan-
design/diagnostics/diagnostics-and-usage-data.
By November 2016, more than 50 million devices were being actively
managed by Configuration Manager Current Branch (see
https://blogs.technet.microsoft.com/enterprisemobility/2016/11/18/configmgr-
current-branch-surpasses-50m-managed-devices/).
A list of cryptographic controls maintained by Microsoft is available at
https://docs.microsoft.com/sccm/protect/deploy-use/cryptographic-controls-
technical-reference. In-depth information about cryptographic controls for
ConfigMgr can be found at
https://technet.microsoft.com/library/mt629331.aspx. Required certificate
properties for Internet-based client management (IBCM) are at
https://docs.microsoft.com/sccm/core/plan-design/security/plan-for-
security#BKMK_PlanningForCertificates.
Microsoft’s Sysinternals website is at
http://technet.microsoft.com/sysinternals/default.aspx.
Silect Software (http://www.silect.com) offers CP Studio. CP Studio, like
Security Compliance Manager (SCM), enables authoring of configuration
baselines and configuration items (CIs) outside the ConfigMgr console.
Configuring multi-factor authentication (MFA) is discussed at
https://docs.microsoft.com/azure/multi-factor-authentication/multi-factor-
authentication.
Find an overview of Windows 8.1 sideloading enhancements at
https://www.eightforums.com/threads/windows-8-1-update-sideloading-
enhancements.43788/.
The group behind the Web-Based Enterprise Management (WBEM)
standard is the Distributed Management Task Force (DMFT); for
information on WBEM and the DMTF, see
http://www.dmtf.org/standards/wbem.
A complete description of Web Services Management (WS-Man) and
related specifications is at http://www.dmtf.org/standards/wsman.
Information on Windows Management Instrumentation (WMI) is available
at http://msdn.microsoft.com/library/aa394582.aspx.
http://msdn.microsoft.com/library/aa394564.aspx discusses WMI logging.
See http://msdn.microsoft.com/library/aa394603(v=vs.85).aspx,
http://technet.microsoft.com/library/cc180763.aspx, and
https://blogs.technet.microsoft.com/askperf/2007/06/22/basic-wmi-testing/
for information on WMI troubleshooting.
For a discussion of User Account Control and WMI, see
http://msdn.microsoft.com/library/aa826699.aspx.
Command-line tools for managing WMI can be downloaded from
http://msdn.microsoft.com/library/aa827351.aspx.
A list of Microsoft-supplied WMI providers is available at
https://msdn.microsoft.com/library/aa394570.aspx.
For information regarding WMI Query Language (WQL), see
http://msdn.microsoft.com/library/aa394606.aspx.
Learn about USMT at
https://docs.microsoft.com/windows/deployment/usmt/usmt-topics. You
will also want to see https://docs.microsoft.com/sccm/osd/get-
started/manage-user-state; also visit
https://technet.microsoft.com/library/hh397289.aspx for a flowchart on user
state capture and restore.
Learn about classless interdomain routing (CIDR) and supernetting to
define IP subnets at https://technet.microsoft.com/library/cc958837.aspx.
Note that ConfigMgr does not support these methods.
Microsoft provides solution accelerators, which are guidelines and tools to
leverage the full functionality of Microsoft usage within your organization.
They are available for download at no cost at
http://technet.microsoft.com/solutionaccelerators/dd229342.
Learn about using the Visual Studio Report Designer at
http://msdn.microsoft.com/library/bb558708.aspx.
See https://docs.microsoft.com/intune-classic/deploy-use/manage-windows-
pcs-with-microsoft-intune for information on Windows Intune for cloud PC
management.
The Windows Intune administrator console is located at
https://manage.microsoft.com.
Purchase a code-signing certificate for sideloading Windows Phone
applications for Windows Phone from Symantec at
http://www.symantec.com/verisign/code-signing/windows-phone.
Information about the Apple Enterprise Developer license is at
http://developer.apple.com/programs/ios/enterprise.
The Apple Volume Purchase Program (VPP) is described at
http://www.apple.com/business/vpp/.
How to set up per-app VPN using ConfigMgr is described at
https://blogs.technet.microsoft.com/karanrustagi/2015/09/21/how-to-set-up-
per-app-vpn-using-configuration-manager/. Additional information is at
https://technet.microsoft.com/library/mt629185.aspx.
Trying to understand Microsoft licensing? See the following:
General licensing information is at
https://www.microsoft.com/licensing.
https://www.microsoft.com/en-us/licensing/product-licensing/client-
access-license.aspx discusses client access licenses (CALs) and the
suites they may be included on.
System Center 2016 volume licensing is discussed at
https://www.microsoft.com/en-us/licensing/product-licensing/system-
center-2016.aspx. The Configuration Manager licensing page is at
https://www.microsoft.com/cloud-platform/system-center-
configuration-manager-licensing.
Learn about Samsung Knox at https://www.samsungknox.com/en.
Information on Kerberos is at
https://msdn.microsoft.com/library/bb742516.aspx.
https://blogs.technet.microsoft.com/configurationmgr/2016/08/25/software-
updates-in-configuration-manager-current-branch-deep-dive-client-
operations/
Coauthor Gerry Hampson provides additional context about app deployment
from an end-user perspective. For information about app deployment for
Android, see the article at
http://gerryhampsoncm.blogspot.ie/2015/07/deploying-apps-to-android-
devices-with.html; for information regarding iOS, see
http://gerryhampsoncm.blogspot.ie/2015/07/deploying-apps-to-ios-devices-
with.html.
Use the Intune Company Portal for Android to manage Android devices.
Download the portal from the Google Play Store at
https://play.google.com/store/apps/details?
id=com.microsoft.windowsintune.companyportal&hl=en.
The Intune Company Portal for iOS can be downloaded from the Apple App
Store at https://itunes.apple.com/us/app/microsoft-intune-company-
portal/id719171358?mt=8.
The Apple Push Certificates Portal is at https://identify.apple.com.
Kent Agerlund has an informative blog post explaining the content library,
at http://blog.coretech.dk/kea/understanding-the-new-content-library-store-
in-5-minutes/.
Deploying Endpoint Protection through the network share option does not
have any dependencies on the WSUS/SUS infrastructure or Internet
downloads. Following are guides and sample scripts for deploying Endpoint
Protection through the network share option:
https://www.niallbrady.com/2013/02/22/how-can-i-deploy-system-
center-2012-endpoint-protection-definition-updates-from-a-unc-file-
shares/
https://blogs.technet.microsoft.com/charlesa_us/2015/05/20/configmgr-
2012-how-to-deploy-scep-definition-updates-via-unc-share-for-
isolated-environment/
https://blog.thesysadmins.co.uk/sccm-2012-scep-unc-definition-
updates-automation-powershell.html
http://richardbalsley.com/using-sccm-distribution-points-for-forefront-
endpoint-protection-2010-definition-updates
http://blogs.msdn.com/b/steverac/archive/2014/03/29/the-suite-spot-of-
imaging.aspx discusses using OSD for imaging.
http://www.appdetails.com provides general guidance on software
deployment and a forum for users to share their experiences testing whether
software can be installed unattended.
WSUS no longer issues self-signed certificates; see the WSUS Product
Team posting at https://blogs.technet.microsoft.com/wsus/2013/08/15/wsus-
no-longer-issues-self-signed-certificates/.
To use an internal PKI-generated certificate with SCUP, see
https://blogs.technet.microsoft.com/jasonlewis/2011/07/12/system-center-
updates-publisher-signing-certificate-requirements-step-by-step-guide.
Information on how to use public certificates is at
https://blogs.msdn.microsoft.com/steverac/2011/09/17/using-system-center-
update-publisher-2007-with-verisign-certificates.
Read about Open Management Infrastructure (OMI) at
http://www.opengroup.org/software/omi. Find in-depth information on OMI
and how it works at https://collaboration.opengroup.org/omi/. The OMI
getting started guide can be downloaded from
https://collaboration.opengroup.org/omi/documents.php.
Steve Rachui discusses operating system deployment to Linux/UNIX
operating systems (which is not supported by Microsoft) at
http://blogs.msdn.com/b/steverac/archive/2014/01/02/osd-for-linux-
imaging-yes-really.aspx.
For information on setting up multicasting, see
https://blogs.msdn.microsoft.com/steverac/2008/10/18/setting-up-
multicasting-in-sccm.
To enable the prestart command for a TS, see
https://blogs.msdn.microsoft.com/steverac/2015/04/22/power-belongs-to-
youthe-osd-prestart-command/.
To capture logs during failed TS execution, see
https://blogs.msdn.microsoft.com/steverac/2008/07/15/capturing-logs-
during-failed-task-sequence-execution/.
Marcus Oh writes about retrieving objects into a collection that does not
exist in another collection at http://marcusoh.blogspot.com/2007/08/sms-
selecting-objects-not-in-collection.html.
Beginning with ConfigMgr 2007 R2, ConfigMgr has the ability to define a
task sequence variable on a collection or individual resource without a
value. Read about it in a posting by Jason Sandys at
http://blog.configmgrftw.com/?p=44.
Flexera’s AdminStudio is a popular software packaging suite. See
http://www.flexerasoftware.com/products/adminstudio-suite.htm.
Adaptiva Software (http://www.adaptiva.com) extends Microsoft’s
technologies to enhance PC power management. 1E (http://www.1e.com)
also has a number of products to assist with sustainability and energy
efficiency.
Symantec offers mobile device management software for iOS, Android, and
Windows Phone devices; http://www.symantec.com/mobile-
management#sccm provides details.
Blogs
Here are some blogs the authors have used. Some are more active than others,
and new blogs seem to spring up overnight!
Microsoft’s Enterprise Mobility and Security Blog is at
https://cloudblogs.microsoft.com/enterprisemobility/.
The ConfigMgr Team blog is at
https://blogs.technet.microsoft.com/configmgrteam/.
See the Intune Team blog at
https://blogs.technet.microsoft.com/microsoftintune/.
http://bink.nu is managed by Steven Bink, former MVP for Windows Server
Technologies. According to the blog, it “watches Microsoft like a hawk.”
Garth Jones, ECM MVP and contributing author to this book, is affiliated
with the SMS User Group in Canada, whose blogs are at
http://smsug.ca/blogs/.
http://sms-hints-tricks.blogspot.com is by Matthew Hudson, ECM MVP.
Ronni Pederson’s blog is at http://ronnipedersen.com.
Sherry Kissinger, former ECM MVP, blogs at
https://mnscug.org/blogs/sherry-kissinger.
http://systemscentre.blogspot.com is maintained by MVP Steve Beaumont.
The OSD Support Team blog is at
http://blogs.technet.com/b/system_center_configuration_manager_operating_system_dep
Microsoft’s hybrid cloud blog is at
https://cloudblogs.microsoft.com/hybridcloud/.
The Microsoft Deployment Guys have a blog at
http://blogs.technet.com/deploymentguys/default.aspx.
Kevin Sullivan is a Technology Specialist at Microsoft focusing on Azure
Site Recovery. His blog is at https://blogs.technet.com/kevinsul_blog/.
a is a blog by former MVP Marcus Oh.
http://stefanschorling.azurewebsites.net is Stefan Schörling’s blog on
Microsoft system and cloud management. Stefan is a former ECM MVP.
Niall Brady, ECM MVP, blogs at http://www.niallbrady.com.
Samuel Erskine, Cloud and Datacenter Management MVP, blogs at
www.itprocessed.com.
Torsten Meringer, ECM MVP, manages the German ConfigMgr blog, at
http://www.mssccmfaq.de.
https://stevethompsonmvp.wordpress.com is the blog for Steve Thompson,
ECM MVP.
Greg Ramsey, ECM MVP and a coauthor for this book, blogs at
http://gregramsey.wordpress.com.
Coauthor Kenneth van Surksum blogs at http://www.vansurksum.com.
Coauthor Michael Wiles blogged at http://blogs.technet.com/b/mwiles/
while at Microsoft.
Steve Rachui is a CSS guru on ConfigMgr and our technical editor. Check
out his blog at http://blogs.msdn.com/steverac/.
Public Forums
If you need an answer to a question, the first place to check is the Microsoft
public forums. A list of available TechNet forums is maintained at
http://social.technet.microsoft.com/Forums/home. It is best to see if your
question has already been posted before you ask it yourself!
For the Configuration Manager—General forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrCBGeneral.
For the Configuration Manager Servicing forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=configmgrservicing.
For the Configuration Manager Site and Client Deployment forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrDeployment
For the Configuration Manager Migration forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrMigration
For the Configuration Manager SDK and PowerShell forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrPowerShell
For the Configuration Manager Application Management forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrAppManagement
For the Configuration Manager Security, Updates, and Compliance forum,
see https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrCompliance
For the Configuration Manager Operating System Deployment forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrCBOSD
For the Configuration Manager Mobile Device Management forum, see
https://social.technet.microsoft.com/Forums/en-US/home?
forum=ConfigMgrMDM
For the Intune forum, see https://social.technet.microsoft.com/Forums/en-
US/home?category=microsoftintune.
myITforum also has a discussion list for Configuration Manager, along with
a number of other discussion lists; see
http://myitforum.com/newsletter/email-lists-2/.
Utilities
Here are some utilities, both Microsoft and third party:
The WMI Diagnosis Utility (WMIDiag) is available at the Microsoft
download site, https://www.microsoft.com/download/details.aspx?id=7684.
For more information about WMIDiag and the team that wrote it, see
https://blogs.technet.microsoft.com/askperf/2015/05/12/wmidiag-2-2-is-
here/. The team also published a list of recommended WMI hotfixes for
Windows 7/Server 2008 R2 and older versions at
https://blogs.technet.microsoft.com/askperf/2011/08/05/suggested-hotfixes-
for-wmi-related-issues-on-windows-platforms-updated-august-9th-2013/.
ADModify is recommended for making mass changes of UPNs in AD. See
https://technet.microsoft.com/library/aa996216(v=exchg.65).aspx for
information.
Download AzureADConnect.msi to quickly onboard to Azure AD and
Office 365 from https://www.microsoft.com/download/details.aspx?
id=47594. You can configure an alternate login ID by using the information
at https://technet.microsoft.com/library/dn659436.aspx.
The Nslookup command is described at
http://support.microsoft.com/kb/200525. To troubleshoot NetBIOS name
resolution using Nbtstat and other methods, see KB article 323388, at
http://support.microsoft.com/kb/323388.
To get the WMI Explorer (PowerShell version), written by Marc van
Orsouw, see http://powershell.org/wmi-explorer/.
The WMI Explorer (.NET-version) is available at
https://github.com/vinaypamnani/wmie2/releases.
PSExec is available at https://docs.microsoft.com/sysinternals/.
Process Monitor can capture detailed process activity on Windows systems.
https://technet.microsoft.com/sysinternals/processmonitor.aspx provides
information and a download link.
NetDiag is a diagnostic tool that helps isolate networking and connectivity
problems. For information, see
http://technet.microsoft.com/library/Cc938980.
Netperf is a benchmarking tool that can be used to measure performance of
many types of networking. It provides tests for both unidirectional
throughput and end- to-end latency. For more information and to download
the tool, see http://www.netperf.org/netperf/.
The Configuration Manager Toolkit is available at
https://www.microsoft.com/download/details.aspx?id=50012.
Download the 7-Zip decompression utility at http://www.7-zip.org/.
Microsoft Security Compliance Manager
(https://www.microsoft.com/download/details.aspx?id=16776) can be used
to compare your systems against baseline Microsoft recommendations.
Troubleshoot port status issues using PortQry and PortQryUI,
downloadable from http://www.microsoft.com/downloads/details.aspx?
familyid=89811747-C74B-4638-A2D5-AC828BDC6983&displaylang=en
and http://www.microsoft.com/downloads/details.aspx?
FamilyID=8355E537-1EA6-4569-AABB-
F248F4BD91D0&displaylang=en, respectively. Going to
http://www.microsoft.com/downloads and searching for PortQry brings up
links for each tool.
Orca is an MSI table editing tool you can use to view and change
information in an MSI file. Information about Orca and where to download
it is at
https://msdn.microsoft.com/library/windows/desktop/aa370557%28v=vs.85%29.aspx
SCUP is not included with ConfigMgr but is a separate and free download
from Microsoft, available at
http://www.microsoft.com/download/en/details.aspx?id=11940.
The Remote Server Administration Tools for Windows 8.1 (RSAT) can be
utilized if using Windows 8.1 for your SCUP workstation. Download the
tools from http://www.microsoft.com/download/details.aspx?id=39296.
XML Notepad 2007 is an intuitive tool for browsing and editing XML
documents. Read about it at
http://msdn2.microsoft.com/library/aa905339.aspx and download the tool
from http://www.microsoft.com/downloads/details.aspx?
familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en.
Microsoft’s Configuration Manager Hybrid Diagnostics tool checks for a
number of issues related to Intune integration. Download the tool at
https://www.microsoft.com/download/details.aspx?id=53306.
Use the Microsoft Assessment Planning Toolkit (MAP) to help plan client
agent deployment. MAP is available at
http://www.microsoft.com/download/en/details.aspx?id=7826. For
frequently asked questions on MAP, see
http://social.technet.microsoft.com/wiki/contents/articles/1643.aspx.
At times, creating WMI queries can be quite cumbersome. A number of
tools are available for free to help ease the process. Some popular ones
follow:
WMI Code Creator:
https://www.microsoft.com/download/en/details.aspx?
displaylang=en&id=8572
WMIGen Code Generator:
http://www.robvanderwoude.com/wmigen.php
RegKeyToMOF, which can assist in using hardware inventory to inventory
a specific Registry key, is available at
http://mnscug.org/images/Sherry/RegKeyToMOFv33a.zip. You can also
read about this utility at https://www.enhansoft.com/blog/how-to-use-
regkeytomof.
APPENDIX D
Available Online
IN THIS APPENDIX
Configuration Manager Reporting
Live Links
Extending Hardware Inventory—Online Only
This content is not available elsewhere. Note that the authors and publisher do
not guarantee or provide technical support for the material.
Live Links
Reference URLs (see Appendix C, “Reference URLs”) are provided as live
links. These include nearly 400 clickable hypertext links and references to
materials and sites related to Configuration Manager.
A disclaimer and unpleasant fact regarding live links: URLs change! Companies
are subject to mergers and acquisitions, pages move, changes are made on
websites, and so on. Although these links were accurate at the time this book
was published, it is possible that some will change or be “dead” by the time you
read this book. Sometimes the Wayback Machine (http://www.archive.org/) can
rescue you from dead or broken links. The Wayback Machine site is an Internet
archive that can take you back to an archived version of a site—sometimes.
Numbers
7-Zip packages
Advanced tab properties, 512
creating, 496–497
Environment tab properties, 510
OpsMgr Maintenance Mode tab, 515
Requirements tab properties, 508
Windows Installer tab properties, 513
A
AADJ (Azure AD Domain Join), 128
accepting risk, defined, 935
access (conditional), 681, 723
ConfigMgr policies
compliance policies, 725, 726–731
conditional access policies, 725
ConfigMgr Current Branch version 1602, 57
corporate resources, 681
deploying, 735
email blocking intervals, 736
enabling, 734–735
Exchange Online, 731, 733
configuring conditional access policies, 734–735
end-user experience, 735–736
evaluating conditional access policies, 733
modern authentication, 732–733
requirements for, 731–732
security groups, 733
supported platforms/applications, 732
Exchange On-Premises, 744–745
configuring conditional access policies, 748–749
end-user experience, 750
evaluating conditional access policies, 748
Exchange Server connector, 746–747
requirements for, 745–746
supported platforms, 745
user collections, 748
modern authentication, 725
ADAL, 724
features of, 724
Office 365 services, 725
Office applications, 724
states of, 725
monitoring, 750–752
security, 938
SharePoint Online, 737
configuring conditional access policies, 739–740
default state, 738
end-user experience, 740
evaluating conditional access policies, 738–739
requirements for, 737–738
security groups, 739
supported platforms, 737–738
Skype for Business Online, 741
configuring conditional access policies, 743–744
evaluating conditional access policies, 743
modern authentication, 742
requirements for, 741–742
security groups, 743
supported platforms, 742
troubleshooting, 750, 752–753
accounts
access accounts, 581
install accounts, 581
security (ConfigMgr)
AD discovery/publishing, 967
assigning rights to machine accounts, 964
database connection accounts, 965
Exchange server accounts, 968
infrastructure support, 964–965
OSD, 966
proxy server accounts, 967–968
Remote Tools Permitted Viewer accounts, 968
SMTP server connection accounts, security, 968
software updates, 966
source site accounts, 968
Activation Lock Bypass, 701
activity status of client agents, monitoring, 345–347
AD (Active Directory)
AADJ, 128
Active Directory Forest Discovery, 42
client discovery, 333–334
client installations, 152
ConfigMgr configuration, 239
ConfigMgr 2012, 34
Active Directory Group Discovery
client discovery, 334, 335–336
client installations, 152
Active Directory System Discovery
client discovery, 337–338
client installations, 150–151, 153
Active Directory User Discovery
client discovery, 336–337
client installations, 152, 153
ADModify Tool, 660
architectural planning/design, 121
AD certificate services, 128–130
schema extensions, 122–124
Azure AD authentication
client agent authentication, 322–323
ConfigMgr cloud connections, 242–243
Azure AD User Discovery, client discovery, 343
certificate services
architectural planning/design, 128–130
deployment profiles, 129
clean AD, need for, 333
client agents, assigning, 345
client installations
Active Directory Forest Discovery, 152
Active Directory System Discovery, 150–151
ConfigMgr and, 110–111
AD requirements and ConfigMgr installations, 221–222
changing schemas, 111
extending schemas, 112–113
schema extensions, 110, 111–112
console (ConfigMgr), AD integration, 311–312
delta discovery, client installations, 152–153
domain accounts and SQL Server, 221
group policy, BITS, 195, 196
Heartbeat Discovery, client discovery, 339–340
Network Discovery, client discovery, 340–341
schema extensions, architectural planning/design, 122–124
security, 936
access, 949–950
AD discovery, 967
AD publishing, 967
service location requests, 192
SMS 2.0, 30
SMS 2003, 31
synchronization, 660–664
System Discovery, 127
User Discovery, 127
ADAL (Active Directory Authentication Library), 724
Add Driver to Boot Images page (Import Driver Wizard), 882–883
Add Driver to Packages page (Import Driver Wizard), 881–882
Add Site System Roles Wizard, configuring software updates
Classifications page, 584–585
General page, 578–579
Languages page, 586–587
Products page, 585–586
Proxy and Account Settings page, 581
Proxy page, 579
Software Update Point page, 580–581
Supercedence Rules page, 584
Synchronization Schedule page, 583
Synchronization Source page, 582–583
System Role Selection page, 579–580
address bar (ConfigMgr console), 288
ADDS (Active Directory Domain Services), architectural planning/design, 122
client MP key exchange, 124
custom port configurations, 124
extending AD schemas, 122–124
multi-forest considerations, 124–128
workgroup considerations, 124–128
ADM templates and Registry, 321
administration
Administration node (ConfigMgr Current Branch version 1606), 58
Administration workspace (ConfigMgr console), 293
Administrative Console
ConfigMgr 2012, 34
ConfigMgr Current Branch baseline version 1702, 61
applications, installing, 417
CAS, 37–38
ConfigMgr installations, 226, 227–230
ConfigMgr 2012, 33
Config Admins groups, 86
ConfigMgr Current Branch version 1606, Administration node, 58
JEA, 951
packages, deploying with administrative rights, 509–510
RBA, 939, 949
ConfigMgr 2012, 34
ConfigMgr 2012 R2, 35
PowerShell and, 941
Remote Control client computer administration, 363–364
role-based administration
console (ConfigMgr), 297
software updates, 571
Schema Admins grouP, 113
security
AD level access, 949–950
administrative security reports, 947–948
auditing ConfigMgr actions, 951–953
ConfigMgr access, 949
ConfigMgr solutions, 938–939
database access, 951
JEA, 951
planning, 937–941
RBA, 939, 941, 949
security roles, 942–943, 946–947
security scopes, 943–947
site system local administration, 950
user management, 940–941
workstations, 937
site systems, local administration, 950
user device affinity, 413–415
ADModify Tool, 660
advanced queries, writing, 822–823
examples of, 825–828
WQL
converting queries to SQL, 828
date/time functions in queries, 824–825
limitations in ConfigMgr, 823–824
advanced reporting concepts, 869
Advanced tab properties (programs), 511–512
agents (client)
activity status, monitoring, 345–347
assigning, 343–345
health, monitoring, 345–347
installing
client agent authentication on Azure AD-joined Windows devices,
322–323
group policy installations on Windows devices, 320–321
keychain access, 319
limiting enrollment certificates, 319
logon script installations on Windows devices, 320
manual installations on LINUX computers, 320
manual installations on Mac computers, 318–319
manual installations on UNIX computers, 320
manual installations on Windows computers, 317–318
SUP installations on Windows devices, 321
troubleshooting installations, 330–332
manually pushing, 328
MAP and client agent deployments, 316
requirements, 316–317
hardware requirements, 316
software requirements, 316–317
supported OS, 316
uninstalling, 332
AI (Asset Intelligence) synchronization points, network configuration, 182
AIK (Automated Installation Kit), ConfigMgr upgrades, 257
alerts
client communications, 179
in-console alerts, 299–300
configuring, 302
deleting, 301
managing, 301
subscribing to, 302–303
viewing, 300
defined, 46
EP alerts, 794–795
automating, 796–797
collection alerts, 797–798
types of, 795–796
Alerts page
Deploy Software Updates Wizard, software updates, 607
Task Sequence Deploy Software Wizard, 912
Alerts tab properties (collections), 530
All Software Updates node, software updates, 594, 595–597
alternate login ID (Azure), 664
AMSI (Antimalware Scan Interface), 761–762
AMT (Active Management Technology), ConfigMgr Current Branch baseline
version 1511, 54
analytics (cloud-based security), 801
Android CI (Configuration Items), 398
Android devices
enabling devices, 682–683
end user experience, 490–491
enrolling devices, 683–684
sideloading application distributions, 478–479
temporary passwords, 700
antimalware
AMSI, 761–762
antimalware as a service, 756–757
antirootkits, 758
Application Control, 760
Application Guard, 760
BM, 758–759
capabilities of, 756
Device Guard, 760
diagnostic scanning, 758
DSS, 758–759
ELAM, 759–760
Exploit Guard, 760
generics, 757–758
heuristics, 757–758
Measured Boot, 760
Microsoft’s approach to, 763
policies, 783–785
Windows 10 antimalware, 760–762
Windows antimalware, 759
ELAM, 759–760
Measured Boot, 760
Windows Server 2016 antimalware, 760–762
antirootkits, 758
app configuration policies, 444–445
App Details website, software packaging/deployment, 518
App-V (Application Virtualization)
applications, installing, 466–467
App-V 5/ConfigMgr integration, 465
clients, installing, 466–467
ConfigMgr 2007, 32
DT, 464–465
App-V 4.6 DT, creating, 465
App-V 5 DT, creating, 467–468
virtual environments
creating, 468–470
using, 468
Apple
App Store, deeplinking application distributions, 485
Apple Configurator tool, iOS device enrollments, 696
Apple VPP, 446, 486
applications
sideloading distributions, 480–481
volume license purchases, 446
Enterprise Developer licenses, 480
iOS
Activation Lock Bypass, 701
Apple Configurator tool, enrolling devices, 696
CI, 397–398
DEP, 695–696
duplicate device names, 688
enabling devices for management, 685–687
encryption, 729
end user experience, 491
enrolling devices, 687–688, 695–696
organization Apple ID, 685–686
iPad, sideloading application distributions, 480–481
iPhone, sideloading application distributions, 480–481
Mac OS
client agents, 318–319, 320
DT, 488–489
EP, 788
Mac OS X, CI, 384–387, 397–398
organization Apple ID, 685–686
Application Catalog
Application Catalog Web Service Point role (site systems), 39, 133
Application Catalog Website Point role (site systems), 39, 133
application/package deployments, 558–560
ConfigMgr 2012, 34
Applications, 409
actions of, 410–411
App-V
App-V 5/ConfigMgr integration, 465
ConfigMgr 2007, 32
DT, 464–465
installing applications, 466–467
installing clients, 466–467
virtual environments, 468–470
Application Control, 760
Application Guard, 760
Application Model Kit (SDK), 456
best practices
installing software, 453–454
testing applications, 454–456
TS, 456
cloud applications, DSI, 18
ConfigMgr 2012, application management, 34
creating, 415
DSL, 416
PowerShell, 457
Software Library, 457–458
Windows Embedded write filters, 456–457
Windows Installer (.msi)-based applications, 416–417
custom detection scripts, 389
deeplinking distributions, 482
Apple App Store, 485
Google Play Store, 483–484
Windows Store, 482–483
defined, 47, 409, 459
deleting, 453
dependencies, 49, 447–448
deploying, 49–50, 415, 548–549, 709–710
Application Catalog, 558–560
ConfigMgr Current Branch version 1610, 61
deployment types, 47–48
end-user experience, 555–556
high-risk deployments, 552–555
monitoring deployments, 565–566
new Software Center, 560–562
old Software Center, 556–557
required deployments, 562–565
simulating deployments, 555
software installations, 550–552
troubleshooting deployments, 565–566
uninstall applications, 549–550
detection methods
adding to applications, 429–431
built-in methods, 429–431
creating, 427
creating for Windows Installer applications, 427–428
custom methods, 431
custom methods, creating with PowerShell, 432
custom methods, creating with VBScript, 432–433
DT, 410–411, 459–460
App-V DT, 464–465
App-V DT, App-V 4.6 DT, 465
App-V DT, App-V 5 DT, 467–468
creating for Mac OS, 488–489
deeplinking distributions, 482–485
detection methods, 413
Intune enrollment requirements, 412
mobile devices DT, 470
multiple DT, 411
properties of, 421–423
requirement rules, 412–413, 459–460
script-based DT, 486–487
types of, 411–412
user device affinity, 413–415
Windows Installer-based DT, creating, 461–464
Exchange Online supported applications, 732
global conditions, 433
collections versus, 434
creating custom global conditions, 435–439
device global conditions, 434–435
user global conditions, 435
importing/exporting, 450–451
installing
administrator rights, 417
installation wrappers, 455
software, 453–454
licenses, purchasing
Apple VPP, 446
Windows Store for Business, 447
MAM, 440, 710–712
manageable applications, 440
management policies, 440–443
managing, 8
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr Current Branch baseline version 1706, 65
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1606, 59
ConfigMgr Current Branch version 1710, 66
modern authentication
ADAL, 724
Office applications, 724
monitoring, 458
Office applications, modern authentication, 724
overview of, 410–411
packages versus, 493–494
pool memory and WSUS, 631
properties of, 418
Application Catalog tab, 419–420
Content Locations tab, 427
Distribution Settings tab, 421
General Information tab, 418–419
References tab, 420
Supersedence tab, 427
requirement rules, 48, 411
DT, 412–413, 459–460
global conditions, 48–49, 433–439
global expressions, 49
uninstalling software, 411
retiring, 453
revision histories, 449–450
SDK, Application Model Kit, 456
sideloading distributions, 471–472
Android devices, 478–479
Apple devices, 480–481
Silverlight-based applications for Windows phone devices, 477–478
Windows 8 applications, 472–477
Windows 8.1 applications, 472–477
Windows 10 applications, 472–477
superseding, 452
synchronizing from Windows Store for Business, 492
testing, 454–456
uninstalling applications
deploying, 549–550
from Software Center, 487–488
volume license purchases
Apple VPP, 446
Windows Store for Business, 447
VPN profiles, 482
web applications, creating, 490–491
Windows Installer applications, creating detection methods for, 427–428
Windows Installer (.msi)-based applications, creating, 416–417
Windows source management, 423–426
wrapping applications, 440, 712
APT (Advanced Persistent Threats), 934
architectural planning/design
AD certificate services, 128–130
ADDS, 122
client MP key exchange, 124
custom port configurations, 124
extending AD schemas, 122–124
multi-forest considerations, 124–128
workgroup considerations, 124–128
availability, 145–146, 168–169
backups
planning for, 170–171
unsupported backups, 170
boundaries/boundary groups, 135–136, 137–138
business requirements, 118–119
compliance/regulatory issues, 119
cost controls, 119
IT consumerization, 119–120
service availability/delivery, 119
user experience, 119
CIDR, 136–137
clients
deploying, 147–148
discovery/installation, 148–152
IBCM, 159–163
planning settings, 153, 157–158
simple/full schedules, 157–158
content management, 146–147
cryptographic controls, 129
Current Branch
servicing, 164–166
testing, 166–168
updates, 164–166
environmental assessments, 121, 122
AD, 121
cloud computing, 121
datacenters, 121
dependent IT teams, 121
device types, 121
enterprise storage, 122
IT service delivery process, 121
monitoring, 122
network topologies, 121
organizational structure, 121
OS, 121
server infrastructures, 121
server management, 122
SLA, 121
virtualization, 121
external device management, 159
hierarchical planning, 130–135
IT requirements, 120
cloud consumption/adoption, 120
desktop OS supportability, 120
IT security, 120
service availability, 120
MDM, 163–164
meeting availability requirements, 145–146
overview of, 117–118
recoverability management, 168–169
restorability management, 168–169
RPO, 169–170
RTO, 169–170
scope of delivery, 122
site capacity planning, 141–144
ConfigMgr scalability, 144
ConfigMgr servers in Azure, 142–143
site server planning, 138–141
site system planning, 138–141
subnets, 136–137
supernets, 136–137
updates, continuous updates, 164
user experience, 158–159
ARP (Address Resolution Protocol) caches and WOL, 366–367
ASD (Australian Signals Directorate), 935
assessments
MAP, client agent deployments, 316
Vulnerability Assessments, 376
Windows ADK, 875, 876
DISM, 876
WinPE, 875
WSIM, 875
asset data, managing, 12–13
Asset Intelligence Synchronization Point role (site systems), 40, 132
Assets and Compliance workspace (ConfigMgr console), 290
assigning
client agents, 343–345
rights to machine accounts, 964
ATP (Advanced Threat Protection), Windows Defender, 801–802
capabilities of, 802
configuring, 803
prerequisites, 802–803
attacks
DoS attacks, 954, 960
eavesdropping (sniffer-based) attacks, 960
execution attacks, 954
fingerprinting attacks, 954
identity-based attacks, 954
misdirection attacks, 960
MITM attacks, 960
spoofing attacks, 960
surfaces, reducing (security), 955
auditing
clients, 279
ConfigMgr actions, 951–953
Remote Control, 364
WMI, 86–88
authentication
ADAL, 724
authentication required errors, 204
Azure AD authentication, ConfigMgr cloud connections, 242–243
client agents, authentication on Azure AD-joined Windows devices, 322–323
databases, accessing, 951
modern authentication, 725
ADAL, 724
Exchange Online, 732–733
features of, 724
Office 365 services, 725
Office applications, 724
Skype for Business Online, 742
states of, 725
turning on (order of), 742
Automatic Deployment Rule Wizard, deploying software updates, 609–610
Deployment Settings page, 611
Evaluation Schedule page, 612
General page, 610
Software Update page, 611–612
automation
AIK, ConfigMgr upgrades, 257
automatic site-wide client pushing on Windows devices, 326–327
ConfigMgr client automation via WMI, 98–100
desktop deployments, 11
DSI, 18
EP alerts, 795–796
lack of, 13
regulatory compliance, 11
resource provisioning, 13
security, 11
server deployments, 11
AutoPilot, client installations, 150
auto-remediation, Compliance Settings, 404
availability
CIA triad, defined, 934
architectural planning/design, 145–146, 168–169
site server/site system planning
ConfigMgr, 140
site servers, 139
site systems, 139
avoiding risk, defined, 935
Azure (MS)
Azure AD
authentication, cloud connections, 242–243
client agent authentication, 322–323
features of, 660
single identity across cloud services, 654
synchronization, 660–664
Windows 10 connections, 690–692
Azure AD Connect
dedicated servers and Azure AD installations, 662
installing, 661, 662–664
minimum hardware requirements, 661–662
prerequisites, 660–661
Windows Server and, 661
Azure AD User Discovery, 343
Azure Portal, Intune management, 654–655
CMG
deployments, ConfigMgr installations, 245
logs, 1012
ConfigMgr
authentication, cloud connections, 242–243
migration, online resources, 264
server site capacity planning, 142–143
domain names, 654
EMS, 653
ExpressRoute, 143
Intune management, Azure Portal, 654–655
user identities, 655
cloud identities, 655
federated identities, 656
login ID (alternate), 664
synchronized identities, 656
B
backstage (ConfigMgr console), 288–289
backups, 969, 970
architectural planning/design
backup planning, 170–171
unsupported backups, 170
Backup Site Server, 970–974
CD.Latest folders, 973–974, 975–976
choosing
backup location, 972
backup method, 971
ConfigMgr backups, 170, 171
content libraries, 980–981
customizing, ConfigMgr maintenance task backups, 974
overwriting, 973
source files, 981
SQL database backups, 970, 974–975
backup folder structure, 979–980
CD.Latest folders, 975–976
maintenance plans, 976–979
SQL Server backups, 171
SSRS, 981
unsupported backups, architectural planning/design, 170
WSUS, database backups, 989
bandwidth
BITS, 195
configuring for content distribution
DP, 537–538
file replication routes, 538
latency and, 181
network configuration, 181
secondary sites, 39
baselines
ConfigMgr
builds, 218
upgrades, 257
configuration baselines, 374, 375–376
creating, 398–400
deploying, 400–402
definition updates, definition rebase process, 773
mobile devices, creating for, 701–705
BIOS-to-UEFI conversions, ConfigMgr Current Branch version 1610, 61
BITS (Background Intelligent Transfer Service), 193–194
bandwidth, 195
BITS 2.5, 194
BITS 3.0, 194
BITS 4.0, 194
BITS 5.0, 194
client settings, 349
ConfigMgr client settings, 196
conflicting settings, 196
content transfers, 52
GPO and, 350
group policy, 195, 196
IGD statistics, 195
online resources, 194
versions of, 194
blocking/unblocking clients, 328
blogs, online resources, 1043–1044
BM (Behavior Monitoring), 758–759
boot images
command-line support, 921
Import Driver Wizard, Add Driver to Boot Images page, 882–883
OSD and, 885–888, 921
bootable media, OSD deployments, 915–917
boundaries/boundary groups
architectural planning/design, 135–136, 137–138
ConfigMgr 2012, 34
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr configuration, 239–241
ConfigMgr Current Branch version 1610, 60
IP address ranges and, 206
linking between new and default boundary groups, 208
network configuration, 205–208
online resources, 208
overlapping boundaries, 206
site assignment boundary groups, 240–241
BranchCache
client settings, 350
DP
content management, 146
content distribution, 542–543
network configuration, 197–200
WAN optimization, 53
bundle updates, 649
business requirements
architectural planning/design, 118–119
compliance/regulatory issues, 119
cost controls, 119
service availability/delivery, 119
user experience, 119
IT consumerization, 119–120
C
CA certificates (trusted), 714
capacity planning, software updates, 571
capture media, OSD deployments, 917
CAS (Central Administration Site), 37–38, 131
complexity of, 38
ConfigMgr 2012, 33
ConfigMgr installations, 226, 227–230
scalability, 38
cascading updates, collections, 529
ccmexec.exe (SMS Agent Host), 74
CD.Latest files/folders
backups, 973–974, 975–976
ConfigMgr updates, 253
CDs, Stand-Alone CD/DVD page (Create Task Sequence Media Wizard), 914
central sites. See CAS
certificates
AD certificate services
architectural planning/design, 128–130
deployment profiles, 129
CRL, checking, 959–960
distributing, 639–641
issuing, costs of, 130
PFX certificates, 714
profiles
creating, 473–475
deploying, 473–475
mobile devices, 714–715
security, 938
requests, manually reviewing, 130
SCEP certificates, 714–715
self-signed certificates and WSUS, 635
trusted CA certificates, 714
CI (Configuration Items), 374–375
Android CI, 398
creating, 378–380, 395
compliance rules, 394–395
supported platforms, 395
iOS CI, 397–398
Mac OS X CI, 384–387, 397–398
mobile devices
creating CI, 701–705
custom CI, 705–707
Samsung Knox CI, 398
Windows 8.1 CI, 396
Windows 10 CI, 380–384, 396
Windows desktop/server CI, 387, 388–391
Windows Phone CI, 397
CIA (Confidentiality, Integrity, Availability) triad, defined, 934
CIDR (Classless Interdomain Routing), architectural planning/design, 136–137
CIM (Common Information Model)
online resources, 83
WMI object model, 82, 83
CIS (Center for Internet Security), 935
classes, WMI object model, 81–82
Classifications page (Add Site System Roles Wizard), configuring software
updates, 584–585
classifying upgrades, 585
Client Control Panel applet, obtaining on-demand results, 403
client experience, software updates, 623
compliance scanning, 623–624
notifications, 624–626
Software Center, 626–627
client MP key exchange, ADDS and architectural planning/design, 124
clients, 315
agents, 317
activity status, monitoring, 345–347
assigning, 343–345
client agent authentication on Azure AD-joined Windows devices,
322–323
group policy installations on Windows devices, 320–321
hardware requirements, 316
health, monitoring, 345–347
keychain access, 319
limiting enrollment certificates, 319
logon script installations on Windows devices, 320
manual installations on LINUX computers, 320
manual installations on Mac computers, 318–319
manual installations on UNIX computers, 320
manual installations on Windows computers, 317–318
manually pushing, 328
MAP and client agent deployments, 316
software requirements, 316–317
SUP installations on Windows devices, 321
supported OS, 316
troubleshooting installations, 330–332
uninstalling, 332
App-V clients, installing, 466–467
approving, 323–324
architectural planning/design
planning settings, 153, 157–158
simple/full schedules, 157–158
auditing, 279
automation via WMI, 98–100
BITS and ConfigMgr client settings, 196
blocking/unblocking clients, 328
CI
Android CI, 398
iOS CI, 397–398
Mac OS X CI, 384–387, 397–398
Samsung Knox CI, 398
Windows 8.1 CI, 396
Windows 10 CI, 380–384, 396
Windows desktop/server CI, 387, 388–391
Windows Phone CI, 397
client-to-server communication security, 961
co-management (client-side), monitoring, 1021
communication (network configuration)
communication from clients, 178–179
communication security, 208
communication to clients, 177–178
designing client communications, 190–192
policies, 177–178
ports and client communications, 190–192
communication methods (ConfigMgr), 73
complex schedule, 373
Compliance Settings, client status messages, 406–407
ConfigMgr
databases, client settings, 104–105
migration, 278–280
defined, 43–44, 315
deploying
architectural planning/design, 147–148
ConfigMgr Current Branch baseline version 1511, 54
discovery, 332–333
Active Directory Forest Discovery, 333–334
Active Directory Group Discovery, 334, 335–336
Active Directory System Discovery, 337–338
Active Directory User Discovery, 336–337
architectural planning/design, 148–152
Azure AD User Discovery, 343
Heartbeat Discovery, 339–340
Network Discovery, 340–341
EP clients
installing, 786–788
operational status, 789–792
FSP and client installations, 247
health of, 179, 279
hiding software deployments, 508
IBCM
architectural planning/design, 159–163
client roaming behavior, 162
importing into ConfigMgr (manually), 341–343
installing
Active Directory Group Discovery, 152
Active Directory System Discovery, 150–151, 153
Active Directory User Discovery, 152, 153
architectural planning/design, 148–152
AutoPilot installations, 150
group policy installations, 149
Intune MDM-managed devices, 150
logon/startup script installations, 149–150
manual installations, 149
Network Discovery, 151–152
push installations, 148
SUP installations, 148–149
upgrading installations, 150
logs, 1001–1005
managing
agent requirements, 316–317
approving clients, 323–324
client discovery, 332–343
client settings, 347–362
client upgrades (automatic), 328–330
coexisting ConfigMgr solutions, 270
ConfigMgr configuration, 238
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1610, 61
ConfigMgr Current Branch version 1710, 66
installing client agents, 317–323
MAP and client agent deployments, 316
Office 365 client management dashboard, 61
pushing clients, 324–328
security, 937
uninstalling client agents, 332
namespaces, 93–94
network configuration
client locations, 174–175, 178
communication from clients, 178–179
communication security, 208
communication to clients, 177–178
designing client communications, 190–192
ports and client communications, 190–192
notifications, 154
Computer Agent settings, 154
Computer Restart settings, 154–155
Hardware Inventory settings, 155
Remote Tools settings, 155
Software Deployment settings, 156
Software Inventory settings, 156
policy signing, 129
on-premise MDM, client configuration, 720
pushing, 324
automatic site-wide client pushing on Windows devices, 326–327
blocking/unblocking clients, 328
enabling on Windows devices, 325–326
manually pushing client agents, 328
queries, defined, 46
Remote Control
client computer administration, 363–364
Remote Assistance, 364
Remote DesktoP, 364
Remote Tools device settings, 357–359
Resource Explorer, 364–365
scan catalogs, 590–591
scanning, troubleshooting, 631–632
security, client-to-server communication security, 961
settings, 347–348
BITS, 349
client cache settings device settings, 350
client policy device settings, 350–351
cloud services device settings, 351
compliance settings device settings, 351
Computer Agent device settings, 351–354
Computer Restart device settings, 354
custom schedules, 348
Endpoint Protection device settings, clients, 354
enrollment device and user settings, 354
hardware inventory device settings, 355–357
Metered Internet Connection device settings, clients, 357
modifying, 349
Power Management device settings, 357
priorities, 348–349
simple schedules, 348
Software Deployment device settings, 359
Software Inventory device settings, 359–360
Software Metering device settings, 360–361
Software Updates device settings, 361
state messaging device settings, 361–362
User and Device Affinity device settings, 362
Windows Analytics device settings, 362
signed client data, client communication security, 208
simple schedules, 373
Software Center device settings, 359
software updates, 588–590
upgrading automatically, 328–330
WOL, 365
configuring, 366
magic packets, 365
prerequisites, 365
unicast WOL, 366–367
using, 367–368
Wake-up proxies, 367
cloud computing
architectural planning/design, 120, 121
Azure AD
authentication, ConfigMgr cloud connections, 242–243
single identity across cloud services, 654
Cloud DP, 162–163, 533
cloud identities, 655
cloud services device settings and clients, 351
cloud-based protection (Windows Defender), 759
CMG
ConfigMgr installations, 245
ConfigMgr Current Branch version 1610, 60
ConfigMgr installations
Azure AD authentication, 242–243
cloud management, 243–244
OMS Connectors, 244
Upgrade Readiness, 244
defined, 9–10
DSI and, 18
examples of, 10
security analytics, 801
systems management, 13
CMG (Cloud Management Gateway)
ConfigMgr installations, 245
ConfigMgr Current Branch version 1610, 60
IBCM versus, 162–163
logs, 1012
CMTrace Log File Reader, 227, 999–1000
CNAME records, Intune environment preparation, 658
co-management
choosing where to start, 1016–1017
configuring, 1017
defined, 1015
enabling devices, 1018–1019
monitoring client-side co-management, 1021
moving workloads from ConfigMgr to Intune, 1020–1021
need for, 1016
prerequisites, 1017–1018
collecting data
collection data classes (SQL views), 850
security, 932
Collection Variables tab properties (collections), 530
collections
ConfigMgr 2012, 34
ConfigMgr databases, 103–104
creating, 524–525, 805
defined, 45–46, 524
device collections, creating, 404
direct (static) rules, 525–526
DP groups, associating collections with, 535–536
global conditions versus, 434
include/exclude rules, 527–528
maintenance windows, 530–531
mobile device collections, creating, 713–714
primary sites
collection membership delays, 526
replicating across primary sites, 524
prompted values (queries), 817–818
properties, modifying, 529–530
query results, creating collections based on query results, 837
query rules, 526–527
rules, 45–46
security scopes, 943
updates, 528
cascading updates, 529
full updates, 528
incremental updates, 528–529
manual updates, 528
user collections and Intune, 666
communication
client communications, 73
to clients, 177–178
from clients, 178–179
DRS, 72–73
external communication, network configuration, 182
HTTPS, network communication, 182
intersite communication, network configuration, 182–183
intrasite communication, network configuration, 179
network configuration
AI, 182
alerts, 179
bandwidth, 181
client communication security, 208
communication from clients, 178–179
communication to clients, 177–178
designing client communications, 190–192
downloading software updates, 182
external communication, 182
HTTPS, 182
intersite communication, 182–183
intrasite communication, 179
latency, 181
messages, 179
policies, 177–178
ports and client communications, 190–192
RPC communication, 180–181
SCP, 182
SMB communication, 181
SQL Server communication, 179–180
SUP, 182
RPC communication, network configuration, 180–181
security (networks), 960–961
client-to-server communication security, 961
server-to-server communication security, 962
site-to-site communication security, 962
SMB communication, 72, 181
SQL Server communication
network configuration, 179–180
security issues, 180
company devices, managing, 695
company logos, Intune subscriptions, 670–671
company resource access workspace, mobile devices and, 714
complex schedule, client settings, 373
compliance settings, 371, 375
architectural planning/design, 119
Assets and Compliance workspace (ConfigMgr console), 290
CI, 374–375
Android CI, 398
creating, 378–380, 394–395
iOS CI, 397–398
Mac OS X CI, 384–387, 397–398
Samsung Knox CI, 398
Windows 8.1 CI, 396
Windows 10 CI, 380–384, 396
Windows desktop/server CI, 387, 388–391
Windows Phone CI, 397
Client Control Panel applet, on-demand results, obtaining, 403
client status messages, 406–407
compliance reports, 405–406
compliance rules, 394–395
compliance strategies, developing, 402
ConfigMgr Current Branch baseline version 1511, 56
ConfigMgr Current Branch baseline version 1706, 65
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1606, 59
ConfigMgr Current Branch version 1610, 60, 61
configuration baselines, 52, 374, 375–376
creating, 398–400
deploying, 400–402
configuration drift, 372
configuration items, 52
configuring, 372–374
custom detection scripts, 389
defined, 51–52
device settings, clients, 351
on-demand results, obtaining, 402
Client Control Panel applet, 403
scripting client evaluations, 403–404
logs, 406
policies (ConfigMgr), 725, 726
creating, 727–729
deploying, 730–731
editing, 729–730
supported compliance settings, 726
pre/post-change validation, 372
regulatory compliance, 371–372
remediation, 404
Remote Connection Profiles, 374, 377–378
reports, 405–406
rules, 394–395
scanning, 623–624
security, 938
software updates, 570
strategies, developing, 402
supported platforms, 395
time to resolution, 372
tracking compliance, 405–406
troubleshooting, settings management, 406–407
User Data and Profiles, 374, 377
Component Server role (site systems), 39
compressed.zip files, importing/exporting, 545
Computer Agent settings
client notifications, 154
device settings, clients, 351–354
Computer Restart settings
client notifications, 154–155
device settings, clients, 354
concurrent threads, defined, 40–41
conditional access, 681, 723
ConfigMgr policies
compliance policies, 725, 726–731
conditional access policies, 725
ConfigMgr Current Branch version 1602, 57
deploying, 735
email blocking intervals, 736
enabling, 734–735
Exchange Online, 731, 733
configuring conditional access policies, 734–735
end-user experience, 735–736
evaluating conditional access policies, 733
modern authentication, 732–733
requirements for, 731–732
security groups, 733
supported platforms/applications, 732
Exchange On-Premises, 744–745
configuring conditional access policies, 748–749
end-user experience, 750
evaluating conditional access policies, 748
Exchange Server connector, 746–747
requirements for, 745–746
supported platforms, 745
user collections, 748
modern authentication, 725
ADAL, 724
features of, 724
Office 365 services, 725
Office applications, 724
states of, 725
monitoring, 750–752
security, 938
SharePoint Online, 737
configuring conditional access policies, 739–740
default state, 738
end-user experience, 740
evaluating conditional access policies, 738–739
requirements for, 737–738
security groups, 739
supported platforms, 737–738
Skype for Business Online, 741
configuring conditional access policies, 743–744
evaluating conditional access policies, 743
modern authentication, 742
requirements for, 741–742
security groups, 743
supported platforms, 742
troubleshooting, 750, 752–753
confidentiality (CIA triad), defined, 934
Config Admins groups, 86
ConfigMgr Current Branch
baseline builds, 218
capabilities of, 7–8
co-management
configuring, 1017
defined, 1015
Current Branch baseline version 1511
AMT, 54
application management, 55
client deployments, 54
compliance settings, 56
in-console updates, 54
data protection, 56
Intune, 56
MDM, 56
new capabilities, 54–56
online resources, 54
OS deployments, 55
SCP role (site systems), 54
site infrastructure protection, 56
software updates, 55
Usage Data Collection, 54
Windows Hello for Business, 56
Windows Installer, 55
Windows Store, 55
Current Branch baseline version 1702
Administrative Console, 61
application management, 62
boundaries/boundary groups, 62
console (ConfigMgr), 62
Content Library cleanup tool, 62
Data Warehouse Service Point role, 62
deprecated features, 67–68
device protection, 64
MDM, 63–64
new capabilities, 61–64
OS deployments, 62–63
Peer Cache, WAN optimization, 62
services, 62
software updates, 62–63
updates, 62
Windows Hello for Business, 64
Current Branch baseline version 1706
application management, 65
compliance settings, 65
deprecated features, 67–68
new capabilities, 64–66
OS deployments, 65
site infrastructure changes, 64–65
software updates, 66
moving workloads from ConfigMgr to Intune, 1020–1021
deprecated features
ConfigMgr Current Branch baseline version 1702, 67–68
ConfigMgr Current Branch baseline version 1706, 67–68
ConfigMgr Current Branch version 1710, 67–68
online resources, 68
development of, 29–30
ConfigMgr 2007, 32–33
ConfigMgr 2012, 33–35
ConfigMgr 2012 R2, 35
SMS 1.x, 30
SMS 2.0, 30
SMS 2003, 30–32
Intune integration, 664–665
adding Intune subscriptions, 666–672
adding service connection points, 672–673
configuring platforms, 672
licensing users, 664
troubleshooting, 674–679
user collections, 666
user discovery, 665–666
migrating to, 256, 263, 970
client management in coexisting solutions, 270
client migration, 278–280
coexisting solutions, 269–270
configuring active source sites, 271–272
configuring child sites for data gathering, 272–273
configuring ConfigMgr Migration User Accounts, 271
dependency configuration, 270
hierarchy installation/configuration, 267–268
migrating by features/dependencies, 270
migration cleanuP, 277–278
migration reports, 278
object migration jobs, 273–275
objects modified after migration jobs, 273, 275–277
performing a migration, 270–278
planning migrations, 264–267
premigration activities, 267–269
preparing old sites for migration, 268
shared DP, 277
shared infrastructures, 270
source/destination sites, 268–269
troubleshooting migrations, 280
upgrades versus migration, 263–264
validating old sites are supported, 268
virtual servers, 264
what is migrated, 264–266
what is not migrated, 266–267
mobile devices
enabling devices for management, 682
enabling devices for management, Android devices, 682–683
enabling devices for management, iOS devices, 682–683
enabling devices for management, Windows Phone devices, 688–689
supported platforms, 681–682
security, 174, 938–939
access, 949
account security, 963–968
AD discovery, 967
AD publishing, 967
auditing ConfigMgr actions, 951–953
certificate profiles, 938
conditional access, 938
content security, 962–963
database connection accounts, 965
EP, 938
Exchange server accounts, 968
infrastructures, 954
OSD, 966
patch management, 938
proxy server accounts, 967–968
RBA, 939, 941, 949
Remote Tools Permitted Viewer accounts, 968
SMTP server connection accounts, 968
software updates, 966
source site accounts, 968
terminology, renaming, 614–615
troubleshooting, online resources, 220
updates, 16, 249–252
CD.Latest files, 253
online resources, 67
scheduling updates, 252–253
update logs, 1009–1010
upgrading to, 256–257
AIK, 257
baseline support, 257
finding supported overlaP, 257–258
migration versus upgrades, 263–264
performing an upgrade, 258–262
preparing for an upgrade, 257–258
prerequisites, 260–262
SQL Server support, 257
SQL Server test upgrades, 258
Windows OS support, 257
version 1602
application management, 57
client management, 57
compliance settings, 57
conditional access, 57
new capabilities, 56–57
software updates, 57
SQL Server AlwaysOn availability groups, 56
Windows 10 servicing, 57
version 1606
accessibility, 58
Administration node, 58
application management, 59
compliance settings, 59
device configuration/protection, 60
DP updates, 58
MDM, 58
new capabilities, 57–60
OS deployments, 59
pre-release features, 58
remote control, 60
software updates, 59
Updates and Servicing node, 58
version 1610
application deployments, 61
BIOS-to-UEFI conversions, 61
boundaries/boundary groups, 60
client management, 61
CMG, 60
compliance settings, 60, 61
new capabilities, 60–61
Peer Cache, WAN optimization, 60
policy synchronization, Intune, 60
Software Center, 61
software updates, 61
Windows Defender, 60
version 1710
application management, 66
client management, 66
deprecated features, 67–68
device protection, 67
MDM, 67
new capabilities, 66–68
OSD, 67
site infrastructure changes, 66
Software Center, 67
Windows Telemetry, 67
WAN optimization, 53
Windows 10, support, 7
ConfigMgr 2007, 32
App-V, 32
CSR, 32
delta discovery, 33
dynamic collection updates, 33
Forefront Endpoint Protection 2010, 33
growing complexity of, 33
native mode (security), 32
OOB management, 32
OSD, 32
performance, 33
PKI, 32
prestaged media, 33
security, 32
service packs, 32–33
SSRS, 32
updates, 32–33
ConfigMgr 2012, 33
Active Directory Forest Discovery, 34
administrative console, 34
Application Catalog, 34
application management, 34
boundaries/boundary groups, 34
CAS, 33
client assignments, 34
client settings, 34
collections, 34
discovery, 34
DP, 35
fallback sites for client assignments, 34
IBCM, 34
MP, 34
OSD, 35
RBA, 34
Software Center, 34
SSRS (SQL Server Reporting Services), 35
ConfigMgr 2012 R2, 35
ConfigMgr Current Branch, new capabilities, 7–8
content management, 35
MDM, 8, 35
OSD, 35
profile management, 35
RBA, 35
ConfigMgr Agents. See clients
ConfigMgr RP (Reporting Point), 843–845
configuration baselines
compliance, 52, 374, 375–376
creating, 398–400
deploying, 400–402
configuration items (compliance), 52
configuring
app configuration policies, 444–445
Apple Configurator tool, iOS device enrollments, 696
baselines
compliance, 52, 374, 375–376
creating, 398–400
deploying, 400–402
co-management, 1017
Compliance Settings, 372–374
conditional access policies
Exchange Online, 734–735
Exchange On-Premises, 748–749
SharePoint Online, 739–740
Skype for Business Online, 743–744
ConfigMgr
Active Directory Forest Discovery, 239
boundaries/boundary groups, 239–241
client management, 238
initial configurations, 238–241
reporting functionality, 238
configuration drift, 372
in-console alerts, 302
DCM. See compliance settings
dependencies, ConfigMgr migration, 270
devices, ConfigMgr Current Branch version 1606, 60
DP, monitoring configuration status, 542
file replication
rate limit configuration, 186–187
route configuration, 185
hierarchies, ConfigMgr migration, 267–268
mobile devices, 701
creating baselines, 701–705
creating CI, 701–705
custom CI, 705–707
networks
AI, 182
bandwidth, 181
boundaries/boundary groups, 205–208
BranchCache, 197–200
client communication security, 208
client locations, 174–175, 178
communication from clients, 178–179
communication to clients, 177–178
data flows, 177
designing client communications, 190–192
downloading software updates, 182
DP, 176–177
enrollment proxy points, 175
external communication, 182
file replication, 183–187
intersite communication, 182–183
intrasite communication, 179
latency, 181
Peer Cache, 200–204
ports and client communications, 190–192
RPC communication, 180–181
SCP, 182
secondary sites, 176–177
server placement, 175–176
service location requests, 192–196
SMB communication, 181
SQL Server communication, 179–180
SQL Server replication, 187–190
SUP, 182
testing DNS resolution, 211–212
testing DP, 214–215
testing MP, 214–215
troubleshooting, 209
troubleshooting, basic network connectivity, 209–211
troubleshooting, congested/slow network links, 214
troubleshooting, firewall ports, 212–214
troubleshooting, routers, 212–214
troubleshooting, SPN, 215–216
Peer Cache, network configuration, 201–203
PowerShell scripts, 457
on-premise MDM, 719–720, 720
RCM, 74
SCUP, 636–639
shift and drift, 11–12
software, complex software installations/configurations with TS, 448
software updates, 577
client-side components, 588–590, 591–594
server-side components, 577–588
Windows Defender ATP, 803
WOL, 366
congested/slow network links, troubleshooting, 214
consistency in reports/dashboards, creating, 854–855
console (ConfigMgr), 285–286
address bar, 288
Administration workspace, 293
alerts, 46, 299–300
configuring, 302
deleting, 301
managing, 301
subscribing to, 302–303
viewing, 300
Assets and Compliance workspace, 290
backstage, 288–289
ConfigMgr Current Branch baseline version 1511, in-console updates, 54
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr Current Branch version 1610, in-console updates, 60
defined, 44
deploying, 294
console placement, 294
installation prerequisites, 295
installing with ConfigMgr Setup Wizard, 295–296
SMS Providers and console deployments, 294
supported platforms, 294
unattended installations, 296–297
Details pane, 287
displaying content, 297
initiating, 304–305
List pane, 287
logs, 1001
monitoring scripts, 458
Monitoring workspace, 291–293
Navigation pane, 286, 287, 298–299
objects interaction, 297–298
operating, 305–306
OSD and, 878
personalizing, 298–299
ribbon bar, 287, 288–289
role-based administration, 297
search bar, 288
site connections, 298
Software Library, 290–291
validating ConfigMgr installations, 237–238
workspaces, 289–293
personalizing, 298–299
resetting, 299
console (ConfigMgr), 303–304
AD integration, 311–312
initiating, 304–305
operating, 305–306
permissions
DCOM permissions, 308–309
SMS Provider permissions, 308
WMI permissions, 309–310, 312–313
security, 308–310
troubleshooting, 311
common problems, 313
connectivity issues, 313
console logging, 311–313
content distribution and OSD, 905–907
content libraries, 51, 548
backups, 980–981
Content Library cleanup tool, ConfigMgr Current Branch baseline version
1702, 62
redistributing content, 980
Content Locations tab properties
applications, 427
packages, 503
content management
architectural planning/design, 146–147
ConfigMgr 2012 R2, 35
content libraries, 51
defined, 50
DP
defined, 50
DP groups, 50
SMSPKG folders, 51
content replication
configuring
rate limits, 186–187
routes, 185
DDR, 183
defined, 41–42
FSP, 183
network configuration, 183–187
Pulse Mode, 186
routes, distributing content, network bandwidth configuration, 538
Scheduler Thread, 183
secondary site data, 183
Sender Thread, 183–185
transfer rates, 186–187
Content tab properties (DT), 422
content transfers via BITS, 52
continuous updates, architectural planning/design, 164
converting
BIOS-to-UEFI, ConfigMgr Current Branch version 1610, 61
WQL to SQL, 828
coordinating, software updates, 570
copying files
configuring
rate limits, 186–187
routes, 185
DDR, 183
defined, 41–42
FSP, 183
network configuration, 183–187
Pulse Mode, 186
routes, distributing content, network bandwidth configuration, 538
Scheduler Thread, 183
secondary site data, 183
Sender Thread, 183–185
transfer rates, 186–187
corporate resources, conditional access, 681
costs
certificates, costs of issuing, 130
cost controls, architectural planning/design, 119
Create Task Sequence Media Wizard
Customization page, 915
Distribution Points page, 914–915
Media Type page, 913–914
Security page, 914
Stand-Alone CD/DVD page, 914
CRL (Certificate Revocation List), checking, 959–960
cryptography
attacks, 933
cryptographic controls, 959, 960
architectural planning/design, 129
client policy signing, 129
custom update signing, 129
inventory signing, 129
online resources, 208
site-to-site communication, 129
CSR (Client Status Reporting), ConfigMgr 2007, 32
custom CI (Configuration Items)
mobile devices, 705–707
OMA-URI (Custom CI example), 705, 706–707
custom domains, Intune environment preparation, 656–658
custom ports, client communications, 190–191
custom schedules, client settings, 348
custom updates, SCUP, 645–647, 649
Customization page (Create Task Sequence Media Wizard), 915
customizing
console (ConfigMgr), 298–299
security roles, 942–943
D
dashboards
creating, 855, 858
adding tables to dashboards, 861–863
consistency in dashboards, 854–855
data sources, 858–859
datasets, 859–860
Report Builder and, 855–856
report series, 853–854
SSDT-BI and, 855–858
Toolbox menu (SSDT-BI), 860–861
Intune Service Dashboard, 678
previewing, 863
publishing, 863–864
deploying entire projects, 868
manually adding dashboards to SSRS, 864–866
from SSDT to SSRS website, 866–868
software updates, ConfigMgr Current Branch version 1610, 61
Windows 10 servicing dashboard, 617–619
Data Access tab properties (packages), 500–501
data collection
ConfigMgr Current Branch baseline version 1511, 54
security, 932
data flows, network configuration, 177
data security, diagnostic usage data, 932
Data Source tab properties (packages), 499–500
data sources, creating for reports, 858–859
Data Warehouse Service Point role
ConfigMgr Current Branch baseline version 1702, 62
site systems, 133
databases
accessing, 951
authentication, 951
ConfigMgr databases, 101, 103
changing, 103
client settings, 104–105
collections, 103–104
DRS, 108–110
finding views, 105–106
hardware inventories, 104
schema of, 102
site-to-site replication, 107–108
SQL Server Management Studio and, 102–103
state messages, 106, 107
status messages, 106
tables, 102
views, 102
connection account security, 965
replication, DRS, 108–110
security
connection accounts, 965
site databases, 958–959
shared WSUS databases, 574
site capacity planning, architectural planning/design, 142
site database recovery options, 983
Site Database Server role (site systems), 39
Site Database tier (ConfigMgr), 70
site databases
meeting availability requirements, 145
security, 958–959
SQL database backups, 970, 974–975
backup folder structure, 979–980
CD.Latest folders, 975–976
maintenance plans, 976–979
WMI and, 82–83
WSUS, 782
database backups, 989
re-indexing databases, 990–991
datacenters, architectural planning/design, 121
datasets, creating for reports, 859–860
date/time functions in WQL queries, 824–825
DCM (Desired Configuration Manager). See Compliance Settings
DCOM (Distributed COM), 77, 308–309
DDRs (Data Discovery Records), file replication, 183
dedicated servers and Azure AD installations, 662
deeplinking, application distribution, 482
Apple App Store, 485
Google Play Store, 483–484
Windows Store, 482–483
defense in depth (layered security model), 936
definition files, 494–495, 495
definition updates, 765, 771–772
architecture of, 772
ConfigMgr software update management source, 773–780
definition rebase process, 773
file shares (UNC) source, 782–783
MMPC updates, 780
WSUS and Microsoft Update sources, 780–782
deleting
applications, 453
in-console alerts, 301
Intune
extensions, 674
subscriptions, 674
delivery, scope of (architectural planning/design), 122
delta discovery, 334
client installations, 152–153
ConfigMgr 2007, 33
DEM (Device Enrollment Manager), 697
DEP (Device Enrollment Program), 695–696
dependencies
applications, 49, 447–448
ConfigMgr migration, dependency configuration, 270
Dependencies tab properties (DT), 426
Deploy Software Updates Wizard, software updates
Alerts page, 607
Deployment Settings page, 604
Download Settings page, 608–609
General page, 603–604
Scheduling page, 605
User Experience page, 606
deploying
applications, 49–50, 415, 548–549, 709–710
Application Catalog, 558–560
ConfigMgr Current Branch version 1610, 61
deployment types, 47–48
end-user experience, 555–556
high-risk deployments, 552–555
monitoring deployments, 565–566
new Software Center, 560–562
old Software Center, 556–557
required deployments, 562–565
simulating deployments, 555
software installations, 550–552
troubleshooting deployments, 565–566
uninstall applications, 549–550
certificate profiles, 473–475
clients
architectural planning/design, 147–148
ConfigMgr Current Branch baseline version 1511, 54
compliance policies (ConfigMgr), 730–731
conditional access, 735
deployment packages, software updates, 599–601
deployment rings, 614, 615, 622
desktop automation, 11
email profiles, 716
entire projects, 868
EP, best practices, 766–767
high-risk deployments, 621–622
deployment rings, 622
upgrades, 622
MAM policies, 712
Microsoft Office, 523
monitoring deployments, 565–566
OS
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch baseline version 1702, 62–63
ConfigMgr Current Branch baseline version 1706, 65
ConfigMgr Current Branch version 1606, 59
OSD
bootable media, 915–917
capture media, 917
ConfigMgr Current Branch version 1710, 67
content distribution, 905–907
prestaged media, 918–919
stand-alone media, 913–915
TS, 907–912
TS media, 912–913
unattended deployments, 919
packages, 548–549
administrative rights, 509–510
Application Catalog, 558–560
end-user experience, 555–556
high-risk deployments, 552–555
monitoring deployments, 565–566
new Software Center, 560–562
old Software Center, 556–557
required deployments, 562–565
simulating deployments, 555
troubleshooting deployments, 565–566
Peer Cache content to clients, 203–204
replicating deployments across primary sites, 524
required deployments, 562–565
SCEP, 767–771
servers, automation, 11
software
App Details website, 518
Software Deployment settings, client notifications, 156
software updates
creating deployments, 601–609
SUG deployment limits, 598
troubleshooting deployments, 565–566
TS (Task Sequence)
high-risk deployments, 909
OSD and, 907–912
Task Sequence Deploy Software Wizard, 907–912
types of deployments, 604, 617
updates, troubleshooting, 631–632
VPN profiles, 716–717
WDS, PXE points, 899
Windows ADK, 875, 876
DISM, 876
WinPE, 875
WSIM, 875
Deployment Settings page
Deploy Software Updates Wizard, software updates
creating deployments, 604
deploying, 611
Task Sequence Deploy Software Wizard, 909–910
Deployment Types tab, restarting computer, 426
Deployments tab properties (collections), 530
designing networks (configuring)
boundaries/boundary groups, 205–208
BranchCache, 197–200
client locations, 174–175, 178
clients
communication from clients, 178–179
communication security, 208
communication to clients, 177–178
designing client communications, 190–192
ports and client communications, 190–192
data flows, 177
DP, 176–177
enrollment proxy points, 175
Peer Cache, 200
configuring, 201–203
deploying content to clients, 203–204
requirements for, 200–201
secondary sites, 176–177
server placement, 175–176
service location requests, 193–196
troubleshooting networks, 209
basic network connectivity, 209–211
testing DNS resolution, 211–212
testing DP, 214–215
testing MP, 214–215
troubleshooting, congested/slow network links, 214
troubleshooting, firewall ports, 212–214
troubleshooting, routers, 212–214
troubleshooting, SPN, 215–216
desktops
deploying, automation, 11
Intune and desktop computer management, 665
OS supportability, architectural planning/design, 120
Remote DesktoP, 364
destination/source sites, ConfigMgr migration, 268–269
Details pane (ConfigMgr console), 287
Detection Method tab properties (DT), 423–424
detection methods
adding to applications, 429–431
built-in methods, adding to applications, 429–431
creating, 427, 427–428
custom methods, 431
creating with PowerShell, 432
creating with VBScript, 432–433
Windows Installer methods, verifying, 487–488
device enrollment managers (Intune), 672
device global conditions, 434–435
Device Guard, 760
diagnostics
Hybrid Diagnostics tool, troubleshooting, 685
scanning, 758
usage data security, 932
digital signatures, malware and, 933
direct (static rules), collections, 525–526
Direct rule (collections), 45
directories, Intune hybrid directory synchronization, 678
disaster recovery, 969
backups
content libraries, 980–981
source files, 981
SSRS, 981
sites, 982
maintenance, 986–989
prerequisite download requirements, 985
recovering failed sites, 983–986
site database recovery options, 983
site server recovery options, 982–983
verifying recovery, 986
discovering clients, 332–333
Active Directory Forest Discovery, 333–334
Active Directory Group Discovery, 334, 335–336
Active Directory System Discovery, 337–338
Active Directory User Discovery, 336–337
Azure AD User Discovery, 343
Heartbeat Discovery, 339–340
Network Discovery, 340–341
discovery
Active Directory discovery
Active Directory Forest Discovery, 42
LDAP paths, 43
polling schedules, 43
ConfigMgr 2012, 34
data queries, 831–832
discovery classes (SQL views), 846
DDR, file replication, 183
Heartbeat Discovery, 43
methods of, 42–43
Network Discovery
client discovery, 340–341
client installations, 151–152
Discovery Data Manager, 74
DISM (Deployment Image Servicing and Management), 876
distributed enterprises
methodologies, 11
OS and software provisioning, 11
regulatory compliance, 11
security, 10–11
software provisioning, 11
systems management, 10–11
distributing
certificates, 639–641
ConfigMgr policies, security, 962–963
ConfigMgr software, security, 962–963
distributing content
DP, 534
BranchCache and, 542–543
DP groups, 534–536
network bandwidth configuration, 537–538
Peer Cache and, 542–543
preferred DP, 543
refreshing content, 536
removing content, 536
sending content to DP, 534
updating content, 537
validating content, 536
network bandwidth, configuring
DP, 537–538
file replication routes, 538
OSD and, 905–907
troubleshooting, 548
Distribution Group Points tab properties (collections), 530
Distribution Points page
Create Task Sequence Media Wizard, 914–915
Task Sequence Deploy Software Wizard, 912
Distribution Settings tab properties
applications, 421
packages, 501–502
DNS (Domain Name System)
client agent assignments, 345
records, Intune environment preparation, 658
service location requests, 193
testing DNS resolution, 211–212
documentation
compliance reports, 405–406
migration reports, ConfigMgr migration, 278
domain accounts (AD), SQL Server and, 221
domains (custom), Intune environment preparation, 656–658
DoS (Denial of Service) attacks, 954, 960
Download Settings page (Deploy Software Updates Wizard), software updates,
608–609
downloading
content from peer content sources, authentication required errors, 204
files to excluded folders, 958
site download requirements, 985
software updates, 631
types of downloads, 604, 617
DP (Distribution Point), 531
architectural planning/design, content management, 146–147
BranchCache, content management, 146
Cloud DP, 162–163, 533
ConfigMgr 2012, 35
content management, 146–147
defined, 50
distributing content, 534
BranchCache and, 542–543
DP groups, 534–536
network bandwidth configuration, 537–538
Peer Cache and, 542–543
preferred DP, 543
refreshing content, 536
removing content, 536
sending content to DP, 534
updating content, 537
validating content, 536
Distribution Points page
Create Task Sequence Media Wizard, 914–915
Task Sequence Deploy Software Wizard, 912
DP groups, 50, 534–535
associating collections with, 535–536
monitoring status of, 541
DP role (site systems), 40
DPG, content management, 147
DT and, 459
installing, 531–533
meeting availability requirements, 145
monitoring, 538–539
configuration status, 542
content status, 539–541
DP group status, 541
network configuration, DP, 176–177
OSD site system roles, 897–898
multicasting, 901–903
PXE points, 898–901
Peer Cache, content management, 146–147
preferred DP, distributing content, 543
prestaged site content, content management, 147
properties of, 538
redundancy, content management, 146
refreshing content, 536
removing content, 536
revision histories and relatable DP content, 450
secondary sites versus, 176–177
shared DP
accessing, 277
ConfigMgr migration, 277
sharing packages, duplicating content on DP, 501
site capacity planning, architectural planning/design, 141
site systems, 538
testing, troubleshooting network configurations, 214–215
updates, ConfigMgr Current Branch version 1606, 58
updating content, 537
validating content, 536
DPG (Distribution Point Group), DP, content management, 147
Driver Details page (Import Driver Wizard), 880–881
drivers/driver packages (OSD), 878–879
identifying packages, 882
Import Driver Wizard
Add Driver to Boot Images page, 882–883
Add Driver to Packages page, 881–882
Driver Details page, 880–881
Locate Driver page, 879–880
DRS (Data Replication Service), 72–73, 188
database replication, 108–110
site active mode, 190
site initialization mode, 189, 190
DSI (Dynamic Systems Initiative), 16–17
automation, 18
cloud applications, 18
ConfigMgr and, 17
importance of, 18–19
Microsoft product integration, 17–18
operational awareness, 18
systems management, 18
Visual Studio and, 17
WSUS and, 17
DSL (Definitive Software Library), creating applications, 416
DSS (Dynamic Signatures Service), 758–759
DTs (Deployment Types), 409, 410–411, 459–460
App-V DT, 464–465
App-V 4.6 DT, creating, 465
App-V 5 DT, creating, 467–468
deeplinking application distributions, 482
Apple App Store, 485
Google Play Store, 483–484
Windows Store, 482–483
detection methods, 413
global conditions, 433
collections versus, 434
creating custom global conditions, 435–439
device global conditions, 434–435
user global conditions, 435
Intune enrollment requirements, 412
Mac OS, creating for, 488–489
mobile devices, 470
multiple DT in applications, 411
properties of, 421
Content tab, 422
Dependencies tab, 426
Detection Method tab, 423–424
General tab, 421–422
Programs tab, 423
Requirements tab, 426
Return Codes tab, 426
requirement rules, 412–413, 459–460
script-based DT, 486–487
types of, 411–412
user device affinity, 413–415
Windows Installer-based DT, creating, 461–464
DVDs, Stand-Alone CD/DVD page (Create Task Sequence Media Wizard), 914
dynamic collection updates, ConfigMgr 2007, 33
dynamic MAC addresses, manually importing clients into ConfigMgr, 342–343
E
eavesdropping (sniffer-based) attacks, 960
editing, compliance policies (ConfigMgr), 729–730
ELAM (Early Launch Antimalware), 759–760, 803
email
blocking intervals (conditional access), 736
profiles
deploying, 716
mobile devices, 715–716
embedded systems, Windows Embedded write filters, 456–457
EMS (Enterprise Mobility and Security), 653
encryption
bypassing security controls, 961
client communication security, 208
iOS devices, 729
endpoints. See EP; EPP
end-user experience, application/package deployments, 555–556
enrolling, Mobile Device Enrollment Proxy Point role (site systems), 40
enrollment certificates, client agents, 319
enrollment device and user settings, clients, 354
enrollment proxy points, network configuration, 175
Enterprise Developer licenses (Apple), 480
Enterprise edition (SQL Server), 220–221
enterprise storage, architectural planning/design, 122
Environment tab properties (programs), 508–510
environmental assessments, architectural planning/design, 121, 122
AD, 121
cloud computing, 121
datacenters, 121
dependent IT teams, 121
device types, 121
enterprise storage, 122
IT service delivery process, 121
monitoring, 122
network topologies, 121
organizational structure, 121
OS, 121
servers
infrastructures, 121
managing, 122
SLA, 121
virtualization, 121
EP (Endpoint Protection)
actions, 794–795
on-demand actions, 798–800
scripting, 800–801
alerts, 794–795
automating, 795–796
collection alerts, 797–798
types of, 795–796
clients
device settings, 354
installations, 786–788
operational status, 789–792
ConfigMgr capabilities, 765
definition updates, 765
deploying, 766–768
Endpoint Protection Point role (site systems), 132
EPP
installing, 767, 768–771
SCEP agent and, 767
Forefront Endpoint Protection 2010, ConfigMgr 2007, 33
LINUX, 788
Mac, 788
monitoring, 788
on-demand actions, 798–800
planning, 764
ConfigMgr capabilities, 765
definition updates, 765
requirements, 764–765
prerequisites, 763
reports
integrating data with other systems, 793–794
types of, 792–793
requirements for, 764–765
SCEP
deployments, 767–771
SCEP agent and EPP, 767
security, 938
views, 794
EPP (Endpoint Protection Point)
installing, 767, 768–771
SCEP agent and, 767
error messages, sync failed error messages, 588
Evaluation Schedule page (Deploy Software Updates Wizard), software updates,
612
Exchange Online, 731
conditional access, 733
configuring conditional access policies, 734–735
end-user experience, 735–736
evaluating conditional access policies, 733
security groups, 733
modern authentication, 732–733
requirements for, 731–732
supported platforms/applications, 732
Exchange On-Premises
conditional access, 744–745
configuring conditional access policies, 748–749
end-user experience, 750
evaluating conditional access policies, 748
requirements for, 745–746
supported platforms, 745
Exchange Server connector, 746–747
user collections, 748
Exchange servers
account security (ConfigMgr), 968
Exchange Server connector, 746–747
Exclude rule (collections), 45
exclude/include rules, collections, 527–528
excluded folders, downloading files to, 958
execution attacks, 954
experience (end-user), application/package deployments, 555–556
expiring updates, 645
Exploit Guard, 760
exporting/importing
applications, 450–451
content, 543–545
metadata, 582
query results
between sites, 834–836
to text files, 834
.zip files (compressed), 545
ExpressRoute (Azure), 143
Extended WQL (WMI Query Language), limitations in ConfigMgr, 823–824
external communication, network configuration, 182
external devices, managing (architectural planning/design), 159
F
failovers
scan failures, 572
SUP failovers, 572–573
fallback sites, ConfigMgr 2012 client assignments, 34
feature updates (Windows 10 servicing), 613
federated identities, 656
files
downloading to excluded folders, 958
Prerequisite Files Downloader Tool, ConfigMgr installations, 225
replication
configuring, 185–187
DDR, 183
defined, 41–42
FSP, 183
network configuration, 183–187
Pulse Mode, 186
routes, 185–187, 538
Scheduler Thread, 183
secondary site data, 183
Sender Thread, 183–185
transfer rates, 186–187
shares (UNC) source, definition updates, 782–783
finding
clients (discovery), 332–333
Active Directory Forest Discovery, 333–334
Active Directory Group Discovery, 334, 335–336
Active Directory System Discovery, 337–338
Active Directory User Discovery, 336–337
Azure AD User Discovery, 343
Heartbeat Discovery, 339–340
Network Discovery, 340–341
views, ConfigMgr databases, 105–106
fingerprinting attacks, 954
firewall ports, troubleshooting, network configuration, 212–214
firewalls
online resources, 214
troubleshooting, online resources, 214
Windows Firewall, policies, 785
folders, SMSPKG folders, 51
Forefront Endpoint Protection 2010, ConfigMgr 2007, 33
forests
Active Directory Forest Discovery
client discovery, 333–334
client installations, 152
ConfigMgr configuration, 239
architectural planning/design, multi-forest considerations, 124–128
untrusted forests, 125, 573
Forrester Research, systems management, 10
FROM statements, SQL/T-SQL queries, 852
forums (public), online resources, 1044–1045
FSP (Fallback Status Point)
client installations, 247
ConfigMgr installations, 245–247
file replication, 183
site systems, 40, 133
full updates, collections, 528
full/simple schedules, architectural planning/design, 157–158
G
gateways, CMG and ConfigMgr Current Branch version 1610, 60
General Information tab properties (applications), 418–419
General page
Add Site System Roles Wizard, software updates, 578–579
Deploy Software Updates Wizard, software updates, 603–604, 610
Task Sequence Deploy Software Wizard, 908
General tab properties
collections, 529–530
DT, 421–422
programs, 504–506
generics, 757–758
global conditions (requirement rules), 48–49, 433
collections versus, 434
custom global conditions, 435–439
device global conditions, 434–435
user global conditions, 435
global expressions (requirement rules), 49
global roaming, SMS 2003, 31
Google Play Store, deeplinking application distributions, 483–484
GPO (Group Policy Object)
BITS and, 350
overriding ConfigMgr settings, 377
software updates, 591–594
Windows 10, 380
group policy
ADM templates, 321
BITS, 195, 196
client agent installations on Windows devices, 320–321
client installations, 149
online resources, 195
grouping queries, 808
GUID
manually determining product GUID, 388–389
ORCA MSI editing tool, 388
H
hardening (security)
PowerShell, 955–956
servers, 955
hardware
client agent requirements, 316
ConfigMgr installations, hardware requirements, 218–220
security, 955
selecting, 955
hardware inventories
classes, 832–834, 847–848
client notifications, 155
ConfigMgr databases, 104
device settings, clients, 355–357
WMI and, 94–98, 102
health
client agents, monitoring, 345–347
clients, 179, 279
Heartbeat Discovery, 43, 339–340
heuristics, 757–758
hiding software deployments, 508
hierarchical planning (architectural planning/design), 130–135
hierarchies
ConfigMgr
installations, 225–226, 247–248
migration, 267–268
Hierarchy Manager, 74
hierarchy of sites, 36
complexity of hierarchies, 37
ConfigMgr installations, configuring hierarchy settings, 247–248
depth diagram, 36–37
Odyssey hierarchy of sites, 36, 41–42
secondary sites, 37
high-assurance PKI (Public Key Infrastructure), 129
high-risk deployments, 552–555, 621–622
deployment rings, 622
upgrades, 622
HOSTS files, testing DNS resolution, 212
HTTPS (Hypertext Transfer Protocol Secure)
client communications, 129
network communication, 182
PKI certificates, client communication security, 208
Hybrid Diagnostics tool (ConfigMgr), troubleshooting, 679, 685
hybrid Intune, 664–665
extensions, removing, 674
Hybrid Diagnostics tool, troubleshooting, 685
licensing users, 664
MDM, 165
ConfigMgr Current Branch baseline version 1702, 63–64
replication, 75–76
mobile devices
enabling devices for management, 682
enrolling devices, Android devices, 683–684
enrolling devices, DEM, 697
enrolling devices, iOS devices, 687–688, 695–696
enrolling devices, Windows Phone devices, 689–692
supported platforms, 681–682
platforms, configuring, 672
service connection points, adding, 672–673
stand-alone Intune versus, 652–653
subscriptions
adding, 666–672
company logos, 670–671
removing, 674
troubleshooting, 674
directory synchronization, 678
Hybrid Diagnostics tool (ConfigMgr), 679, 685
logs, 676–677
Microsoft Support, 678–679
Microsoft TechNet Forum, 679
viewing Intune status, 677
viewing site/component status, 675–676
user collections, 666
user discovery, 665–666
Windows 10 computers, enrolling devices, 693–694
hybrid MDM (Mobile Device Management), 165
ConfigMgr Current Branch baseline version 1702, 63–64
replication, 75–76
I
I&O (Infrastructure and Operational) Maturity Model, 16, 25–26
IAD (Information Assurance Directorate), 935
IBCM (Internet-Based Client Management)
architectural planning/design, 159–161
client roaming behavior, 162
IBCM requirements, 161–162
Cloud DP versus, 162–163
CMG versus, 162–163
ConfigMgr 2012, 34
identity
identity-based attacks, 954
organization Apple ID, 685–686
IGD (Internet Gateway Device), BITS and, 195
IIS (Internet Information Services)
IIS 6.0 Resource Kit, 391–394
IIS Metabase, 391–394
role in ConfigMgr, 71
imaging
boot images, OSD and, 885–888
DISM, 876
imaging systems without wire-based NIC, 917
OS images
building/capturing reference OS images, 891
default OS images, 883
OSD and, 883
updating, 927–928
OSD imaging
building/capturing reference OS images, 891
installing existing image packages, 889–891
installing existing image packages to VHD, 892
Sysprep and, 875
WSIM, 875
Import Driver Wizard
Add Driver to Boot Images page, 882–883
Add Driver to Packages page, 881–882
Driver Details page, 880–881
Locate Driver page, 879–880
importing/exporting
applications, 450–451
clients into ConfigMgr (manually), 341–343
content, 543–545
metadata, 582
query results
between sites, 834–836
to text files, 834
.zip files (compressed), 545
inboxes (ConfigMgr), 73, 75
Include rule (collections), 45
include/exclude rules, collections, 527–528
incremental updates, collections, 528–529
install accounts versus access accounts, 581
Installer files, repackaging, 453
installing
AIK, ConfigMgr upgrades, 257
applications
administrator rights, 417
App-V applications, 466–467
installation wrappers, 455
uninstalling from Software Center, 487–488
App-V
applications, 466–467
clients, 466–467
Azure AD Connect, 661, 662–664
client agents
authentication on Azure AD-joined Windows devices, 322–323
group policy installations on Windows devices, 320–321
keychain access, 319
limiting enrollment certificates, 319
logon script installations on Windows devices, 320
manual installations on LINUX computers, 320
manual installations on Mac computers, 318–319
manual installations on UNIX computers, 320
manual installations on Windows computers, 317–318
SUP installations on Windows devices, 321
troubleshooting installations, 330–332
uninstalling client agents, 332
clients
Active Directory Group Discovery, 152
Active Directory System Discovery, 150–151, 153
Active Directory User Discovery, 152, 153
App-V clients, 466–467
AutoPilot installations, 150
EP clients, 786–788
group policy installations, 149
Intune MDM-managed devices, 150
logon/startup script installations, 149–150
manual installations, 149
Network Discovery, 151–152
push installations, 148
SUP installations, 148–149
upgrading installations, 150
ConfigMgr, 217
AD requirements, 221–222
CAS, 226, 227–230
cloud service connections, 242–245
ConfigMgr installations, 227
hardware requirements, 218–220
hierarchy installations, 225–226
initial configurations, 238–241
optional site installations, 245–248
OS requirements, 218–220
preinstallation tasks, 218
Prerequisite Checker, 222–225
Prerequisite Files Downloader Tool, 225
prerequisites, 219
primary site installations, 230–233
secondary site installations, 234–236
site installations, 225–226
splash screen, 222–223
SQL Server requirements, 220–221
stand-alone site installations, 225–226
troubleshooting site installations, 248–249
validating installations, 237–238
Windows requirements, 218–220
WSUS installations, 222
console (ConfigMgr)
installation prerequisites, 295
installing with ConfigMgr Setup Wizard, 295–296
unattended installations, 296–297
DP, 531–533
EPP, 767, 768–771
hierarchies, ConfigMgr migration, 267–268
image packages (existing)
to OSD, 889–891
to VHD, 892
SCUP, 633–635
server installation logs, 1009–1010
software
application deployments, 550–552
best practices, 453–454
complex software installations/ configurations with TS, 448
installation wrappers, 455
unattended installations, 454
updates, 627–629
SUP, 577–578, 587–588
WSUS, 575–577
PowerShell installations, 576
synchronizing updates, 577
integrity (CIA triad), defined, 934
Internet access, SUP without Internet access, 573
Internet resources, 1023
BITS, 194
blogs, 1043–1044
boundaries/boundary groups, 208
CIM, 83
ConfigMgr, 27
deprecated features, 68
reports, 1049–1050
resources, 1030–1043
updates, 67
version 1511, 54
cryptographic controls, 208
firewalls, 214
general resources, 1023–1030
group policy, 195
I&O Maturity Model, 26
Intune support, 679
live links, 1050
MOF, 24
public forums, 1044–1045
SML, 19
utilities, 1045–1047
WMI, 89
intersite communication, network configuration, 182–183
intrasite communication, network configuration, 179
Intune (MS), 651–652
admin portal, 654
applications, wrapping, 712
Azure, domain names, 654
co-management
defined, 1015
moving workloads from ConfigMgr to Intune, 1020–1021
ConfigMgr integration, 664–665
adding Intune subscriptions, 666–672
adding service connection points, 672–673
configuring platforms, 672
licensing users, 664
troubleshooting, 674–679
user collections, 666
user discovery, 665–666
desktop computer management, 665
device enrollment managers, 672
DT enrollment requirements, 412
EMS, 653
environment preparation, 656
AD synchronization, 660–664
CNAME records, 658
custom domains, 656–658
DNS records, 658
UPN, 658–659, 666
extensions, removing, 674
features of, 652
hybrid Intune. See Intune hybrid
Intune Service Dashboard, 678
management portals, 654–655
MDM
authorities, 669–670
ConfigMgr Current Branch baseline version 1511, 56
MDM-managed devices, client installations, 150
mobile devices
enabling devices for management, 682
enrolling devices, Android devices, 683–684
enrolling devices, DEM, 697
enrolling devices, iOS devices, 687–688, 695–696
enrolling devices, Windows Phone devices, 689–692
supported platforms, 681–682
policy synchronization, ConfigMgr Current Branch version 1610, 60
purchasing, 653
replication, 75–76
server browsers, troubleshooting, 666–667
stand-alone Intune, hybrid Intune versus, 652–653
storage, 655
subscriptions
company logos, 670–671
removing, 674
support
Microsoft Support, 678–679
Microsoft TechNet Forum, 679
trial offers, 375, 653, 655
troubleshooting
Hybrid Diagnostics tool (ConfigMgr), 679, 685
Microsoft Support, 678–679
Microsoft TechNet Forum, 679
server browsers, 666–667
user identities, 655
cloud identities, 655
federated identities, 656
synchronized identities, 656
Windows 10 computers, enrolling devices, 693–694
Intune hybrid, 664–665
extensions, removing, 674
Hybrid Diagnostics tool, troubleshooting, 685
licensing users, 664
MDM, 165
ConfigMgr Current Branch baseline version 1702, 63–64
replication, 75–76
mobile devices
enabling devices for management, 682
enrolling devices, Android devices, 683–684
enrolling devices, DEM, 697
enrolling devices, iOS devices, 687–688, 695–696
enrolling devices, Windows Phone devices, 689–692
supported platforms, 681–682
platforms, configuring, 672
service connection points, adding, 672–673
stand-alone Intune versus, 652–653
subscriptions
adding, 666–672
company logos, 670–671
removing, 674
troubleshooting, 674
directory synchronization, 678
Hybrid Diagnostics tool (ConfigMgr), 679, 685
logs, 676–677
Microsoft Support, 678–679
Microsoft TechNet Forum, 679
viewing Intune status, 677
viewing site/component status, 675–676
user collections, 666
user discovery, 665–666
Windows 10 computers, enrolling devices, 693–694
inventories
client communications, 178
data queries, 832–834
hardware inventories
client device settings, 355–357
client notifications, 155
Inventory Data Loader, 74
mobile devices, 707–709
signing, 129
software inventories
client device settings, 359–360
client notifications, 156
performance, 156–157
iOS
CI, 397–398
devices
Activation Lock Bypass, 701
Apple Configurator tool, enrolling devices, 696
DEP, 695–696
duplicate device names, 688
enabling devices for management, 685–687
encryption, 729
enrolling devices, 687–688, 695–696
organization Apple ID, 685–686
end user experience, 491
IP addresses
address ranges and boundaries/boundary groups, 206
multiple IP addresses, viewing, 210–211
performance and, 206
pinging, 211–212
iPad, sideloading application distributions, 480–481
iPhone, sideloading application distributions, 480–481
ISO 20000, 25
IT (Information Technology)
consumerization, architectural planning/design, 119–120
dependent teams, architectural planning/design, 121
IT service triangle, 14–15
life cycle, 21–23
organizations, maturity of, 25–26
requirements (architectural planning/design), 120
cloud consumption/adoption, 120
desktop OS supportability, 120
security, 120
service availability, 120
service delivery process, 121
ITIL (Information Technology Infrastructure Library), 19
defined, 19–20, 21
ISO 20000, 25
ITIL v2, 20
ITIL v3, 20
MOF and, 24
ITSM (Internet Technology Service Management), 19–20, 21
J-K
JEA (Just Enough Administration), 951
joins (queries), 829–831
keychain access, client agents, 319
Knox (Samsung), CI, 398
L
LAN (Local Area Network), WOL, 365
configuring, 366
magic packets, 365
prerequisites, 365
unicast WOL, 366–367
Wake-up proxies, 367
languages, modifying configuration (site maintenance), 992
Languages page (Add Site System Roles Wizard), software updates, 586–587
LAN Sender, 74
latency
bandwidth and, 181
network configuration, 181
layered security model (defense in depth), 936
LDAP paths, Active Directory discovery, 43
libraries
ADAL, 724
content libraries, 51, 548
backups, 980–981
redistributing content, 980
Content Library cleanup tool, ConfigMgr Current Branch baseline version
1702, 62
DSL, creating applications, 416
ITIL, 19
defined, 19–20, 21
ISO 20000, 25
ITIL v2, 20
ITIL v3, 20
MOF and, 24
Software Libraries, creating applications, 457–458
licensing
application volume license purchases
Apple VPP, 446
Windows Store for Business, 447
Enterprise Developer licenses (Apple), 480
Intune users, 664
software, asset data management, 12–13
links (live), online resources, 1050
LINUX
EP, 788
packages, creating, 518–521
List pane
ConfigMgr console, 287
Queries node, organizing, 807–808
lists (SUP), 572
live links, online resources, 1050
local context (Windows Defender), 761
Local System accounts, 498
Locate Driver page (Import Driver Wizard), 879–880
locks
Activation Lock Bypass, 701
remotely locking mobile devices, 700
logical operators (queries), 819, 820–821
logins
client installations, 149–150
login ID (alternate), Azure, 664
scripts, client agent installations on Windows devices, 320
logos (company), Intune subscriptions, 670–671
logs, 999, 1000
client logs, 1001–1005
console logs, 1001
CMG logs, 1012
CMTrace Log File Reader, ConfigMgr installations, 227
MP logs, 1001
Compliance Settings logs, 406
server logs, 1005
installation logs, 1009–1010
site server logs, 1005–1009
server-side logging levels, 1000–1001
site system logs, 1010–1012
troubleshooting
Intune hybrid, 676–677
OSD, 921–925
update logs, 1009–1010
validating ConfigMgr installations, 238
viewing, 999–1000
WMI Trace Logging, 87–89
M
MAC addresses (dynamic), manually importing clients into ConfigMgr, 342–343
Mac OS
client agents
keychain access, 319
limiting enrollment certificates, 319
manual installations on LINUX computers, 320
manual installations on Mac computers, 318–319
DT, 488–489
EP, 788
Mac OS X, CI, 384–387, 397–398
machine accounts, assigning rights to, 964
magic packets, 365
maintenance
modes, 190
sites, 986, 991
configuring built-in tasks, 986
Modify SQL Server configuration, 992
modifying language configuration, 992
optimizing SQL Server, 986–987, 988–989
resetting sites with no configuration changes, 992
SMS provider configuration, 992
maintenance windows, 530–531
malware
antimalware
AMSI, 761–762
antimalware as a service, 756–757
antirootkits, 758
Application Control, 760
Application Guard, 760
BM, 758–759
capabilities of, 756
Device Guard, 760
diagnostic scanning, 758
DSS, 758–759
ELAM, 759–760
Exploit Guard, 760
generics, 757–758
heuristics, 757–758
Measured Boot, 760
Microsoft’s approach to, 763
policies, 783–785
Windows 10 antimalware, 760–762
Windows antimalware, 759–760
Windows Server 2016 antimalware, 760–762
digital signatures and, 933
slack space, 762
MAM (Mobile Application Management). See also Intune
mobile devices, 710–712
policies, 440, 712
managing
AMT, ConfigMgr Current Branch baseline version 1511, 54
applications, 8, 440
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr Current Branch baseline version 1706, 65
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1606, 59
ConfigMgr Current Branch version 1710, 66
dependencies, 49, 447–448
deployment types, 47–48
management policies, 440–443
requirement rules, 48–49
revision histories, 449–450
asset data, 12–13
clients
agent requirements, 316–317
approving clients, 323–324
client discovery, 332–343
client settings, 347–362
client upgrades (automatic), 328–330
coexisting ConfigMgr solutions, 270
ConfigMgr configuration, 238
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1610, 61
ConfigMgr Current Branch version 1710, 66
installing client agents, 317–323
MAP and client agent deployments, 316
Office 365 client management dashboard, 61
pushing clients, 324–328
security, 937
uninstalling client agents, 332
cloud/ConfigMgr connections, 243–244
co-management
choosing where to start, 1016–1017
configuring, 1017
defined, 1015
enabling devices, 1018–1019
monitoring client-side co-management, 1021
moving workloads from ConfigMgr to Intune, 1020–1021
need for, 1016
prerequisites, 1017–1018
company devices, 695
ConfigMgr cloud connections, 243–244
in-console alerts, 301
content
ConfigMgr 2012 R2, 35
content libraries, 51
defined, 50
DP, 50
DP groups, 50
SMSPKG folders, 51
desktop computer management with Intune, 665
external devices, architectural planning/design, 159
Intune, management portals, 654–655
MDM, ConfigMgr 2012 R2, 35
modern management, 1013–1014
MP
ConfigMgr 2012, 34
site systems, 40
Office 365, 8
OOB management, ConfigMgr 2007, 32
patches
Patch Tuesday, 583
security, 938
SUP, 578
profile management, ConfigMgr 2012 R2, 35
remote management
WinRM, 77
WMI, 84
risk, defined, 934–935
servers, architectural planning/design, 122
site servers, site server/site system planning, 139
site systems, site server/site system planning, 139
software updates, 51
SQL Server Management Studio, ConfigMgr databases, 102–103
systems, 14
asset data, 12–13
automation, 11, 13
cloud computing, 13
ConfigMgr, 26
defined, 14–15
distributed enterprises and, 10–11
DSI, 18
evolution of, 9, 10
Forrester Research, 10
I&O Maturity Model, 16, 25–26
IT service triangle, 14–15
methodologies, 14
Microsoft strategies for, 16
model-based management, 16
security, 12
shift and drift (configuration), 11–12
web services standards, 16
TQM, 24
Windows source management, 423–426
WMI, 83
remote management, 84
security, 84–88
WMI Control, 83–85
manual client installations, 149
manual updates, collections, 528
MAP (Microsoft Assessment and Planning) toolkit, client agent deployments,
316
maturity of IT organizations, 25–26
MDM (Mobile Device Management), 8. See also Intune
AD certificate services, 128
architectural planning/design, 163–164
ConfigMgr 2012 R2, 35
ConfigMgr Current Branch baseline version 1511, 56
ConfigMgr Current Branch baseline version 1702, 63–64
ConfigMgr Current Branch version 1606, 58
ConfigMgr Current Branch version 1710, 67
hybrid MDM, 165
ConfigMgr Current Branch baseline version 1702, 63–64
replication, 75–76
Intune and
authorities, 669–670
client installations, 150
ConfigMgr Current Branch baseline version 1511, 56
MSI files, 55
on-premise MDM, 718
advantages/disadvantages of, 718
capabilities of, 718
client configuration, 720
configuring, 719–720
Windows Installer and, 55, 463–464
Measured Boot, 760
media (prestaged), ConfigMgr 2007, 33
Media Type page (Create Task Sequence Media Wizard), 913–914
meeting availability requirements
architectural planning/design, 145–146
DP, 145
MP, 145
site databases, 145
SMS providers, 145–146
SUP, 145
membership delays (collections), primary sites, 526
Membership Rules tab properties (collections), 530
memory (application pool) and WSUS, 631
messages
client communications, 179
state messaging device settings, 361–362
metadata, importing/exporting, 582
Metered Internet Connection device settings, 357
metering software, 53, 156, 360–361
methodologies
defined, 14
distributed enterprises, 11
Microsoft TechNet Forum, Intune support, 679
Microsoft terminology, renaming, 614–615
migrating to
ConfigMgr, 256, 263, 970
client migration, 278–280
coexisting solutions, 269, 270
configuring, 271–273
dependency configuration, 270
hierarchy installation/configuration, 267–268
migrating by features/dependencies, 270
migration cleanuP, 277–278
migration reports, 278
object migration jobs, 273–275
objects modified after migration jobs, 273, 275–277
performing a migration, 270–278
planning migrations, 264–267
premigration activities, 267–269
shared DP, 277
site preparation/validation, 268–269
troubleshooting migrations, 280
upgrades versus migration, 263–264
virtual servers, 264
State Migration Point role (site systems), 40
USMT, 876
misdirection attacks, 960
mitigating risk, 935, 936
MITM (Man-In-The-Middle) attacks, 960
MMPC (Microsoft Malware Protection Center), updates, 780. See also WDSI
Mobile Device Enrollment Proxy Point role (site systems), 40
mobile devices
Android devices
enabling devices for management, 682–683
enrolling devices, 683–684
temporary passwords, 700
applications
deploying, 709–710
MAM, 710–712
certificate profiles, 714–715
collections, creating, 713–714
company devices, managing, 695
company resource access workspace, 714
ConfigMgr, supported platforms, 681–682
configuring, 701
creating baselines, 701–705
creating CI, 701–705
custom CI, 705–707
DT, 470
email profiles, 715–716
EMS, 653
enabling devices, 682
Android devices, 682–683
iOS devices, 682–683
Windows Phone devices, 688–689
enrolling devices
Android devices, 683–684
DEM, 697
iOS devices, 687–688, 695–696
Windows Phone devices, 689–692
Intune, supported platforms, 681–682
Intune hybrid, supported platforms, 681–682
inventorying, 707–709
iOS devices
Activation Lock Bypass, 701
duplicate device names, 688
enabling devices for management, 682–683
enrolling devices, 687–688, 695–696
organization Apple ID, 685–686
locks
Activation Lock Bypass, 701
remotely locking mobile devices, 700
mobile devices, policy refresh intervals, 707
on-premise MDM, 718
advantages/disadvantages of, 718
capabilities of, 718
client configuration, 720
configuring, 719–720
resetting passcodes, 700
retiring devices, 698–699
security, 697
VPN profiles, 716–717
Wi-Fi profiles, 717–718
Windows computers as, 692–695
Windows Phone devices
enabling devices for management, 688–689
enrolling devices, 689–692
wiping devices, 698–699
model-based systems management, 16
modern authentication, 725
ADAL, 724
Exchange Online, 732–733
features of, 724
Office 365 services, 725
Office applications, 724
Skype for Business Online, 742
states of, 725
turning on (order of), 742
modern management, 1013–1014
MOF (Microsoft Operations Framework), 19, 22–23
ConfigMgr support, 22–24
defined, 21
ISO 20000, 25
IT life cycle, 21–23
ITIL and, 24
MOF v4, 21–23
online resources, 24
Six Sigma and, 24–25
TQM, 24
monitoring, 8, 970
applications, 458
architectural planning/design, 122
BM, 758–759
clients
automatic upgrades, 330
client-side co-management, 1021
conditional access, 750–752
ConfigMgr, 993–994
deployments, 565–566
DP, 538–539
configuration status, 542
content status, 539–541
DP group status, 541
EP, 788
OpsMgr, 970, 995–996
OSD, 919–921
site replication, 994–995
software update process, 629–630
Monitoring workspace (ConfigMgr console)
monitoring, 291–293
Queries node, 806, 807–808
MP (Management Point) role (site systems), 40
MP (Management Point)
ConfigMgr 2012, 34
logs, 1001
meeting availability requirements, 145
MP lists, 193
network traffic, 193
site capacity planning, architectural planning/design, 141
testing, troubleshooting network configurations, 214–215
MSI (Microsoft Installer) files
ORCA MSI editing tool, 388
packages, creating, 498, 499
repackaging, 453
Windows Installer and MDM, 55
multicasting, OSD site system roles, 901–903
N
names
UNC, file shares and definition updates, 782–783
vendor names, 648
namespaces
ConfigMgr client namespaces, 93–94
WMI
auditing, 86–87
ConfigMgr client namespaces, 93–94
WMI object model, 82
NAP (Network Access Protection), 40, 939
native mode (security), ConfigMgr 2007, 32
Navigation pane (ConfigMgr console), 286, 287, 298–299
Network Discovery
client discovery, 340–341
client installations, 151–152
networks
bandwidth, configuring for content distribution, 537–538
communication security, 960–961
client-to-server communication security, 961
server-to-server communication security, 962
site-to-site communication security, 962
ConfigMgr configuration
AI, 182
bandwidth, 181
boundaries/boundary groups, 205–208
BranchCache, 197–200
client communication security, 208
client locations, 174–175, 178
communication from clients, 178–179
communication to clients, 177–178
data flows, 177
designing client communications, 190–192
downloading software updates, 182
DP, 176–177
enrollment proxy points, 175
external communication, 182
file replication, 183–187
intersite communication, 182–183
intrasite communication, 179
latency, 181
Peer Cache, 200–204
ports and client communications, 190–192
RPC communication, 180–181
SCP, 182
secondary sites, 176–177
server placement, 175–176
service location requests, 192–196
SMB communication, 181
SQL Server communication, 179–180
SQL Server replication, 187–190
SUP, 182
testing DNS resolution, 211–212
testing DP, 214–215
testing MP, 214–215
troubleshooting, 209
troubleshooting, basic network connectivity, 209–211
troubleshooting, congested/slow network links, 214
troubleshooting, firewall ports, 212–214
troubleshooting, routers, 212–214
troubleshooting, SPN, 215–216
ConfigMgr utilization, 173
congested/slow network links, troubleshooting, 214
latency, 181
NLB, SUP, 572
projects, storing, 858
topologies
architectural planning/design, 121
site server/site system planning, 138
VPN profiles
applications, 482
deploying, 716–717
mobile devices, 716–717
WAN
BranchCache and, 53, 197–200
Peer Cache and, 53, 60, 62, 200–204
new computer scenarios (OSD), 873–874
new Software Center, 410, 560–562
NIC (Network Interface Card), imaging systems without wire-based NIC, 917
NLB (Network Load Balancing), SUP, 572
notifications
clients
Hardware Inventory settings, 155
notifications, 154–155
Remote Tools settings, 155
Software Deployment settings, 156
Software Inventory settings, 156
software updates, 570, 624–626
null values (queries), 817
O
object migration jobs, ConfigMgr migration, 273–277
Odyssey hierarchy of sites, 36, 41–42
OEM (Original Equipment Manufacturer) images, OSD deployment scenarios,
874
Office (MS)
applications, modern authentication, 724
deploying, 523
Office 365
client management dashboard, ConfigMgr Current Branch version 1610, 61
Intune management, 654
managing, 8
services, modern authentication, 725
old Software Center, 410, 556–557
OMA-URI (Custom CI example), 705, 706–707
OMS Connectors, ConfigMgr cloud connections, 244
on-demand actions (EP), 798–800
on-premise MDM (Mobile Device Management), 718
advantages/disadvantages of, 718
capabilities of, 718
client configuration, 720
configuring, 719–720
online resources, 1023
App Details website, software packaging/deployment, 518
BITS, 194
blogs, 1043–1044
boundaries/boundary groups, 208
CIM, 83
ConfigMgr, 27
Azure and ConfigMgr migration, 264
deprecated features, 68
reports, 1049–1050
resources, 1030–1043
troubleshooting, 249
updates, 67
version 1511, 54
cryptographic controls, 208
firewalls, 214
general resources, 1023–1030
group policy, 195
I&O Maturity Model, 26
Intune support, 679
live links, 1050
MOF, 24
prerequisite information, ConfigMgr installations, 219
public forums, 1044–1045
SML (Service Modeling Language), 19
utilities, 1045–1047
WMI, 89
OOB (Out-Of-Band) management, ConfigMgr 2007, 32
operations (queries), 829–831
operators
queries
logical operators, 819, 820–821
precedence order, 821
relational operators, 819–820
SQL operators, 852–853
T-SQL operators, 852–853
OpsMgr (Operations Manager), 970, 995–996
OpsMgr Maintenance Mode tab (programs), 514–515
optimization (WAN), 53
ORCA MSI editing tool, 388
ORDER BY statements, SQL/T-SQL queries, 852
organization Apple ID, 685–686
organizational structure (architectural planning/design), 121
OS (Operating System)
architectural planning/design, 121
client agent support, 316
ConfigMgr installations, OS requirements, 218–220
deploying
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch baseline version 1702, 62–63
ConfigMgr Current Branch baseline version 1706, 65
ConfigMgr Current Branch version 1606, 59
images
default OS images, 883
OSD and, 883
updating, 927–928
Operating System Upgrade Task Sequence, 55
software provisioning, 11
updating, images, 927–928
upgrade packages, OSD and, 884–885
upgrading from upgrade packages, 892–893
OSD (Operating System Deployment), 871
advantages of, 871–872
boot images, 885–888, 921
ConfigMgr 2007, 32
ConfigMgr 2012, 35
ConfigMgr 2012 R2, 35
ConfigMgr Current Branch version 1710, 67
console (ConfigMgr) and, 878
deploying
bootable media, 915–917
capture media, 917
content distribution, 905–907
prestaged media, 918–919
stand-alone media, 913–915
TS, 907–912
TS media, 912–913
unattended deployments, 919
deployment scenarios, 873
new computer scenarios, 873–874
OEM images, 874
refresh scenarios, 874
replace scenarios, 874
upgrade scenarios, 873, 874
drivers/driver packages, 878–879
identifying packages, 882
Import Driver Wizard, Add Driver to Boot Images page, 882–883
Import Driver Wizard, Add Driver to Packages page, 881–882
Import Driver Wizard, Driver Details page, 880–881
Import Driver Wizard, Locate Driver page, 879–880
monitoring, 919–921
new capabilities of, 872–873
OS images, 883, 927–928
OS upgrade packages, 884–885
planning, 876–878
security, 963, 966
site system roles, 897
DP, 897–898
multicasting, 901–903
PXE points, 898–901
State Migration points, 40, 903–905
Sysprep imaging, 875
testing, 877
troubleshooting, 919
boot image command-line support, 921
logs, 921–925
monitoring OSD, 919–921
PXE boot process, 925–927
TS, 888–889, 894
building/capturing reference OS images, 891
capturing reference systems, 891
content distribution, 905–907
creating new TS, 893
deploying TS, 907–912
high-risk deployments, 909
installing existing image packages, 889–891
installing existing image packages to VHD, 892
tasks, 894–896
upgrading OS from upgrade packages, 892–893
variables, 896–897
updating OS images, 927–928
USMT, 876
Windows ADK, 875–876
WnPE Peer Cache, 55
overlapping
boundaries, 206
maintenance windows, 531
overriding ConfigMgr settings with GPO, 377
overwriting backups, 973
P
packages
7-Zip packages
Advanced tab properties, 512
creating, 496–497
Environment tab properties, 510
OpsMgr Maintenance Mode tab, 515
Requirements tab properties, 508
Windows Installer tab properties, 513
App Details website, 518
applications versus, 493–494
creating, 515
7-Zip packages, 496–497
automatically lading content to stores, 498
from definition files, 495
for LINUX systems, 518–521
with MSI files, 498, 499
with Package and Program Wizard, 515–518
for UNIX systems, 518–521
defined, 47, 409, 494
definition files, 494–495
deploying, 548–549
administrative rights, 509–510
Application Catalog, 558–560
end-user experience, 555–556
high-risk deployments, 552–555
monitoring deployments, 565–566
new Software Center, 560–562
old Software Center, 556–557
required deployments, 562–565
simulating deployments, 555
troubleshooting deployments, 565–566
deployment packages, software updates, 599–601
MSI files, creating packages, 498, 499
properties of, 499
Content Locations tab properties, 503
Data Access tab properties, 500–501
Data Source tab properties, 499–500
Distribution Settings tab properties, 501–502
Reporting tab properties, 502–503
provisioning packages, Windows 10, 695
sharing, duplicating content on DP, 501
types of, 495
passwords
resetting, 700
synchronization, 656
temporary passwords, Android devices, 700
patch management
Patch Tuesday, 583
security, 938
SUP, 578
testing patches, software updates, 570
Peer Cache
client settings, 350
DP, content management, 146–147
DP content distribution, 542–543
network configuration, 200
configuring, 201–203
deploying content to clients, 203–204
requirements for, 200–201
WAN optimization, 53
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr Current Branch version 1610, 60
peer content sources, downloading contents from, 204
performance
ConfigMgr
bandwidth, 181
latency, 181
ConfigMgr 2007, 33
IP address ranges and, 206
site servers, site server/site system planning, 139–140
site systems, site server/site system planning, 139–140
software inventories, 156–157
permissions, console (ConfigMgr)
DCOM permissions, 308–309
SMS Provider permissions, 308
WMI permissions, 309–310, 312–313
personalizing console (ConfigMgr), 298–299
PFX (Personal Information Exchange) certificates, 714
physical security, 955
pinging, IP addresses, 211–212
PKI (Public Key Infrastructure)
AD certificate services, architectural planning/design, 128–130
certificates
costs of issuing, 130
HTTPS, client communication security, 208
ConfigMgr 2007, 32
high-assurance PKI, 129
low-assurance, issuing certificates, 130
requests, manually reviewing, 130
scalability, 130
planning
ConfigMgr migration, 264
what is migrated, 264–266
what is not migrated, 266–267
MAP, client agent deployments, 316
security
administration, 937–941
hierarchy of security, 936–937
overview of, 932–934
software updates
capacity planning, 571
SUP, 571–574
platforms
Exchange On-Premises supported platforms, 745
Exchange Online supported platforms, 732
SharePoint Online supported platforms, 737–738
policies
antimalware policies, 783–785
client communication, 177–178
client policy device settings, 350–351
viewing, 178
compliance policies (ConfigMgr), 725, 726
creating, 727–729
deploying, 730–731
editing, 729–730
supported compliance settings, 726
conditional access policies (ConfigMgr), 725
ConfigMgr policies
compliance policies, 725, 726–731
conditional access policies, 725
distribution, security, 962–963
MAM policies, deploying, 712
policy refresh intervals, mobile devices, 707
software updates, 570
Windows Firewall policies, 785
polling schedules, Active Directory discovery, 43
PortQry, troubleshooting ports, 214
ports
changing on site system roles, 192
client communications, 190–192
custom ports
architectural planning/design, 124
client communications, 190–191
firewall ports, troubleshooting, 212–214
troubleshooting
firewall ports, 212–214
PortQry, 214
power management, 368–369
Power Management device settings, clients, 357
Power Management tab properties (collections), 530
PowerShell
applications, creating, 457
as a weapon, 933
ConfigMgr and, 306–307
custom detection methods, creating, 432
EP alerts, automating, 796
hardening (security), 955–956
RBA and, 941
scripts
configuring, 457
deploying, 457
prerequisites, 457
smart quotes, 433
WMI and, 100–101
WSUS installations, 576
preinstallation tasks, ConfigMgr installations, 218
on-premise MDM (Mobile Device Management), 718
advantages/disadvantages of, 718
capabilities of, 718
client configuration, 720
configuring, 719–720
pre-release features
ConfigMgr Current Branch, 200
ConfigMgr Current Branch version 1606, 58
prerequisites
Azure AD Connect prerequisites, 660–661
co-management, 1017–1018
ConfigMgr
installations, 219, 222–225
upgrades, 260–262
console (ConfigMgr) installations, 295
EP, 763
PowerShell scripts, 457
Prerequisite Checker
ConfigMgr installations, 222–225
invoking in setup routines, 223
stand-alone Prerequisite Checker, 223–225
Prerequisite Files Downloader Tool, ConfigMgr installations, 225
SCEP certificates, 715
sites, download requirements, 985
Windows 10 servicing, 616–617
Windows Defender ATP, 802–803
WOL, 365
pre-shared keys, Wi-Fi profiles, 718
prestaged content, 147, 545–548
prestaged media
ConfigMgr 2007, 33
OSD deployments, 918–919
previewing, reports/dashboards, 863
primary keys, defined, 987–988
primary sites, 38
collections
collection membership delays, 526
replicating across primary sites, 524
complexity of, 38
ConfigMgr installations, 132, 230–233
deployments, replicating across primary sites, 524
scalability, 38
primary users, defined, 460
Products page (Add Site System Roles Wizard), software updates, 585–586
profile management, ConfigMgr 2012 R2, 35
programs
defined, 494
definition files, 494–495
properties of
Advanced tab properties, 511–512
defining properties, 503–504
Environment tab properties, 508–510
General tab properties, 504–506
OpsMgr Maintenance Mode tab, 514–515
Requirements tab properties, 506–508
Windows Installer tab properties, 513
Programs tab properties (DT), 423
projects
deploying entire projects, 868
storing, recommended location, 858
prompted values (queries), 817–818
provisioning
packages, Windows 10, 695
resources, automation, 13
Proxy and Account Settings page (Add Site System Roles Wizard), software
updates, 581
Proxy page (Add Site System Roles Wizard), software updates, 579
proxy points (enrollment), network configuration, 175
proxy server account security, 967–968
public forums (online resources), 1044–1045
publishing reports/dashboards, 863–864
deploying entire projects, 868
manually adding reports/dashboards to SSRS, 864–866
from SSDT to SSRS website, 866–868
Pulse Mode, file replication, 186
push installations (clients), 148
pushing clients, 324
blocking/unblocking clients, 328
manually pushing client agents, 328
Windows devices
automatic site-wide client pushing on Windows devices, 326–327
enabling client pushing, 325–326
PXE (Preboot Execution Environment)
boot process, OSD and, 925–927
OSD, PXE boot process, 925–927
PXE points
excluding systems from PXE booting, 900
OSD site system roles, 898–901
WDS and, 899
Q
quality
TQM, 24
updates (Windows 10 servicing), 613
queries, 805, 816
advanced queries, 822–823
converting WQL to SQL, 828
date/time functions in WQL queries, 824–825
examples of, 825–828
Extended WQL limitations in ConfigMgr, 823–824
attributes, creating queries, 811–812
chassis types, 818–819
collections
creating, 805
creating based on query results, 837
prompted values, 817–818
query rules, 45, 526–527
ConfigMgr Query Builder, creating queries, 813–814
ConfigMgr tables, 828
creating queries, 809–810
attributes, 811–812
ConfigMgr Query Builder, 813–814
object types, 810–811
values, 814–816
WMI queries, 816
with WQL, 810
criterion types, filtering queries with, 817
defined, 46
discovery data queries, 831–832
duplicate named queries, 836
filtering with criterion types, 817
grouping, 808
inventory data queries, 832–834
joins, 829–831
logical operators, 819, 820–821
null values, 817
object types, creating queries, 810–811
operations, 829–831
operators
logical operators, 819, 820–821
precedence order, 821
relational operators, 819–820
prompted values, 817–818
Queries node, 806, 807–808
query results, creating collections based on query results, 837
query rules, collections, 45, 526–527
relational operators, 819–820
relationships, 829–831
results, 834
exporting to text files, 834
importing/exporting between sites, 834–836
viewing, 808–809
simple values, 817
SQL queries, 851
ORDER BY statements, 852
SELECT statements, 851
SQL operators, 852–853
FROM statements, 852
WHERE statements, 852
status message queries
creating, 839–841
in-depth analysis with, 837–838
viewing, 838–839
subselect queries, 818
support for, 846
T-SQL queries, 850–851
ORDER BY statements, 852
SELECT statements, 851
FROM statements, 852
T-SQL operators, 852–853
WHERE statements, 852
values
chassis types, 818–819
creating queries, 814–816
manually entering, 838
null values, 817
prompted values, 817–818
simple values, 817
specifying/selecting, 821–822
subselect queries, 818
wildcards, 821–822
viewing, 808–809
WHERE clauses, 817
wildcards, 821–822
WMI queries, creating, 816
WQL, 46, 78, 810
quotes (smart), 433
R
ransomware, 933
RBA (Role-Based Administration), 939, 949
ConfigMgr 2012, 34
ConfigMgr 2012 R2, 35
PowerShell and, 941
RCM (Replication Configuration Monitor), 188–189
recoverability management, architectural planning/design, 168, 169
recovery, 969
backups
content libraries, 980–981
source files, 981
SSRS, 981
sites, 982
maintenance, 986–989
prerequisite download requirements, 985
recovering failed sites, 983–986
site database recovery options, 983
site server recovery options, 982–983
verifying recovery, 986
redistributing content in content libraries, 980
redundancy, DP and content management, 146
reference OS images, building/capturing in OSD, 891
reference systems, capturing, 891
References tab properties (applications), 420
refresh scenarios (OSD), 874
refreshing, DP content, 536
regional roaming, SMS 2003, 31
Registry, ADM templates, 321
regulatory compliance, 371–372
architectural planning/design, 119
automation, 11
distributed enterprises, 11
relational operators (queries), 819–820
relationships (queries), 829–831
release management, Current Branch, 166–168
remediation, Compliance Settings, 404
Remote Assistance, 364
Remote Connection Profiles (Compliance Settings), 374, 377–378
Remote Control
auditing, 364
client computer administration, 363–364
ConfigMgr Current Branch version 1606, 60
Remote Assistance, 364
Remote DesktoP, 364
Remote DesktoP, 364
remote management
WinRM, 77
WMI, 84
Remote Tools
client device settings, 155, 357–359
Permitted Viewer accounts, security, 968
remotely locking mobile devices, 700
removing
DP content, 536
Intune
extensions, 674
subscriptions, 674
repackaging, Microsoft Installer files, 453
replace scenarios (OSD), 874
replication
ConfigMgr
content, 110
databases, 107–108
databases, 107–110
DRS, 72–73, 188
site active mode, 190
site initialization mode, 189, 190
file replication
DDR, 183
defined, 41–42
FSP, 183
network configuration, 183–187
Pulse Mode, 186
rate limit configuration, 186–187
route configuration, 185
routes, distributing content, 538
Scheduler Thread, 183
secondary site data, 183
Sender Thread, 183–185
transfer rates, 186–187
hybrid MDM, 75–76
Intune, 75–76
monitoring sites, 994–995
RCM, 74, 188–189
replication groups, 189
replication patterns, 189
SQL Server replication
DRS, 188–190
global data, 187
network configuration, 187–190
RCM, 188–189
replication groups, 189
replication patterns, 189
site data, 187–188
SSB, 188
SUG, 598
Reporting Services Point role (site systems), 40
Reporting tab properties (packages), 502–503
reports, 843
administrative security reports, 947–948
advanced reporting concepts, 869
best practices, 870
compliance reports, 405–406
ConfigMgr data, 846
ConfigMgr data, SQL views
collection data classes, 850
discovery classes, 846
inventory classes, 847–848
software metering inventory classes, 848–849
software update inventory classes, 848
state message classes, 849
status message classes, 849
ConfigMgr reports, 1049–1050
ConfigMgr RP, 843–845
creating, 853, 855, 858
adding tables to reports, 861–863
consistency in reports, 854–855
creating data sources, 858–859
creating datasets, 859–860
Report Builder and, 855–856
report series, 853–854
SSDT-BI and, 855–858
Toolbox menu (SSDT-BI), 860–861
CSR, ConfigMgr 2007, 32
EP reports
integrating data with other systems, 793–794
types of, 792–793
functionality, ConfigMgr, 238
migration reports, ConfigMgr migration, 278
previewing, 863
publishing, 863–864
deploying entire projects, 868
manually adding reports to SSRS, 864–866
from SSDT to SSRS website, 866–868
RBA reporting, ConfigMgr 2012 R2, 35
report series, 853–854
software updates, 627–629
SSRS, 53, 843–844, 981
ConfigMgr 2007, 32
ConfigMgr 2012, 35
T-SQL queries, 850–851
ORDER BY statements, 852
SELECT statements, 851
FROM statements, 852
T-SQL operators, 852–853
WHERE statements, 852
required deployments, 562–565
requirement rules (applications), 48, 411
DT, 459–460
global conditions, 48–49, 433
collections versus, 434
creating custom global conditions, 435–439
device global conditions, 434–435
user global conditions, 435
global expressions, 49
software, uninstalling, 411
Requirements tab properties
DT, 426
programs, 506–508
resetting
passwords, 700
workspaces (ConfigMgr console), 299
resolution, time to, 372
Resource Explorer, 364–365
resource provisioning, automation, 13
restarting
Computer Restart settings, client notifications, 154–155, 354, 426
restorability management, architectural planning/design, 168, 169
retiring
applications, 453
mobile devices, 698–699
Return Codes tab properties (DT), 426
revision histories
applications, 449–450
relatable DP content, 450
ribbon bar (ConfigMgr console), 287, 288–289
risk
acceptance, defined, 935
avoidance, defined, 935
defined, 934
managing, defined, 934–935
mitigation, 935, 936
roaming
IBCM client roaming behavior, 162
SMS 2003, 31
role-based administration
console (ConfigMgr), 297
software updates, 571
rootkits, antirootkits, 758
routers, troubleshooting network configurations, 212–214
RPC communication, network configuration, 180–181
RPO (Recovery Point Objective), 169–170
RSP (Reporting Services Point) role (site systems), 134
RTO (Recovery Time Objective), architectural planning/design, 169–170
rules
applications, requirement rules, 48, 411, 412–413, 459–460
DT, 459–460
global conditions, 48–49, 433–439
global expressions, 49
uninstalling, 411
Automatic Deployment Rule Wizard, deploying software updates, 609–610
Deployment Settings page, 611
Evaluation Schedule page, 612
General page, 610
Software Update page, 611–612
CI compliance rules, 394–395
collections, 45–46
direct (static rules), 525–526
Direct rule, 45
exclude rules, 45, 527–528
include rules, 45, 527–528
query rules, 526–527
Membership Rules tab properties, 530
DT requirement rules, 412–413, 459–460
global conditions (requirement rules), 48–49, 433
collections versus, 434
custom global conditions, 435–439
device global conditions, 434–435
user global conditions, 435
global expressions (requirement rules), 49
requirement rules (applications), 48, 411
DT, 459–460
global conditions, 48–49, 433–439
global expressions, 49
software, uninstalling, 411
SCUP rules, 649
software
automatic deployment rules, 609–612
requirement rules, 412–413, 459–460
uninstalling, 411
SUP, uninstalling, requirement rules, 411
Supercedence Rules page (Add Site System Roles Wizard), software
updates, configuring, 584
S
Samsung Knox CIs (Configuration Items), 398
SANS institute, security threats, 10–11
scalability
ConfigMgr, 70, 144
PKI, 130
primary sites, 38
site servers, planning, 139
site systems, planning, 139
scan catalogs, 590–591
scanning
clients, troubleshooting, 631–632
diagnostic scanning, 758
failures and failovers, 572
SCEP (System Center Endpoint Protection), 755, 760–761
antimalware, 757–758
as a service, 756–757
capabilities of, 756
policies, 783–785
antirootkits, 758
BM, 758–759
certificates, 714, 715
definition updates, 765, 771–772
architecture of, 772
ConfigMgr software update management source, 772
definition rebase process, 773
file shares (UNC) source, 782–783
MMPC updates, 780
WSUS and Microsoft Update sources, 780–782
deploying, 767–771
diagnostic scanning, 758
DSS, 758–759
EP, alerts
automating, 795–796
collection alerts, 797–798
types of, 795–796
EPP and, 767
generics, 757–758
heuristics, 757–758
WDO, 762
Windows 10, 766
Scheduler Thread, file replication, 183
scheduling
ConfigMgr updates, 252–253
software updates, 570
Scheduling page
Deploy Software Updates Wizard, software updates, 605
Task Sequence Deploy Software Wizard, 910–911
schemas
ConfigMgr and AD
changing schemas, 111
extending schemas, 112–113
schema extensions, 111–112
Schema Admins grouP, 113
scope
scope of delivery, architectural planning/design, 122
software updates, 570
SCP (Service Connection Point)
network configuration, 182
SCP role (site systems), 40, 133, 54
scripts
DT, 486–487
EP actions, 800–801
startup scripts, client installations, 149–150
SCUP (System Center Update Publisher), 633
catalogs, 641–642
configuring, 636–639
installing, 633–635
publications, 642–644
rules, 649
updating, 644–647, 649
SDK (Software Development Kit), Application Model Kit, 456
SDM (System Definition Model) versus SML, 18
search bar (ConfigMgr console), 288
secondary sites, 38–39, 132
ConfigMgr installations, 234–236
DP versus, 176–177
file replication, 183
hierarchy of sites, 37
network configuration, secondary sites, 176–177
SUP, 573–574
security, 931
account security (ConfigMgr)
database connection accounts, 965
infrastructure support, 964–965
machine accounts, 964
OSD, 966
software updates, 966
AD, 936
access, 949–950
AD discovery, 967
AD publishing, 967
administration
AD level access, 949–950
administrative security reports, 947–948
auditing ConfigMgr actions, 951–953
ConfigMgr access, 949
ConfigMgr solutions, 938–939
database access, 951
JEA, 951
RBA, 939, 941, 949
security roles, 942–943, 946–947
security scopes, 943–947
site system local administration, 950
user management, 940–941
workstations, 937
analytics (cloud-based), 801
APT, 934
ASD, 935
attack surfaces, reducing, 955
automation, 11
certificates
CRL, checking, 959–960
profiles, 938
CIA triad, defined, 934
CIS, 935
clients
communications, client-to-server security, 961
communications, network configuration, 208
management, 937
compliance settings, 938
conditional access, 938
ConfigMgr, 174, 938, 938–939
access, 949
account security, 963–968
AD discovery, 967
AD publishing, 967
auditing ConfigMgr actions, 951–953
certificate profiles, 938
compliance settings, 938
conditional access, 938
content security, 962–963
cryptographic controls, 959, 960
EP, 938
infrastructures, 954
NAP, 939
OSD, 963, 966
patch management, 938
policy distribution, 962–963
software distributions, 962–963
systems management, 26
console (ConfigMgr)
DCOM permissions, 308–309
SMS provider permissions, 308
WMI permissions, 309–310, 312–313
controls, bypassing with encryption, 961
CRL, checking, 959–960
cryptography
attacks, 933
controls, 959–960
data collection, 932
databases
accessing, 951
connection accounts, 965
site databases, 958–959
defense in depth (layered security model), 936
digital signatures and malware, 933
diagnostic usage data, 932
distributed enterprises, 10–11
DoS attacks, 954, 960
eavesdropping (sniffer-based) attacks, 960
encryption, bypassing security controls, 961
EP, 938
execution attacks, 954
fingerprinting attacks, 954
groups
Exchange Online, 733
SharePoint Online, 739
Skype for Business Online, 743
hardware, selecting, 955
hierarchy of, 936–937
IAD, 935
identity-based attacks, 954
IT security, architectural planning/design, 120
layered security model (defense in depth), 936
malware and digital signatures, 933
misdirection attacks, 960
MITM attacks, 960
mobile devices, 697
Activation Lock Bypass, 701
remotely locking mobile devices, 700
resetting passcodes, 700
retiring devices, 698–699
wiping devices, 698–699
NAP, 939
native mode (security), ConfigMgr 2007, 32
network communication, 960–961
client-to-server communication security, 961
server-to-server communication security, 962
site-to-site communication security, 962
OSD, 963, 966
patch management, 938
physical security, 955
planning
administration, 937–941
hierarchy of security, 936–937
overview of, 932–934
primer, 934–936
PowerShell
as a weapon, 933
hardening PowerShell, 955–956
primer, 934–936
proxy server accounts, 967–968
ransomware, 933
RBA, 939, 941, 949
regulatory compliance, 11
risk
acceptance, 935
avoidance, 935
defined, 934
management, defined, 934–935
mitigation, 935, 936
roles
associating with security scopes, 946–947
built-in roles, 941–942
custom roles, 942–943
SANS institute, security threats, 10–11
scope 943–946
associating with security roles, 946–947
collections, 943
servers
client-to-server communication security, 961
hardening servers, 955
placement of, 937
planning site servers, 138–139
server-to-server communication security, 962
site systems, 954, 959
planning site systems, 138–139
role assignments, 936–937
sites
databases, 958–959
selecting, 936
site-to-site communication security, 962
slash and burn attacks, 933
software, 956–958
system software security, 955
updates, 966
spoofing attacks, 960
SQL Server, SQL Server communication, 180
Symantec, 2016 Internet Security Threat Report, 10–11
system software security, 955
systems management, ConfigMgr, 26
threats, 10–11, 934
updates
automation, 11
WSUS, 967
vulnerabilities, defined, 934
WMI, 84–88
WSUS, 967
Security page (Create Task Sequence Media Wizard), 914
Security tab properties (collections), 530
SEDO (Serialized Editing of Distributed Objects), 90–91
SELECT statements, SQL/T-SQL queries, 851
self-signed certificates and WSUS, 635
Sender Thread, file replication, 183–185
senders
concurrent threads, defined, 40–41
defined, 40
server browsers (Intune), troubleshooting, 666–667
servers
architectural planning/design, server infrastructures, 121
client-to-server communication security, 961
Component Server role (site systems), 39
dedicated servers and Azure AD installations, 662
deploying, automation, 11
DNS
client agent assignments, 345
records, Intune environment preparation, 658
service location requests, 193
testing DNS resolution, 211–212
Exchange servers, account security (ConfigMgr), 968
hardening (security), 955
installation logs, 1009–1010
managing, architectural planning/design, 122
network configuration
enrollment proxy points, 175
server placement, 175–176
placement, security, 937
security
client-to-server communication security, 961
hardening servers, 955
server-to-server communication security, 962
Server Cleanup Wizard (WSUS), 989–990
server logs, 1005
installation logs, 1009–1010
site server logs, 1005–1009
server-to-server communication security, 962
Site Database Server role (site systems), 39
Site Database tier (ConfigMgr), 70
Site Server role (site systems), 39
Site Server tier (ConfigMgr), 70
site servers
SMSExec (SMS Executive), 73
Windows Server 2016 as site server, 634
site system servers, 39
SMB, 72
SMTP server connection accounts, security, 968
SQL Server, role in ConfigMgr Current Branch, 71
virtual servers, ConfigMgr migration, 264
Web Server tier (ConfigMgr), 70
Windows Server 2016 as site server, 634
service connection point, ConfigMgr/Intune integration, 672–673
service packs
ConfigMgr 2007, 32–33
SMS 2.0, 30
SMS 2003, 31–32
services
antimalware as a service, 756–757
availability/delivery, architectural planning/design, 119, 120
BITS, 193–194
bandwidth, 195
BITS 2.5, 194
BITS 3.0, 194
BITS 4.0, 194
content transfers, 52
IGD statistics, 195
online resources, 194
versions of, 194
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr service location, 174
DRS, database replication, 108–110
DSS, 758–759
IIS, role in ConfigMgr Current Branch, 71
IT service delivery process, architectural planning/design, 121
modern authentication, Office 365 services, 725
Office 365 services, modern authentication, 725
SCP, network communication, 182
service location requests
AD, 192
DNS, 193
network configuration, 192–193
WINS, 193
SMS Agent Host (ccmexec.exe), 74
SPN, troubleshooting network configurations, 215–216
Updates and Servicing node, ConfigMgr Current Branch version 1606, 58
Windows as a Service, 55
WINS, service location requests, 193
WMI services, accessing, 77
servicing
Current Branch, architectural planning/design, 164–166
servicing models, 7
servicing plans, 620–621, 622–623
Windows 10 servicing, 164–165, 620–621, 622–623
Setup Wizard (ConfigMgr), console (ConfigMgr) installations, 295–296
shared DP (Distribution Point)
accessing, 277
ConfigMgr migration, 277
shared infrastructures, ConfigMgr migration, 270
shared WSUS databases, 574
SharePoint Online, conditional access, 737
configuring conditional access policies, 739–740
default state, 738
end-user experience, 740
evaluating conditional access policies, 738–739
requirements for, 737–738
security groups, 739
supported platforms, 737–738
sharing packages, duplicating content on DP, 501
shift and drift (configuration), 11–12
sideloading, application distribution, 471–472
Android devices, 478–479
Apple devices, 480–481
Silverlight-based applications for Windows phone devices, 477–478
Windows 8 applications, 472–477
Windows 8.1 applications, 472–477
Windows 10 applications, 472–477
signed client data, client communication security, 208
Silverlight (MS)
sideloading distributions for Windows phone distributions, 477–478
queries for devices without Silverlight installed, 826–827
Simple Certificate Enrollment Protocol, 129, 714
simple schedules, client settings, 348, 373
simple values (queries), 817
simple/full schedules, architectural planning/design, 157–158
simulating deployments, 555
Site Component Manager, 75
Site Database Server role (site systems), 39
Site Database tier (ConfigMgr), 70
site databases, site capacity planning (architectural planning/design), 142
Site Server role (site systems), 39
Site Server tier (ConfigMgr), 70
site servers
architectural planning/design, 138–141
availability, 139
managing, 139
performance, 139–140
scalability, 139
security, 138–139
site capacity planning, 141
disaster recovery, 982–983
logs, 1005–1009
SMSExec (SMS Executive), 73
Windows Server 2016 as site server, 634
site systems
administration (local), 950
Application Catalog Web Service Point role, 133
Application Catalog Website Point role, 133
architectural planning/design, 138–141
availability, 139
managing, 139
performance, 139–140
scalability, 139
Asset Intelligence Synchronization Point role, 132
Data Warehouse Service Point role, 133
Endpoint Protection Point role, 132
FSP role, 133
OSD site system roles, 897
DP, 897–898
multicasting, 901–903
PXE points, 898–901
State Migration points, 903–905
roles, 39–40
RSP role, 134
SCP role, 133
security, 138–139, 954, 959
servers, 39
Site System role, 39
SUP, 133
System Health Validator Point role, 133
sites
active source sites, ConfigMgr migration, 271–272
automatic site-wide client pushing on Windows devices, 326–327
capacity planning, architectural planning/design, 141–142
CAS, 37–38, 131
complexity of, 38
scalability, 38
child sites, ConfigMgr migration, 272–273
ConfigMgr installations, 245–247
site installations, 225–226
troubleshooting site installations, 248–249
ConfigMgr migration
active source sites, 271–272
preparing old sites for migration, 268
source/destination sites, 268–269
validating old sites are supported, 268
ConfigMgr sites, 131
primary sites, 132
reusing site codes, 131
secondary sites, 132
system roles, 132–134
console (ConfigMgr), site connections, 298
databases
meeting availability requirements, 145
security, 958–959
defined, 36
disaster recovery, 982
prerequisite download requirements, 985
recovering failed sites, 983–986
site database recovery options, 983
site server recovery options, 982–983
verifying recovery, 986
DP properties on site systems, 538
failed sites, recovering, 983–986
FSP
client installations, 247
ConfigMgr installations, 245–247
hierarchy of, 36
complexity of hierarchies, 37
ConfigMgr installations, 247–248
depth diagram, 36–37
Odyssey hierarchy of sites, 36
secondary sites, 37
importing/exporting query results between sites, 834–836
Intune hybrid, viewing site/component status, 675–676
maintenance, 986, 991
configuring built-in tasks, 986
maintenance modes, 190
Modify SQL Server configuration, 992
modifying language configuration, 992
optimizing SQL Server, 986–987, 988–989
resetting sites with no configuration changes, 992
SMS provider configuration, 992
prestaged site content, DP, content management, 147
primary sites, 38
collection membership delays, 526
complexity of, 38
ConfigMgr installations, 230–233
replicating collections across primary sites, 524
replicating deployments across primary sites, 524
scalability, 38
replication
collections across primary sites, 524
deployments across primary sites, 524
monitoring, 994–995
secondary sites, 38–39
ConfigMgr installations, 234–236
DP versus, 176–177
file replication, 183
hierarchy of sites, 37
network configuration, 176–177
SUP, 573–574
security
site databases, 958–959
site selection, 936
system role assignments, 936–937
selecting, security, 936
site assignment boundary groups, 240–241
site system logs, 1010–1012
site-to-site communication, 129, 962
source site accounts, security, 968
source/destination sites, ConfigMgr migration, 268–269
system role assignments, 936–937
troubleshooting site installations, ConfigMgr installations, 248–249
Six Sigma
ISO 20000, 25
MOF, 24–25
Skype for Business Online, conditional access, 741
modern authentication, 742
policies
configuring, 743–744
evaluating, 743
requirements for, 741–742
security groups, 743
supported platforms, 742
SLAs (Service Level Agreements), architectural planning/design, 121
slack space, 762
slash and burn attacks, 933
slow/congested network links, troubleshooting, 214
smart quotes, 433
SMB (Server Message Block), 72, 181
SML (Service Modeling Language)
IT operations and, 19
online resources, 19
SDM versus, 18
SMS (Systems Management Server). See also ConfigMgr 2007
ConfigMgr development, 29–30
SMS 1.x, 30
SMS 2.0, 30
SMS 2003, 30–32
site maintenance, SMS provider configuration, 992
SMS 1.x, ConfigMgr development, 30
SMS 2.0
ConfigMgr development, 30
service packs, 30
updates, 30
SMS 2003
AD (Active Directory), 31
ConfigMgr development, 30–32
global roaming, 31
regional roaming, 31
service packs, 31–32
updates, 31–32
SMS Admins grouP, 308
SMS servers, site server/site system planning, 140–141
SMS Agent Host (ccmexec.exe), 74
SMS Provider role (site systems), 39
SMS providers, 89
architecture of, 89–90
console (ConfigMgr) deployments, 294
meeting availability requirements, 145–146
permissions, console (ConfigMgr), 308
SEDO, 90–91
XML, 92–93
SMS writer, ConfigMgr maintenance task backups, 974
SMSExec (SMS Executive), 73
ConfigMgr Update, 74
Discovery Data Manager, 74
Hierarchy Manager, 74
Inventory Data Loader, 74
LAN Sender, 74
RCM, 74
Site Component Manager, 75
SMSPKG folders, 51
SMTP (Simple Mail Transfer Protocol), server connection account security, 968
sniffer-based (eavesdropping) attacks, 960
SOAP (Simple Object Access Protocol), 16
software, 956–958
client agent requirements, 316–317
ConfigMgr, software distribution security, 962–963
configuring, complex software installations/configurations with TS, 448
deploying
App Details website, 518
hiding software deployments, 508
Task Sequence Deploy Software Wizard, 907–912
DSL, creating applications, 416
installing
application deployments, 550–552
best practices, 453–454
complex software installations/ configurations with TS, 448
installation wrappers, 455
unattended installations, 454
inventories
classes, 832–834, 848–849
performance, 156–157
licensing, asset data management, 12–13
metering, 53, 156, 848–849
network configuration, downloading software updates, 182
OS and software provisioning, 11
packages
App Details website, 518
applications versus, 493–494
defined, 494
provisioning and OS, 11
SDK, Application Model Kit, 456
Software Deployment settings, client notifications, 156, 359
Software Inventory settings, client notifications, 156, 359–360
Software Libraries, creating applications, 457–458
Software Metering device settings, clients, 360–361
SUG
names, 610–611
replication, 598
software updates, 597–598
SUP, 40
client agent installations on Windows devices, 321
client installations, 148–149
failovers, 572–573
IIS configuration, 142
installing, 577–578, 587–588
lists, 572
meeting availability requirements, 145
network configuration, 182
NLB, 572
patch management, 578
secondary sites, 573–574
site capacity planning, architectural planning/design, 142
Software Update Point page (Add Site System Roles Wizard), 580–581
software updates, 571, 630–631
untrusted forests, 573
verifying installations, 587–588
without Internet access, 573
WSUS, 573, 574, 580–581
system software security, 955
uninstalling, requirement rules, 411
updates, 156–157, 567, 626–627
account security (ConfigMgr), 967
client device settings, 361
client experience, 623
compliance, 570, 623–624
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch baseline version 1702, 62–63
ConfigMgr Current Branch baseline version 1706, 66
ConfigMgr Current Branch new features, 567–569
ConfigMgr software update management source, 772
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1606, 59
ConfigMgr Current Branch version 1610, 61
configuring, 577–594
coordinating updates, 570
creating, 594–598
deploying, 598, 599–612
design process, 569–571
downloading, 631
GPO, 591–594
installing, 627–629
managing, 51
monitoring update process, 629–630
network communication, 182
notifications, 570, 624–626
patch testing, 570
planning, 569–571, 571–577
policies, 570
reporting status, 627–629
role-based administration, 571
scan catalogs, 590–591
scheduling updates, 570
scope, 570
Software Center, 626–627
software update inventory classes, 848
Software Update page (Deploy Software Updates Wizard), 611–612
Software Update Point page (Add Site System Roles Wizard), 580–581
SUG, names, 610–611
SUP, 630–631
support, 570
synchronizing, 595, 597
troubleshooting, 629, 632–633
Windows Embedded systems, 607
WSUS, 55, 630–631
WUfB, 55
Software Center
ConfigMgr 2012, 34
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch version 1610, 61
ConfigMgr Current Branch version 1710, 67
device settings, 359
new Software Center, 410, 560–562
old Software Center, 410, 556–557
software updates, 626–627
uninstalling applications, 487–488
Software Library (ConfigMgr console), 290–291
source files, backups, 981
source/destination sites
account security, 968
ConfigMgr migration, 268–269
SPN (Service Principal Name), troubleshooting network configurations,
215–216
spoofing attacks, 960
SQL (Structured Query Language)
ConfigMgr data views
collection data classes, 850
discovery classes, 846
inventory classes, 847–848
software metering inventory classes, 848–849
software update inventory classes, 848
state message classes, 849
status message classes, 849
converting WQL to, 828
database backups, 970, 974–975
backup folder structure, 979–980
CD.Latest folders, 975–976
maintenance plans, 976–979
operators, 852–853
queries, 851
ORDER BY statements, 852
SELECT statements, 851
SQL operators, 852–853
FROM statements, 852
WHERE statements, 852
T-SQL queries, 850–851
ORDER BY statements, 852
SELECT statements, 851
FROM statements, 852
WHERE statements, 852
SQL Server
backups, 171
communication
network configuration, 179–180
security issues, 180
ConfigMgr installations, SQL Server requirements, 220–221
ConfigMgr upgrades
SQL Server support, 257
SQL Server test upgrades, 258
domain accounts (AD), 221
Enterprise edition, 220–221
optimizing for site maintenance, 986–987, 988–989
replication
DRS, 188, 189–190
global data, 187
network configuration, 187–190
RCM, 188–189
replication groups, 189
replication patterns, 189
site data, 187–188
SSB, 188
role in ConfigMgr Current Branch, 71
security, SQL Server communication, 180
site maintenance, Modify SQL Server configuration, 992
SQL Server Management Studio, 850, 851–852
SSB, 188
SSDT-BI, creating reports/dashboards, 855–858
SSRS, backups, 981
SQL Server Agent node, CD.Latest folder backups, 975–976
SQL Server AlwaysOn availability groups, ConfigMgr Current Branch version
1602, 56
SQL Server Management Studio, ConfigMgr databases, 102–103
SSB (SQL Server Service Broker), 188
SSDT-BI (SQL Server Data Tools-Business Intelligence)
reports/dashboards, creating, 855–858
adding tables to reports/dashboards, 861–863
creating data sources, 858–859
creating datasets, 859–860
previewing reports/dashboards, 863
publishing to SSRS website, 866–868
Toolbox menu, 860–861
SSRS (SQL Server Reporting Services), 53, 843–844
backups, 981
ConfigMgr 2007, 32
ConfigMgr 2012, 35
Reporting Services Point role (site systems), 40
reports/dashboards
deploying entire projects, 868
manually adding to SSRS, 864–866
from SSDT to SSRS website, 866–868
Report Builder, 855–856
SSDT-BI, 855–858
Stand-Alone CD/DVD page (Create Task Sequence Media Wizard), 914
stand-alone Intune, hybrid Intune versus, 652–653
stand-alone media, OSD deployments, 913–915
stand-alone Prerequisite Checker, 223–225
startup scripts, client installations, 149–150
state messages, 623
classes (SQL views), 849
client device settings, 361–362
ConfigMgr databases, 106, 107
State Migration points
OSD site system roles, 903–905
State Migration Point role (site systems), 40
USMT, 905
static (direct) rules, collections, 525–526
status messages
classes (SQL views), 849
ConfigMgr databases, 106
queries
creating, 839–841
in-depth analysis with, 837–838
viewing, 838–839
storage
enterprise storage, architectural planning/design, 122
Intune, 655
project storage, recommended locations, 858
subnets, architectural planning/design, 136–137
subscribing to
in-console alerts, 302–303
Intune, 666–672
company logos, 670–671
removing subscriptions, 674
subselect queries, 818
SUG (Software Update Group)
names, 610–611
replication, 598
software updates
creating, 597–598
deploying, 598
SUP (Software Update Point), 133
client agent installations on Windows devices, 321
client installations, 148–149
failovers, 572–573
IIS configuration, 142
installing, 577–578, 587–588
lists, 572
meeting availability requirements, 145
network configuration, 182
NLB, 572
patch management, 578
secondary sites, 573–574
site capacity planning, architectural planning/design, 142
Software Update Point page (Add Site System Roles Wizard), 580–581
software updates, 571, 630–631
untrusted forests, 573
verifying installations, 587–588
without Internet access, 573
WSUS, 573, 574, 580–581
Supercedence Rules page (Add Site System Roles Wizard), software updates,
584
Supercedence tab properties (applications), 427
superceding applications, 452
supernets, architectural planning/design, 136–137
support
ConfigMgr console connection support, site server/site system planning, 140
software updates, 570
Windows 10, 7
Symantec, 2016 Internet Security Threat Report, 10–11
sync failed error messages, 588
synchronization
AD synchronization, 660–664
AI, network communication, 182
applications from Windows Store for Business, 492
Asset Intelligence Synchronization Point role (site systems), 40
defined, 582
identities, 656
Intune hybrid directories, 678
passwords, 656
policy synchronization, Intune, ConfigMgr Current Branch version 1610, 60
software updates, 595, 597
Synchronization Schedule page (Add Site System Roles Wizard), software
updates, 583
Synchronization Source page (Add Site System Roles Wizard), software
updates, 582–583
updates, WSUS installations, 577
SyspreP, OSD imaging, 875
System Center Operations Manager. See OpsMgr
System Discovery (AD), 127
System Health Validator Point role (site systems), 40, 133
System Role Selection page (Add Site System Roles Wizard), software updates,
579–580
system roles, security, 936–937
systems management, 14
asset data, managing, 12–13
automation, 11, 13
cloud computing, 13
ConfigMgr, 26
defined, 14–15
distributed enterprises and, 10–11
DSI, 18
evolution of, 9, 10
Forrester Research, 10
I&O Maturity Model, 16, 25–26
IT service triangle, 14–15
methodologies, 14
Microsoft strategies for, 16
model-based management, 16
security, lack of security/control, 12
shift and drift (configuration), 11–12
web services standards, 16
T
tables
adding to reports/dashboards, 861–863
ConfigMgr
databases, 102
queries and, 828
TargetServerURL value, publishing reports from SSDT to SSRS website,
867–868
temporary passwords, Android devices, 700
testing
applications, 454–456
Current Branch, architectural planning/design, 166–168
DNS resolution, 211–212
DP, troubleshooting network configurations, 214–215
MP, troubleshooting network configurations, 214–215
OSD testing, 877
patch testing, software updates, 570
text files, exporting query results to, 834
threads (concurrent), defined, 40–41
threats
defined, 934
threat intelligence, 801
time to resolution, 372
Toolbox menu (SSDT-BI), creating reports, 860–861
topologies (network), site server/site system planning, 138
TQM (Total Quality Management), 24
Trace Logging (WMI), 87–89
tracking compliance, 405–406
transfer rates, file replication, 186–187
transferring content via BITS, 52
trial offers, Intune, 653, 655
troubleshooting
authentication required errors, downloading contents from peer content
sources, 204
client agent installations, 330–332
client scanning, 631–632
Compliance Settings, settings management, 406–407
conditional access, 750, 752–753
ConfigMgr
migrations, 280
online resources, 249
console (ConfigMgr), 311
common problems, 313
connectivity issues, 313
console logging, 311–313
content distribution, 548
deployments, 565–566
firewall ports, network configuration, 212–214
firewalls, online resources, 214
Hybrid Diagnostics tool, 685
Intune, server browsers, 666–667
Intune hybrid, 674
directory synchronization, 678
Hybrid Diagnostics tool (ConfigMgr), 679, 685
logs, 676–677
Microsoft Support, 678–679
Microsoft TechNet Forum, 679
viewing Intune status, 677
viewing site/component status, 675–676
network configurations, 209
basic network connectivity, 209–211
congested/slow network links, 214
firewall ports, 212–214
routers, 212–214
SPN, 215–216
testing DNS resolution, 211–212
testing DP, 214–215
testing MP, 214–215
OSD, 919
boot image command-line support, 921
logs, 921–925
monitoring OSD, 919–921
PXE boot process, 925–927
peer content sources, downloading contents from, 204
ports
firewall ports, 212–214
PortQry, 214
routers, network configuration, 212–214
server browsers (Intune), 666–667
site installations, 248–249
software updates, 629, 632–633
sync failed error messages, 588
update deployments, 631–632
WMI, troubleshooting client agent installations, 331
trusted CA certificates, 714
trusted root keys, 129
TS (Task Sequence)
application best practices, 456
complex software installations/ configurations, 448
Create Task Sequence Media Wizard
Customization page, 915
Distribution Points page, 914–915
Media Type page, 913–914
Security page, 914
Stand-Alone CD/DVD page, 914
creating, 893
deploying
high-risk deployments, 909
OSD and, 907–912
OSD and, 888–889, 894
bootable media deployments, 915–917
building/capturing reference OS images, 891
capture media deployments, 917
content distribution, 905–907
creating new TS, 893
deploying TS, 907–912
installing existing image packages, 889–891
installing existing image packages to VHD, 892
prestaged media deployments, 918–919
stand-alone media deployments, 913–915
tasks, 894–896
TS media deployments, 912–913
upgrading OS from upgrade packages, 892–893
variables, 896–897
reference systems, capturing, 891
tasks, 894–896
Task Sequence Deploy Software Wizard, 907–908
Alerts page, 912
Deployment Settings page, 909–910
Distribution Points page, 912
General page, 908
Scheduling page, 910–911
User Experience page, 911
variables, 896–897
T-SQL (Transact-SQL) queries, 850–851
EP alerts, automating, 797
operators, 852–853
ORDER BY statements, 852
SELECT statements, 851
FROM statements, 852
WHERE statements, 852
U
UEFI (Unified Extensible Firmware Interface), BIOS-to-UEFI conversions, 61
unattended installations, console (ConfigMgr), 296–297
unattended OSD deployments, 919
unattended software installations, 454
UNC (Universal Naming Convention) file shares, definition updates, 782–783
unicast WOL (Wake on LAN), 366–367
uninstalling
applications
deploying uninstall applications, 549–550
from Software Center, 487–488
client agents, 332
software, requirement rules, 411
UNIX
client agents, manual installations on UNIX computers, 320
packages, creating, 518–521
untrusted forests, SUP, 573
updates
architectural planning/design
continuous updates, 164
Current Branch, 164–166
bundle updates, 649
collections, 528
cascading updates, 529
full updates, 528
incremental updates, 528–529
manual updates, 528
ConfigMgr, 16, 249–252
CD.Latest files, 253
online resources, 67
scheduling updates, 252–253
ConfigMgr 2007, 32–33
ConfigMgr Current Branch baseline version 1702, 62
ConfigMgr Update, 74
in-console updates
ConfigMgr Current Branch baseline version 1511, 54
ConfigMgr Current Branch version 1610, 60
continuous updates, architectural planning/design, 164
Current Branch, architectural planning/design, 164–166
custom update signing, 129
definition updates, 765, 771–772
architecture of, 772
file shares (UNC) source, 782–783
MMPC updates, 780
WSUS and Microsoft Update sources, 780–782
deploying, troubleshooting, 631–632
downloading, 631
DP
ConfigMgr Current Branch version 1606, 58
content, 537
dynamic collection updates, ConfigMgr 2007, 33
expiring updates, 645
feature updates (Windows 10 servicing), 613
logs, 1009–1010
Microsoft Update sources and WSUS, 780–782
MMPC updates, 780
OS images, 927–928
quality updates (Windows 10 servicing), 613
SCUP, 633
catalogs, 641–642
configuring, 636–639
custom updates, 645–647, 649
installing, 633–635
publications, 642–644
rules, 649
updating, 644–645
security, automation, 11
SMS 2.0, 30
SMS 2003, 31–32
software, 156–157, 567, 626–627
account security (ConfigMgr), 967
client device settings, 361
client experience, 623
compliance, 570, 623–624
ConfigMgr Current Branch baseline version 1511, 55
ConfigMgr Current Branch baseline version 1702, 62–63
ConfigMgr Current Branch baseline version 1706, 66
ConfigMgr Current Branch new features, 567–569
ConfigMgr software update management source, 772
ConfigMgr Current Branch version 1602, 57
ConfigMgr Current Branch version 1606, 59
ConfigMgr Current Branch version 1610, 61
configuring, 577–594
coordinating updates, 570
creating, 594, 595–598
deploying, 598, 599–612
design process, 569–571
downloading, 631
GPO, 591–594
installing, 627–629
managing, 51
monitoring update process, 629–630
network communication, 182
notifications, 570, 624–626
patch testing, 570
planning, 569–577
policies, 570
reporting status, 627–629
role-based administration, 571
scan catalogs, 590–591
scheduling updates, 570
scope, 570
Software Center, 626–627
software update inventory classes, 848
Software Update page (Deploy Software Updates Wizard), 611–612
Software Update Point page (Add Site System Roles Wizard), 580–581
SUG, names, 610–611
SUP, 630–631
support, 570
synchronizing, 595, 597
troubleshooting, 629, 632–633
Windows Embedded systems, 607
WSUS, 55, 630–631
WUfB, 55
SUP, 133
client agent installations on Windows devices, 321
client installations, 148–149
failovers, 572–573
IIS configuration, 142
installing, 577–578, 587–588
lists, 572
meeting availability requirements, 145
network configuration, 182
NLB, 572
patch management, 578
secondary sites, 573–574
site capacity planning, architectural planning/design, 142
Software Update Point page (Add Site System Roles Wizard), 580–581
software updates, 571, 630–631
untrusted forests, 573
verifying installations, 587–588
without Internet access, 573
WSUS, 573, 574, 580–581
synchronizing, WSUS installations, 577
Updates and Servicing node, ConfigMgr Current Branch version 1606, 58
WSUS, 967, 989
database backups, 989
DSI and, 17
re-indexing databases, 990–991
Server Cleanup Wizard, 989–990
Software Update Point role (site systems), 40
WUfB, ConfigMgr Current Branch baseline version 1511, 55
upgrades
classifying, 585
clients
automatic upgrades, 328–330
client installations, 150
ConfigMgr upgrades, 256–257
AIK, 257
baseline support, 257
finding supported overlaP, 257–258
migration versus upgrades, 263–264
performing an upgrade, 258–262
preparing for an upgrade, 257–258
prerequisites, 260–262
SQL Server support, 257
SQL Server test upgrades, 258
Windows OS support, 257
high-risk deployments, 622
Operating System Upgrade Task Sequence, 55
OS upgrade packages, and OSD, 884–885, 892–893
OSD upgrades
OS upgrade packages, 884–885, 892
scenarios, 873, 874
Upgrade Readiness, ConfigMgr cloud connections, 244
UPN (User Principal Name)
ADModify Tool, 660
Intune environment preparation, 658–659, 666
verifying, 666
URL (Uniform Resource Locator), 1023
blogs, 1043–1044
ConfigMgr reports, 1049–1050
ConfigMgr resources, 1030–1043
general resources, 1023–1030
live links, 1050
public forums, 1044–1045
TargetServerURL value, publishing reports from SSDT to SSRS website,
867–868
utilities, 1045–1047
Usage Data Collection, ConfigMgr Current Branch baseline version 1511, 54
user accounts (ConfigMgr Migration), 271
user collections, Exchange On-Premises, 748
User Data and Profiles (Compliance Settings), 374, 377
User Discovery (AD), 127
user experience, architectural planning/design, 119
User Experience page
Deploy Software Updates Wizard, software updates, 606
Task Sequence Deploy Software Wizard, 911
users
Active Directory User Discovery
client discovery, 336–337
client installations, 152, 153
administrative security, 940–941
Android end user experience, 490–491
architectural planning/design, defining user experience, 158–159
Azure user identities, 655
cloud identities, 655
federated identities, 656
login ID (alternate), 664
synchronized identities, 656
device affinity, 413–415
end-user experience, application/package deployments, 555–556
global conditions, 435
Intune
user collections, 666
user discovery, 665–666
iOS end user experience, 490–491
primary users, defined, 460
uninstalling applications from Software Center, 487–488
User and Device Affinity device settings, clients, 362
USMT (User State Migration Tool), 876, 905
utilities, online resources, 1045–1047
UWP (Universal Windows Platform), 55
V
validation
ConfigMgr
installations, 237–238
migration, validating old sites are supported, 268
DP content, 536
pre/post-change validation, Compliance Settings, 372
VBScript
custom detection methods, creating, 432–433
smart quotes, 433
VDM (Virus Definition Module), definition updates
architecture of, 772
definition rebase process, 773
vendor names, 648
verifying
custom domains, Intune environment preparation, 656–658
prestaged content, 547
site recovery, 986
SUP installations, 587–588
UPN, 666
Windows Installer detection methods, 487–488
VHD (Virtual Hard Disk), installing existing image packages to VHD, 892
viewing
in-console alerts, 300
Intune hybrid site/component status, 675–676
Intune status, 677
logs, 999–1000
multiple IP addresses, 210–211
policies (client communication), 178
queries, 808–809
query results, 808–809
status message queries, 838–839
WMI, 94
views (ConfigMgr databases), 102, 105–106
virtual servers, ConfigMgr migration, 264
virtualization, 121
App-V
ConfigMgr 2007, 32
installing applications, 466–467
installing clients, 466–467
virtual environments, 468–470
App-V DT, 464–465
App-V 4.6 DT, creating, 465
App-V 5 DT, creating, 467–468
viruses, VDM definition updates
architecture of, 772
definition rebase process, 773
Visual Studio and DSI, 17
VPN (Virtual Private Network) profiles
applications, 482
deploying, 716–717
mobile devices, 716–717
vulnerabilities
defined, 934
Vulnerability Assessments, 376
W
Wake-up proxies (WOL), 367
WAN (Wide Area Network)
BranchCache
network configuration, 197–200
optimization, 53
Peer Cache
network configuration, 200–204
optimization, 53, 60, 62
WDO (Windows Defender Offline), 762–763
WDS (Windows Deployment Services), PXE points, 899
WDSI (Windows Defender Security Intelligence), 763–764
web applications, creating, 490–491
web resources, 1023
App Details website, software packaging/deployment, 518
BITS, 194
blogs, 1043–1044
boundaries/boundary groups, 208
CIM, 83
ConfigMgr, 27
Azure and ConfigMgr migration, 264
deprecated features, 68
reports, 1049–1050
resources, 1030–1043
troubleshooting, 249
updates, 67
version 1511, 54
cryptographic controls, 208
firewalls, 214
general resources, 1023–1030
group policy, 195
I&O Maturity Model, 26
Intune support, 679
live links, 1050
MOF, 24
prerequisite information, ConfigMgr installations, 219
public forums, 1044–1045
SML (Service Modeling Language), 19
utilities, 1045–1047
WMI, 89
Web Server tier (ConfigMgr), 70
web services standards, systems management, 16
websites, role of IIS in ConfigMgr, 71
WHERE clauses (queries), 817
WHERE statements, SQL/T-SQL queries, 852
Wi-Fi profiles
mobile devices, 717–718
pre-shared keys, 718
wildcards (queries), 821–822
Windows 8, sideloading application distributions, 472–477
Windows 8.1
CI, 396
sideloading application distributions, 472–477
Windows 10
antimalware, 760–762
Azure AD connections, 690–692
CI, 380–384, 396
client agents
authentication on Azure AD-joined Windows devices, 322–323
group policy installations on Windows devices, 320–321
keychain access, 319
limiting enrollment certificates, 319
logon script installations on Windows devices, 320
manual installations on Windows computers, 317–318
SUP installations on Windows devices, 321
co-management, enabling devices, 1018–1019
ConfigMgr
installations, Windows requirements, 218–220
upgrades, 257
ConfigMgr Current Branch version 1710, client management, 66
devices, enrolling, 693–694
GPO, 380
modern management, 1013–1014
provisioning packages, 695
SCEP, 766
servicing, 612–613
ConfigMgr Current Branch version 1602, 57
dashboard, 617–619
deployment rings, 614, 615
prerequisites, 616–617
servicing branches, 613–614
servicing plans, 620–621, 622–623
updates, 613- 613
Windows 10 Servicing Model, 164–165
sideloading application distributions, 472–477
support, ConfigMgr, 7
UWP, 55
Windows as a Service, 55
Windows ADK (Assessment and Deployment Kit), 875, 876
DISM, 876
WinPE, 875
WSIM, 875
Windows Analytics, client device settings, 362
Windows as a Service, 7, 55
Windows Defender, 755, 771–772
antimalware, 757–758
as a service, 756–757
capabilities of, 756
policies, 783–785
antirootkits, 758
ATP, 801–802
capabilities of, 802
configuring, 803
prerequisites, 802–803
BM, 758–759
cloud-based protection, 759
ConfigMgr Current Branch version 1610, 60
definition updates, 765
architecture of, 772
ConfigMgr software update management source, 772
definition rebase process, 773
file shares (UNC) source, 782–783
MMPC updates, 780
WSUS and Microsoft Update sources, 780–782
diagnostic scanning, 758
DSS, 758–759
ELAM, Windows Defender ELAM Driver, 803
EP alerts
automating, 795–796
collection alerts, 797–798
types of, 795–796
generics, 757–758
heuristics, 757–758
local context, 761
SCEP and, 766
WDO, 762–763
WDSI, 763–764
Windows Defender ELAM Driver, 803
Windows desktop/server CI, 387, 388–391
Windows Embedded systems
software updates, 607
write filters, creating applications, 456–457
Windows Firewall policies, 785
Windows Hello for Business
ConfigMgr Current Branch baseline version 1511, 56
ConfigMgr Current Branch baseline version 1702, 64
Windows Insider Program, 615
Windows Installer
applications
creating detection methods for, 427–428
(.msi)-based applications, creating, 416–417
ConfigMgr Current Branch baseline version 1511, 55
detection methods, verifying, 487–488
DT, creating, 461–464
MDM and, 55
MSI files, 55
Windows Installer tab properties (programs), 513
Windows OS
antimalware, 759
ELAM, 759–760
Measured Boot, 760
CI, 387, 388–391
enabling devices for management, 692–693
as mobile devices, 692–695
as a Service, 7, 55
source management, 423–426
Windows Phone devices
CI, 397
deeplinking application distributions, 482–483
enabling devices for management, 688–689
enrolling devices
automatic Intune enrollment, 689–690
Windows 10 mobile devices, 690–692
Windows Server, Azure AD Connect installations, 661
Windows Server 2016
antimalware, 760–762
as site server, 634
Windows Store
ConfigMgr Current Branch baseline version 1511, 55
deeplinking application distributions, 482–483
Windows Store for Business, applications
synchronizing, 492
volume license purchases, 447
Windows Telemetry, ConfigMgr Current Branch version 1710, 67
WinPE (Windows Preinstallation Environment), 55, 875
WinRM (Windows Remote Management), 77
WINS (Windows Internet Name Service)
client agent assignments, 345
service location requests, 193
wiping mobile devices, 698–699
wire-based NIC (Network Interface Card), imaging systems without, 917
WMI (Windows Management Instrumentation), 76
architecture of, 76–78
auditing, 86–88
CIM, 82, 83
classes, 81–82
client agent installations, troubleshooting, 331
components of, 79–80
ConfigMgr
client automation, 98–100
client namespaces, 93–94
servers and, 89–93
console (ConfigMgr), WMI permissions, 309–310, 312–313
data flow, 78
databases and, 82–83
DCOM, 77
EP alerts, automating, 797
hardware inventories, 94–98, 102
infrastructure of, 79–80
managing, 83
remote management, 84
security, 84–88
WMI Control, 83–85
namespaces, 82, 86–87, 93–94
object model, 77, 81–83
online resources, 89
PowerShell and, 100–101
providers, 78–79
queries, creating, 816
requests, handling, 77–78
role in ConfigMgr, 70–71
services, accessing, 77
SMS providers, 89
architecture of, 89–90
SEDO, 90–91
XML, 92–93
Trace Logging, 87–89
troubleshooting client agent installations, 331
usage examples, 77
viewing, 94
WinRM, 77
WQL, 78
WOL (Wake on LAN), 365
ARP caches, 366–367
configuring, 366
magic packets, 365
prerequisites, 365
unicast WOL, 366–367
using, 367–368
Wake-up proxies, 367
workgroups, architectural planning/design, 124–128
workstations, administration workstations, security, 937
WQL (WMI Query Language), 46, 78
converting queries to SQL, 828
creating queries, 810
date/time functions in queries, 824–825
Extended WQL, limitations in ConfigMgr, 823–824
wrappers, 487
wrapping applications, 440, 712
write filters (Windows Embedded), creating applications, 456–457
WSIM (Windows System Image Manager), 875
WSUS (Windows Server Update Services), 574, 967, 989
application pool memory, 631
ConfigMgr installations, 222
databases, 782
backups, 989
re-indexing, 990–991
shared databases, 574
DSI and, 17
installing, 575–577
PowerShell installations, 576
synchronizing updates, 577
Microsoft Update sources, 780–782
Proxy and Account Settings page (Add Site System Roles Wizard), software
updates, 581
scan catalogs, 590–591
self-signed certificates, 635
Server Cleanup Wizard, 989–990
Software Update Point role (site systems), 40
software updates, 630–631
SUP, 573, 574, 580–581
versions of, 222
WSUS clean-up task, ConfigMgr Current Branch baseline version 1511, 55
WUfB (Windows Update for Business), ConfigMgr Current Branch baseline
version 1511, 55
WunderBar. See Navigation pane (ConfigMgr console)
X-Y-Z
XML (eXtensible Markup Language)
ConfigMgr databases, client settings, 104–105
WMI, SMS providers, 92–93
.zip files (compressed), importing/exporting, 545
APPENDIX E
Extending Hardware Inventory
IN THIS APPENDIX
How to Extend Hardware Inventory
Example of Extending Inventory
After modifying Configuration.mof and adding the classes using the client agent
settings, the Resource Explorer shows the new hardware. You can report on this
by using ConfigMgr reporting, discussed in Chapter 21, “Configuration Manager
Reporting.”
SMS_Context_1("__ProviderArchitecture=32|uint32"),
SMS_Context_2("__RequiredArchitecture=true|boolean")
[DYNPROPS]
Instance of Unleashed
{
KeyName="RegKeyToMOF_32";
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥InstalledOn")
,Dynamic,Provider("RegPropProv")] InstalledOn;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥DeploymentType")
,Dynamic,Provider("RegPropProv")] DeploymentType;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDAdapterCount")
,Dynamic,Provider("RegPropProv")] OSDAdapterCount;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDAnswerFilePath")
,Dynamic,Provider("RegPropProv")] OSDAnswerFilePath;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDAnswerFilePathSysprep")
,Dynamic,Provider("RegPropProv")] OSDAnswerFilePathSysprep;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDBaseVariableName")
,Dynamic,Provider("RegPropProv")] OSDBaseVariableName;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDComputerName")
,Dynamic,Provider("RegPropProv")] OSDComputerName;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDDiskPart")
,Dynamic,Provider("RegPropProv")] OSDDiskPart;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDEnableTCPIPFiltering")
,Dynamic,Provider("RegPropProv")] OSDEnableTCPIPFiltering;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDEndTime")
,Dynamic,Provider("RegPropProv")] OSDEndTime;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDImageCreator")
,Dynamic,Provider("RegPropProv")] OSDImageCreator;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDImagePackageId")
,Dynamic,Provider("RegPropProv")] OSDImagePackageId;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDImageVersion")
,Dynamic,Provider("RegPropProv")] OSDImageVersion;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDInstallType")
,Dynamic,Provider("RegPropProv")] OSDInstallType;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDPartitionActive")
,Dynamic,Provider("RegPropProv")] OSDPartitionActive;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDPartitionWithDriveLetter")
,Dynamic,Provider("RegPropProv")] OSDPartitionWithDriveLetter;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDPreserveDriveLetter")
,Dynamic,Provider("RegPropProv")] OSDPreserveDriveLetter;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDRandomAdminPassword")
,Dynamic,Provider("RegPropProv")] OSDRandomAdminPassword;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDStartTime"),Dynamic,Provider("RegPropProv")] OSDStartTime;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDStateSMPRetryCount")
,Dynamic,Provider("RegPropProv")] OSDStateSMPRetryCount;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDStateSMPRetryTime")
,Dynamic,Provider("RegPropProv")] OSDStateSMPRetryTime;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDTargetDriveCache")
,Dynamic,Provider("RegPropProv")] OSDTargetDriveCache;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDTargetSystemDrive")
,Dynamic,Provider("RegPropProv")] OSDTargetSystemDrive;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDTargetSystemParition")
,Dynamic,Provider("RegPropProv")] OSDTargetSystemParition;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDTargetSystemRoot")
,Dynamic,Provider("RegPropProv")] OSDTargetSystemRoot;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥OSDisk")
,Dynamic,Provider("RegPropProv")] OSDisk;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥TSVersion")
,Dynamic,Provider("RegPropProv")] TSVersion;
[PropertyContext("Local|HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MPSD\\OSD|
➥TsApplicationBaseVariable")
,Dynamic,Provider("RegPropProv")] TsApplicationBaseVariable;
};
After defining the data class and its instances, the next section in the file fills the
properties. The Keyname property is filled with the RegKeyToMOF value, and
the InstalledOn property is filled with the value of the Installed On
Registry key under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MPSD\OSD, using the
WMI Registry provider. The other properties are filled with other values coming
from the Registry.
C:\Mof>mofcomp configuration.mof
Microsoft (R) MOF Compiler Version 10.0.14393.0
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: configuration.mof
MOF file has been successfully parsed
Storing data in the repository...
WARNING: File configuration.mof does not contain #PRAGMA
AUTORECOVER.
If the WMI repository is rebuilt in the future, the contents of this
MOF
➥file will not be included in the new WMI repository.
To include this MOF file when the WMI Repository is automatically
➥reconstructed, place the #PRAGMA AUTORECOVER statement on the first
line
➥ of the MOF file.
Done!
3. To use WBEMTest to query WMI to verify that the Unleashed class was
created, open WBEMTest.exe and click Connect. In the NameSpace field,
type root\cimv2 because that is where you added the Unleashed class.
Click Connect. Once connected, click Enum Classes to open the Superclass
Info box. Select Recursive and click OK to open the Query Result box.
Browse the query result box to see if Unleashed is available; it should be
situated below StdRegProv, as shown in Figure E.4.
Confirm that the modification was added successfully by checking for the
following:
Click here to view code image
6. You now return to the Add Hardware Inventory Class page. The Inventory
classes are loaded, as displayed in Figure E.5. These classes should now
include Unleashed if the policy was received and the WMI extensions
were added. Ensure that the Unleashed check box is checked. You can select
Edit to modify the properties so its value represents a unit that can be
Megabytes, Kilobytes, Decimal String, Seconds, Hex String, or Date String;
the default is None.
The units are not modified in this example, so click OK. Notice that the
Unleashed class is added and selected. Deselect the Unleashed class on
the Default Settings level, if enabled, as you will enable these settings with
custom client settings later. Click OK to close the Hardware Inventory
Classes dialog and click OK to close the Default Settings box.
FIGURE E.5 Hardware inventory classes.
7. With the Unleashed class imported, enable it using custom client settings
that will be applied to one of your collections. Under Administration ->
Client Settings, select Create Custom Client Settings from the ribbon bar
to open the Create Custom Client Device Settings page. Provide a name to
identify the setting and select the Hardware Inventory check box. For more
information about default and custom client settings, see Chapter 9, “Client
Management.”
Select Hardware Inventory under General on the left side of the page to
open the hardware inventory settings and then click Set Classes to open the
Hardware Inventory Classes page. Select the Unleashed class and select the
settings you want to inventory, as shown in Figure E.6, and click OK to save
the custom client settings. With your custom client settings still selected,
select Deploy from the ribbon bar and select the collection where you want
to deploy your custom client settings. Click OK to finish.
FIGURE E.6 Enabling inventory classes in custom client settings.
3. Verify that the necessary database tables were created by opening SQL
Server Management Studio. Connect to the server hosting the ConfigMgr
site database and open the database. Under Views, you should see a table
called dbo.v.GS_Unleashed0. Select this table, right-click, and choose
Select Top 1000 rows to query the table. If any information is in the table, it
is reflected in the query results, as shown in Figure E.7.
4. Since inventory has occurred, verify that the data is available in the
Resource Explorer, initiated from the ConfigMgr console on the client’s
primary site server. Open the console and navigate to Assets and
Compliance, select the collection you just targeted with your custom client
settings, and select the device where you just ran the hardware inventory.
Now use Start -> Resource Explorer to open the Resource Explorer for that
device. As you can see in Figure E.8, Unleashed has been added to the
Resource Explorer.
FIGURE E.7 SQL Server Management Studio, showing the top 1,000 rows.
FIGURE E.8 Resource Explorer.
The device collection is added. You can now create a ConfigMgr application and
deploy it to that collection.
Code Snippets