Publish preview version #42
@ -121,6 +121,15 @@ function New-CredentialStoreItem {
|
|||||||
$Cert = Get-ChildItem -Recurse -Path 'Cert:' | Where-Object {
|
$Cert = Get-ChildItem -Recurse -Path 'Cert:' | Where-Object {
|
||||||
$_.Thumbprint -eq $CSContent.Thumbprint
|
$_.Thumbprint -eq $CSContent.Thumbprint
|
||||||
} | Select-Object -First 1
|
} | Select-Object -First 1
|
||||||
|
if ($null -eq $Cert) {
|
||||||
|
$ErrorParams = @{
|
||||||
|
ErrorAction = 'Stop'
|
||||||
|
Exception = [System.Exception]::new(
|
||||||
|
('Could not find the linked certificate with thumbprint {0}' -f $CSContent.Thumbprint)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
Write-Error @ErrorParams
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
|
$Cert = Get-PfxCertificate -FilePath $CSContent.PfxCertificate -ErrorAction Stop
|
||||||
|
@ -4,7 +4,7 @@ Describe "New-CredentialStoreItem" {
|
|||||||
# Creat a fresh CredentialStore first
|
# Creat a fresh CredentialStore first
|
||||||
New-CredentialStore -Force
|
New-CredentialStore -Force
|
||||||
|
|
||||||
[String]$tmp = (65..90) + (97..122) | Get-Random -Count 5 | % {[char]$_}
|
[String]$tmp = (65..90) + (97..122) | Get-Random -Count 5 | ForEach-Object { [char]$_ }
|
||||||
$tmp = $tmp.Replace(' ', '')
|
$tmp = $tmp.Replace(' ', '')
|
||||||
$tmpUser = "MyUser"
|
$tmpUser = "MyUser"
|
||||||
$tmpPwd = "fooobarysdfsfs" | ConvertTo-SecureString -AsPlainText -Force
|
$tmpPwd = "fooobarysdfsfs" | ConvertTo-SecureString -AsPlainText -Force
|
||||||
@ -65,7 +65,7 @@ Describe "New-CredentialStoreItem" {
|
|||||||
|
|
||||||
}
|
}
|
||||||
Context "General Exception handling" {
|
Context "General Exception handling" {
|
||||||
Mock Test-CredentialStore {return $false}
|
Mock Test-CredentialStore { return $false }
|
||||||
It "Missing CredentialStore should throw" {
|
It "Missing CredentialStore should throw" {
|
||||||
{ New-CredentialStoreItem -Shared -Path 'C:\missingStore.json' -RemoteHost 'notrelevant' } | Should -Throw "Could not add anything"
|
{ New-CredentialStoreItem -Shared -Path 'C:\missingStore.json' -RemoteHost 'notrelevant' } | Should -Throw "Could not add anything"
|
||||||
}
|
}
|
||||||
@ -83,20 +83,24 @@ Describe "New-CredentialStoreItem" {
|
|||||||
}
|
}
|
||||||
Context "Testing items with certficiate store" {
|
Context "Testing items with certficiate store" {
|
||||||
It "Create item in new store with cert store link" {
|
It "Create item in new store with cert store link" {
|
||||||
{ New-CredentialStore -UseCertStore -Force } | Should -Not -Throw
|
New-CredentialStore -UseCertStore -Force
|
||||||
|
|
||||||
$Path = Get-DefaultCredentialStorePath
|
$Path = Get-DefaultCredentialStorePath
|
||||||
$StoreHome = Split-Path -Path $Path -Parent
|
$StoreHome = Split-Path -Path $Path -Parent
|
||||||
$CertFile = Join-Path -Path $StoreHome -ChildPath 'PSCredentialStore.pfx'
|
$CertFile = Join-Path -Path $StoreHome -ChildPath 'PSCredentialStore.pfx'
|
||||||
certutil.exe -Importpfx -user MY $CertFile "NoProtect, NoRoot"
|
$Cert = Get-PfxCertificate -FilePath $CertFile
|
||||||
function global:Get-Credential ([string]$Message) {
|
|
||||||
$UserName = 'testuser'
|
|
||||||
$Password = ConvertTo-SecureString -String "mypasswd" -AsPlainText -Force
|
|
||||||
return [PSCredential]::new($UserName, $Password)
|
|
||||||
}
|
|
||||||
New-CredentialStoreItem -RemoteHost 'foobarcerts'
|
|
||||||
Remove-Item -Path 'Function:\Get-Credential'
|
|
||||||
|
|
||||||
$writtenItem = Get-CredentialStoreItem -Path $tmpCS -Shared -RemoteHost 'foobarcerts'
|
$myStore = [System.Security.Cryptography.X509Certificates.X509Store]::new('My')
|
||||||
|
$myStore.Open("ReadWrite")
|
||||||
|
$myStore.Add($Cert)
|
||||||
|
$MyStore.Close()
|
||||||
|
|
||||||
|
$UserName = 'testuser'
|
||||||
|
$Password = ConvertTo-SecureString -String "mypasswd" -AsPlainText -Force
|
||||||
|
|
||||||
|
[PSCredential]::new($UserName, $Password) | New-CredentialStoreItem -RemoteHost 'foobarcerts'
|
||||||
|
|
||||||
|
$writtenItem = Get-CredentialStoreItem -RemoteHost 'foobarcerts'
|
||||||
$writtenItem.UserName | Should -Be "testuser"
|
$writtenItem.UserName | Should -Be "testuser"
|
||||||
$writtenItem.GetNetworkCredential().Password | Should -Be 'mypasswd'
|
$writtenItem.GetNetworkCredential().Password | Should -Be 'mypasswd'
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user