Search icon CANCEL
Subscription
0
Cart icon
Cart
Close icon
You have no products in your basket yet
Save more on your purchases!
Savings automatically calculated. No voucher code required
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Windows Server 2019 Automation with PowerShell Cookbook - Third Edition

You're reading from  Windows Server 2019 Automation with PowerShell Cookbook - Third Edition

Product type Book
Published in Feb 2019
Publisher Packt
ISBN-13 9781789808537
Pages 542 pages
Edition 3rd Edition
Languages
Author (1):
Thomas Lee Thomas Lee
Profile icon Thomas Lee
Toc

Table of Contents (19) Chapters close

Windows Server 2019 Automation with PowerShell Cookbook Third Edition
Foreword
Contributors
Preface
1. Establishing a PowerShell Administrative Environment 2. Managing Windows Networking 3. Managing Windows Active Directory 4. Managing Windows Storage 5. Managing Shared Data 6. Managing Windows Update 7. Managing Printing 8. Introducing Containers 9. Managing Windows Internet Information Server 10. Managing Desired State Configuration 11. Managing Hyper-V 12. Managing Azure 13. Managing Performance and Usage 14. Troubleshooting Windows Server Index

Reporting on printer usage


Knowing who is using your printing devices and how much can be important in terms of capacity planning.

By default, Windows does not log printer usage information. But it is simple to turn on this logging and use the results.

Getting ready

You use this recipe on the PSRV host.

How to do it...

  1. Run wevtutil.exe to turn on printer monitoring on the PSRV host:

    $LogName = 'Microsoft-Windows-PrintService/Operational'
    wevtutil.exe sl $LogName /enabled:true
  2. Define a function that returns objects for each printer job completed on the server:

    Function Get-PrinterUsage {
    # 2.1 Get events from the print server event log
    $LogName = 'Microsoft-Windows-PrintService/Operational'
    $Dps = Get-WinEvent -LogName $LogName |
             Where-Object ID -eq 307 
    Foreach ($Dp in $Dps) {
    # 2.2 Create an ordered hash table
       $Document          = [ordered] @{}
    # 2.3 Populate the hash table with properties from the 
    # Event Log entry
       $Document.Id       = $Dp.Properties[0].value
       $Document.Type...
lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}