Private/SecurityFunctions.ps1
using namespace System.Security using namespace System.IO function Save-SecureInput { param( [Parameter(Mandatory)] [string]$ProfileName, [Parameter(Mandatory)] [string]$ProfilePath, [Parameter(Mandatory)] [string]$InputAlias, [Parameter(Mandatory)] [SecureString]$SecureInput ) Test-ProfileName -ProfileName $ProfileName $profileFolderPath = [FileInfo]::new($ProfilePath).Directory.FullName; $secretFileName = "$ProfileName-$InputAlias"; $secretFilePath = Join-Path $profileFolderPath $secretFileName; $SecureInput | ConvertFrom-SecureString | Set-Content $secretFilePath } function Get-SecureInput { param( [Parameter(Mandatory)] [string]$ProfileName, [Parameter(Mandatory)] [string]$ProfilePath, [Parameter(Mandatory)] [string]$InputAlias ) Test-ProfileName -ProfileName $ProfileName $profileFolderPath = [FileInfo]::new($ProfilePath).Directory.FullName; $secretFileName = "$ProfileName-$InputAlias"; $secretFilePath = Join-Path $profileFolderPath $secretFileName; if (Test-Path $secretFilePath) { Get-Content $secretFilePath | ConvertTo-SecureString } } |