mhard666
Goto Top

Powershell prüfen ob Pfad ein Netzwerkshare ist

Hallo allerseits,

kurze Frage an die Powershell-Cracks face-wink

Gibt es eine andere Möglichkeit einen Dateipfad dahingehend zu prüfen, ob er auf eine Lokale Ressource zeigt (z.B. C:\Temp) oder auf eine Netzwerkfreigabe (z.B. \\SERVER\temp) als den Pfad auf den Beginn (DoubleBackslash oder Buchstabe-Doppelpunkt) hin zu überprüfen?

...mit Powershell versteht sich...

Vielen Dank.

VG. mhard666

Content-ID: 629290

Url: https://administrator.de/contentid/629290

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

Doskias
Doskias 07.12.2020 um 16:28:18 Uhr
Goto Top
Sorry ich verstehe die Frage nicht ganz. Wenn du den Pfad hast, dann weißt du doch ob es c:\ oder \\Server\... ist. Oder meinst du die infos, die dir
get-psdrive
ausgibt?
Tezzla
Lösung Tezzla 07.12.2020 aktualisiert um 16:35:05 Uhr
Goto Top
$Path = "\\u\n\c\path"  
$PathDetails = [System.Uri]$Path

if($PathDetails.IsUnc) {
    Write-Host Ich bin ein UNC Pfad
} else { 
    Write-Host Ich bin kein UNC Pfad
}

VG
146707
Lösung 146707 07.12.2020 aktualisiert um 16:55:57 Uhr
Goto Top
Zitat von @Tezzla:

> $Path = "\\u\n\c\path"  
> $PathDetails = [System.Uri]$Path
> 
> if($PathDetails.IsUnc) {
>     Write-Host Ich bin ein UNC Pfad
> } else { 
>     Write-Host Ich bin kein UNC Pfad
> }

VG
Das obige funktioniert aber nicht mit Pfaden die auf ein Netzlaufwerk gemappt wurden, dem hier ist das dagegen egal und es liefert egal was für ein Pfad-Typ es ist TRUE zurück wenn das Ziel eines Pfades remote liegt oder eben wenn nicht FALSE.
$pfad = 'z:\'  
Add-Type -MemberDefinition '[DllImport("Shlwapi.dll")][return: MarshalAs(UnmanagedType.Bool)]public static extern bool PathIsNetworkPath(String pszPath);' -Namespace Shlwapi -Name Path  
[Shlwapi.Path]::PathIsNetworkPath($pfad)

Doku zur Funktion hier nachzuschlagen
https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pa ...
mhard666
mhard666 08.12.2020 um 07:14:51 Uhr
Goto Top
Guten Morgen,

perfekt, das ist genau das was ich brauche.

VG. mhard666