DSC(期望状态配置)

时间:2017-02-20 15:23:13

标签: powershell dsc

有人能告诉我,Powershell ISE和标准控制台运行DSC脚本有什么区别(都是以管理员身份运行)?

当我通过PS ISE运行我的脚本时,一切正常,DSC适用于2台服务器,包括。加密。但是,当我通过“运行Powershell”运行完全相同的脚本时,可以使用Powershell'我收到了这样的错误消息:

  

System.Management.Automation.RuntimeException:您无法在空值表达式上调用方法。在   System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext   funcContext,异常异常)at   System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame   框架)   System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame   框架)   System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame   帧)。

     

ScriptBlock第1021行,无文件:第1行

这些错误指向下面的行(粗体):

Configuration Config1
{
...
...
...
}
$configdata = @{
        AllNodes = @(
            @{
                NodeName = "Server1"
                PSDscAllowDomainUser = $true
                CertificateFile = "$((Get-ChildItem 'E:\' | ? {$_.Name -like 'MyFolderName'}).fullname)\Server1.cer"
                Thumbprint = ($Thumbs | ? {$_ -like "Server1*"}).Split("=")[1]
            }
            @{
                NodeName = "Server2"
                PSDscAllowDomainUser = $true
                CertificateFile = "$((Get-ChildItem 'E:\' | ? {$_.Name -like MyFolderName'}).fullname)\Server2.cer"
                Thumbprint = ($Thumbs | ? {$_ -like "Server2*"}).Split("=")[1]
             }
        )
    }

Config1 -ConfigurationData $configdata

问题在于Server2(我在Server1上运行脚本)。所有路径都是正确的,我可以在哈希表中使用这样的语法吗?

问题出在标准的PowerShell控制台上,是否有人知道为什么PS ISE不会返回任何错误?

1 个答案:

答案 0 :(得分:0)

您可以使用直接的PowerShell代码完成您使用DSC所做的一切。将检查配置管理系统中描述您的系统的代码,并定期针对您的系统运行。

DSC和许多其他配置管理系统是关于制作实际可以共享的可重用资源。

这是一般脚本无法选择配置的原因之一。 在您的情况下,您有一个运行时异常,它清楚地描述了传递给脚本中的方法的某些值为NULL。

浏览以下链接:

Powershell DSC

Configuration Management Theory - Idempotence & Immutability

Configuration Management