Files
runner-images-sangeeth/images/win/scripts/SoftwareReport/SoftwareReport.VisualStudio.psm1
2022-06-08 17:26:18 +03:00

99 lines
3.6 KiB
PowerShell

function Get-VisualStudioVersion {
$vsInstance = Get-VisualStudioInstance
[PSCustomObject]@{
Name = $vsInstance.DisplayName
Version = $vsInstance.InstallationVersion
Path = $vsInstance.InstallationPath
}
}
function Get-SDKVersion {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
($installedApplications | Where-Object { $_.DisplayName -eq 'Windows SDK' } | Select-Object -First 1).DisplayVersion
}
function Get-WDKVersion {
$regKey = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
$installedApplications = Get-ItemProperty -Path $regKey
($installedApplications | Where-Object { $_.DisplayName -eq 'Windows Driver Kit' } | Select-Object -First 1).DisplayVersion
}
function Get-VisualStudioExtensions {
$vsPackages = (Get-VisualStudioInstance).Packages
# Additional vsixs
$toolset = Get-ToolsetContent
$vsixUrls = $toolset.visualStudio.vsix
if ($vsixUrls)
{
$vsixs = $vsixUrls | ForEach-Object {
$vsix = Get-VsixExtenstionFromMarketplace -ExtensionMarketPlaceName $_
$vsixVersion = ($vsPackages | Where-Object {$_.Id -match $vsix.VsixId -and $_.type -eq 'vsix'}).Version
@{
Package = $vsix.ExtensionName
Version = $vsixVersion
}
}
}
# SSDT extensions for VS2017
$vs = (Get-VisualStudioVersion).Name.Split()[-1]
if (Test-IsWin16)
{
$analysisPackageVersion = Get-VSExtensionVersion -packageName '04a86fc2-dbd5-4222-848e-911638e487fe'
$reportingPackageVersion = Get-VSExtensionVersion -packageName '717ad572-c4b7-435c-c166-c2969777f718'
$integrationPackageName = Get-VSExtensionVersion -packageName 'd1b09713-c12e-43cc-9ef4-6562298285ab'
$ssdtPackages = @(
@{Package = 'SSDT Microsoft Analysis Services Projects'; Version = $analysisPackageVersion}
@{Package = 'SSDT SQL Server Integration Services Projects'; Version = $reportingPackageVersion}
@{Package = 'SSDT Microsoft Reporting Services Projects'; Version = $integrationPackageName}
)
}
# SDK
if (Test-IsWin19) {
$sdkPackageVersion = Get-SDKVersion
$sdkPackages = @(
@{Package = 'Windows Software Development Kit Extension'; Version = $sdkPackageVersion}
)
}
if ((Test-IsWin16) -or (Test-IsWin19)) {
# Wix
$wixExtensionVersion = ($vsPackages | Where-Object {$_.Id -match 'WixToolset.VisualStudioExtension.Dev' -and $_.type -eq 'vsix'}).Version
$wixPackages = @(
@{Package = "WIX Toolset Studio $vs Extension"; Version = $wixExtensionVersion}
)
# WDK
$wdkPackageVersion = Get-VSExtensionVersion -packageName 'Microsoft.Windows.DriverKit'
$wdkExtensionVersion = Get-WDKVersion
$wdkPackages = @(
@{Package = 'Windows Driver Kit'; Version = $wdkPackageVersion}
@{Package = 'Windows Driver Kit Visual Studio Extension'; Version = $wdkExtensionVersion}
)
}
$extensions = @(
$vsixs
$ssdtPackages
$sdkPackages
$wixPackages
$wdkPackages
)
$extensions | Foreach-Object {
[PSCustomObject]$_
} | Select-Object Package, Version | Sort-Object Package
}
function Get-WindowsSDKs {
$path = "${env:ProgramFiles(x86)}\Windows Kits\10\Extension SDKs\WindowsDesktop"
return [PSCustomObject]@{
Path = $path
Versions = $(Get-ChildItem $path).Name
}
}