2019-01-16 12:55:29 +01:00
|
|
|
function Get-DefaultCredentialStorePath {
|
|
|
|
<#
|
|
|
|
.SYNOPSIS
|
|
|
|
Returns the default CredentialStore path based on the current OS.
|
|
|
|
|
|
|
|
.DESCRIPTION
|
|
|
|
This is a low level helper function.
|
|
|
|
|
|
|
|
.INPUTS
|
|
|
|
[None]
|
|
|
|
|
|
|
|
.OUTPUTS
|
|
|
|
[string]
|
|
|
|
|
|
|
|
.EXAMPLE
|
|
|
|
$Path = Get-DefaultCredentialStorePath
|
|
|
|
#>
|
2022-06-28 08:56:33 +02:00
|
|
|
|
2019-01-16 12:55:29 +01:00
|
|
|
[CmdletBinding()]
|
|
|
|
[OutputType([string])]
|
2022-06-28 08:56:33 +02:00
|
|
|
param (
|
2019-01-16 12:55:29 +01:00
|
|
|
[Parameter(Mandatory = $false)]
|
|
|
|
[switch]$Shared
|
|
|
|
)
|
|
|
|
|
2022-06-28 08:56:33 +02:00
|
|
|
begin {}
|
2019-01-16 12:55:29 +01:00
|
|
|
|
|
|
|
process {
|
|
|
|
if ($Shared.IsPresent) {
|
|
|
|
if ($IsLinux) {
|
|
|
|
return Join-Path -Path '/var/opt' -ChildPath 'PSCredentialStore/CredentialStore.json'
|
|
|
|
}
|
|
|
|
if ($IsMacOS) {
|
|
|
|
return Join-Path -Path '/var/opt' -ChildPath 'PSCredentialStore/CredentialStore.json'
|
|
|
|
}
|
2022-07-15 10:59:56 +02:00
|
|
|
elseif (
|
|
|
|
($isWindows) -or
|
|
|
|
($PSVersionTable.PSVersion.Major -lt 6) -or
|
|
|
|
($PSVersionTable.PSEdition -eq 'Desktop')
|
|
|
|
) {
|
2019-01-16 12:55:29 +01:00
|
|
|
return Join-Path -Path $env:ProgramData -ChildPath 'PSCredentialStore/CredentialStore.json'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if ($IsLinux) {
|
|
|
|
return Join-Path -Path $Env:HOME -ChildPath 'CredentialStore.json'
|
|
|
|
}
|
|
|
|
if ($IsMacOS) {
|
|
|
|
return Join-Path -Path $Env:HOME -ChildPath 'CredentialStore.json'
|
|
|
|
}
|
2022-07-15 10:59:56 +02:00
|
|
|
elseif (
|
|
|
|
($isWindows) -or
|
|
|
|
($PSVersionTable.PSVersion.Major -lt 6) -or
|
|
|
|
($PSVersionTable.PSEdition -eq 'Desktop')
|
|
|
|
) {
|
2019-01-16 12:55:29 +01:00
|
|
|
return Join-Path -Path $env:AppData -ChildPath 'CredentialStore.json'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-06-28 08:56:33 +02:00
|
|
|
end {}
|
2019-01-16 12:55:29 +01:00
|
|
|
}
|