【发布时间】:2019-04-29 10:24:01
【问题描述】:
我需要获取已发送到打印机的文件的名称和大小。所以我需要在打印文件之前获取有关它的信息。
我尝试使用 Windows\System32\spool\PRINTERS 中的文件,但即使我暂停打印工作,我也无法从 .SHD 和 .SPL 文件中获取任何信息。
我开始寻找一些使用 Get-WmiObject -Class Win32_Printer 的解决方案。 这是一个正确的方法吗?也许我应该使用一些特定的方法或其他东西?
我试过这段代码,但显示错误
$comp = $(Get-WmiObject Win32_Computersystem).Name
if ( (Get-ChildItem C:\Windows\System32\spool\PRINTERS | Measure-Object).Count -ne 0)
{
Get-WmiObject -Class win32_service -filter 'name="spooler"' -ComputerName $comp | Invoke-WmiMethod -Name StopService | out-null
$name = $(Get-WmiObject Win32_PrintJob).Document
$size = $(Get-WmiObject Win32_PrintJob).Size
$time = $(Get-WmiObject Win32_PrintJob).StartTime
"$comp,$name,$size,$time" | Out-file C:\Scripts\PrintJobs.csv -Append
Set-Service spooler -ComputerName $comp -Status Running
}
怎么了?
PowerShell 对我来说是一个新事物,现在我完全迷失了这项任务
【问题讨论】: