ps/Modules/Alkami.PowerShell.Common/Public/Test-IsSymlinkValid.ps1

36 lines
920 B
PowerShell
Raw Permalink Normal View History

2023-05-30 22:51:22 -07:00
function Test-IsSymlinkValid {
<#
.SYNOPSIS
Used to test if an existing Symbolic Link path is linked to a filepath that is still on disk.
.PARAMETER Path
Path to test
#>
[CmdletBinding()]
[OutputType([System.Boolean])]
param(
[Parameter(Mandatory = $true)]
[string]$Path
)
$loglead = (Get-LogLeadName)
if(Test-Path -Path $Path) {
$pathItem = Get-Item -Path $Path
} else {
Write-Warning "$loglead : Path is not found. Returning False."
return $false
}
$isPathSymlink = ($pathItem.LinkType -eq "SymbolicLink")
# Test if it's even a Symbolic Link.
if(!($isPathSymlink)) {
Write-Warning "$loglead : Path is not a SymbolicLink type. Returning False."
return $false
}
# Check to see if the Target of the Symlink is real and on disk.
$isValid = (Test-Path -Path $pathItem.Target)
return $isValid
}