dataplat / dbatools

🚀 SQL Server automation and instance migrations have never been safer, faster or freer
https://dbatools.io
MIT License
2.39k stars 787 forks source link

Install-DbaInstance Feature MachineLearning(SQL_INST_MR) is not supported on SQL2022 #9285

Closed bilodeauj closed 2 months ago

bilodeauj commented 3 months ago

Verified issue does not already exist?

I have searched and found no existing issue

What error did you receive?

Feature MachineLearning(SQL_INST_MR) is not supported on SQL2022

Steps to Reproduce


Import-Module -Name dbatools

# Environment Settings for TSTSQL22 Build

# Root folder where the SQL Server install and files are found
$InstallRoot = "\\myfileserver\app_downloads\"

#Location of installation files for each version of SQL Server. Each of these is currently the latest SP we've standardized on.
$InstallationSources = @{
    2022 = "$InstallRoot\Microsoft_SQL_Server_2022\Installation_files\SQL_Svr_Ent_Core_2022_64Bit_English_OEM_VL_X23-28404"
}

#Location of update sources for each version of SQL Server. Directory should contain the latest CU we've standardized on.
$UpdateSources = @{
    2022 = "$InstallRoot\Microsoft_SQL_Server_2022\Update_files"
}

# SQL Server Version which pertains to install and update sources listed above
$Version = 2022

# Server Name for the SQL Server
$Server = 'TSTSQL22'

# SQL Server instance name. Use MSSQLSERVER for default 
$SQLInstance = 'MSSQLSERVER'

# SQL Server features to install
$Features = @('Engine','FullText','MachineLearning','IntegrationServices')

# AD Domain of the server
$ActiveDirectoryDomain = $env:USERDOMAIN

# AD SQL Admins Group
$SQLAdminGroup = "$ActiveDirectoryDomain\dba_admin_groupname"

# SQL Server Collation
$SQLCollation = 'SQL_Latin1_General_CP1_CI_AS'

# Authentication Mode of SQL Server Install
$SQLAuthenticationMode = 'Windows'

# Drive Path Information for SQL Server install
$InstancePath = 'F:\SYSTEM'
$DataPath = 'F:\DATA'
$LogPath = 'I:\LOGS'
$TempPath = 'J:\TEMPDB'
$BackupPath = 'G:\BACKUPS'

$Configuration = @{ 
    UPDATEENABLED = "True"
    UPDATESOURCE = $UpdateSources[$Version]; 
    BROWSERSVCSTARTUPTYPE = "Disabled"
}

$InstallationParameters = @{
    SqlInstance = $SQLInstance
    Path = $InstallationSources[$Version]
    Version = $Version
    Feature = $Features
    SqlCollation = $SQLCollation
    AuthenticationMode = $SQLAuthenticationMode
    InstancePath = $InstancePath
    DataPath = $DataPath
    LogPath = $LogPath
    TempPath = $TempPath
    BackupPath = $BackupPath
    Credential = $InstallationCredential
    Configuration = $Configuration
    PerformVolumeMaintenanceTasks = $true
    AdminAccount = $SQLAdminGroup
    Restart = $true
    Confirm = $false 
    Verbose = $true
}

$InstallationResult = Install-DbaInstance @InstallationParameters -WhatIf
$InstallationResult

if ( -Not ($InstallationResult.Successful )){
    Write-Output "FAILED: Installation on $SqlInstance failed. Examine the installation log at $($InstallationResult.LogFile) on the target server." -ErrorAction Stop
}

When running the command with -whatif above I get the following output. I don't understand my it says that SQL_INST_MR is not supported on SQL2022, since in the dbatools-sqlinstallationcomponents.json file the SQL_INST_MR feature is has a "MinimumVersion": "14.0" and "MaximumVersion": "15.0" specified.

WARNING: [09:21:22][Install-DbaInstance] Feature MachineLearning(SQL_INST_MR) is not supported on SQL2022 What if: Performing the operation "Set variable" on target "Name: __dbatools_interrupt_function_78Q9VPrM6999g6zo24Qn83m09XF56InEn4hFrA8Fwhu5xJrs6r Value: True". FAILED: Installation on MSSQLSERVER failed. Examine the installation log at on the target server.

Please confirm that you are running the most recent version of dbatools

2.1.10

Other details or mentions

I originally reported the issue in bug #9149 which is now closed, but despite the fixes with the MaximumVersion being added and the file encoding issues being fixed, I still seem to be having the issue

What PowerShell host was used when producing this error

Windows PowerShell ISE (powershell_ise.exe)

PowerShell Host Version

Name Value


PSVersion 5.1.20348.2227
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.20348.2227
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

SQL Server Edition and Build number

SQL Server 2022 Enterprise x64 (New install from .iso file SW_DVD9_NTRL_SQL_Svr_Ent_Core_2022_64Bit_English_OEM_VL_X23-28404.ISO)

.NET Framework Version

.NET Framework 4.8.4645.0

andreasjordan commented 3 months ago

Thanks for reporting this. I will change the code so that only the correct features are selected based on the version but no exception is thrown.