2012-04-16 6 views
9

Ich habe eine Fledermausdatei, die Dateien von der aktuellen Maschine auf das zugeordnete Netzlaufwerk kopiert (eine Zeile, xcopy-Befehl).Dateien können nicht in UNC-Ziele kopiert werden, wenn die BAT-Datei über geplante Aufgabe aufgerufen wird

Es funktioniert, wenn ich RDP zum Server. Wenn ich jedoch als geplante Aufgabe ausgeführt werde und sie so konfiguriere, dass sie unter demselben Benutzer ausgeführt wird, mit dem ich angemeldet bin, funktioniert sie nicht und gibt den Fehler 0x4 aus.

Gibt es eine Möglichkeit, dies zu erreichen?

Ich versuche auch dsynchronize und es funktioniert, wenn ich synchronisiere. Wenn ich es als gleiches Problem betreibe.

+0

upvoted derjenige, der mir unter geholfen, aber diese Antwort auch mir geholfen, es in meinem Fall debuggen http://stackoverflow.com/questions/8662024/how-do-i-capture-the-output -of-a-script-wenn-es-wird-ran-by-the-task-scheduler – lessthanideal

Antwort

16

Ich konnte es herausfinden. Nach Batch-Dateien arbeitet unter Scheduler, auch als lokales Systemkonto:

net use m: \\server\share /U:server\user password 
xcopy C:\source m: /E /Y 

Es ordnet ein Laufwerk Netzwerk jedes Mal, und kopieren Sie dann auf das Laufwerk

1

Wer bildet das Netzlaufwerk? Und verwenden Sie den zugeordneten Namen anstelle des zugrunde liegenden unc-systemeigenen Pfads? Es klingt nämlich so, als wäre das zugeordnete Laufwerk in Ihrem Anmeldeskript eingerichtet, das nicht ausgeführt wird, wenn Sie nicht angemeldet sind. In einer geplanten Aufgabe verfügen Sie also über die richtigen Anmeldeinformationen für den UNC-Pfad, jedoch keinen zugeordneten Laufwerkbuchstaben .

+0

Ich ordnet das Netzlaufwerk zu. Ja, ich verwende den zugeordneten Namen. Geplante Aufgabe gibt den gleichen Fehler, selbst wenn ich angemeldet bin – Imran

+2

Es spielt keine Rolle, ob Sie für die geplante Aufgabe angemeldet sind. Es verwendet eine eigene Sitzung und das Laufwerk wird in dieser Sitzung nicht zugeordnet. – MSalters

+0

@Marc: Natürlich tut es, wie die Kommentare bestätigen. Das Symptom ist nicht in der Lage, die Datei zu kopieren, die Frage ist warum. Die Antwort ist ein fehlender Laufwerksbuchstabe für einen UNC-Pfad, da ein Anmeldeskript nicht ausgeführt wird. – MSalters

4

Ich hatte ähnliches Problem, wo ich wollte Datei kopieren (n) von einem Server zu Hunderten von anderen Servern, ohne ein Remote-Laufwerk auf meinen lokalen PC zuzuordnen. Ich hatte nicht genug Laufwerksbuchstaben, um Hunderte von Remote-Computern auf meinem lokalen PC abzubilden! Ich konnte das Remote-Laufwerk nicht einfach zuordnen und kopieren.

Ich dachte, ich könnte kopieren, xcopy oder robocopy, und geben Sie meine Creds zum Kopieren Befehl. Aber keiner der Kopierbefehle hatte Optionen zum Angeben von Anmeldeinformationen an das ferne System.

Dank des obigen Beitrags war ich in der Lage, eine kleine Batch-Datei zu erstellen, in der ich nur meine Hosts durchlaufe und immer nur eine Laufwerkszuordnung für alle meine Hosts wiederverwende.

Hier ist meine Batch-Datei ...

echo @off 
for /F %%j in (pchostslist1.txt) do (
    net use z:\\%%j\c$ /user:domain\myusername mypassword 
    mkdir \\%%j\c$\tmp\mynewdir 
    xcopy c:\anyfile.txt \\%%j\c$\tmp\mynewdir 
    net use z: /delete 
) 
6

Es ist möglich, Dateien auf einen UNC-Pfad zu kopieren, ohne Zuordnung als Netzlaufwerk. Versuchen Sie einfach, den UNC-Pfad in Anführungszeichen zu setzen.

Ohne die Anführungszeichen habe ich einen "Syntaxfehler" auf Windows7-Befehlszeile ausgeführt.

3

Ich hatte ein ähnliches Problem und anstelle der Verwendung des Internets musste ich einfach das Passwort als Teil der geplanten Aufgabe speichern. Sie werden feststellen, dass es nur auf lokale Ressourcen zugreifen kann, wenn es aktiviert ist.

Store password