Upgrading to SCCM 1702

Yesterday was the day! The change request was approved so I could upgrade the site to the latest version 1702. In this post I will give you a quick walkthrough of that update.

The first step I performed was checking if all backups were ok. They were…

Updates and hotfixes are being managed from SCCM so no more searching for the latest hotfix or update. You can find them through Administration, Cloud Services, Updates and Servicing. BTW 1702 changes that location… So we’re on the 1610 version and 1702 is available. As you can see in the picture the prerequisite check was successful.

Select the update ‘Configuration Manager 1702’ and choose ‘Install Update Pack’ from the ribbon. The Updates Wizard will start…

You could select the ‘Ignore any prerequisite check’ option but I would only do that for a test environment. So click Next.

Enable the features you want to enable but for pre-release features you must give your consent up front… Click Next.

If you have a pre-production collection select the option ‘Validate in pre-production collection’ and browse to that collection. If you don’t have a pre-production collection just click Next. But be aware… The Client Installation package will be overwritten.

Accept the License Terms and Privacy Statement and click Next.

Check the summary and click Next. The update process will start.

When the wizard is done click Close. Now sit back and relax and wait for the upgrade to finish.

If you want to check the progress go to Monitoring, Updates and Servicing Status.

You could also check the file cmupdate.log on the site server.

During my upgrade I had one little issue. I had to restart both SMS_EXECUTIVE and SMS_DATABASE_NOTIFICATION_MONITOR service. For some reason they crashed which paused the upgrade process. After restarting the services the upgrade continued. If I can find the time I will investigate this issue.

Powershell – looking up HP warranty information – part 2

Earlier I published a post about retrieving warranty information for HP hardware. However, the end date that is returned by the script might not always be correct!

Let me explain…

What the script does is executing a SOAP request to a website. The outcome of that request is XML data and the script returns three specific parameters:

  • ActiveEntitlement (true or false)
  • OverallEntitlementStartDate
  • OverallEntitlementEndDate

So let’s look at the outcome for a random server:

Based on the returned information warranty ends on 31-08-2017. But is that true? If I enter the same information on the HP support site I get the following data:

It looks like the powershell cmdlet returns the end date of the base warranty. But for this server a seperate support agreement is active and the actual warranty end date is 30-09-2019. So let’s see if this info is available is the returned XML data…

It is! The parameter OverallContractEndDate has the correct warranty end date. Returning this extra info is very easy. Just add one single line of code to the powershell script Get-HPEntWarrantyEntitlement.ps1. Default location is C:\Program Files\WindowsPowerShell\Modules\HPWarranty\2.6.2\Public.

Change this:

[HashTable]$output = @{
'SerialNumber' = $SerialNumber
'ProductNumber' = $ProductNumber
'ActiveEntitlement' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.ActiveWarrantyEntitlement
'OverallEntitlementStartDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyStartDate
'OverallEntitlementEndDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyEndDate
}

To this:

[HashTable]$output = @{
'SerialNumber' = $SerialNumber
'ProductNumber' = $ProductNumber
'ActiveEntitlement' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.ActiveWarrantyEntitlement
'OverallEntitlementStartDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyStartDate
'OverallEntitlementEndDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyEndDate
'OverallContractEndDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallContractEndDate
}