2012-04-16 48 views
3

は、私は一緒にこのPowerShellのスクリプトを入れ始めた「X」日より古いプリントジョブを削除するには、希望は私がのPowerShellスクリプトの照会と

を使用している現在、手動

を行っているいくつかのタスクを置き換えることであろう

get-Date.AddDays() 

機能

私は、スクリプトを構築するためにISEを使用していると私は、「STARTTIME」プロパティを選び出す場合のテストで、私は出力を得るが、これは値すべてが出てくるので、すべてのキャッチのようです理想的には、timesubmittedプロパティを使用したいと思いますが、日付は「timesubmitted」と私のクエリは常に空出てくるので、私は正しく読み込まれているとは思わないことを奇妙に出力するように思わ

それは、この形式で出てくるあなたは、オープンクエリを実行する場合

20120416030836.778000-420 

ここに私がこれまで持っているものがあります。

|ちょうどので、私は、私はPowerShellで

#Clears Old Print Jobs on Specified server 

#Sets Execution Policy for Script to run 
Set-ExecutionPolicy RemoteSigned -Force 

#establishes variable for cutoff date 
$d = Get-Date 
$old = $d.AddDays(-4) 

#Queries WMI and retrieves print jobs 
Get-WmiObject -class win32_printjob -namespace "root\CIMV2" | where-object {$_.timesubmitted -lt 
"$old"} | ft caption,document,jobid,jobstatus,owner,timesubmitted 

答えて

7

所望の出力を得ている場合は、すべてのWMIインスタンスを使用すると、.NET形式にWMI形式から日付を変換するために使用することができますScriptMethodを持って見ることができます「形式-テーブル」関数:

Get-WmiObject Win32_PrintJob | 
Where-Object { $_.ConvertToDateTime($_.TimeSubmitted) -lt $old } | 
Foreach-Object { $_.Delete() } 
+0

は、チャームのように働いた右ダウンリストを狭くし、それはあなたが必要なものを与えた場合、 –

+0

クールおかげで、答えとしてそれを受け入れることを検討してください。 –