Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Windows Server 2019 Automation with PowerShell Cookbook

You're reading from   Windows Server 2019 Automation with PowerShell Cookbook Powerful ways to automate and manage Windows administrative tasks

Arrow left icon
Product type Paperback
Published in Feb 2019
Publisher Packt
ISBN-13 9781789808537
Length 542 pages
Edition 3rd Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Thomas Lee Thomas Lee
Author Profile Icon Thomas Lee
Thomas Lee
Arrow right icon
View More author details
Toc

Table of Contents (16) Chapters Close

Preface 1. Establishing a PowerShell Administrative Environment FREE CHAPTER 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...
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 $19.99/month. Cancel anytime
Banner background image