File tree Expand file tree Collapse file tree 9 files changed +62
-9
lines changed
Expand file tree Collapse file tree 9 files changed +62
-9
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1212- Fixed Azure DevOps pipeline conditions that were preventing DSC resource
1313 integration tests from running when they should by removing incorrect quotes
1414 around boolean values.
15+ - Refactored error handling by removing global ` $ErrorActionPreference = 'Stop' `
16+ from 64 PowerShell files and implementing targeted error control for specific
17+ command calls that use ` -ErrorAction 'Stop' ` .
1518- ` SqlAgentAlert `
1619 - Minor fix in ` source/Classes/020.SqlAgentAlert.ps1 ` to correct ` ExcludeDscProperties `
1720 formatting (added missing delimiter).
Original file line number Diff line number Diff line change @@ -34,8 +34,14 @@ function Get-FileVersionInformation
3434
3535 process
3636 {
37+ $originalErrorActionPreference = $ErrorActionPreference
38+
39+ $ErrorActionPreference = ' Stop'
40+
3741 $file = Get-Item - Path $FilePath - ErrorAction ' Stop'
3842
43+ $ErrorActionPreference = $originalErrorActionPreference
44+
3945 if ($file.PSIsContainer )
4046 {
4147 $PSCmdlet.ThrowTerminatingError (
Original file line number Diff line number Diff line change @@ -205,8 +205,14 @@ function Invoke-ReportServerSetupAction
205205 $ConfirmPreference = ' None'
206206 }
207207
208+ $originalErrorActionPreference = $ErrorActionPreference
209+
210+ $ErrorActionPreference = ' Stop'
211+
208212 Assert-ElevatedUser - ErrorAction ' Stop'
209213
214+ $ErrorActionPreference = $originalErrorActionPreference
215+
210216 $assertBoundParameters = @ {
211217 BoundParameterList = $PSBoundParameters
212218 MutuallyExclusiveList1 = @ (
Original file line number Diff line number Diff line change @@ -1372,7 +1372,7 @@ function Invoke-SetupAction
13721372 $Force
13731373 )
13741374
1375- $previousErrorActionPreference = $ErrorActionPreference
1375+ $originalErrorActionPreference = $ErrorActionPreference
13761376
13771377 $ErrorActionPreference = ' Stop'
13781378
@@ -1415,7 +1415,7 @@ function Invoke-SetupAction
14151415
14161416 Assert-SetupActionProperties - Property $PSBoundParameters - SetupAction $setupAction - ErrorAction ' Stop'
14171417
1418- $ErrorActionPreference = $previousErrorActionPreference
1418+ $ErrorActionPreference = $originalErrorActionPreference
14191419
14201420 $setupArgument = ' /QUIET /ACTION={0}' -f $setupAction
14211421
Original file line number Diff line number Diff line change @@ -106,8 +106,14 @@ function Add-SqlDscTraceFlag
106106 $getSqlDscTraceFlagParameters.Remove ($_ )
107107 }
108108
109+ $originalErrorActionPreference = $ErrorActionPreference
110+
111+ $ErrorActionPreference = ' Stop'
112+
109113 $currentTraceFlags = Get-SqlDscTraceFlag @getSqlDscTraceFlagParameters - ErrorAction ' Stop'
110114
115+ $ErrorActionPreference = $originalErrorActionPreference
116+
111117 $desiredTraceFlags = [System.UInt32 []] $currentTraceFlags + @ (
112118 $TraceFlag |
113119 ForEach-Object - Process {
@@ -130,7 +136,13 @@ function Add-SqlDscTraceFlag
130136
131137 $setSqlDscTraceFlagParameters.TraceFLag = $desiredTraceFlags
132138
139+ $originalErrorActionPreference = $ErrorActionPreference
140+
141+ $ErrorActionPreference = ' Stop'
142+
133143 Set-SqlDscTraceFlag @setSqlDscTraceFlagParameters - ErrorAction ' Stop'
144+
145+ $ErrorActionPreference = $originalErrorActionPreference
134146 }
135147 }
136148}
Original file line number Diff line number Diff line change @@ -65,19 +65,19 @@ function Get-SqlDscStartupParameter
6565 $InstanceName = ' MSSQLSERVER'
6666 )
6767
68- $previousErrorActionPreference = $ErrorActionPreference
68+ $originalErrorActionPreference = $ErrorActionPreference
6969
7070 $ErrorActionPreference = ' Stop'
7171
7272 Assert-ElevatedUser - ErrorAction ' Stop'
7373
74+ $ErrorActionPreference = $originalErrorActionPreference
75+
7476 if ($PSCmdlet.ParameterSetName -eq ' ByServiceObject' )
7577 {
7678 $ServiceObject | Assert-ManagedServiceType - ServiceType ' DatabaseEngine'
7779 }
7880
79- $ErrorActionPreference = $previousErrorActionPreference
80-
8181 if ($PSCmdlet.ParameterSetName -eq ' ByServerName' )
8282 {
8383 $getSqlDscManagedComputerServiceParameters = @ {
Original file line number Diff line number Diff line change @@ -72,6 +72,10 @@ function Import-SqlDscPreferredModule
7272
7373 $availableModule = $null
7474
75+ $originalErrorActionPreference = $ErrorActionPreference
76+
77+ $ErrorActionPreference = ' Stop'
78+
7579 try
7680 {
7781 $availableModule = Get-SqlDscPreferredModule @getSqlDscPreferredModuleParameters - ErrorAction ' Stop'
@@ -87,6 +91,10 @@ function Import-SqlDscPreferredModule
8791 )
8892 )
8993 }
94+ finally
95+ {
96+ $ErrorActionPreference = $originalErrorActionPreference
97+ }
9098
9199 if ($Force.IsPresent -and -not $Confirm )
92100 {
@@ -133,12 +141,18 @@ function Import-SqlDscPreferredModule
133141
134142 Push-Location
135143
144+ $originalErrorActionPreference = $ErrorActionPreference
145+
146+ $ErrorActionPreference = ' Stop'
147+
136148 <#
137149 SQLPS has unapproved verbs, disable checking to ignore Warnings.
138150 Suppressing verbose so all cmdlet is not listed.
139151 #>
140152 $importedModule = Import-Module - ModuleInfo $availableModule - DisableNameChecking - Verbose:$false - Force:$Force - Global - PassThru - ErrorAction ' Stop'
141153
154+ $ErrorActionPreference = $originalErrorActionPreference
155+
142156 <#
143157 SQLPS returns two entries, one with module type 'Script' and another with module type 'Manifest'.
144158 Only return the object with module type 'Manifest'.
Original file line number Diff line number Diff line change @@ -106,8 +106,14 @@ function Remove-SqlDscTraceFlag
106106 $getSqlDscTraceFlagParameters.Remove ($_ )
107107 }
108108
109+ $originalErrorActionPreference = $ErrorActionPreference
110+
111+ $ErrorActionPreference = ' Stop'
112+
109113 $currentTraceFlags = Get-SqlDscTraceFlag @getSqlDscTraceFlagParameters - ErrorAction ' Stop'
110114
115+ $ErrorActionPreference = $originalErrorActionPreference
116+
111117 if ($currentTraceFlags )
112118 {
113119 # Must always return an array. An empty array when removing the last value.
@@ -133,7 +139,13 @@ function Remove-SqlDscTraceFlag
133139
134140 $setSqlDscTraceFlagParameters.TraceFLag = $desiredTraceFlags
135141
142+ $originalErrorActionPreference = $ErrorActionPreference
143+
144+ $ErrorActionPreference = ' Stop'
145+
136146 Set-SqlDscTraceFlag @setSqlDscTraceFlagParameters - ErrorAction ' Stop'
147+
148+ $ErrorActionPreference = $originalErrorActionPreference
137149 }
138150 }
139151 else
Original file line number Diff line number Diff line change @@ -91,18 +91,18 @@ function Set-SqlDscStartupParameter
9191
9292 begin
9393 {
94- $previousErrorActionPreference = $ErrorActionPreference
94+ $originalErrorActionPreference = $ErrorActionPreference
9595
9696 $ErrorActionPreference = ' Stop'
9797
9898 Assert-ElevatedUser - ErrorAction ' Stop'
9999
100+ $ErrorActionPreference = $originalErrorActionPreference
101+
100102 if ($Force.IsPresent -and -not $Confirm )
101103 {
102104 $ConfirmPreference = ' None'
103105 }
104-
105- $ErrorActionPreference = $previousErrorActionPreference
106106 }
107107
108108 process
@@ -120,7 +120,7 @@ function Set-SqlDscStartupParameter
120120 ServerName = $ServerName
121121 InstanceName = $InstanceName
122122 ServiceType = ' DatabaseEngine'
123- ErrorAction = ' Stop '
123+ ErrorAction = ' SilentlyContinue '
124124 }
125125
126126 $ServiceObject = Get-SqlDscManagedComputerService @getSqlDscManagedComputerServiceParameters
You can’t perform that action at this time.
0 commit comments