我不了解如何创建所需状态配置资源的概念。我一直在收到错误。我使用以下内容。有人能给我一个非常简单的方法来理解这个吗?
MOF
[ClassVersion("1.0.0"), FriendlyName("SQLInstall")]
class MSFT_SQLInstall: OMI_BaseResource
{
[Key] String InstanceName;
[Write] String SA;
[Write, ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;
};
PSM1:
Function Get-TargetResource
{
param(
[parameter(Mandatory = $true)]
[System.String]
$InstanceName,
[ValidateSet('Present','Absent')]
[System.String]
$Ensure )
$ins = @($InstanceName)
return $ins
}
Function Set-TargetResource
{
param(
[parameter(Mandatory = $true)]
[System.String]
$InstanceName,
[ValidateSet('Present','Absent')]
[System.String]
$Ensure )
}
function Test-TargetResource
{
[OutputType([System.Boolean])]
param
(
[parameter(Mandatory = $true)]
[System.String]
$InstanceName,
[ValidateSet('Present','Absent')]
[System.String]
$Ensure
)
try {
write-verbose "Test: Getting current Instance $Instance status"
$Status = <# test goes here #>
if ($Ensure -like 'Present')
{
if (($Status -eq $true))
{
return $true
}
else
{
return $false
}
}
else
{
if ($Status -eq $true)
{
return $false
}
else
{
return $true
}
}
}
Catch {
$exception = $_
Write-Verbose ("An Error Occurred: $exception.message")
}
}
答案 0 :(得分:1)
您的DSC资源不完整。 PSM1必须具有Test-TargetResource
功能。每当使用DSC资源时,Test-TargetResource
首先运行以检查是否应运行Set-TargetResource
。
您需要查看在technet上撰写custom DSC resources帮助内容。此外,DSC resource designer是初学者的一个很好的起点。