2014-01-29 38 views
4

我正在嘗試製作一個工具,該工具可以登錄到多個遠程Windows服務器並獲取其驅動器詳細信息並在一個窗口中顯示它們。從多個遠程窗口服務器獲取磁盤空間信息

我期待在遠程服務器上執行的可能命令是wmic logicaldisk get size,freespace,caption。我打算得到這個命令的輸出並顯示它。

我有遠程服務器主機名和IP,用戶名和密碼。

如何連接到這些遠程服務器並執行命令?

+0

[#1擊中「WMIC」](http://technet.microsoft.com/en-us/library/bb742610.aspx)有答案。 'wmic/node:SERVER1 printer list status'在名爲SERVER1的計算機上運行'printer list status'命令。 –

+0

您應該接受user2301394的答案以提供您自己的答案。 – jeremyjjbrown

回答

0

您應該能夠使用PowerShell發出遠程許可,但必須啓用PowerShell遠程處理。 Here是一個看起來不錯的教程。

+0

powershell在遠程服務器中未啓用。我需要與傳統的命令promt一起工作。 – debal

3

因此,powershell未啓用,這意味着您需要使用批處理文件。 我建議你試試這個腳本。我發現這個腳本,它工作正常。

我希望這對你有所幫助。

@ECHO OFF 
IF "%~1"=="" goto help 
IF "%~2"=="" goto help 

@SETLOCAL ENABLEEXTENSIONS 
@SETLOCAL ENABLEDELAYEDEXPANSION 

@FOR /F "tokens=1-3" %%n IN ('"WMIC /node:"%1" LOGICALDISK GET Name,Size,FreeSpace | find /i "%2""') DO @SET FreeBytes=%%n & @SET TotalBytes=%%p 

@SET /A TotalSpace=!TotalBytes:~0,-9! 
@SET /A FreeSpace=!FreeBytes:~0,-10! 
@SET /A TotalUsed=%TotalSpace% - %FreeSpace% 
@SET /A PercentUsed=(!TotalUsed!*100)/!TotalSpace! 
@SET /A PercentFree=100-!PercentUsed! 

IF %TotalSpace% LSS 0 goto error 

@ECHO Total space: %TotalSpace%GB 
@ECHO Free space: %FreeSpace%GB 
@ECHO Used space: %TotalUsed%GB 
@ECHO Percent Used: %PercentUsed%%% 
@ECHO Percent Free: %PercentFree%%% 

@SET TotalSpace= 
@SET FreeSpace= 
@SET TotalUsed= 
@SET PercentUsed= 
@SET PercentFree= 
goto end 

:error 
echo. 
echo *** Invalid server or drive specified *** 
echo. 
goto help 

:help 
echo. 
echo diskfree.cmd 
echo. 
echo Queries remote server for free disk space. 
echo Specify a MACHINENAME and a drive letter to be queried 
echo. 
echo Example: diskfree.cmd MACHINENAME c: 
echo. 
goto end 


:end 
+0

計算結果有問題,GB中的值不正確。它們與原始值不同。 – debal

+0

請在這裏粘貼你的輸出。 – Ironic

+0

我檢查了腳本,發現它按照字節值進行計算。要檢查,如果您右鍵單擊驅動器,則可以看到該值幾乎相等。 – Ironic