Мне нужно получить имя и размер файла, который был отправлен на принтер.Поэтому мне нужно получить информацию об этом ПЕРЕД печатью файла.
Я пытался работать с файлами в 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 - это новая вещьдля меня и на данный момент я полностью потерян с этой задачей