我正在尝试弄清楚Powershell DSC资源声明中使用了什么语法元素。例如:
SqlServerNetwork "RDBMS"
{
DependsOn = @("[SqlSetup]RDBMS")
InstanceName = "MSSQLSERVER"
ProtocolName = "tcp"
IsEnabled = $true
TCPPort = 1433
RestartService = $true
}
两个括号之间的语法障碍到底是什么?它既不是哈希表(不是@
),也不是脚本块(使属性成为Powershell语句的cos)。感觉就像是资源的参数,所以我想了解语法。
答案 0 :(得分:3)
我找不到任何确定的引用,但我认为整个SqlServerNetwork "RDBMS" { … }
是动态关键字声明,而{ … }
是“属性”。
如果您在此处查看PowerShell解析器的源代码:
有此评论:
/// keyword [parameters] [name] { a=1; b=2; } # constructor with properties
在DynamicKeywordStatementRule
函数的xml注释中与DSC块的语法匹配。
在这种情况下,DynamicKeywordStatementAst
的引用在这里:
尽我所能。希望其他人可以提供更多详细信息。