我有一個使用兩臺服務器運行的網站(A和B)。它顯示來自MSSQL的報告。這些服務器都是Windows 2012 R2。我創建了一個.bat文件,用於將網站文件從一臺服務器(B)複製到另一臺(A),以便我可以一起更新它們。我只手動更新服務器B上的網站的文件。在服務器B上執行的bat腳本無法連接到服務器A以複製文件
我可以在我的計算機上或直接在任一服務器上運行.bat文件,它可以正常工作,所有文件都從B複製到A.以下是.bat文件:
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%
我正在使用變量,以便我可以快速切換它們以進行測試。
我在我的網頁上創建了一個按鈕,這樣我就可以點擊按鈕,它會運行.bat文件。但是,當我使用按鈕運行它時,它不會複製這些文件。在該網站,當我點擊按鈕,這就是所謂的:system('cmd /c ' . $script);
然後在網頁上會顯示
無效驅動器規格0文件(縣)複製
如果我改變目的地C:\Temp
則運行良好並將文件複製到運行腳本的服務器上的文件夾。如果我將它更改爲Z:\
,那麼我會得到與運行原始文件相同的錯誤。 Z:\
是我放在其他服務器(A)上的映射驅動器B.
我知道服務器可以互相通話,因爲我已經將驅動器從一臺服務器映射到另一臺服務器,存儲文件,以便每臺服務器都有映射的驅動器到其他服務器的網站文件(Z:\
)。我原以爲我可以用它作爲目的地。這只是給出了不是有效驅動器的相同錯誤。
由於我不是唯一的管理員將使用該網站,我真的需要這個按鈕的工作。我們中有2人可能會更新這些文件,但我們有一個團隊可能需要我們管理員頁面來更新某些內容,然後需要使用該按鈕以確保他們被複制到兩臺服務器上。
編輯
我註釋掉echo off
這裏的運行.bat文件的結果。我確實格式化了它,這不僅僅是一個長字符串。從服務器,而不使用該網站運行時
>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]
用戶名計算機名稱:
#[email protected]
我試過了,UNC路徑,允許服務桌面訪問,服務爲管理員,沒有任何工作。使用'淨使用'在批處理文件中創建驅動器完美無瑕。謝謝 – ChrisAdmin
@ChrisAdmin很高興幫助,這是一個讓我工作的重大痛苦,直到我發現了一點點。 – Mike