public/Get-AnalysisServicesDeploymentExePath.ps1
function Get-AnalysisServicesDeploymentExePath { <# .SYNOPSIS Find path to specific version of Microsoft.AnalysisServices.Deployment.exe .DESCRIPTION Finds the path to specific version of Microsoft.AnalysisServices.Deployment.exe Checks the following locations: ${env:ProgramFiles(x86)}\Microsoft SQL Server\*\Tools\Binn ${env:ProgramFiles(x86)}\Microsoft SQL Server Management Studio *\Common7\IDE $env:CustomAsDwInstallLocation The environment variable $env:CustomAsDwInstallLocation allows you to specify your own custom install directory. .PARAMETER Version The version of Microsoft.AnalysisServices.Deployment.exe to find. Valid values for -Version are: ('15', '14', '13', '12', '11') which translate as follows: * 15: SQL Server 2019 * 14: SQL Server 2017 * 13: SQL Server 2016 * 12: SQL Server 2014 * 11: SQL Server 2012 If you are unsure which version(s) of Microsoft.AnalysisServices.Deployment.exe you have installed, use the function **Find-AnalysisServicesDeploymentExeLocations** to obtain a full list. .EXAMPLE Get-AnalysisServicesDeploymentExePath -Version 15 Returns the SQL Server 2019 version of Microsoft.AnalysisServices.Deployment.exe (if present on the machine). .EXAMPLE Get-AnalysisServicesDeploymentExePath -Version 14 Returns the SQL Server 2017 version of Microsoft.AnalysisServices.Deployment.exe (if present on the machine). .OUTPUTS Returns a string containing the full path to the selected version of Microsoft.AnalysisServices.Deployment.exe .LINK https://github.com/DrJohnT/DeployCube .NOTES Written by (c) Dr. John Tunnicliffe, 2019-2021 https://github.com/DrJohnT/DeployCube This PowerShell script is released under the MIT license http://www.opensource.org/licenses/MIT #> [OutputType([string])] [CmdletBinding()] param( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [ValidateSet('15', '14', '13', '12', '11')] [string]$Version ) #try { $AnalysisServicesDeploymentExes = @(); [string] $ExeName = "Microsoft.AnalysisServices.Deployment.exe"; [string] $AnalysisServicesDeploymentExePath = $null; # Location SQL Server 2017 and prior [System.IO.FileSystemInfo[]]$AnalysisServicesDeploymentExes = Get-Childitem -Path "${env:ProgramFiles(x86)}\Microsoft SQL Server\*\Tools\Binn" -Recurse -Include $ExeName -ErrorAction SilentlyContinue; # Location SQL Server 2019 and greater (i.e. installed with SSMS) $AnalysisServicesDeploymentExes += Get-Childitem -Path "${env:ProgramFiles(x86)}\Microsoft SQL Server Management Studio *\Common7\IDE" -Recurse -Include $ExeName -ErrorAction SilentlyContinue; # Custom install location defined by Environment variable CustomAsDwInstallLocation $CustomAsDwInstallLocation = [Environment]::GetEnvironmentVariable('CustomAsDwInstallLocation'); if ("$CustomAsDwInstallLocation" -ne "") { if (Test-Path $CustomAsDwInstallLocation) { $AnalysisServicesDeploymentExes += Get-Childitem -Path "$CustomAsDwInstallLocation\" -Recurse -Include $ExeName -ErrorAction SilentlyContinue; } else { throw "Invalid custom environment variable path: CustomAsDwInstallLocation"; } } foreach ($AnalysisServicesDeploymentExe in $AnalysisServicesDeploymentExes) { $ExePath = $AnalysisServicesDeploymentExe.FullName; [string] $ProductVersion = $AnalysisServicesDeploymentExe.VersionInfo.ProductVersion; $ProductVersionNumber = $ProductVersion.SubString(0,2); if ($ProductVersionNumber -eq $Version) { $AnalysisServicesDeploymentExePath = $ExePath; Write-Verbose "$ExeName version $Version found here: $AnalysisServicesDeploymentExePath"; break; } } #} #catch { # $ErrMsg = $PSItem.ToString(); # Write-Error "Get-AnalysisServicesDeploymentExePath failed with error $ErrMsg"; #} return $AnalysisServicesDeploymentExePath; } |