azure - 一次性使用 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 中添加值。
解决方案
有几种方法可以接近它。一种简单且常见的方法是使用 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
}
推荐阅读
- dictionary - Haskell Map:转换键并捕获错误
- python - Python BeautifulSoup 从多个标签 div 类打印信息
- scala - 在`scala-js 1.xx`中的命名空间下导出时使用`@JSExportTopLevel`的标准方法
- python - 来自多个来源的主数据帧上的多个 Vlookups?
- python - 如何通过计算确定一个点是在 3D 模型内部还是外部
- r - R 中的英镑货币符号
- javascript - 为什么我的 javascript 没有在函数中执行我的“if”语句?
- terraform - IBM Cloud 和 terraform:如何创建和下载 API 密钥?
- c# - 如何设置:services.AddSingleton
(); 在 Asp.net 项目中具有“服务器启动 - 直到“无穷大””的生命周期 - javascript - $.attr 在 Jquery 中是什么意思?