Powershell Citrix 策略配置

Powershell Citrix policy configuration

目前正在编写脚本来为 citrix 场配置策略。 我有一些策略,每个策略有 7-8 个设置,可以通过以下方式单独添加它们:

set-ctxgrouppolicyconfiguration [policyName] [type] [setting] [value]
set-ctx....
set-ctx....

有没有办法将这些设置读入数组并将其传递给 cmdlet?

我不太熟悉 Citrix,但您始终可以在 CSV 中创建设置列表:

"PolicyName","Type","Setting","Value"
"foo","User","some","23"
"foo","User","other","42"
"bar","User","...","..."
...

像这样定义自定义函数:

function Set-MyPolicies {
  [CmdletBinding()]
  Param(
    [Parameter(ValueFromPipeline=$true)]
    [PSObject[]]$Policies
  )

  Process {
    $Policies | % {
      Set-CtxGroupPolicyConfiguration @_
    }
  }
}

然后像这样把所有东西放在一起:

Import-Csv 'C:\path\to\policies.csv' | Set-MyPolicies

该函数使用 splatting 来简化参数处理(CSV 的列标题以参数命名以允许这样做)。