首页 > 解决方案 > 一次性使用 Powershell 在 azure KeyVault 中添加多个机密的方法

问题描述

$devices = @{ dev1 = "mac"; dev2 = "ipod"; dev3 = "ipad"; dev4 = "samsung"}
$osdev = @{ os1 = "osx"; os2 = "ios"; os3 = "ios"; os4 = "android"}

foreach ($osdevi in $osdev.values){

    $hashed=ConvertTo-SecureString -String $osdevi -AsPlainText -Force
    Set-AzKeyVaultSecret -VaultName 'JonnyKv' -Name $devices.values -Secretvalue $hashed.Values 

}

将上述代码作为秘密名称中的设备面临问题, osdev是秘密值。需要通过 PowerShell 在 1 中添加值。

标签: azurepowershellazure-keyvault

解决方案


有几种方法可以接近它。一种简单且常见的方法是使用 CSV 格式。

$csv = @'
type,os
"mac","osx"
"ipod","ios"
"ipad","ios"
"samsung","android"
'@ | ConvertFrom-Csv

foreach ($device in $devices.GetEnumerator()){

    $hashed = ConvertTo-SecureString -String $device.OS -AsPlainText -Force
    Set-AzKeyVaultSecret -VaultName 'JonnyKv' -Name $device.type -Secretvalue $hashed

}

您也可以只制作初始哈希表数组并使用 for 循环

$devices = "mac","ipod","ipad","samsung"
$osdev = "osx","ios","ios","android"

for($i = 0; $i -lt $devices.count; $i++){

    $hashed = ConvertTo-SecureString -String $osdev[$i] -AsPlainText -Force
    Set-AzKeyVaultSecret -VaultName 'JonnyKv' -Name $devices[$i] -Secretvalue $hashed

}

或者你可以结合哈希表

$devices = @{
    type = "mac"
    os   = "osx"
    },
    @{
    type = "ipod"
    os   = "ios"
    },
    @{
    type = "ipad"
    os   = "ios"
    },
    @{
    type = "samsung"
    os   = "android"
    }

foreach ($device in $devices.GetEnumerator()){

    $hashed = ConvertTo-SecureString -String $device.OS -AsPlainText -Force
    Set-AzKeyVaultSecret -VaultName 'JonnyKv' -Name $device.type -Secretvalue $hashed

}

推荐阅读