Jay Paloma's Tech and Music Blog

Sometimes, this writer can no longer distinguish between the two.

Posts Tagged ‘SCCM

Often Overlooked Step when Configuring WSUS to Use SQL Server Always On

leave a comment »


Documenting this issue on my personal tech blog because I got stuck with this for the past couple of weeks.

Scenario

  • Windows Server 2016, for ConfigMgr Primary Site Server and multiple Software Update Points
  • Multiple SUPs mean multiple WSUS
  • WSUS Servers using a common SQL Server, per Microsoft best practice
  • SQL Server is running Always On AG

 

Problem

Once all the WSUS Servers are configured, and the SUSDB is added to the Availability Group, both WSUS still looks ok. But when you execute failover, one or all all of the WSUS will fail.

 

Possible Reason

When you run the postinstall of WSUS, it configures the SUSDB, and adds the required logons on the current Primary Replica. But when you add the SUSDB into the Availability Group, the logons are not created on the current Secondary Replica(s) as of that time. Therefore you have to add a logon on all SQL Server Replicas of all WSUS Servers that will use the said SUSDB.  This is an often overlooked step, as per this forum post.

I haven’t seen an official support statement for or against using WSUS in an AlwaysOn availability group.

That said, as the only way you’re going to be able to make use of an AlwaysOn (unless it’s part of a System Center deployment) is by changing the database settings found in the registry under “HKLM\SOFTWARE\Microsoft\Update Services\Server\Setup” (based on WSUS on Server 2012 R2), so I doubt it’s something they’ve seriously thought about.
In principle, the implementation steps would look like this:
1. Set up WSUS as per normal using the actual hostname of the initial SQL Server.
2. Take a back up of the WSUS database (a pre-requisite for including in the availability group).
3. Add the WSUS database to the preferred availability group.
4. Create a login for the computer account of the WSUS server on each SQL Server that is part of the AlwaysOn group (an often overlooked step until a failover actually occurs).
5. Stop the WSUS service.
6. Update the registry settings.
7. Start the WSUS service.

Referencing myself on the existing logins of the current Primary Replica, I created logins on the other Secondaries for all my WSUS Servers, and have given them public, securityadmin and sysadmin roles. My multiple WSUS worked after this step.

And when I say “works,” it means that I can open the WSUS console

  • Simultaneously on all WSUS Servers at the same time
  • After failing over to all my Always On replicas

 

Summary:

This was how I setup my multiple WSUS (assumes Always On AG is fully setup)

  1. Create WSUS1, use SQL and connect it to the AG Listener
  2. Create WSUS2, use SQL and connect it to the AG Listener
  3. Configure SUSDB for Always On requirements (Full Recovery Model, perform Full Backup)
  4. Add SUSDB to Availability Group
  5. Add all the necessary logins of all WSUS Servers on all SQL Server replicas
  6. Test
    • Connect WSUS1 and WSUS2 consoles, both should display properly
    • Failover one by one to all SQL Replicas, both WSUS consoles should still  display properly

Hope this helps!

jay paloma  |  10 sep 2017  |  singapore

Advertisements

Written by jpaloma

September 10, 2017 at 11:57 AM

SCCM 1606 SQL Server Views Documentation

leave a comment »


If you are working on SCCM custom reports, you may have wished that there should be a reference out that you could use as reference to navigate through the countless database views available in SQL Server for SCCM. There is in fact such a reference, published by Microsoft last November 2016

Download the SCCM ConfigMgr SQL Views reference from here: https://gallery.technet.microsoft.com/SCCM-Configmgr-2012-R2-SQL-5fefdd3b

Other useful references

jay paloma  |  26 mar 2017  |  singapore

Written by jpaloma

March 26, 2017 at 6:56 PM

SCCM User State Migration: Error 0x0004005 during User State Restore

leave a comment »


Scenario

  • In SCCM Build 1606, you intend a side-by-side migration with User State Migration.
  • You execute your Capture User State Task Sequence on the SOURCE machine
  • You build your TARGET Machine
  • You create a Computer Association between your SOURCE and TARGET machines in Configuration Manager Console > Asset and Compliance > User State Migration. Now you have two computer associations using the same Source Computer:
    • the one with Migration Type = In-place and Destination Computer is itself,
    • another with Migration Type = Side-by-side and Destination Computer is your intended TARGET machine (see picture below).

 

screen-shot-2016-11-05-at-18-13-53

Example of creating a Computer Association after User State Capture. I performed a User State Capture on MININT-8AA13J1, resulting in the association with In-place Migration Type. Then I created an association between MININT-8AA13J1 and OSDTEST03.  When I performed the User State Restore on OSDTEST03, it resulted in a 0x0004005 error.

 

  • You execute your Restore User State Task Sequence on the TARGET machine and get the following error.

Task Sequence: Restore User State has failed with the error code (0x00004005). Please contact your system administrator or helpdesk operator.

screen-shot-2016-11-05-at-18-20-46

Resolution

You need to create your Computer Association between the two computers before you perform the user state capture on the SOURCE machine.

Sorry guys, not too many screenshots here. However, I tried it in my lab and it works. Leave a comment if this writeup solved your problem.

jay paloma | 5 nov 2016 | singapore

Written by jpaloma

November 5, 2016 at 6:24 PM

ConfigMgr Automatic Deployment Rule Fails with Error Code 1326 if Source WSUS is not a Domain Member

leave a comment »


Behavior

ConfigMgr infrastructure uses a WSUS server in the DMZ which is not a member of the domain, as shown in the figure below:

SCCM ADR WSUS DMZ

If you use Automatic Deployment Rule, the sync fails with the following:

  • Error code 0X87D20417 in the SCCM Console
  •  “Failed to download the update from UNC content source. Error = 1326” in ruleengine.log.
Console Error annotate

Configuration Manager Console Automatic Deployment Rules showing error code 0X87D20417

 

Error 1326 Bigger

ruleengine.log showing error 1326

Meanwhile, patch metadata is successfully transferred over to ConfigMgr when you sync software updates. Manual patch synchronization by downloading to the Deployment Package is also successful

Cause

The top-level ConfigMgr server attempts to access the shared WsusContent folder in your DMZ WSUS using the computer account of your Primary Site Serveror CAS, and fails because it is denied access. On your DMZ WSUS, you cannot grant access to the CAS or Primary Site Server or make them a member of any local group.

Resolution

You can choose from one of the following options if you intend to use Automatic Deployment Rules

  1. 1. Copy the contents of \\dmz_wsus\WsusContent to a shared location which is accessible to your top-level ConfigMgr server (CAS or Primary Site Server), and sync the ADR from that location
  2. Make the DMZ WSUS server a member of the domain and ensure that the top-level Site Server (CAS or Primary Site Server) is a member either of the local Administrators group or the WSUS Administrators group.

Remember, this is only an issue if you use ADR. I haven’t done testing on a normal non user-initiated SCCM update sync. You might want to give me feedback if this error shows up on non user-initiated update sync.

Products

  • System Center 2012 R2 Configuration Manager SP1
  • Windows Server 2012 R2

jay paloma  |  1 may 2016  |  singapore

This post is provided “AS-IS” and makes no warranties and confers no rights

Written by jpaloma

May 1, 2016 at 9:29 AM

Posted in Configuration Manager, SCCM

Tagged with , ,

Configuration Manager RBAC – Collections

leave a comment »


2nd Jan 2016, continuing with the doing-nothing-while-on-vacation series.

You can assign access Collection access to Administrative Users. However keep in mind the following:

  1. If your objective is to ensure limited visibility of collection results, then see to it that you do not grant access to the All Systems collection. You have to have what I call a Top-Level Collection in lieu of the default collections (including All Systems). Ensure that the membership of this Top-Level collection is limited to the objects you want the specific admin to see. Use specific conditions, e.g., OU membership, computer name, etc., to populate. Also keep in mind that the objects are still available in Queries, so if you really need to ensure non-visibility of objects, deal with Queries as well.
  2. Use this Top-Level collection as the limiting collection for all other collections that you would create. Do not use the All Systems collection because if the user account does not have access to All Systems, then the user account will always see 0 membership. Remember: the user does not have access to the Top Level collection (ergo, 0 members) and you created a collection that limits itself to the All Systems collection (again, 0 members), and you’ll get a collection of 0 members!

So for example you want to create an RBAC role to be able to deploy Applications and Patches to machines from the APAC region:

  1. Create an APAC Top-Level collection, using All Systems as its limiting collection using OU membership as its criteria.
  2. Create a second collection of with APAC Top-Level as its limiting collection, and add the additional conditions that it is a ConfigMgr client and it is a workstation OS . Let’s call this APAC Clients 
  3. Create an AD Group APAC Deployment
  4. Add this group in ConfigMgr Administrative Users, and grant access to the APAC Clients collection. Also assign it the RBAC Role nearest to the deployment role you want, or customize the role further to get the actions you want this role to perform.

Screenshots to follow once I’m back in my lab. Too bad I haven’t installed my ConfigMgr lab in Azure yet at this point in time.

jay paloma  |  02 jan 2016  |  manila

Written by jpaloma

January 2, 2016 at 7:15 PM

Configuration Manager RBAC – Practical Applications

with one comment


It’s 2 Jan 2016. Happy New Year 2016! I am currently in vacation in my hometown in Manila (am based in Singapore), and to spend some quality time, I want to write another chapter in the ConfigMgr RBAC series.

 

In continuation of our series on ConfigMgr RBAC, let’s now take a look at some practical applications of Role Based Access Control in ConfigMgr.

First, division and compartmentalization of Responsibilities. To do this, customize RBAC Roles and assign into different AD Groups but having access to all collections.

Secondly, division and compartmentalization of Objects. To do this, you can use some high-access RBAC Role like Operations Admin but ensure that permissions are assigned only to specific collections, and never assign permissions to the All Systems collection. Do note that as a caveat to this, you cannot assign permissions to any collection that use All Systems as its limiting Collection. Therefore you should create a collection that use All Systems as its collection, then use the newly created collection as a Limiting Collection for the collections that you could assign permissions to.

Something like

All Systems –> Limiting Collection of CollectionB –> Limiting Collection of CollectionC <– Assign permissions

Thirdly as hybrid division and compartmentalization of both Objects and Responsibilities. This one is just a combination of both. Something like this setup:

  • APAC Admins
  • APAC Packagers
  • APAC Deployment
  • EMEA Admins
  • EMEA Packagers
  • EMEA Deployment
  • HQ Admins
  • HQ Packagers
  • HQ Deployment

You have 3 regions: APAC, EMEA and HQ and you have 9 sets of admins as shown above. So you have at least 3 sets of collections (APAC, EMEA and HQ) and 3 sets of admins for each region (Admins, Packagers and Deployment), and ensure that APAC Packagers can only package apps intended for APAC, and not EMEA and HQ, and cannot perform any other administrative task or deploy stuff.

If you have this kind of setup, do ensure that you thoroughly check the implementation of RBAC. Also, my experience to this is that since your working collection is 3 layers down (All Systems –> CollectionB –> CollectionC in the above example) do not go cheap on your database server.

 

As I am right now not in my lab, I cannot have screenshots to show. However I will update this document when I get back after vacation.

jay paloma  |  2 jan 2016  |  manila

Written by jpaloma

January 2, 2016 at 3:28 PM

Implementing Internet Based Client Management on System Center 2012 R2 Configuration Manager

leave a comment »


Implementing HTTPS on ConfigMgr 2012 R2This video explains how to configure Internet Based Client Management (IBCM) on System Center 2012 R2 Configuration Manager.

An important component on implementing IBCM is to implement HTTPS. I have another video series on Implementing HTTPS on ConfigMgr 2012 R2.

As of the time of posting, I am still figuring out how to switch Internet/Intranet clients without requiring a firewall (just for purposes of demo). However in a nutshell, the absence of the Domain Controller renders the client an “Internet” client. I will update the post when I stumble into a development.

Written by jpaloma

December 14, 2015 at 1:24 PM