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?
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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 334956
Url: https://administrator.de/contentid/334956
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
3 Kommentare
Neuester Kommentar
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!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
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ß