如果你输出这些结果到一个文本文件,每半小时,你可以用比较-对象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分钟内是否已脱机? –