public/Get-PSCredVault.ps1
function Get-PSCredVault { [CmdletBinding()] param( [string[]] $Name, [switch] $RevealPasswords, $VaultPath = (Join-Path $env:UserProfile ".Vault") ) ## Test Vault Folder if (!(Test-Path $VaultPath)){ Write-Error "Path: $VaultPath Doesn't exist. Exiting." return } ## Gather Creds based on filters $keys = Get-ChildItem $VaultPath if ($Name){ $keys = $keys | Where-Object {$Name -contains $_.BaseName} } if ($keys){ #$keys | % {} foreach ($key in $keys){ $cred = Import-Clixml $key.FullName $props = @{ Name = $key.BaseName UserName = $cred.UserName WhenCreated = $key.CreationTime WhenModified = $key.LastWriteTime FullPath = $key.FullName } if ($RevealPasswords){ $props['Password'] = $cred.GetNetworkCredential().password } else { $props['Password'] = "********" } $obj = New-Object -TypeName psobject -Property $props $obj.psobject.typenames.insert(0,'PSCredvault.Cred') Write-Output $obj } } else { Write-Warning "No Creds found in $VaultPath" } } |