This commit is contained in:
		| @@ -187,42 +187,42 @@ source "vsphere-iso" "srv2019-baremetal" { | ||||
| build { | ||||
|   sources = [ | ||||
|     "source.vsphere-iso.srv2019-template", | ||||
|     "source.vsphere-iso.srv2019-virtual", | ||||
|     "source.vsphere-iso.srv2019-baremetal" | ||||
|     "source.vsphere-iso.srv2019-virtual" | ||||
|   ] | ||||
|   // "source.vsphere-iso.srv2019-baremetal" | ||||
|  | ||||
|   provisioner "windows-update" { | ||||
|   } | ||||
|  | ||||
|   provisioner "powershell" { | ||||
|     scripts = [ | ||||
|       "scripts/Install-WinGet.ps1" | ||||
|     ] | ||||
|   } | ||||
|   provisioner "powershell" { | ||||
|     inline = [ | ||||
|       "winget install mozilla.firefox", | ||||
|       "winget install 7zip.7zip", | ||||
|       "winget install microsoft.dotnetframework" | ||||
|     ] | ||||
|     // valid_exit_codes = [0, 3010] | ||||
|   } | ||||
|   // provisioner "powershell" { | ||||
|   //   scripts = [ | ||||
|   //     "scripts/Install-WinGet.ps1" | ||||
|   //   inline = [ | ||||
|   //     "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12", | ||||
|   //     "Invoke-Expression ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" | ||||
|   //   ] | ||||
|   // } | ||||
|   // provisioner "powershell" { | ||||
|   //   inline           = [ | ||||
|   //     "winget install mozilla.firefox", | ||||
|   //     "winget install 7zip.7zip", | ||||
|   //     "winget install microsoft.dotnetframework" | ||||
|   //     "choco config set --name=limit-output --value=LimitOutput", | ||||
|   //     "choco install -y dotnetfx", | ||||
|   //     "choco install -y 7zip.install", | ||||
|   //     "choco install -y sysinternals", | ||||
|   //     "choco install -y firefox" | ||||
|   //   ] | ||||
|   //   // valid_exit_codes = [0, 3010] | ||||
|   //   valid_exit_codes = [0, 3010] | ||||
|   // } | ||||
|   provisioner "powershell" { | ||||
|     inline = [ | ||||
|       "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12", | ||||
|       "Invoke-Expression ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" | ||||
|     ] | ||||
|   } | ||||
|   provisioner "powershell" { | ||||
|     inline           = [ | ||||
|       "choco config set --name=limit-output --value=LimitOutput", | ||||
|       "choco install -y dotnetfx", | ||||
|       "choco install -y 7zip.install", | ||||
|       "choco install -y sysinternals", | ||||
|       "choco install -y firefox" | ||||
|     ] | ||||
|     valid_exit_codes = [0, 3010] | ||||
|   } | ||||
|  | ||||
|   provisioner "windows-update" { | ||||
|   } | ||||
|   | ||||
| @@ -3,22 +3,52 @@ Param( | ||||
|     # None | ||||
| ) | ||||
|  | ||||
| # Download dependencies | ||||
| $AppxDependencies = @( | ||||
|     @{ | ||||
|         ShortName     = 'vclibs' | ||||
|         QualifiedName = 'Microsoft.VCLibs.140.00_8wekyb3d8bbwe' | ||||
|     }, | ||||
|     @{ | ||||
|         ShortName     = 'vclibsuwp' | ||||
|         QualifiedName = 'Microsoft.VCLibs.140.00.UWPDesktop_8wekyb3d8bbwe' | ||||
|     } | ||||
| ) | ||||
| ForEach ($Dependency in $AppxDependencies) { | ||||
|     $InvokeWebRequestSplat = @{ | ||||
|         Uri             = 'https://store.rg-adguard.net/api/GetFiles' | ||||
|         Method          = 'POST' | ||||
|         ContentType     = 'application/x-www-form-urlencoded' | ||||
|         Body            = "type=PackageFamilyName&url=$($Dependency.QualifiedName)&ring=RP&lang=en-US" | ||||
|         UseBasicParsing = $True | ||||
|     } | ||||
|     $InvokeWebRequestSplat = @{ | ||||
|         Uri     = ((Invoke-WebRequest @InvokeWebRequestSplat).Links | Where-Object {$_.OuterHTML -match '.appx' -and $_.outerHTML -match 'x64'}).href | ||||
|         OutFile = "$env:temp/$($Dependency.ShortName).appx" | ||||
|     } | ||||
|     Invoke-WebRequest @InvokeWebRequestSplat | ||||
| } | ||||
| # Download latest release from github | ||||
| $InvokeRestMethodSplat = @{ | ||||
|     Uri    = "https://api.github.com/repos/microsoft/winget-cli/releases/latest" | ||||
|     Method = 'GET' | ||||
| } | ||||
| $InvokeWebRequestSplat = @{ | ||||
|     Uri     = ((Invoke-RestMethod @InvokeRestMethodSplat).assets | Where-Object {$_.name -like '*.appxbundle'}).browser_download_url | ||||
|     Out = "$env:temp\winget.appxbundle" | ||||
|     OutFile = "$env:temp\winget.appxbundle" | ||||
| } | ||||
| Invoke-WebRequest @InvokeWebRequestSplat | ||||
|  | ||||
| $InvokeWebRequestSplat = @{ | ||||
|     Uri = "https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx" | ||||
|     Out = "$env:temp\vclibs.appx" | ||||
| # Install dependencies | ||||
| $AppxDependencies.ShortName | ForEach-Object { | ||||
|     $AddAppxPackageSplat = @{ | ||||
|         Path = "$env:temp/$($_).appx" | ||||
|     } | ||||
| Invoke-WebRequest @InvokeWebRequestSplat | ||||
|     Add-AppxPackage @AddAppxPackageSplat | ||||
| } | ||||
| # Install winget | ||||
| $AddAppxPackageSplat = @{ | ||||
|     Path = "$env:temp\winget.appxbundle" | ||||
| } | ||||
| Add-AppxPackage @AddAppxPackageSplat | ||||
|  | ||||
| If (Test-Path -Path "$env:temp\winget.appxbundle") { | ||||
|     & dism.exe /Online /Add-ProvisionedAppxPackage /PackagePath:"$env:temp\winget.appxbundle" /SkipLicense /DependencyPackagePath:"$env:temp\vclibs.appx" | ||||
| } | ||||
		Reference in New Issue
	
	Block a user