簡體   English   中英

使用各種參數運行Powershell Cmdlet

[英]Run Powershell Cmdlet with various number of parameters

我正在編寫Azure分析服務的某些配置的腳本,更具體地說是防火牆的腳本。 cmdlet

New-AzAnalysisServicesFirewallConfig -FirewallRule

接受作為參數創建的規則; $rule1為例。

我希望腳本能夠對該命令采用不同數量的參數。 無需像示例中的6條規則那樣將其硬編碼為X條規則。

我試圖創建一個包含X個參數的Array和Hashtable,但是無法轉換它們。

$FirewallRules | ForEach-Object {
    $ruleNumberVar = "rule" + "$ruleNumberIndex"

    if (!($_.FirewallRuleName -match "$ExistingFirewallRuleName")) {
        $start = $_.RangeStart
        $end = $_.RangeEnd
        $tempRule = New-AzAnalysisServicesFirewallRule `
                       -FirewallRuleName $_.FirewallRuleName `
                       -RangeStart $start `
                       -RangeEnd $end

        Set-Variable -Name "$ruleNumberVar" -Value $tempRule 
        $ruleNumberIndex = $ruleNumberIndex + 1
    }

    $conf = New-AzAnalysisServicesFirewallConfig -FirewallRule $rule1,$rule2,$rule3,$rule4,$rule5,$rule6

收到此錯誤:

New-AzAnalysisServicesFirewallConfig:無法綁定參數“ FirewallRule”。 無法將類型“ System.Collectio ns.Hashtable”的“ System.Collections.Hashtable”值轉換為類型“ Microsoft.Azure.Commands.AnalysisServices.Models.PsAzure AnalysisServicesFirewallRule”。

這是未經測試的,因此是理論上的,但是如果可以轉換類型,則應該可以解決該錯誤。

$Rules = @() -as [System.Collections.Generic.List[Microsoft.Azure.Commands.AnalysisServices.Models.PsAzureAnalysisServicesFirewallRule]]
$FirewallRules | ForEach-Object {
    $ruleNumberVar = "rule" + "$ruleNumberIndex"

    if (!($_.FirewallRuleName -match "$ExistingFirewallRuleName")) {
        $start = $_.RangeStart
        $end = $_.RangeEnd
        $tempRule = New-AzAnalysisServicesFirewallRule `
                       -FirewallRuleName $_.FirewallRuleName `
                       -RangeStart $start `
                       -RangeEnd $end

        Set-Variable -Name $ruleNumberVar -Value $tempRule
        $Rules.Add((Get-Variable $ruleNumberVar -ValueOnly))
        $ruleNumberIndex = $ruleNumberIndex + 1
    }
}
    $conf = New-AzAnalysisServicesFirewallConfig -FirewallRule $Rules

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM