使用 Start-DSCConfiguration 将参数传递给脚本
Pass parameters to script using Start-DSCConfiguration
我的 DSC 配置如下所示
configuration DBServer
{
param(
[PSCredential]$SqlAdminCredential
)
node "localhost"
{
Script ConfigureSSRS {
SetScript = {
& sqlcmd -S $RSConnection -i $DBCreateFile -U $SQLAdminCredential.UserName -P $SQLAdminCredential.GetNetworkCredential().Password
我 运行 它在 Azure VM 上使用 JSON 模板部署和包含此 Properties
节点的 DSC 扩展:
"Properties": {
"SqlAdminCredential": {
"userName": "PrivateSettingsRef:SQLAdmin",
"password": "PrivateSettingsRef:SQLAdminPass"
},
这两个值确实在protectedSettings
节点中定义:
"SQLAdmin": "[parameters('sqlAuthenticationLogin')]",
"SQLAdminPass": "[parameters('sqlAuthenticationPassword')]"
但是每当我尝试使用凭据时,上面列出的代码中都会出现空引用异常。我试过 $using:SqlAdminCredential
,我相信昨天我也试过 $global:SqlAdminCredential
。
我目前正在尝试对此进行故障排除,但我不喜欢更改我的配置然后花费 15 分钟等待部署以查看它是否有效。但是,我无法弄清楚如何使用 Start-DscConfiguration
传递此凭据对象参数以便在现有 VM 上对其进行故障排除。我该怎么做?
如果你能解决我的实际问题并告诉我如何从 ConfigureSSRS.SetScript
内部访问 $SqlAdimCredential
加分
目前,我决定表现不佳并这样做:
configuration DBServer
{
param(
[PSCredential]$SqlAdminCredential
)
node "localhost"
{
$adminCreds = $SqlAdminCredential #a hack
Script ConfigureSSRS {
SetScript = {
$SqlAdminCredential = $using:adminCreds
我会等待更好的解决方案,但这似乎有效。
您有以下选择:
如果您需要整个脚本在单个用户下 运行,请使用脚本资源的 PSDSCRunAsCredential。
创建您自己的使用 PSCredential 参数的 DSC 资源。
我的 DSC 配置如下所示
configuration DBServer
{
param(
[PSCredential]$SqlAdminCredential
)
node "localhost"
{
Script ConfigureSSRS {
SetScript = {
& sqlcmd -S $RSConnection -i $DBCreateFile -U $SQLAdminCredential.UserName -P $SQLAdminCredential.GetNetworkCredential().Password
我 运行 它在 Azure VM 上使用 JSON 模板部署和包含此 Properties
节点的 DSC 扩展:
"Properties": {
"SqlAdminCredential": {
"userName": "PrivateSettingsRef:SQLAdmin",
"password": "PrivateSettingsRef:SQLAdminPass"
},
这两个值确实在protectedSettings
节点中定义:
"SQLAdmin": "[parameters('sqlAuthenticationLogin')]",
"SQLAdminPass": "[parameters('sqlAuthenticationPassword')]"
但是每当我尝试使用凭据时,上面列出的代码中都会出现空引用异常。我试过 $using:SqlAdminCredential
,我相信昨天我也试过 $global:SqlAdminCredential
。
我目前正在尝试对此进行故障排除,但我不喜欢更改我的配置然后花费 15 分钟等待部署以查看它是否有效。但是,我无法弄清楚如何使用 Start-DscConfiguration
传递此凭据对象参数以便在现有 VM 上对其进行故障排除。我该怎么做?
如果你能解决我的实际问题并告诉我如何从 ConfigureSSRS.SetScript
$SqlAdimCredential
加分
目前,我决定表现不佳并这样做:
configuration DBServer
{
param(
[PSCredential]$SqlAdminCredential
)
node "localhost"
{
$adminCreds = $SqlAdminCredential #a hack
Script ConfigureSSRS {
SetScript = {
$SqlAdminCredential = $using:adminCreds
我会等待更好的解决方案,但这似乎有效。
您有以下选择:
如果您需要整个脚本在单个用户下 运行,请使用脚本资源的 PSDSCRunAsCredential。
创建您自己的使用 PSCredential 参数的 DSC 资源。