概述:
我创建了一个存储敏感数据的保险库,您可以在此问题中查看我的完整示例代码: PowerShell Password Vault
目标:
我正在尝试创建一个可以批量添加凭据的功能。我不是在寻找特定的方法。但是,我确实尝试运行一个循环,在每个新行上添加信用。但是,我的逻辑在某处,这意味着当我尝试使用以下代码时,它开始以错误的方式添加凭据 - 请参阅下表。我也对新的想法或建议持开放态度。
确切代码:
function Add-BulkCreds{
param(
[string]$ID,
[string]$Key,
[string]$URL
)
$vaultAssembly
do{
Write-Host 'AddCreds)' -ForegroundColor Yellow -NoNewline
$x = Read-Host
$first,$second,$third = $x -split '\s',3
$vault = New-Object Windows.Security.Credentials.PasswordVault
$cred = New-Object Windows.Security.Credentials.PasswordCredential($second, $third, $first)
$vault.Add($cred)
}while($x)
}
示例输入:
PS > Add-BulkCreds
AddCreds)test1c1 test1c2 test1c3
test2c1 test2c2 test2c3
test3c1 test3c2 test3c3
AddCreds)
New-Object : Exception calling ".ctor" with "3" argument(s): "The parameter is incorrect.
Cannot create credential"
At C:\Users\getcred.ps1:83 char:13
+ $cred = New-Object Windows.Security.Credentials.PasswordCredential($second, ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
输出:
ID Key Endpoint
-------- ------ -----------
test1c3... test1c1 test1c2
仔细查看ID列:
PS > $credexample.id | Where-Object {$_.key -eq 'test1c1'}
test1c3
test2c1 test2c2 test2c3
test3c1 test3c2 test3c3
观察:
正如您所看到的,我的输入的以下部分已添加到我的ID列中:
test1c3
test2c1 test2c2 test2c3
test3c1 test3c2 test3c3
...而
test1c1 已添加到密钥
test1c2 已添加到端点
问题:
鉴于我的目标和概述,如何创建一个简单而有效的功能来批量添加凭据?而且,我的逻辑是否有效?
此外:
我意识到原始参数甚至不需要,因为我将下面的变量拆分为$ x。
param(
[string]$ID,
[string]$Key,
[string]$URL
)