Ich habe eine Website, die zwei Server verwendet (A und B). Es zeigt Berichte an, die aus MSSQL gezogen wurden. Die Server sind beide Windows 2012 R2. Ich habe eine .bat-Datei, die ich erstellt habe, um die Website-Dateien von einem Server (B) auf den anderen (A) zu kopieren, so dass ich sie zusammen aktualisieren kann. Ich manuell nur die Dateien für die Website auf Server B aktualisieren.Bat-Skript auf Server B ausgeführt kann keine Verbindung zu Server A herstellen, um Dateien zu kopieren
Ich kann die .bat-Datei in Ordnung auf meinem Computer oder direkt auf jedem Server und es funktioniert gut, alle Dateien werden von B nach A kopiert. Hier ist die .bat file:
rem echo off
SET source="D:\WebContent\engsys.corp.ftr.com"
SET source2="\\MAFINFWWWPV02\D$\WebContent\engsys.corp.ftr.com"
SET dest1="\\MAFINFWWWPV01\engsys.corp.ftr.com"
xcopy %source% %dest1% /E /Y
rem xcopy %source2% %dest1% /E /Y
echo #%username%@%computername%
Ich verwende Variablen, damit ich sie schnell zum Testen schalten kann.
Ich habe eine Schaltfläche auf einer meiner Webseiten erstellt, so dass ich einfach auf die Schaltfläche klicken konnte, und es wird die .bat-Datei ausgeführt. Allerdings kopiert es die Dateien nicht, wenn ich es mit der Schaltfläche starte. In der Website, wenn ich auf die Schaltfläche klicken diese aufgerufen wird: system('cmd /c ' . $script);
dann auf der Webseite zeigt es
Ungültige Laufwerksspezifikation 0 Datei (en) kopiert
Wenn ich das Ziel zu C:\Temp
dann ändern läuft gut und kopiert die Dateien in den Ordner auf dem Server, auf dem das Skript ausgeführt wird. Wenn ich es zu Z:\
ändere, erhalte ich den gleichen Fehler, als ob ich das Original laufen lassen würde. Z:\
ist das zugeordnete Laufwerk für den anderen Server (A), den ich auf B.
Ich weiß, dass die Server miteinander kommunizieren können, wie ich Laufwerke von einem Server auf den anderen für den Ort, wo die Website Dateien werden so gespeichert, dass jedem Server ein zugeordnetes Laufwerk für die Website-Dateien der anderen Server zugeordnet ist (Z:\
). Ich hatte gedacht, dass ich das als Ziel verwenden könnte. Das gibt nur den gleichen Fehler, aber kein gültiges Laufwerk.
Da ich nicht der einzige Admin bin, der die Website verwenden wird, brauche ich wirklich diese Schaltfläche, um zu arbeiten. Es gibt zwei von uns, die die Dateien aktualisieren können, aber wir haben ein Team, das die Admin-Seite benötigt, um bestimmte Dinge zu aktualisieren und dann die Schaltfläche verwenden muss, um sicherzustellen, dass sie auf beide Server kopiert werden.
EDIT
ich aus der echo off
hier kommentiert ist, die Ergebnisse der BAT-Datei ausgeführt wird. Ich habe es so formatiert, dass es nicht nur eine lange Zeichenfolge ist.
>rem echo off
>SET source="D:\WebContent\engsys.corp.ftr.com"
>SET source2="\\MAFINFWWWPV02\D$\WebContent\engsys.corp.ftr.com"
>SET dest1="\\MAFINFWWWPV01\engsys.corp.ftr.com"
>xcopy "D:\WebContent\engsys.corp.ftr.com" "\\MAFINFWWWPV01\engsys.corp.ftr.com" /E /Y Invalid drive specification 0 File(s) copied
>rem xcopy "\\MAFINFWWWPV02\D$\WebContent\engsys.corp.ftr.com" "\\MAFINFWWWPV01\engsys.corp.ftr.com" /E /Y
>rem pause
>echo #[email protected] #[email protected]
Benutzername Computername, wenn ohne Verwendung der Webseite von dem Server ausgeführt werden:
#[email protected]
Ich habe versucht, den UNC-Pfad, Service-Desktop-Zugriff, Dienst als Administrator, nichts funktioniert. Die Verwendung von "net use" zum Erstellen des Laufwerks innerhalb der Batch-Datei funktionierte einwandfrei. Danke – ChrisAdmin
@ChrisAdmin Froh, dass es geholfen hat, das war ein großer Schmerz zu arbeiten, bis ich das kleine bisschen gefunden habe. – Mike