Closed LaurentDardenne closed 5 years ago
$Path='C:\temp' $File='Test.Rule.ps1' @' Rule Main { Rule nested { $True } $True } '@ >"$Path\$File" cd $path 'object'|Invoke-psrule -path "$path\$File" # Rule : La référence d'objet n'est pas définie à une instance d'un objet. # Au caractère C:\temp\Test.Rule.ps1:2 : 5 # + Rule nested { # + ~~~~~~~~~~~~~ # + CategoryInfo : NotSpecified: (:) [New-RuleDefinition], NullReferenceException # + FullyQualifiedErrorId : System.NullReferenceException,PSRule.Commands.NewRuleDefinitionCommand $e=$error[0] $e|select * # PSMessageDetails : # Exception : System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un # objet. # à PSRule.Commands.NewRuleDefinitionCommand.ProcessRecord() # à System.Management.Automation.CommandProcessor.ProcessRecord() # TargetObject : # CategoryInfo : NotSpecified: (:) [New-RuleDefinition], NullReferenceException # FullyQualifiedErrorId : System.NullReferenceException,PSRule.Commands.NewRuleDefinitionCommand # ErrorDetails : # InvocationInfo : System.Management.Automation.InvocationInfo # ScriptStackTrace : à <ScriptBlock>, C:\temp\Test.Rule.ps1 : ligne 2 # PipelineIterationInfo : {} $e.exception|select * # Message : La référence d'objet n'est pas définie à une instance d'un objet. # Data : {} # InnerException : # TargetSite : Void ProcessRecord() # StackTrace : à PSRule.Commands.NewRuleDefinitionCommand.ProcessRecord() # à System.Management.Automation.CommandProcessor.ProcessRecord() # HelpLink : # Source : PSRule # HResult : -2147467261
Expected behaviour This possibility does not seem to me allowed, but into the documentation it says (paragraph body)
Body - A script block definition of the rule containing one or more PSRule keywords and PowerShell expressions.
Is it implicitly "...containing one or more PSRule keywords except the 'Rule' keyword" ?
@LaurentDardenne Agree. The documentation should be updated and possibly checks can be added to provide a better message.
Rule keywords can't be nested.
Rule
Expected behaviour This possibility does not seem to me allowed, but into the documentation it says (paragraph body)
Is it implicitly "...containing one or more PSRule keywords except the 'Rule' keyword" ?