-
-
Save likamrat/726974f4715d164a4013f7cab2183e3c to your computer and use it in GitHub Desktop.
Write-Information "This script needs be run on Windows Server 2019 or 2022" | |
If ($PSVersionTable.PSVersion.Major -ge 7){ Write-Error "This script needs be run by version of PowerShell prior to 7.0" } | |
# Define environment variables | |
$downloadDir = "C:\WinTerminal" | |
$gitRepo = "microsoft/terminal" | |
$filenamePattern = "*.msixbundle" | |
$framworkPkgUrl = "https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx" | |
$framworkPkgPath = "$downloadDir\Microsoft.VCLibs.x64.14.00.Desktop.appx" | |
$msiPath = "$downloadDir\Microsoft.WindowsTerminal.msixbundle" | |
$releasesUri = "https://api.github.com/repos/$gitRepo/releases/latest" | |
$downloadUri = ((Invoke-RestMethod -Method GET -Uri $releasesUri).assets | Where-Object name -like $filenamePattern ).browser_download_url | Select-Object -SkipLast 1 | |
# Download C++ Runtime framework packages for Desktop Bridge and Windows Terminal latest release msixbundle | |
Invoke-WebRequest -Uri $framworkPkgUrl -OutFile ( New-Item -Path $framworkPkgPath -Force ) | |
Invoke-WebRequest -Uri $downloadUri -OutFile ( New-Item -Path $msiPath -Force ) | |
# Install C++ Runtime framework packages for Desktop Bridge and Windows Terminal latest release | |
Add-AppxPackage -Path $framworkPkgPath | |
Add-AppxPackage -Path $msiPath | |
# Cleanup | |
Remove-Item $downloadDir -Recurse -Force |
I tried it and got the following error:
PS C:\Users\cheema> .\Terminal_WinSrv.ps1 Invoke-WebRequest : Cannot validate argument on parameter 'Uri'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. At C:\Users\cheema\Terminal_WinSrv.ps1:16 char:24 + Invoke-WebRequest -Uri $downloadUri -OutFile ( New-Item -Path $msiPat ... + ~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Invoke-WebRequest], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.InvokeWebRequestCommand Add-AppxPackage : Deployment failed with HRESULT: 0x80073CF0, Package could not be opened. error 0x8007000D: Opening the package from location Microsoft.WindowsTerminal.msixbundle failed. NOTE: For additional information, look for [ActivityId] 9f8500d1-77a6-0002-1a58-39a0a677d901 in the Event Log or use the command line Get-AppPackageLog -ActivityID 9f8500d1-77a6-0002-1a58-39a0a677d901 At C:\Users\cheema\Terminal_WinSrv.ps1:20 char:1 + Add-AppxPackage -Path $msiPath + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (C:\WinTerminal\...inal.msixbundle:String) [Add-AppxPackage], FileNotFoundException + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
Not sure what used to be returned but this error is caused by the "-SkipLast 1" parameter on the select-object at the end of $downloadUri = ((Invoke-RestMethod -Method GET -Uri $releasesUri).assets | Where-Object name -like $filenamePattern ).browser_download_url as this line currently only returns 1 item.
The script also threw this error for me on server 2022 for a missing dependency "Microsoft.UI.Xaml.2.8" which can be resolved by pulling down and installing https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.5/Microsoft.UI.Xaml.2.8.x64.appx. I added this in my fork if you want to integrate it.
I think that the | Select-Object -SkipLast 1
bit needs to be removed now. Perhaps something has changed recently in the output of that command.
I tried to run this on Windows Server 2019, but the build number was too small. So I ran it on Windows Server 2022, and now it just won't launch. I am weeping, bitterly, without even slicing any onions. Any ideas as to why this might happen?
Sorry, I should have given the error message:
PS C:\Windows\system32> wt.exe; $error[0]
Program 'wt.exe' failed to run: The file cannot be accessed by the systemAt line:1 char:1
+ wt.exe; $error[0]
+ ~~~~~~.
At line:1 char:1
+ wt.exe; $error[0]
+ ~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
Program 'wt.exe' failed to run: The file cannot be accessed by the systemAt line:1 char:1
+ wt.exe; $error[0]
+ ~~~~~~.
At line:1 char:1
+ wt.exe; $error[0]
+ ~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed
same error today for me