0
我需要在數百臺服務器上運行命令,並且發現Sysinternals中的PsExec非常有用。但是,服務器關閉或未安裝應用程序時會出現小問題。在這種情況下,錯誤不會記錄到我的輸出文件中。從批處理中使用PsExec並捕獲錯誤
當服務器沒有響應時,我如何「記錄」PsExec的輸出?它應該只是在我的輸出文件中帶有「離線」或「錯誤」的一行。
我的目標是運行800個服務器的列表,並獲得一個包含800行的results.txt文件,以便將內容粘貼到Excel中並比較這些值。
我的劇本是這樣的:
@echo off
setlocal enabledelayedexpansion
set OUTPUT_FILE=result.txt
>nul copy nul %OUTPUT_FILE%
for /f %%i in (servers.txt) do (
for /f "tokens=1,2" %%x in ('psexec.exe \\%%i -u MyDomain\MyUsername -p MyPassword dspmqver -f 2') do (
IF "%ERRORLEVEL%"=="0" (
echo %%i %%y >>%OUTPUT_FILE%
) ELSE (
echo Error
)
)
)
任何幫助將非常感激。
問候
拉斯穆斯
編輯:
在一個失敗的情況下將來自PSEXEC輸出和一個正在運行的。
在一個離線服務器上,這顯然達不到要求 - 輸出:
psexec.exe \\hostname -u MyDomain\MyUsername -p MyUsername dspmqver -f 2
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Couldn't access hostname:
Network path not found (translated from danish)
Make sure that the default admin$ share is enabled on hostname
在一個網絡服務器,在腳本作品 - 輸出。
psexec.exe \\hostname -u MyDomain\MyUsername -p MyUsername dspmqver -f 2
PsExec v2.11 - Execute processes remotely
Copyright (C) 2001-2014 Mark Russinovich
Sysinternals - www.sysinternals.com
Version: 7.5.0.4
dspmqver exited on hostname with error code 0.
批量外部直接調用的psexec的輸出是什麼?包括錯誤級別 – Marged
我剛剛對原始帖子進行了編輯以添加輸出 - 無法在此處的評論中使用代碼樣式。 – RazziaDK