Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

xWebApplication fails obtain desired state if multiple SSL flags are specified. #589

Open
General-Fault opened this issue Dec 11, 2020 · 0 comments
Labels
bug The issue is a bug. help wanted The issue is up for grabs for anyone in the community.

Comments

@General-Fault
Copy link

General-Fault commented Dec 11, 2020

Details of the scenario you tried and the problem that is occurring If multiple

If the 'SSLFlags' parameter of an xWebApplication instance contains multiple flags, the "Test" method always fails.

The site will be properly configured. However a test of the resource will fail. So if DSC is configured to run in "Monitor" mode, this resource will always be marked as "Not In Desired State".

Verbose logs showing the problem

PS C:\> Invoke-DscResource -ModuleName 'xWebAdministration' -Name 'xWebApplication' -Method 'Set' -Property @{
         Name = '[obfuscated]'
         PhysicalPath = 'D:\inetpub\wwwroot\[obfuscated]'
         WebAppPool = '[obfuscated]'
         Website = '[obfuscated]'
         PreloadEnabled = $true
         ServiceAutoStartEnabled = $true
         SSLFlags = @('Ssl', 'Ssl128')
         Ensure = 'Present'
 } -verbose

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = ResourceSet,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer SC-WTEXASVA with user sid S-1-5-21-1704754919-1788290416-935202900-1000.
VERBOSE: [SC-WTEXASVA]: LCM:  [ Start  Set      ]  [[xWebApplication]DirectResourceAccess]
VERBOSE: [SC-WTEXASVA]:                            [[xWebApplication]DirectResourceAccess] Updating SslFlags for Web application "[obfuscated]".
VERBOSE: [SC-WTEXASVA]: LCM:  [ End    Set      ]  [[xWebApplication]DirectResourceAccess]  in 1.1000 seconds.
VERBOSE: [SC-WTEXASVA]: LCM:  [ End    Set      ]    in  1.1400 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.

RebootRequired
--------------
False
VERBOSE: Time taken for configuration job to complete is 1.211 seconds


PS C:\> Invoke-DscResource -ModuleName 'xWebAdministration' -Name 'xWebApplication' -Method 'Test' -Property @{
         Name = '[obfuscated]'
         PhysicalPath = 'D:\inetpub\wwwroot\[obfuscated]'
         WebAppPool = '[obfuscated]'
         Website = '[obfuscated]'
         PreloadEnabled = $true
         ServiceAutoStartEnabled = $true
         SSLFlags = @('Ssl', 'Ssl128')
         Ensure = 'Present'
 } -verbose

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = ResourceTest,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer SC-WTEXASVA with user sid S-1-5-21-1704754919-1788290416-935202900-1000.
VERBOSE: [SC-WTEXASVA]: LCM:  [ Start  Test     ]  [[xWebApplication]DirectResourceAccess]
VERBOSE: [SC-WTEXASVA]:                            [[xWebApplication]DirectResourceAccess] SslFlags for web application "[obfuscated]" are not in the desired state.
VERBOSE: [SC-WTEXASVA]: LCM:  [ End    Test     ]  [[xWebApplication]DirectResourceAccess] False in 0.0600 seconds.
VERBOSE: [SC-WTEXASVA]: LCM:  [ End    Set      ]    in  0.1050 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.

InDesiredState
--------------
False
VERBOSE: Time taken for configuration job to complete is 0.182 seconds



PS C:\> Invoke-DscResource -ModuleName 'xWebAdministration' -Name 'xWebApplication' -Method 'Get' -Property @{
         Name = '[obfuscated]'
         PhysicalPath = 'D:\inetpub\wwwroot\[obfuscated]'
         WebAppPool = '[obfuscated]'
         Website = '[obfuscated]'
         PreloadEnabled = $true
         ServiceAutoStartEnabled = $true
         SSLFlags = @('Ssl', 'Ssl128')
         Ensure = 'Present'
 } -verbose

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = ResourceGet,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer SC-WTEXASVA with user sid S-1-5-21-1704754919-1788290416-935202900-1000.
VERBOSE: [SC-WTEXASVA]:                            [[xWebApplication]DirectResourceAccess] Get-TargetResource has been run.
VERBOSE: [SC-WTEXASVA]: LCM:  [ End    Get      ]  [[xWebApplication]DirectResourceAccess]  in 0.0950 seconds.
VERBOSE: [SC-WTEXASVA]: LCM:  [ End    Set      ]    in  0.1350 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.


ConfigurationName        :
DependsOn                :
ModuleName               : xWebAdministration
ModuleVersion            : 3.2.0
PsDscRunAsCredential     :
ResourceId               :
SourceInfo               :
ApplicationType          :
AuthenticationInfo       : MSFT_xWebApplicationAuthenticationInformation
EnabledProtocols         : {http}
Ensure                   : Present
Name                     : [obfuscated]
PhysicalPath             : D:\inetpub\wwwroot\[obfuscated]
PreloadEnabled           : True
ServiceAutoStartEnabled  : True
ServiceAutoStartProvider :
SslFlags                 : {Ssl,Ssl128}
WebAppPool               : [obfuscated]
Website                  : [obfuscated]
PSComputerName           : localhost

VERBOSE: Time taken for configuration job to complete is 0.217 seconds

Suggested solution to the issue

The problem appears to be with the helper function 'Get-SslFlags' which does not split the string 'Ssl,Ssl128'. Consequentially, the helper function 'Test-SslFlags' compares the array @('Ssl','Ssl128) with the string 'Ssl,Ssl128' and always returns false.

The DSC configuration that is used to reproduce the issue (as detailed as possible)

xWebApplication WebApp {
    Name = '[obfuscated]'
    PhysicalPath = 'D:\inetpub\wwwroot\[obfuscated]'
    WebAppPool = '[obfuscated]'
    Website = '[obfuscated]'
    PreloadEnabled = $true
    ServiceAutoStartEnabled = $true
    SSLFlags = @('Ssl', 'Ssl128')
    Ensure = 'Present'
}

The operating system the target node is running

OsName : Microsoft Windows 10 Enterprise LTSC
OsOperatingSystemSKU : 125
OsArchitecture : 64-bit
WindowsVersion : 1809
WindowsBuildLabEx : 17763.1.amd64fre.rs5_release.180914-1434
OsLanguage : en-US
OsMuiLanguages : {en-US}

Version and build of PowerShell the target node is running

Name Value


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

Version of the DSC module that was used

3.2.0

@johlju johlju added bug The issue is a bug. help wanted The issue is up for grabs for anyone in the community. labels Dec 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug The issue is a bug. help wanted The issue is up for grabs for anyone in the community.
Projects
None yet
Development

No branches or pull requests

2 participants