首页 > 解决方案 > 如何在新的 PowerShell 对象中设置变量

问题描述

我正在尝试创建一个脚本来更新 Azure AD Privileged Identity Management,它需要以下格式的对象。

我希望能够将变量传递给对象,例如'{"required":$MFA}',其中$MFA 来自一个变量。我已经尝试了下面的脚本块,但它没有将 $MFA 识别为变量。有任何想法吗?

# Set MFA Variable
$MFA = "True"

# Create object
$myObject = [PSCustomObject]@{
    RuleIdentifer     = "JustificationRule"
    Setting = '{"required":$MFA}'
}

#Output object
write-host $myObject

输出仅写入 $MFA 文本。它不会用 $MFA 代替“True”

@{RuleIdentifer=JustificationRule; Setting={"required":$MFA}}

标签: powershell

解决方案


您可以在 Powershell 中使用单引号和双引号指定字符串。

区别显然是必须转义里面的哪些字符,而且单引号字符串不做变量替换,只有双引号字符串做。

因此,快速重写您的代码会输出您想要的内容:

# Set MFA Variable
$MFA = "True"

# Create object
$myObject = [PSCustomObject]@{
    RuleIdentifer     = "JustificationRule"
    Setting = "{""required"":$MFA}"
}

#Output object
write-host $myObject

输出:

@{RuleIdentifer=JustificationRule; Setting={"required":True}}

推荐阅读