Powershell in the same segment finds that the execution results are different on two different machines. The execution is successful on one platform and fails on the other. The code below is used to obtain the 0.0.0.0! 4466 SSL binding information. With the help of MS technology, the cause of the problem is that sslcertstorename In the entries in the Registry HKLM \ System \ CurrentControlSet \ Services \ HTTP \ Parameters \ sslbindinginfo
Key. If there are multiple entries, this problem occurs if only the start entry does not have the key. The solution is to add the missing sslcertstorename key or remove the sslcertstorename key from all entries.
Set-executionpolicy remotesigned
Import-module webadministration
Cd iis: \ sslbindings
Get-item 0.0.0.0! 4466
The trace on two different machines using the trace-command cmdlet is as follows:
(1) Running the result displayed on the correct machine
Trace-command-name parameterbinding-option all-expression {Get-item 0.0.0.0! 4466}-pshost
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [Get-item]
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [Get-item]
Debug: parameterbinding information: 0: bind Arg [0.0.0.0! 4466] to parameter [path]
Debug: parameterbinding information: 0: binding collection parameter path: argument type [String], parameter type [system. String [], collection type array, element type [s
Ystem. String], no coerceelementtype
Debug: parameterbinding information: 0: Creating array with element type [system. String] and 1 Elements
Debug: parameterbinding information: 0: argument type string is not ilist, treating this as scalar
Debug: parameterbinding information: 0: Adding scalar element of Type string to array position 0
Debug: parameterbinding information: 0: bind Arg [system. String [] to Param [path] Successful
Debug: parameterbinding information: 0: bind Cmd Line ARGs to dynamic parameters.
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [Get-item]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: Calling endprocessing
(2) Running the result displayed on the correct machine
Trace-command-name parameterbinding-option all-expression {Get-item 0.0.0.0! 4466}-pshost
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [Get-item]
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [Get-item]
Debug: parameterbinding information: 0: bind Arg [0.0.0.0! 4466] to parameter [path]
Debug: parameterbinding information: 0: binding collection parameter path: argument type [String], parameter type [system. String [], collection type array,
Element type [system. String], no coerceelementtype
Debug: parameterbinding information: 0: Creating array with element type [system. String] and 1 Elements
Debug: parameterbinding information: 0: argument type string is not ilist, treating this as scalar
Debug: parameterbinding information: 0: Adding scalar element of Type string to array position 0
Debug: parameterbinding information: 0: bind Arg [system. String [] to Param [path] Successful
Debug: parameterbinding information: 0: bind Cmd Line ARGs to dynamic parameters.
Debug: parameterbinding information: 0: bind pipeline object to parameters: [Out-default]
Debug: parameterbinding information: 0: Pipeline object type = [system. Management. Automation. errorrecord]
Debug: parameterbinding information: 0: Restoring pipeline parameter's original values
Debug: parameterbinding information: 0: parameter [inputobject] pipeline Input valuefrompipeline no coercion
Debug: parameterbinding information: 0: bind Arg [cannot retrieve the dynamic parameters for the cmdlet. Failed to enumerate SSL bindings, error code 234.] to P
Arameter [inputobject]
Debug: parameterbinding information: 0: bind Arg [cannot retrieve the dynamic parameters for the cmdlet. Failed to enumerate SSL bindings, error code 234.]
To Param [inputobject] Successful
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [Out-default]
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [Out-lineoutput]
Debug: parameterbinding information: 0: bind Arg [microsoft. powershell. commands. Internal. format. consolelineoutput] to parameter [lineoutput]
Debug: parameterbinding information: 0: coerce Arg to [system. Object]
Debug: parameterbinding information: 0: parameter and Arg types the same, no coercion is needed.
Debug: parameterbinding information: 0: bind Arg [microsoft. powershell. commands. Internal. format. consolelineoutput] To Param [lineoutput] Successful
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [Out-lineoutput]
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [Out-lineoutput]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: bind pipeline object to parameters: [Out-lineoutput]
Debug: parameterbinding information: 0: Pipeline object type = [system. Management. Automation. errorrecord]
Debug: parameterbinding information: 0: Restoring pipeline parameter's original values
Debug: parameterbinding information: 0: parameter [inputobject] pipeline Input valuefrompipeline no coercion
Debug: parameterbinding information: 0: bind Arg [cannot retrieve the dynamic parameters for the cmdlet. Failed to enumerate SSL bindings, error code 234.] to P
Arameter [inputobject]
Debug: parameterbinding information: 0: bind Arg [cannot retrieve the dynamic parameters for the cmdlet. Failed to enumerate SSL bindings, error code 234.]
To Param [inputobject] Successful
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [Out-lineoutput]
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [format-default]
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [format-default]
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [format-default]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: bind pipeline object to parameters: [format-default]
Debug: parameterbinding information: 0: Pipeline object type = [system. Management. Automation. errorrecord]
Debug: parameterbinding information: 0: Restoring pipeline parameter's original values
Debug: parameterbinding information: 0: parameter [inputobject] pipeline Input valuefrompipeline no coercion
Debug: parameterbinding information: 0: bind Arg [cannot retrieve the dynamic parameters for the cmdlet. Failed to enumerate SSL bindings, error code 234.] to P
Arameter [inputobject]
Debug: parameterbinding information: 0: bind Arg [cannot retrieve the dynamic parameters for the cmdlet. Failed to enumerate SSL bindings, error code 234.]
To Param [inputobject] Successful
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [format-default]
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: bind Arg [1] to parameter [version]
Debug: parameterbinding information: 0: executing data generation metadata: [microsoft. powershell. commands. setstrictmodecommand + argumenttoversiontransformat
Ionattribute]
Debug: parameterbinding information: 0: result returned from data generation: 1.0
Debug: parameterbinding information: 0: coerce Arg to [system. Version]
Debug: parameterbinding information: 0: parameter and Arg types the same, no coercion is needed.
Debug: parameterbinding information: 0: executing validation metadata: [microsoft. powershell. commands. setstrictmodecommand + validateversionattribute]
Debug: parameterbinding information: 0: bind Arg [1.0] To Param [version] Successful
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [set-strictmode]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: Calling endprocessing
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: bind Arg [1] to parameter [version]
Debug: parameterbinding information: 0: executing data generation metadata: [microsoft. powershell. commands. setstrictmodecommand + argumenttoversiontransformat
Ionattribute]
Debug: parameterbinding information: 0: result returned from data generation: 1.0
Debug: parameterbinding information: 0: coerce Arg to [system. Version]
Debug: parameterbinding information: 0: parameter and Arg types the same, no coercion is needed.
Debug: parameterbinding information: 0: executing validation metadata: [microsoft. powershell. commands. setstrictmodecommand + validateversionattribute]
Debug: parameterbinding information: 0: bind Arg [1.0] To Param [version] Successful
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [set-strictmode]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: Calling endprocessing
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: bind Arg [1] to parameter [version]
Debug: parameterbinding information: 0: executing data generation metadata: [microsoft. powershell. commands. setstrictmodecommand + argumenttoversiontransformat
Ionattribute]
Debug: parameterbinding information: 0: result returned from data generation: 1.0
Debug: parameterbinding information: 0: coerce Arg to [system. Version]
Debug: parameterbinding information: 0: parameter and Arg types the same, no coercion is needed.
Debug: parameterbinding information: 0: executing validation metadata: [microsoft. powershell. commands. setstrictmodecommand + validateversionattribute]
Debug: parameterbinding information: 0: bind Arg [1.0] To Param [version] Successful
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [set-strictmode]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: Calling endprocessing
Debug: parameterbinding information: 0: bind named Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: bind Arg [1] to parameter [version]
Debug: parameterbinding information: 0: executing data generation metadata: [microsoft. powershell. commands. setstrictmodecommand + argumenttoversiontransformat
Ionattribute]
Debug: parameterbinding information: 0: result returned from data generation: 1.0
Debug: parameterbinding information: 0: coerce Arg to [system. Version]
Debug: parameterbinding information: 0: parameter and Arg types the same, no coercion is needed.
Debug: parameterbinding information: 0: executing validation metadata: [microsoft. powershell. commands. setstrictmodecommand + validateversionattribute]
Debug: parameterbinding information: 0: bind Arg [1.0] To Param [version] Successful
Debug: parameterbinding information: 0: bind positional Cmd Line ARGs [set-strictmode]
Debug: parameterbinding information: 0: mandatory parameter check on cmdlet [set-strictmode]
Debug: parameterbinding information: 0: Calling beginprocessing
Debug: parameterbinding information: 0: Calling endprocessing
Get-item: cannot retrieve the dynamic parameters for the cmdname. Failed to enumerate SSL bindings, error code 234.
At line: 4 CHAR: 72
+ Trace-command-name parameterbinding-option all-expression {Get-item <0.0.0.0! 4466}-pshost
+ Categoryinfo: invalidargument: (:) [Get-item], parameterbindingexception
+ Fullyqualifiederrorid: getdynamicparametersexception, Microsoft. powershell. commands. getitemcommand