From 3993423b30dd2d7482f417cacdb9fd85e1e97770 Mon Sep 17 00:00:00 2001 From: beanska Date: Tue, 2 Jan 2018 09:39:11 -0600 Subject: [PATCH 1/3] Set last portion of version number to zero when matching OSImageVersion When using a captured image OSImageVersion can sometimes return a build version such as "10.0.15063.296" when comparing with the driver package it will not match "10.0.15063.0". --- ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 b/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 index cdb22f9..bd50099 100644 --- a/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 +++ b/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 @@ -164,7 +164,8 @@ Process { # Determine OS Image version for running task sequence from web service try { $TSPackageID = $TSEnvironment.Value("_SMSTSPackageID") - $OSImageVersion = $WebService.GetCMOSImageVersionForTaskSequence($SecretKey, $TSPackageID) + $versionAry = ($WebService.GetCMOSImageVersionForTaskSequence($SecretKey, $TSPackageID)).split('.') + $OSImageVersion = $versionAry[0] + '.' + $versionAry[1] + '.' + $versionAry[2] + '.0' Write-CMLogEntry -Value "Retrieved OS Image version from web service: $($OSImageVersion)" -Severity 1 } catch [System.Exception] { From e825d883b5e9ae1c26933bec9cac1961c625a55f Mon Sep 17 00:00:00 2001 From: beanska Date: Thu, 4 Jan 2018 07:13:50 -0600 Subject: [PATCH 2/3] Make sure OSImageVersion is a String --- ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 b/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 index bd50099..28761e0 100644 --- a/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 +++ b/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 @@ -164,8 +164,8 @@ Process { # Determine OS Image version for running task sequence from web service try { $TSPackageID = $TSEnvironment.Value("_SMSTSPackageID") - $versionAry = ($WebService.GetCMOSImageVersionForTaskSequence($SecretKey, $TSPackageID)).split('.') - $OSImageVersion = $versionAry[0] + '.' + $versionAry[1] + '.' + $versionAry[2] + '.0' + $OSAry = ($WebService.GetCMOSImageVersionForTaskSequence($SecretKey, $TSPackageID)).split('.') + $OSImageVersion = "$($OSAry[0]).$($OSAry[1]).$($OSAry[2]).0" Write-CMLogEntry -Value "Retrieved OS Image version from web service: $($OSImageVersion)" -Severity 1 } catch [System.Exception] { From 317c4cf2b5ecbc81c688369d4f6ba147cd94ec36 Mon Sep 17 00:00:00 2001 From: beanska Date: Fri, 5 Jan 2018 14:17:31 -0600 Subject: [PATCH 3/3] String[] to String PS2.0 returns a string[] with a count of 1 when calling the webservice. Need a String instead. --- ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 b/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 index 28761e0..2d2aa56 100644 --- a/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 +++ b/ConfigMgr/OS Deployment/Invoke-CMDownloadDriverPackage.ps1 @@ -164,7 +164,7 @@ Process { # Determine OS Image version for running task sequence from web service try { $TSPackageID = $TSEnvironment.Value("_SMSTSPackageID") - $OSAry = ($WebService.GetCMOSImageVersionForTaskSequence($SecretKey, $TSPackageID)).split('.') + $OSAry = "$($WebService.GetCMOSImageVersionForTaskSequence($SecretKey, $TSPackageID))".split('.') $OSImageVersion = "$($OSAry[0]).$($OSAry[1]).$($OSAry[2]).0" Write-CMLogEntry -Value "Retrieved OS Image version from web service: $($OSImageVersion)" -Severity 1 }