用於取得具有唯一登入憑證的遠端伺服器清單的系統資訊的批次文件

用於取得具有唯一登入憑證的遠端伺服器清單的系統資訊的批次文件

我對腳本編寫不熟悉。我手頭上有一項任務,需要檢查伺服器的正常運行時間,以確保它們是否確實在預期時重新啟動。

我正在瀏覽 Google 搜索,發現了一個文件的想法input.txt,其中包含所有伺服器名稱和output.txt,其中包含結果。

問題是每個伺服器都有一個唯一的通用登入名稱。例如登入名稱是domain\server1,密碼是server1domain。我的輸入檔如下:

domain\server1, server1domain
domain\server2, server2domain
domain\sevrer3, server3domain

我想使用serverinfo /s | find "uptime" >>c:\output.txtoutput.txt我想成為:

domain\server1      uptime   <uptime of server>
domain\server2      uptime   <uptime of server>
domain\server3      uptime   <uptime of server>

依此類推,直到文件結尾input.txt

有人可以建立一個非常基本的批次檔嗎?

答案1

我做了一些改變,希望能有所幫助。我現在擁有的是一個批次文件,我嘗試根據我的環境修改它:

我有一個包含伺服器名稱清單的 input.txt,其中該循環逐行取得伺服器名稱。同時,我嘗試在腳本中擁有唯一的登入憑證,這樣我就不必手動輸入它們的登入憑證。這是我的腳本。我面臨的問題是,當 systeminfo.exe 執行時,登入憑證沒有作為值傳遞。

for /f "delims=" %%a in (c:\Uptime\Input.txt) do (  
    echo %%a  
    set x=yellow  
    set login=%x%%%a  
    set pwd=%%a%x%  
    echo %login% pwd %pwd%  
    systeminfo /s %%a /u %login% /p %pwd% | find "System Up Time" >> c:\Uptime\A.txt  
    pause  
)  

當我執行這個批次檔時,我得到以下資訊:

C:\Uptime>(  
echo Server1  
 set x=yellow  
 set login=Server1 <- it should be: yellowServer1  
 set pwd=Server1  <- it should be: Server1yellow  
 echo  pwd <- not showing the values of variables from above, should be: yellowServer1 Server1yellow  
 systeminfo /s Server1 /u  /p    | find "System Up Time"  1>>c:\Uptime\A.txt  
 pause  
)  
Server1  
 pwd  
ERROR: Invalid Syntax. Value expected for '/u'.  
Type "SYSTEMINFO /?" for usage.  
Press any key to continue . . .  

我不確定為什麼它不從 systeminfo 命令行中的變數中取得值。

答案2

這對你來說可能已經太晚了,但對於其他正在尋找類似東西的人來說應該很有用,因為我最近...

您沒有在命令列中指定正確的資訊。另外systeminfo指令只有啟動時間,沒有正常運作時間。這將建立一個空文件。

systeminfo /s Server1 /u %login%  /p %pwd%   | find "System Boot Time"  >> c:\Uptime\A.txt

您可以使用cutfromunixutils進一步清理文件。

相關內容