zimbosmurf
Goto Top

Batch - erkennen, ob ein Pfad lokal ist oder im Netzwerk liegt

Hallo!

Ich möchte mit einer Batchdatei etwas nach %programfiles%, also bei deutschem Windows nach c:\Programme kopieren. Konkret soll ein Backup einer etwas komplexeren Software zurück auf den PC bzw. einen neuen PC gebracht werden.
Das Problem ist, dass ich - wenn die Batch mit Adminrechten aufgerufen wurde - zwar prinzipiell etwas dort hinkopieren kann, dies jedoch einfach nicht ausgeführt, wenn die Quelldateien auf einem Netzlaufwerk oder einem Netzwerkpfad liegen. Der Sinn dahinter ist ja auch verständlich, allerdings würde ich diesen Fall gerne von vornherein abfragen, das heisst direkt nach dem Start der Batchdatei eine Fehlermeldung ausspucken, wenn der Quellpfad im Netzwerk liegt und nicht lokal. Hat irgendwer eine Idee, wie so eine Abfrage gelingen könnte?

Content-Key: 334956

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

Printed on: April 19, 2024 at 07:04 o'clock

Member: emeriks
emeriks Apr 12, 2017 at 12:30:33 (UTC)
Goto Top
Hi,
.... dies jedoch einfach nicht ausgeführt, wenn die Quelldateien auf einem Netzlaufwerk oder einem Netzwerkpfad liegen.
Warum sollte es dann nicht gehen? Wo soll da das Problem sein?
Welchen Fehler bekommst Du denn?

E.
Mitglied: 132895
Solution 132895 Apr 13, 2017 updated at 12:24:19 (UTC)
Goto Top
Zitat von @zimbosmurf:
Das Problem ist, dass ich - wenn die Batch mit Adminrechten aufgerufen wurde - zwar prinzipiell etwas dort hinkopieren kann, dies jedoch einfach nicht ausgeführt, wenn die Quelldateien auf einem Netzlaufwerk oder einem Netzwerkpfad liegen.
Ist ja auch logisch wenn du gemappte Netzlaufwerkspfade verwendest, denn Netzlaufwerke sind Userabhängig gemappt. Wird also die Batch unter einem anderen Account als dem gerade angemeldeten User ausgeführt sieht dieser die Netzlaufwerke nicht, es sein denn man setzt einen speziellen Registry-Eintrag der dies ermöglicht (EnableLinkedConnections). Stattdessen kannst du auch direkt UNC-Pfade verwenden, und nicht vergessen das der User genügend Zugriffsrechte auf das Share besitzen muss!

Der Sinn dahinter ist ja auch verständlich
Nicht wirklich, für die Batch ist es nur sinnvoll zu wissen ob der Pfad verfügbar ist oder nicht, mappe also entweder das Laufwerk in der Session, nutze UNC-Pfade oder setze den Registry-Eintrag und mach ein if exist zusätzlich in deine Abfrage.

Gruß
Member: zimbosmurf
zimbosmurf May 08, 2017 at 14:31:23 (UTC)
Goto Top
Sorry, dass die Antwort so lange gedauert hat, aber genau das war die Ursache des Problems!

Danke!