我有一個清理腳本,我打算通過使用活動目錄來清理數百個虛擬服務器。在過去,我會創建一個能夠顯示以下一個簡單的.txt文件:通過Powershell將信息輸出到電子表格
已存在的腳本運行
前磁盤空間-AMOUNT - 如何它運行
後大的空間 - 總空間被清除
在過去,這個工作很好,但它的目的是一次在單個服務器上使用,而不是數百個。由於我想改變一次在數百個腳本上運行此腳本,因此我想將其更改爲電子表格,該電子表格會顯示相同的數據以及顯示腳本運行的每個服務器的名稱。
我該如何設法以電子表格格式創建這種類型的輸出並顯示它?這是我目前的代碼(.txt方法):
$logFilePath = "C:\logfile.txt"
$disks = Get-WMIObject -Computer $server -Class Win32_LogicalDisk -Filter "DeviceID like '%C%'"
$beforeFreeSpace = $disks.FreeSpace
$beforeFreeSpaceMB = [math]::truncate($beforeFreeSpace/1MB)
$preCleanupMessage = "Space available before cleanup ran (MB): "
$preCleanupMessage += $beforeFreeSpaceMB
$preCleanupMessage | out-file -filePath $logFilePath -Append
$afterFreeSpace = $disks.FreeSpace
$afterFreeSpaceMB = [math]::truncate($afterFreeSpace/1MB)
$freedSpace = "Freed up space after cleanup (MB): "
$freedSpace += $afterFreeSpaceMB - $beforeFreeSpaceMB
$freedSpace | out-file -filePath $logFilePath -Append
$message = "Free space remaining after cleanup (in MB): "
$message += [math]::truncate($afterFreeSpace/1MB)
$message | out-file -filePath $logFilePath -Append
在此先感謝!
嗨克里斯,謝謝你的建議!有一件事關於你所說的關於手動運行的說法,你知道默認gwmi超時的頻率嗎?我打算最終努力使這個腳本自動運行。 – Valrok 2012-08-10 19:58:03
這取決於你的環境。也許你所有的服務器都很健康。我從來沒有。試試這個:http://blog.usepowershell.com/2009/01/dealing-with-wmi-timeouts/ - 另外,你可能想要在這之前拋出一個If(test-connection $ _ -quiet){type check in讓它啓動WMI檢查。 – 2012-08-13 00:28:39