There’s a new release of the Windows Assessment and Deployment Kit (Windows ADK) 8.1 this month.
I’ve seen a blog post from Johan Arwidmark about this new release:
http://www.deploymentresearch.com/Research/tabid/62/EntryId/187/What-rsquo-s-new-in-the-4th-release-of-Windows-ADK-8-1.aspx
I just came back from holidays and have prepared the updated code before my holidays but hadn’t time to blog about it π
What did I change in the code? Not many things.
I’ve removed duplicate entries in the here-strings and I’m now using a $PatchLevel variable to keep track of the current version.
#Requires -Version 4 #Requires -RunAsAdministrator Function Get-ADKFiles { [CmdletBinding()] param( [parameter(Mandatory)] [system.string]$TargetFolder ) Begin { $HT = @{} $HT += @{ ErrorAction = 'Stop'} # Validate target folder try { Get-Item $TargetFolder @HT | Out-Null } catch { Write-Warning -Message "The target folder specified as parameter does not exist" break } # April 2014: 8.100.26629 $PatchLevel = "8.100.26866" } Process { $adkGenericURL = (Invoke-WebRequest -Uri http://go.microsoft.com/fwlink/?LinkID=313081 -MaximumRedirection 0 -ErrorAction SilentlyContinue) # 302 = redirect as moved temporarily if ($adkGenericURL.StatusCode -eq 302) { # Currently set to http://download.microsoft.com/download/6/A/E/6AEA92B0-A412-4622-983E-5B305D2EBE56/adk/ $MainURL = $adkGenericURL.Headers.Location $InstallerURLs = DATA { ConvertFrom-StringData @' 0=0302dc615b0a5fd4810430b2cdacb5e3.cab 1=036c618de505eeb40cca35afad6264f5.cab 2=0708be5ffbe332f6a1571c929c1322a5.cab 3=0a3a39d2f8a258e1dea4e76da0ec31b8.cab 4=0b63b7c537782729483bff2d64a620fa.cab 5=0c48c56ca00155f992c30167beb8f23d.cab 6=0ce2876e9da7f82aac8755701aecfa64.cab 7=0d981f062236baed075df3f42b1747db.cab 8=11bdc4a4637c4d7ab86107fd13dcb9c6.cab 9=125b1c8c81e36ec9dbe5abf370ff9919.cab 10=1439dbcbd472f531c37a149237b300fc.cab 11=1620efa4ffe2a6563530bd0158b17fe6.cab 12=17c9d60f2bc5bc54c58782d614afcbf0.cab 13=18e5e442fc73caa309725c0a69394a46.cab 14=1f90b0f7321fab8dcdedaba3b30415f3.cab 15=23ca402f61cda3f672b3081da79dab63.cab 16=24b9e5f1f97c2f05aa95ee1f671fd3cc.cab 17=2517aec0259281507bfb693d7d136f30.cab 18=268b1a41f6bd2906449944b964bf7393.cab 19=3585b51691616d290315769bec85eb6f.cab 20=3611bd81544efa3deb061718f15aee0c.cab 21=36e3c2de16bbebad20daec133c22acb1.cab 22=377a2b6b26ea305c924c25cf942400d6.cab 23=3814eaa1d4e897c02ac4ca93e7e7796a.cab 24=388dee738d7d1c99d6fe776a85ee32f8.cab 25=38d93b8047d5efb04cf01ab7ec66d090.cab 26=39837d43d71c401e7edc9ba3e569cd69.cab 27=3b71855dfae6a44ab353293c119908b8.cab 28=3d610ba2a5a333717eea5f9db277718c.cab 29=3dc1ed76e5648b575ed559e37a1052f0.cab 30=3eaef6a740a72a55f4a0ac3039d05419.cab 31=413a073d16688e177d7536cd2a64eb43.cab 32=450f8c76ee138b1d53befd91b735652b.cab 33=45c632fb53b95fe3bd58a6242325afa6.cab 34=4d15138ec839ce36f5b68c16b332920a.cab 35=4d2878f43060bacefdd6379f2dae89b0.cab 36=4defb086385752d8cd0d1432900fb4ca.cab 37=4e56c6c11e546d4265da4e9ff7686b67.cab 38=4fc82a5cedaab58e43b487c17f6ef6f3.cab 39=500e0afd7cc09e1e1d6daca01bc67430.cab 40=527b957c06e68ebb115b41004f8e3ad0.cab 41=56dd07dea070851064af5d29cadfac56.cab 42=56e5d88e2c299be31ce4fc4a604cede4.cab 43=57007192b3b38fcd019eb88b021e21cc.cab 44=5775a15b7f297f3e705a74609cb21bbc.cab 45=5ac1863798809c64e85c2535a27a3da6.cab 46=5d984200acbde182fd99cbfbe9bad133.cab 47=625aa8d1c0d2b6e8cf41c50b53868ecd.cab 48=630e2d20d5f2abcc3403b1d7783db037.cab 49=662ea66cc7061f8b841891eae8e3a67c.cab 50=6894c1e1e549c4ab533078e3ff2e92af.cab 51=690b8ac88bc08254d351654d56805aea.cab 52=69f8595b00cf4081c2ecc89420610cbd.cab 53=6bdcd388323175da70d836a25654aa92.cab 54=6d2cfb2c5343c33c8d9e54e7d1f613f9.cab 55=6d3c63e785ac9ac618ae3f1416062098.cab 56=6da2af86cb1227e66cf9bc85f2786782.cab 57=6dc62760f8235e462db8f91f6eaa1d90.cab 58=7011bf2f8f7f2df2fdd2ed7c82053d7f.cab 59=732eefaf52275b7a708311a31c82c814.cab 60=77adc85e5c49bbd36a91bb751dc55b39.cab 61=781e7c95c1b6b277057c9b53b7b5a044.cab 62=7ab29d7f105f1e7814198f23b60f8e5d.cab 63=7c11b295fb7f25c6d684b1957e96a226.cab 64=7c195d91008a0a6ad16e535ac228467d.cab 65=83bd1072721871ea0bdc4fab780d9382.cab 66=8624feeaa6661d6216b5f27da0e30f65.cab 67=86ae476dfe0498a5b5d1b6f3076412c7.cab 68=870d7f92116bc55f7f72e7a9f5d5d6e1.cab 69=8c27542f7954c25af62730fbb1e211d2.cab 70=9050f238beb90c3f2db4a387654fec4b.cab 71=93ed81ef8cf2e77c6ebc8aba5d95b9cf.cab 72=94cae441bc5628e21814208a973bbb9d.cab 73=9722214af0ab8aa9dffb6cfdafd937b7.cab 74=a011a13d3157dae2dbdaa7090daa6acb.cab 75=a03686381bcfa98a14e9c579f7784def.cab 76=a1d26d38d4197f7873a8da3a26fc351c.cab 77=a30d7a714f70ca6aa1a76302010d7914.cab 78=a32918368eba6a062aaaaf73e3618131.cab 79=a565f18707816c0d052281154b768ac0.cab 80=a7eb3390a15bcd2c80a978c75f2dcc4f.cab 81=aa25d18a5fcce134b0b89fb003ec99ff.cab 82=aa4db181ead2227e76a3d291da71a672.cab 83=ab3291752bc7a02f158066789e9b0c03.cab 84=abbeaf25720d61b6b6339ada72bdd038.cab 85=ac9ff098e23012b74624db792b538132.cab 86=Application Compatibility Toolkit-x64_en-us.msi 87=Application Compatibility Toolkit-x86_en-us.msi 88=Assessments on Client-x86_en-us.msi 89=Assessments on Server-x86_en-us.msi 90=b0189bdfbad208b3ac765f88f21a89df.cab 91=b3892d561b571a5b8c81d33fbe2d6d24.cab 92=b5227bb68c3d4641d71b769e3ac606a1.cab 93=b6758178d78e2a03e1d692660ec642bd.cab 94=bbf55224a0290f00676ddc410f004498.cab 95=bc1fef9daa903321722c08ce3cf51261.cab 96=bd748d6fbff59b2a58cebdb99c3c6747.cab 97=be7ebc1ac434ead4ab1cf36e3921b70e.cab 98=c0f42c479da796da513cc5592f0759d3.cab 99=c6babfeb2e1e6f814e70cacb52a0f923.cab 100=c98a0a5b63e591b7568b5f66d64dc335.cab 101=cd23bfdfd9e3dfa8475bf59c2c5d6901.cab 102=cfb8342932e6752026b63046a8d93845.cab 103=d2611745022d67cf9a7703eb131ca487.cab 104=d519967dbb262c80060d9efb5079aa23.cab 105=d562ae79e25b943d03fc6aa7a65f9b81.cab 106=d5abe4833b23e13dc7038bde9c525069.cab 107=dotNetFx45_Full_x86_x64.exe 108=e5f4f4dc519b35948be4500a7dfeab14.cab 109=e65f08c56c86f4e6d7e9358fa99c4c97.cab 110=ea9c0c38594fd7df374ddfc620f4a1fd.cab 111=eacac0698d5fa03569c86b25f90113b5.cab 112=ed711e0a0102f1716cc073671804eb4c.cab 113=eebe1a56de59fd5a57e26205ff825f33.cab 114=f2a850bce4500b85f37a8aaa71cbb674.cab 115=f480ed0b7d2f1676b4c1d5fc82dd7420.cab 116=f7699e5a82dcf6476e5ed2d8a3507ace.cab 117=f8f7800500b180b8a2103c40ce94f56a.cab 118=fa7c072a4c8f9cf0f901146213ebbce7.cab 119=fbcf182748fd71a49becc8bb8d87ba92.cab 120=fcc051e0d61320c78cac9fe4ad56a2a2.cab 121=fd5778f772c39c09c3dd8cd99e7f0543.cab 122=fe43ba83b8d1e88cc4f4bfeac0850c6c.cab 123=InstallRegHiveRecoveryDriverAmd64.exe 124=InstallRegHiveRecoveryDriverX86.exe 125=Kits Configuration Installer-x86_en-us.msi 126=Microsoft Compatibility Monitor-x86_en-us.msi 127=SQLEXPR_x86_ENU.exe 128=Toolkit Documentation-x86_en-us.msi 129=User State Migration Tool-x86_en-us.msi 130=Volume Activation Management Tool-x86_en-us.msi 131=wasinstaller.exe 132=WimMountAdkSetupAmd64.exe 133=WimMountAdkSetupArm.exe 134=WimMountAdkSetupX86.exe 135=Windows Assessment Services - Client (AMD64 Architecture Specific, Client SKU)-x86_en-us.msi 136=Windows Assessment Services - Client (AMD64 Architecture Specific, Server SKU)-x86_en-us.msi 137=Windows Assessment Services - Client (Client SKU)-x86_en-us.msi 138=Windows Assessment Services - Client (Server SKU)-x86_en-us.msi 139=Windows Assessment Services - Client (X86 Architecture Specific, Client SKU)-x86_en-us.msi 140=Windows Assessment Services-x86_en-us.msi 141=Windows Assessment Toolkit (AMD64 Architecture Specific)-x86_en-us.msi 142=Windows Assessment Toolkit (X86 Architecture Specific)-x86_en-us.msi 143=Windows Assessment Toolkit-x86_en-us.msi 144=Windows Deployment Customizations-x86_en-us.msi 145=Windows Deployment Tools-x86_en-us.msi 146=Windows PE x86 x64 wims-x86_en-us.msi 147=Windows PE x86 x64-x86_en-us.msi 148=Windows System Image Manager on amd64-x86_en-us.msi 149=Windows System Image Manager on x86-x86_en-us.msi 150=WPT Redistributables-x86_en-us.msi 151=WPTarm-arm_en-us.msi 152=WPTx64-x86_en-us.msi 153=WPTx86-x86_en-us.msi '@ } $PatchesURLs = DATA { ConvertFrom-StringData @' 0=Toolkit Documentation-x86_en-us.msp 1=Application Compatibility Toolkit-x86_en-us.msp 2=Application Compatibility Toolkit-x64_en-us.msp 3=Windows Deployment Tools-x86_en-us.msp 4=Windows System Image Manager on amd64-x86_en-us.msp 5=Windows System Image Manager on x86-x86_en-us.msp 6=Windows PE x86 x64-x86_en-us.msp 7=User State Migration Tool-x86_en-us.msp 8=Volume Activation Management Tool-x86_en-us.msp 9=WPTx86-x86_en-us.msp 10=WPTx64-x86_en-us.msp 11=WPT Redistributables-x86_en-us.msp 12=Windows Assessment Toolkit-x86_en-us.msp 13=Assessments on Client-x86_en-us.msp 14=Windows Assessment Services-x86_en-us.msp 15=Windows Assessment Services - Client (Server SKU)-x86_en-us.msp 16=Assessments on Server-x86_en-us.msp 17=Windows Assessment Services - Client (Client SKU)-x86_en-us.msp '@ } "Installers","Patches\$PatchLevel" | ForEach-Object -Process { # Create target folders if required as BIT doesn't accept missing folders If (-not(Test-Path (Join-Path -Path $TargetFolder -ChildPath $_))) { try { New-Item -Path (Join-Path -Path $TargetFolder -ChildPath $_) -ItemType Directory -Force @HT } catch { Write-Warning -Message "Failed to create folder $($TargetFolder)/$_" break } } } # Get adksetup.exe Invoke-WebRequest -Uri "$($MainURL)adksetup.exe" -OutFile "$($TargetFolder)\adksetup.exe" # Create a job that will downlad our first file $job = Start-BitsTransfer -Suspended -Source "$($MainURL)Installers/$($InstallerURLs['0'])" -Asynchronous -Destination (Join-Path -Path $TargetFolder -ChildPath ("Installers/$($InstallerURLs['0'])")) # Downlod installers For ($i = 1 ; $i -lt $InstallerURLs.Count ; $i++) { $URL = $Destination = $null $URL = "$($MainURL)Installers/$($InstallerURLs[$i.ToString()])" $Destination = Join-Path -Path (Join-Path -Path $TargetFolder -ChildPath Installers) -ChildPath (([URI]$URL).Segments[-1] -replace '%20'," ") # Add-BitsFile http://technet.microsoft.com/en-us/library/dd819411.aspx $newjob = Add-BitsFile -BitsJob $job -Source $URL -Destination $Destination Write-Progress -Activity "Adding file $($newjob.FilesTotal)" -Status "Percent completed: " -PercentComplete (($newjob.FilesTotal)*100/($InstallerURLs.Count)) } # Donwload Patches For ($i = 0 ; $i -lt $PatchesURLs.Count ; $i++) { $URL = $Destination = $null $URL = "$($MainURL)Patches/$PatchLevel/$($PatchesURLs[$i.ToString()])" $Destination = Join-Path -Path (Join-Path -Path $TargetFolder -ChildPath "Patches/$PatchLevel") -ChildPath (([URI]$URL).Segments[-1] -replace '%20'," ") # Add-BitsFile http://technet.microsoft.com/en-us/library/dd819411.aspx $newjob = Add-BitsFile -BitsJob $job -Source $URL -Destination $Destination } # Begin the download and show us the job Resume-BitsTransfer -BitsJob $job -Asynchronous # http://msdn.microsoft.com/en-us/library/windows/desktop/ee663885%28v=vs.85%29.aspx while ($job.JobState -in @('Connecting','Transferring','Queued')) { Write-Progress -activity "Downloading ADK files" -Status "Percent completed: " -PercentComplete ($job.BytesTransferred*100/$job.BytesTotal) } Switch($job.JobState) { "Transferred" { Complete-BitsTransfer -BitsJob $job break } "Error" { # List the errors. $job | Format-List } default { # Perform corrective action. } } } } End {} }
thanks works
. ./adk.ps1
Get-ADKFiles
Hello , thank you for the efforts , i tried to run the latest updated version of the script and i got the below error:
PS C:\Windows\system32> C:\script1.ps1
At C:\script1.ps1:27 char:46
+ $adkGenericURL = (Invoke-WebRequest -Uri <a class="linkification-ext" href=" …
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
please help
Hi,
You’ve copied some HTML formatting tags along with the PowerShell code.
Anyway, it’s not the latest version of ADK. You can find the same code for the ADK for Windows 10 RTM on my blog at this page:
There, you’ll find a link to the github repository where you can download the script. No need to copy/paste from the blog post anymore π
thank you π
Hi , i got the error when running the scripts:
PS C:\Windows\system32> C:\script1.ps1
At C:\script1.ps1:27 char:46
+ $adkGenericURL = (Invoke-WebRequest -Uri <a class="linkification-ext" href=" …
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
Appreciate any help, thanks
Hey, I don’t suppose you still have the 8.1 adk files downloaded somewhere, do you?
Hi,
Yes, I do. ADK for 8.1 should be same for 2012 R2 and should still be available. 2012 R2 reachs end of life in October 2023.