Benutzer mit den meisten Antworten
Fehler bei Test-Path?

Frage
-
$mPath = "B:\Ordner\" + $VariableMitUnterOrdner; $checkPathFlag = Test-Path $mPath -PathType Container; if($checkPathFlag -eq "true") { Write-Host "test"; }
B ist ein Netzlaufwerk (Um genau zu sein, ein Cloudspeicher, welcher via WebDav verbunden ist). Da ich via PowerShell Dateien dorthin verschieben kann, sollte das nicht das Problem sein.
Leider gibt er immer false aus, obwohl der Pfad existiert...
Mache ich etwas falsch?
Danke!
Antworten
-
Da ich mich mit WebDav auch nicht auskenne, kann ich zum eigentlichen Problem nicht viel beitragen. Als Tipp zum Debuggen würde ich aber dringend empfehlen, nicht so viel Code um das Problem herumzuschreiben. Versuch einfach mal
Test-Path "DeinVollständigerPfad"
Wenn dein Pfad existiert, musst du true als Ergebnis bekommen. Wenn das nicht passiert, hast du offensichtlich ein Problem.- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:04
-
Test-Path hat teilweise Probleme auf nichtlokalen Laufwerken. Obwohl es grundsätzlich geht, ist es meiner Ansicht nach manchmal schlicht ein Timingproblem, d.h. das Test-Path aufgibt, bevor z.b. eine "schlafende" Verbindung reaktiviert wurde.
Du kannst den Zugriff aber auch mit einer einfachen Funktion prüfen, die ein Testfile auf dem zu testenden Pfad erstellt und wieder löscht.
Eine einfache Variante wäre:
Function FnTestPath ($testpfad) { $Error.Clear() if ( New-Item "$testpfad\testfile.txt" -Type File -erroraction silentlycontinue) { Remove-Item "$testpfad\testfile.txt" return $true } else { return $false } }
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:03
-
Was die Erklärung für das Problem betrifft, das liegt daran, das als normaler Nutzer verbundene Laufwerke nicht als Admin zu Verfügung stehen und umgekehrt. Eine kurze Erklärung warum das so ist gibts z.b hier.
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:03
-
- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:03
-
Das was ich geschrieben habe, funktioniert. Doch ich hatte die ISE als Administrator gestartet. Wenn ich diese normal ausführe (der User hat auch Administrationsrechte), funktioniert es.
Dafür wäre eine Erklärung interessant!
Danke für die Tipps!
- Als Antwort markiert PSFragezeichen Freitag, 10. März 2017 14:05
- Tag als Antwort aufgehoben Denniver ReiningMVP, Moderator Freitag, 10. März 2017 14:12
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 14:15
Alle Antworten
-
Der reine Powershell-Weg wäre sowas wie das hier:
$mPath = Join-Path -Path 'B:\Ordner' -ChildPath $VariableMitUnterOrdner if(Test-Path $mPath -PathType Container) { Write-Host "test" }
... aber WebDav ist wohl nicht immer ganz problemfrei ... hab leider keine eigenen Erfahrungen in der Richtung.
Grüße - Best regards
PS:> (79,108,97,102|%{[char]$_})-join'' -
Da ich mich mit WebDav auch nicht auskenne, kann ich zum eigentlichen Problem nicht viel beitragen. Als Tipp zum Debuggen würde ich aber dringend empfehlen, nicht so viel Code um das Problem herumzuschreiben. Versuch einfach mal
Test-Path "DeinVollständigerPfad"
Wenn dein Pfad existiert, musst du true als Ergebnis bekommen. Wenn das nicht passiert, hast du offensichtlich ein Problem.- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:04
-
Das was ich geschrieben habe, funktioniert. Doch ich hatte die ISE als Administrator gestartet. Wenn ich diese normal ausführe (der User hat auch Administrationsrechte), funktioniert es.
Dafür wäre eine Erklärung interessant!
Danke für die Tipps!
- Als Antwort markiert PSFragezeichen Freitag, 10. März 2017 14:05
- Tag als Antwort aufgehoben Denniver ReiningMVP, Moderator Freitag, 10. März 2017 14:12
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 10. März 2017 14:15
-
Test-Path hat teilweise Probleme auf nichtlokalen Laufwerken. Obwohl es grundsätzlich geht, ist es meiner Ansicht nach manchmal schlicht ein Timingproblem, d.h. das Test-Path aufgibt, bevor z.b. eine "schlafende" Verbindung reaktiviert wurde.
Du kannst den Zugriff aber auch mit einer einfachen Funktion prüfen, die ein Testfile auf dem zu testenden Pfad erstellt und wieder löscht.
Eine einfache Variante wäre:
Function FnTestPath ($testpfad) { $Error.Clear() if ( New-Item "$testpfad\testfile.txt" -Type File -erroraction silentlycontinue) { Remove-Item "$testpfad\testfile.txt" return $true } else { return $false } }
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:03
-
Lies bitte mal hier für die Zukunft. Danke!
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort. -
Was die Erklärung für das Problem betrifft, das liegt daran, das als normaler Nutzer verbundene Laufwerke nicht als Admin zu Verfügung stehen und umgekehrt. Eine kurze Erklärung warum das so ist gibts z.b hier.
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:03
-
- Als Antwort markiert PSFragezeichen Dienstag, 14. März 2017 09:03