将批量凭据批量添加到Password Vault

时间:2017-01-29 14:02:41

标签: powershell

概述:

我创建了一个存储敏感数据的保险库,您可以在此问题中查看我的完整示例代码: 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
  )

0 个答案:

没有答案