如果你輸出這些結果到一個文本文件,每半小時,你可以用比較-對象2檔之間的彙報上的差異/相似之處:
$file1 = get-childitem -path "C:\Powershell\Test\Text" | sort LastWriteTime | select -ExpandProperty FullName -last 2 | Out-File C:\Powershell\path1.txt
$file2 = Get-Content -Path "C:\Powershell\path1.txt" | Select-Object -First 1
$file3 = Get-Content -Path "C:\Powershell\path1.txt" | Select-Object -Last 1
Compare-Object -ReferenceObject (Get-Content $file2) -DifferenceObject (Get-Content $file3) -IncludeEqual -ExcludeDifferent | sort InputObject
在此,List1.txt包含:
Xerox wc275.1 Offline
dnj-4000.1 Offline
6040.1 Offline
m225.02 Offline
5225.01 Offline
List2.txt包含:
Xerox wc275.1 Offline
dnj-4000.1 Online
6040.1 Offline
m225.02 Offline
5225.01 Online
所以結果給出了線這是一樣的前30分鐘:此
PS C:\WINDOWS\system32> C:\Powershell\Test\CompareMostRecentFiles.ps1
InputObject SideIndicator
----------- -------------
6040.1 Offline ==
m225.02 Offline ==
Xerox wc275.1 Offline ==
注:
此檢查在一個特定的文件夾2個最近使用的文件,所以如果你正在運行的打印機每隔30分鐘檢查並出口到文本文件,確保文本文件正在輸出到他們自己的特定文件夾,不包含任何其他內容,否則您將得不到正確的結果。您還需要確保打印機檢查腳本創建唯一的文本文件,並且不會覆蓋同一文本文件。
每隔x分鐘檢查一次狀態,如果您在總共30分鐘內獲得相同的狀態(「脫機」),也許您可以認爲該狀態在該段時間內處於脫機狀態。刷新間隔30分鐘可能會有點長(打印機可能在該時間段內聯機和脫機)。 – sodawillow
它只是一個簡單的狀態。不管它是什麼,離線,在線,錯誤或不適用。我只是想知道如何使用PowerShell來檢查它。如果我每隔半分鐘檢查一次狀態,不要認爲這是個好主意。記住脫機打印機池並使用時間間隔檢查它會更好嗎? –
如何知道30分鐘內是否已脫機? –