1.1とxScript 5.1.0.0の組み込みスクリプトリソースを使用してこれをテストし、同じ結果を得ました。私のセットとテストブロックは正常に動作します。私は非常によく似ているいくつかの他のスクリプトリソースを使用していますし、getブロックでもうまく動作します。スクリプトリソースからハッシュテーブルを取得できません。ブロックを取得します。
私は多くのバリエーションを試しましたが、いつも同じように戻ってきます。私はブロックが実行されていることを知っています。なぜなら、作成されるファイルが削除された行をコメントアウトしてファイルを参照しているからです。私はこれをpowershellの関数として実行し、出力をGet-Memberにパイプして、実際に返されるhastableであることがわかります。
DSCでこの設定を管理するためにここで使用している方法が実際には好きではありません。 DSCの中にいれば、私は他のアイデアを公開しています。
Script StorePasswordsUsingReversibleEncyption
{
SetScript = {
secedit /export /cfg c:\temp\secpol.cfg
(gc C:\temp\secpol.cfg).replace("ClearTextPassword = 1", "ClearTextPassword = 0") | Out-File C:\temp\secpol.cfg
secedit /configure /db c:\windows\security\local.sdb /cfg c:\temp\secpol.cfg /areas SECURITYPOLICY /quiet
rm -force c:\temp\secpol.cfg -confirm:$false
}
TestScript = {
secedit /export /cfg c:\temp\secpol.cfg
$str = (Get-Content 'c:\temp\secpol.cfg' | select-String 'ClearTextPassword' -SimpleMatch).ToString()
rm -force c:\temp\secpol.cfg -confirm:$false
if ($str -eq 'ClearTextPassword = 0') {return $true}
else {return $false}
}
# Not working yet
GetScript = {
secedit /export /cfg c:\temp\secpol.cfg
$str = (Get-Content 'c:\temp\secpol.cfg' | select-String 'ClearTextPassword' -SimpleMatch).ToString()
rm -force c:\temp\secpol.cfg -confirm:$false
return @{Result = $str}
}
}
私がゲット-DSCConfigurationを実行した後、出力がコンソールに返さこのです:
Get-DscConfiguration : PowerShell DSC resource MSFT_ScriptResource failed to execute Get-TargetResource functionality
with error message: Failure to get the results from the script in a hash table format.
At line:1 char:1
+ Get-DscConfiguration
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (MSFT_DSCLocalConfigurationManager:root/Microsoft/...gurationManager)
[Get-DscConfiguration], CimException
+ FullyQualifiedErrorId : ProviderOperationExecutionFailure,Get-DscConfiguration
これはあまりにも動作します。ありがとう! –