Skip to content

Commit 66de733

Browse files
committed
Modify and add commands
1 parent 2828e83 commit 66de733

9 files changed

+161
-74
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<#
2+
.SYNOPSIS
3+
Returns the database engine settings.
4+
5+
.DESCRIPTION
6+
Returns the database engine settings.
7+
8+
.PARAMETER InstanceId
9+
Specifies the instance id on which to check if component is installed.
10+
11+
.OUTPUTS
12+
`[System.Management.Automation.PSCustomObject]`
13+
14+
.EXAMPLE
15+
Get-SqlDscDatabaseEngineInstalledSetting -InstanceId 'MSSQL13.SQL2016'
16+
17+
Returns the settings for the database engine.
18+
#>
19+
function Get-SqlDscDatabaseEngineInstalledSetting
20+
{
21+
[CmdletBinding()]
22+
[OutputType([System.Boolean])]
23+
param
24+
(
25+
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
26+
[System.String]
27+
$InstanceId
28+
)
29+
30+
process
31+
{
32+
$databaseEngineSettings = $null
33+
34+
$getItemPropertyParameters = @{
35+
Path = 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\{0}\Setup' -f $InstanceId
36+
ErrorAction = 'SilentlyContinue'
37+
}
38+
39+
$setupSettings = Get-ItemProperty @getItemPropertyParameters
40+
41+
if (-not $setupSettings)
42+
{
43+
$missingDatabaseEngineMessage = $script:localizedData.DatabaseEngineSetting_Get_NotInstalled -f $Version.ToString()
44+
45+
$writeErrorParameters = @{
46+
Message = $missingDatabaseEngineMessage
47+
Category = 'InvalidOperation'
48+
ErrorId = 'GISS0001' # cspell: disable-line
49+
TargetObject = $Version
50+
}
51+
52+
Write-Error @writeErrorParameters
53+
}
54+
else
55+
{
56+
$databaseEngineSettings = [InstalledComponentSetting]::Parse($setupSettings)
57+
}
58+
59+
return $databaseEngineSettings
60+
}
61+
}

source/Public/Get-SqlDscDatabaseEngineSetting.ps1

Lines changed: 0 additions & 58 deletions
This file was deleted.

source/Public/Get-SqlDscInstalledComponent.ps1

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,13 @@ function Get-SqlDscInstalledComponent
120120
{
121121
$databaseLevelVersion = [System.Version] ('{0}.{1}' -f $databaseLevel.Substring(0, 2), $databaseLevel.Substring(2, 1))
122122

123-
$integrationServicesSettings = Get-SqlDscIntegrationServicesSetting -Version $databaseLevelVersion -ErrorAction 'SilentlyContinue'
123+
$isIntegrationServicesInstalled = Test-SqlDscIsIntegrationServicesInstalled -Version $databaseLevelVersion
124124

125-
if ($integrationServicesSettings)
125+
if ($isIntegrationServicesInstalled)
126126
{
127127
$installedComponents += [PSCustomObject] @{
128128
Feature = 'IS'
129-
Version = $integrationServicesSettings.Version
129+
Version = $databaseLevelVersion
130130
}
131131
}
132132

@@ -186,13 +186,13 @@ function Get-SqlDscInstalledComponent
186186
}
187187

188188
# Look for installed version of Master Data Services.
189-
$masterDataServicesSettings = Get-SqlDscMasterDataServicesSetting -Version $databaseLevelVersion -ErrorAction 'SilentlyContinue'
189+
$masterDataServicesSettings = Test-SqlDscIsMasterDataServicesInstalled -Version $databaseLevelVersion
190190

191191
if ($masterDataServicesSettings)
192192
{
193193
$installedComponents += [PSCustomObject] @{
194194
Feature = 'MDS'
195-
Version = $masterDataServicesSettings.Version
195+
Version = $databaseLevelVersion
196196
}
197197
}
198198

@@ -225,7 +225,7 @@ function Get-SqlDscInstalledComponent
225225
foreach ($currentInstance in $installedDatabaseEngineInstance)
226226
{
227227
# Look for installed version of Database Engine.
228-
$databaseEngineSettings = Get-SqlDscDatabaseEngineSetting -InstanceId $currentInstance.InstanceId -ErrorAction 'SilentlyContinue'
228+
$databaseEngineSettings = Get-SqlDscDatabaseEngineInstalledSetting -InstanceId $currentInstance.InstanceId -ErrorAction 'SilentlyContinue'
229229

230230
if ($databaseEngineSettings)
231231
{

source/Public/Get-SqlDscIntegrationServicesSetting.ps1 renamed to source/Public/Get-SqlDscIntegrationServicesInstalledSetting.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
`[System.Management.Automation.PSCustomObject]`
1313
1414
.EXAMPLE
15-
Get-SqlDscIntegrationServicesSetting -Version ([System.Version] '16.0')
15+
Get-SqlDscIntegrationServicesInstalledSetting -Version ([System.Version] '16.0')
1616
1717
Returns the settings for the Integration Services.
1818
#>
19-
function Get-SqlDscIntegrationServicesSetting
19+
function Get-SqlDscIntegrationServicesInstalledSetting
2020
{
2121
[CmdletBinding()]
2222
[OutputType([System.Boolean])]

source/Public/Get-SqlDscMasterDataServicesSetting.ps1 renamed to source/Public/Get-SqlDscMasterDataServicesInstalledSetting.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
`[System.Management.Automation.PSCustomObject]`
1313
1414
.EXAMPLE
15-
Get-SqlDscIntegrationServicesSetting -Version ([System.Version] '16.0')
15+
Get-SqlDscMasterDataServicesInstalledSetting -Version ([System.Version] '16.0')
1616
1717
Returns the settings for the integration services.
1818
#>
19-
function Get-SqlDscMasterDataServicesSetting
19+
function Get-SqlDscMasterDataServicesInstalledSetting
2020
{
2121
[CmdletBinding()]
2222
[OutputType([System.Boolean])]
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<#
2+
.SYNOPSIS
3+
Returns whether the Master Data Services are installed.
4+
5+
.DESCRIPTION
6+
Returns whether the Master Data Services are installed.
7+
8+
.PARAMETER Version
9+
Specifies the version for which to check if component is installed.
10+
11+
.PARAMETER InstanceName
12+
Specifies the instance name on which to check if component is installed.
13+
14+
.PARAMETER InstanceId
15+
Specifies the instance id on which to check if component is installed.
16+
17+
.OUTPUTS
18+
[System.Boolean]
19+
20+
.EXAMPLE
21+
Test-SqlDscIsDatabaseEngineInstalled -Version ([System.Version] '16.0')
22+
23+
Returns $true if Database Engine with version 16 is installed.
24+
25+
.NOTES
26+
The parameters are all mutually exclusive.
27+
#>
28+
function Test-SqlDscIsDatabaseEngineInstalled
29+
{
30+
[CmdletBinding()]
31+
[OutputType([System.Boolean])]
32+
param
33+
(
34+
[Parameter()]
35+
[System.Version]
36+
$Version,
37+
38+
[Parameter()]
39+
[ValidateNotNullOrEmpty()]
40+
[System.String]
41+
$InstanceName,
42+
43+
[Parameter()]
44+
[ValidateNotNullOrEmpty()]
45+
[System.String]
46+
$InstanceId
47+
)
48+
49+
$commandParameter = (Remove-CommonParameter -Hashtable $PSCmdlet.MyInvocation.MyCommand.Parameters).Keys
50+
51+
foreach ($currentParameterName in $commandParameter)
52+
{
53+
$assertBoundParameterParameters = @{
54+
BoundParameterList = $PSBoundParameters
55+
MutuallyExclusiveList1 = $currentParameterName
56+
MutuallyExclusiveList2 = @([System.String[]] $commandParameter.Where({ $_ -ne $currentParameterName }))
57+
}
58+
59+
Assert-BoundParameter @assertBoundParameterParameters
60+
}
61+
62+
$getSqlDscInstalledInstanceParameters = @{
63+
ServiceType = 'DatabaseEngine'
64+
}
65+
66+
$installedInstances = Get-SqlDscInstalledInstance @getSqlDscInstalledInstanceParameters -ErrorAction 'SilentlyContinue'
67+
68+
$result = $false
69+
70+
if ($PSBoundParameters.ContainsKey('InstanceId'))
71+
{
72+
$result = $installedInstances.InstanceId -contains $InstanceId
73+
}
74+
elseif ($PSBoundParameters.ContainsKey('InstanceName'))
75+
{
76+
$result = $installedInstances.InstanceName -contains $InstanceName
77+
}
78+
elseif ($PSBoundParameters.ContainsKey('Version'))
79+
{
80+
$result = ($installedInstances.InstanceId | Get-SqlDscDatabaseEngineInstalledSetting).Version.Major -contains $Version.Major
81+
}
82+
83+
return $result
84+
}

source/Public/Test-SqlDscIsIntegrationServicesInstalled.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function Test-SqlDscIsIntegrationServicesInstalled
2929

3030
$result = $false
3131

32-
if ((Get-SqlDscIntegrationServicesSetting -Version $Version -ErrorAction 'SilentlyContinue'))
32+
if ((Get-SqlDscIntegrationServicesInstalledSetting -Version $Version -ErrorAction 'SilentlyContinue'))
3333
{
3434
$result = $true
3535
}

source/Public/Test-SqlDscIsMasterDataServicesInstalled.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
[System.Boolean]
1313
1414
.EXAMPLE
15-
IsMasterDataServicesInstalled -Version ([System.Version] '16.0')
15+
Test-SqlDscIsMasterDataServicesInstalled -Version ([System.Version] '16.0')
1616
1717
Returns $true if Master Data Services are installed.
1818
#>
@@ -29,7 +29,7 @@ function Test-SqlDscIsMasterDataServicesInstalled
2929

3030
$result = $false
3131

32-
if ((Get-SqlDscMasterDataServicesSetting -Version $Version -ErrorAction 'SilentlyContinue'))
32+
if ((Get-SqlDscMasterDataServicesInstalledSetting -Version $Version -ErrorAction 'SilentlyContinue'))
3333
{
3434
$result = $true
3535
}

source/en-US/SqlServerDsc.strings.psd1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,12 +185,12 @@ ConvertFrom-StringData @'
185185
## Test-IsManagementStudioAdvancedInstalled
186186
IsManagementStudioAdvancedInstalled_Test_NotSupportedVersion = SQL Server Management Studio Advanced is not supported for the provided version.
187187
188-
## Get-SqlDscIntegrationServicesSetting
188+
## Get-SqlDscIntegrationServicesInstalledSetting
189189
IntegrationServicesSetting_Get_NotInstalled = There are no Integration Services installed with version {0}.
190190
191-
## Get-SqlDscMasterDataServicesSetting
191+
## Get-SqlDscMasterDataServicesInstalledSetting
192192
MasterDataServicesSetting_Get_NotInstalled = There are no Master Data Services installed with version {0}.
193193
194-
## Get-SqlDscDatabaseEngineSetting
194+
## Get-SqlDscDatabaseEngineInstalledSetting
195195
DatabaseEngineSetting_Get_NotInstalled = There are no Database Engine installed with version {0}.
196196
'@

0 commit comments

Comments
 (0)