(PS) Pfad zu lang bei move-item?
Hallo,
ich habe irgendwie ein ganz simples problem
einfach folgender versuchsaufbau:
sagt er mir:
Die Datei ist aber über den Explorer ganz normal zu öffnen, umbenennen etc.
wie kann das sein?
ich habe irgendwie ein ganz simples problem
einfach folgender versuchsaufbau:
$a = "C:\Ordner11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\test.txt"
$b = "C:\Ordner22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222\test.txt"
move-item -Path $a -Destination $b -force -WhatIf
move-item : Der Pfad "C:\Ordner111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111\test.txt" kann nicht gefunden werden, da er nicht vorhanden ist.
In Zeile:3 Zeichen:1
+ move-item -Path $a -Destination $b -force -WhatIf
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Ordner111111...111111\test.txt:String) [Move-Item], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.MoveItemCommand
Die Datei ist aber über den Explorer ganz normal zu öffnen, umbenennen etc.
wie kann das sein?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 363565
Url: https://administrator.de/forum/ps-pfad-zu-lang-bei-move-item-363565.html
Ausgedruckt am: 21.02.2025 um 11:02 Uhr
14 Kommentare
Neuester Kommentar

Es ist bekannt das die Powershell bei 260 Zeichen die Segel streicht
. Für den Explorer hast du in deinem OS sicher schon das Limit aufgehoben.
Gruß snap
Gruß snap
Zitat von @135333:
Es ist bekannt das die Powershell bei 260 Zeichen die Segel streicht
. Für den Explorer hast du in deinem OS sicher schon das Limit aufgehoben.
Hm, das wusste ich jetzt nicht. Ich finde das allerdings SEHR schwach. Dann NTFS erlaubt eigentlich Pfadlängen im 5-stelligen Bereich.Es ist bekannt das die Powershell bei 260 Zeichen die Segel streicht
File System Functionality Comparison, siehe Tabelle Limits
Gruß snap
Gruss Penny

Dat ist jetzt aber so alt wie ranziger Käse 
Lesen:
https://blogs.msdn.microsoft.com/bclteam/2007/02/13/long-paths-in-net-pa ...
\\?\
Lesen:
https://blogs.msdn.microsoft.com/bclteam/2007/02/13/long-paths-in-net-pa ...
Hallo functionstrut,
ich finde es auch etwas irritierend, dass Windows als Hochregallager mit kurzer Haushaltsleiter ausgeliefert wird.
Wie snapdragon schon schrieb, kann man für den Explorer diese Limitierung abschalten.
Ich mach das allerdings nicht, sondern sorge dafür, dass zumindest auf meinen Fileserver die Pfadlängen kurz genug sind. (Regelmäßiger, automatischer Scan und manuelles Umbenennen)
Das mache ich, damit die Daten auch außer Haus problemlos genutzt werden können, da die Limtierung per Default aktiv ist.
Ein Workaround beim Kopieren ist die Verwendung von subst.
Damit lassen sich Pfade "verkürzen".
Das stellt den angegebenen Pfad als Laufwerksbuchstabe zur Verfügung.
Das hebt die Zuordung wieder auf.
Gruß Frank
ich finde es auch etwas irritierend, dass Windows als Hochregallager mit kurzer Haushaltsleiter ausgeliefert wird.
Wie snapdragon schon schrieb, kann man für den Explorer diese Limitierung abschalten.
Ich mach das allerdings nicht, sondern sorge dafür, dass zumindest auf meinen Fileserver die Pfadlängen kurz genug sind. (Regelmäßiger, automatischer Scan und manuelles Umbenennen)
Das mache ich, damit die Daten auch außer Haus problemlos genutzt werden können, da die Limtierung per Default aktiv ist.
Ein Workaround beim Kopieren ist die Verwendung von subst.
Damit lassen sich Pfade "verkürzen".
subst x: "C:\Temp\Mein Ordner"
Das stellt den angegebenen Pfad als Laufwerksbuchstabe zur Verfügung.
subst x: /d
Das hebt die Zuordung wieder auf.
Subst
ist also ähnlich wie net use
, aber funktioniert mit Pfaden auch ohne Freigaben.Gruß Frank
Zitat von @Pedant:
Subst geht auch nicht über das Netz, sondern bleibt lokal.Subst
ist also ähnlich wie net use
, aber funktioniert mit Pfaden auch ohne Freigaben.Gruß Frank
Gruss Penny
Hallo Penny,
Wie meinst Du das?
funktioniert einwandfrei.
Gruß Frank
Wie meinst Du das?
subst x: \\Server\Freigabe
funktioniert einwandfrei.
Gruß Frank
Zitat von @Pedant:
Hallo Penny,
Wie meinst Du das?
funktioniert einwandfrei.
Ja das funktioniert einwandfrei, keine Frage.Hallo Penny,
Wie meinst Du das?
subst x: \\Server\Freigabe
funktioniert einwandfrei.
Nur lese Dich mal ein bzgl. des Befehles
net
subst
Das gab es schon zu DOS-Zeiten. So konnte man die maximale Pfadlänge lokal anpassen, indem man bestimmte Pfade in Laufwerke umbiegt.
Gruß Frank
Gruss Penny
Hallo Penny,
ich weiß nicht genau was Du mir sagen möchtest.
(Die Aufgabenstellung des TO ist auch lediglich eine lokale Aufgabe.)
Klar leitet
Das tut
Ich sehe da keinen Unterschied und keinen Anlass zu sagen "Subst ginge nicht über das Netz".
Okay, zugegeben, bildlich gesehen geht es nicht über das Netz, sondern bedient sich des Netzes.
Im Gegensatz zu "lokal" wäre eine Verkürzung per Freigabe anzusehen.
So könnte ein langer Pfad auf dem Server als kürzerer UNC-Pfand zur Verfügung gestellt werden.
Mit
wird aus
bzw.
dann
und mit
würde es optional, lokal nochmal kürzer werden
Hattest Du mit dem Unterstreichen von "lokal" den unterschiedlichen Lösungsansatz von "net share" und "net use"/"subst" gemeint?
Gruß Frank
ich weiß nicht genau was Du mir sagen möchtest.
So konnte man die maximale Pfadlänge lokal anpassen.
Klar lokal, was denn sonst?(Die Aufgabenstellung des TO ist auch lediglich eine lokale Aufgabe.)
Klar leitet
subst
nur lokal um, also auf dem Rechner, auf dem es ausgeführt wird.Das tut
net use x: \\Server\Freigabe
aber auch.Ich sehe da keinen Unterschied und keinen Anlass zu sagen "Subst ginge nicht über das Netz".
Okay, zugegeben, bildlich gesehen geht es nicht über das Netz, sondern bedient sich des Netzes.
Im Gegensatz zu "lokal" wäre eine Verkürzung per Freigabe anzusehen.
So könnte ein langer Pfad auf dem Server als kürzerer UNC-Pfand zur Verfügung gestellt werden.
Mit
net share kurz="C:\Temp\Mein langer Ordner"
wird aus
"C:\Temp\Mein langer Ordner"
bzw.
"\\Server\c$\Temp\Mein langer Ordner"
dann
\\Server\kurz
und mit
net use x: \\Srever\kurz
oder auch mit subst x: \\Server\kurz
würde es optional, lokal nochmal kürzer werden
X:\
Hattest Du mit dem Unterstreichen von "lokal" den unterschiedlichen Lösungsansatz von "net share" und "net use"/"subst" gemeint?
Gruß Frank
Da funktioniert NICHT!
Mit SUBST kannst Du KEINE Netzwerkressourcen mappen, sondern nur lokale Pfade.
Schau Dir dazu die Hilfe an.
Wenn Du einen lokalen Pfad als Laufwerk mappen willst, nehme SUBST.
Wenn Du eine Freigabe als Laufwerk mappen willst, nehme NET USE
Gruss Penny
Mit SUBST kannst Du KEINE Netzwerkressourcen mappen, sondern nur lokale Pfade.
Schau Dir dazu die Hilfe
subst /?
Hattest Du mit dem Unterstreichen von "lokal" den unterschiedlichen Lösungsansatz von "net share" und "net use"/"subst" gemeint?
Richtig. Net Share und Net Use gehen über das Netzwerk, während ein subst lokal auf dem verwendeten Rechner bleibt, bzw. NUR LOKAL verwendet werden kann.Wenn Du einen lokalen Pfad als Laufwerk mappen willst, nehme SUBST.
Wenn Du eine Freigabe als Laufwerk mappen willst, nehme NET USE
Gruß Frank
Gruss Penny
Hallo Penny,
auch dick und rot wird es nicht richtiger.
Probier es doch einfach mal, statt auf
Einschränkend ist nur zu erwähnen, dass man bei subst keine Anmeldeinformationen als Parameter mitgeben kann.
Man muss also die Zugriffsrechte für die Freigabe haben oder sie sich zuvor mit
verschaffen, sofern man denn für "BerechtigterUser" und für "Kennwort" etwas Passendes einzugeben weiß.
Gruß Frank
auch dick und rot wird es nicht richtiger.
subst x: \\Server\kurz
funktioniert.Probier es doch einfach mal, statt auf
subst /?
zu beharren.Einschränkend ist nur zu erwähnen, dass man bei subst keine Anmeldeinformationen als Parameter mitgeben kann.
Man muss also die Zugriffsrechte für die Freigabe haben oder sie sich zuvor mit
net use \\Server\ipc$ /u:BerechtigterUser Kennwort
verschaffen, sofern man denn für "BerechtigterUser" und für "Kennwort" etwas Passendes einzugeben weiß.
Gruß Frank
Hallo Frank,
das stimmt nicht ganz. Nimm folgendes Beispiel:
Richte auf einem Server die Freigabe kurz ein:
Setze die Berechtigungen.
Jetzt ruft Du rufst Du auf einem Client mittels die Freigabe kurz auf.
Das sollte eigentlich NICHT funktionieren. Denn subst kann nicht auf eine Freigabe auf einem anderen Rechner im Netzwerk zugreifen.
Ich habe lokal einige Verzeichnisse, welche ich lokal mittels subst ein Laufwerksbuchstaben verpasse.
Da benötige ich kein net use.
Gruss Penny
das stimmt nicht ganz. Nimm folgendes Beispiel:
Richte auf einem Server die Freigabe kurz ein:
net share kurz="C:\Temp\Mein langer Ordner"
Jetzt ruft Du rufst Du auf einem Client mittels
subst x: \\server\kurz
Das sollte eigentlich NICHT funktionieren. Denn subst kann nicht auf eine Freigabe auf einem anderen Rechner im Netzwerk zugreifen.
Ich habe lokal einige Verzeichnisse, welche ich lokal mittels subst ein Laufwerksbuchstaben verpasse.
Da benötige ich kein net use.
Gruss Penny
Hallo Penny,
Wie wäre es wenn Du das von Dir Vorgeschlagene mal ausprobierst?
Ein theortisierendes "das sollte nicht funktionieren", nur weil es so im Readme steht, ist mir echt egal.
Es funktioniert - hier und heute.
Gruß Frank
Das sollte eigentlich NICHT funktionieren. Denn subst kann nicht auf eine Freigabe auf einem anderen Rechner im Netzwerk zugreifen.
Es kann es aber doch !!!Wie wäre es wenn Du das von Dir Vorgeschlagene mal ausprobierst?
Ein theortisierendes "das sollte nicht funktionieren", nur weil es so im Readme steht, ist mir echt egal.
Es funktioniert - hier und heute.
Gruß Frank