powershell對txt文件的伺服器進行ping操作,txt文件有幾百台伺服器要進行Ping操作。每行一個#//*************************************************************#//編輯人:#//編輯單位:#//編輯作用:ping#//編...
powershell對txt文件的伺服器進行ping操作,txt文件有幾百台伺服器要進行Ping操作。每行一個
#//************************************************************* #//編輯人:
#//編輯單位:
#//編輯作用:ping #//編製時間:2016.01.05 #//************************************************************* $stopWatch = [system.diagnostics.stopwatch]::startNew() #************獲取當前腳本執行的目錄 $Location ="d:\" #$PSScriptRoot #**********************創建以yyyy-MM-dd的日誌文件夾 $folderName ="ping" #*********************全路徑 $folderPath = $Location + "\" + $folderName #*********************如果根文件夾不存在。則創建根文件夾 If((Test-Path $folderPath) -eq $False) { Write-Host "開始創建文件夾...---------------" -ForegroundColor Green New-Item -path $Location -name $folderName -itemType "directory" Write-Host "創建文件夾完畢...---------------" -ForegroundColor Green } #**************************創建2個文件 $pingFileName ="ok.txt" #**************************創建ping通的文件 $pingFilePath = $folderPath + "\" + $pingFileName ; If((Test-Path $pingFilePath) -eq $False) { Write-Host "開始創建ping通文件...---------------" -ForegroundColor Green New-Item -path $folderPath -name $pingFileName -itemType "File" Write-Host "創建ping通文件完畢...---------------" -ForegroundColor Green } #**************************創建ping不通的文件 $nopingFileName ="no.txt" $nopingFilePath = $folderPath + "\" + $nopingFileName ; If((Test-Path $nopingFilePath) -eq $False) { Write-Host "開始創建ping不通文件...---------------" -ForegroundColor Green New-Item -path $folderPath -name $nopingFileName -itemType "File" Write-Host "創建ping不通文件完畢...---------------" -ForegroundColor Green } #**************讀取電腦文件TXT(格式一行一個) $computerObjects = Get-Content c:\DNS.txt #***************得到總的要處理的電腦台數 $totalCount = $computerObjects.count; #***************提示信息 $sContent = "一共有:" + $totalCount.ToString() +"台伺服器需要處理!" Write-Host $sContent -ForegroundColor Green #***************成功的伺服器台數 [int]$successCount = 0; #***************失敗的伺服器台數 [int]$failCount = 0; ForEach($computerObject in $computerObjects) { try { #******************如果ping得通 if (Test-Connection $computerObject -Count 1 -ea 0 -Quiet) { #*********************ping通信息列印 $pingOK = "ping通" + $computerObject.ToString() Write-Host $pingOK -ForegroundColor Green #*********************寫入ping通文件 Add-Content -Path $pingFilePath -Value $computerObject #*********************計數器+1 $successCount = $successCount + 1 } #*******************如果ping不通 else { #*********************ping不通信息列印 $pingNO = "ping不通" + $computerObject.ToString() Write-Host $pingNO -ForegroundColor Red #*********************寫入ping不通文件 Add-Content -Path $nopingFilePath -Value $computerObject #*********************計數器+1 $failCount = $failCount + 1 } } catch { #*********************出現錯誤 $errMsg = "ping"+$computerObject.ToString()+ "過程中出現錯誤" Write-Host $errMsg -ForegroundColor Blue #*********************寫入ping不通文件 Add-Content -Path $nopingFilePath -Value $computerObject #*********************計數器+1 $failCount = $failCount + 1 } } #*************執行完畢 $stopWatch.Stop() #****************計算一共花費多少時間 $totalseconds = $stopWatch.Elapsed.TotalSeconds #**********************列印出一共花費多少時間 $tooltip = "處理完畢,一共花費" + $totalseconds.ToString() +"秒" Write-Host $tooltip -ForegroundColor Red