description | ms.custom | ms.date | ms.topic | title |
---|---|---|---|---|
Use identical mandatory parameters for DSC Get/Test/Set TargetResource functions |
PSSA v1.21.0 |
06/28/2023 |
reference |
DSCUseIdenticalMandatoryParametersForDSC |
Severity Level: Error
For script based DSC resources, if a property is declared with attributes Key
of Required
in a
mof file, then is should be present as a mandatory parameter in the corresponding
Get-TargetResource
, Set-TargetResource
and Test-TargetResource
functions.
Make sure all the properties with Key
and Required
attributes have equivalent mandatory
parameters in the Get/Set/Test
functions.
Consider the following mof
file.
class WaitForAny : OMI_BaseResource
{
[key, Description("Name of Resource on remote machine")]
string Name;
[required, Description("List of remote machines")]
string NodeName[];
};
function Get-TargetResource
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Message
)
}
function Set-TargetResource
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Message,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name
)
}
function Test-TargetResource
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Message,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name
)
}
function Get-TargetResource
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Message,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name
)
}
function Set-TargetResource
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Message,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name
)
}
function Test-TargetResource
{
[CmdletBinding()]
param
(
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Message,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[String]
$Name
)
}