mssqlexec - Check for existing values before execution #416
+49
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes to how mssqlexec functions. Before, this module would enable both 'show advanced options' and 'xp_cmdshell' and after execution disable both regardless of prior settings. I have added a small check prior to command execution that saves the values of both options. The function to disable both settings now sets the values of both options based off the initial enumeration.
Here are scenarios of settings and how mssql now handles them. These screenshots have more verbose logs showing just for demonstration.
Both settings disabled
'show advanced options' disabled and 'xp_cmdshell' enabled
'show advanced options' enabled and 'xp_cmdshell' disabled
Both settings enabled
Here is the final output with less logging
This is typically inconsequential, however I think its better to revert values to what they were before.