Почему бы не попробовать получить элемент и проверить сообщение об ошибке, если оно не удается.
$path = "\\sqlskylinevm\path\file.txt"
$file = try{
Get-Item $path -ErrorAction Stop
} catch [System.UnauthorizedAccessException] {
"can't get to it"
} catch [System.Management.Automation.ItemNotFoundException]{
"does not exist"
}
if($file -eq "can't get to it"){
Write-Warning "File exists but access is denied"
} elseif($file -eq "does not exist"){
Write-Warning "Could not find file"
} else {
Write-Host "Oh Happy Days!" -ForegroundColor Green
}
$file
в этом случае будет содержать текстовую строку с сообщением или сам файл / каталог, с которым вы тестируете.Вы также можете сделать то же самое с Test-Path ... -ErrorAction
Я думаю, это действительно зависит от того, что вы хотите сделать с результатами.
Этот код не идеален, но дает вам необходимые пути.Различает отказ в доступе, не существует и существует.