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-ID: 334956

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

emeriks
emeriks 12.04.2017 um 14:30:33 Uhr
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.
132895
Lösung 132895 13.04.2017 aktualisiert um 14:24:19 Uhr
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ß
zimbosmurf
zimbosmurf 08.05.2017 um 16:31:23 Uhr
Goto Top
Sorry, dass die Antwort so lange gedauert hat, aber genau das war die Ursache des Problems!

Danke!