Microsoft Print Services jako darmowy monitoring wydruków w firmie

W tym poście opisze jak wykorzystać rolę Windows Server do monitoringu ilości wydruków w firmie.

Co potrzebujesz?

  1. Windows Server 2012 R2 lub nowszy
  2. Wdrożone środowisko Acitve Directory
  3. Microsoft SQL 2014 (może być darmowa edycja Express)
  4. Drukarki sieciowe w firmie

Co potrzebujesz wiedzieć?

  1. Jak się instaluje role w Windows Server
  2. Jak się uruchamia skrypty powershell
  3. Jak utworzyć bazę danych SQL, użytkownika SQL, nadać uprawnienia użytkownikowi, uruchomić zapytanie SQL
  4. (opcjonalnie) jak utworzyć zadanie w harmonogramie zadań Windows
  5. (opcjonalnie) jak utworzyć połączenie z bazą danych SQL w Excel’u

Konfiguracja krok po kroku:

  1. Dodaj na serwerze rolę Print and Document Services -> Print Server
  2. W Event Log włącz logowanie zdarzeń związanych z usługą PrintService oraz ustaw odpowiednią wielkość logu
    1. Applications and Services Logs -> Microsoft -> Windows -> PrintService -> Admin (PPM -> Enable Log)
    2. Applications and Services Logs -> Microsoft -> Windows -> PrintService -> Operational (PPM -> Enable Log)
  3. Na kontrolerze domeny dodaj pustą polisę (nazwij ja np. printers) i zlinkuj ją z OU, w którym są komputery, na których chcesz zainstalować drukarki
  4. Uruchom konsolę Print Management
    1. W węźle Print Servers -> %twojserwer% -> Drivers dodaj sterowniki do urządzeń w firmie
    2. W węźle Print Servers -> %twojserwer% -> Printers
      1. dodaj drukarki sieciowe wykorzystywane w firmie
      2. Każdą z drukarek połącz z utworzoną polisą (PPM na drukarce -> Deploy with Group Policy -> Browse -> wskazujemy polise printers -> The computers that this GPO applies to (per machine) -> add -> OK
  5. Na każdej stacji roboczej należy wymusić aktualizację polis (gpupdate /force)
  6. Na stacji roboczej pojawią się nowe drukarki, należy ustawić nową drukarkę jako domyślną i wykasować drukarki, które nie sa udostępnione z serwera wydruków. (Jeśli nie usuniemy drukarek innych niż udostepnione z serwera wydruków to zdarzenia wydruku nie pojawią się w Event Logu)
  7. W najprostszej postaci funkcjonalność mamy wdrożoną, bo z Event Logu można wydobyć informację, kto, kiedy, co drukowal, na której drukarce, z którego komputera. My jednak chcemy, aby uporządkowane dane znalazły się w bazie danych.
  8. Instalujemy darmowego SQL Express (do pobrania ze stron Microsoft) + SQL Management Studio lub wykorzystujemy już funkcjonującą w firmie instancje SQL
  9. W dowolny sposób tworzymy bazę PA
  10. Tworzymy użytkownika print, nadajemy mu hasło i uprawnienia do bazy PA – rola db_owner
  11. Ze strony https://gallery.technet.microsoft.com/Print-Events-to-SQL-618dd5d4#content lub tutaj pobieramy archiwum ZIP i wypakowujemy z niego pliki.
  12. W Management Studio uruchamiamy zapytanie PrintingAuditToSQL Schema.sql (z archiwum ZIP) – utworzy się tabela w bazie danych PA
  13. W pliku PrintingAuditToSQL.ps1 edytujemy zmienne: $PROD_SERVER, $connectionString
  14. Po uruchomieniu skryptu Powershell na serwerze wydruku dane powinny zapisać się do bazy PA
  15. W dalszej kolejności można w harmonogramie zadań ustawić uruchamianie skryptu cyklicznie.
  16. Gdy chcemy przedstawić dane w postaci czytelnego raportu zalecam skorzystać z Excela (Dane -> Z innych źródeł -> Z programu SQL Server) i wybranie tabeli przestawnej.
  17. Jeśli jednak chcemy być niezależni od pliku Excela, można na serwerze zainstalować darmowe MS Reporting Services (https://www.microsoft.com/en-us/download/details.aspx?id=55252) i zbudować samemu raport za pomocą darmowego MS SQL Server 2016 Report Builder (https://www.microsoft.com/en-us/download/details.aspx?id=53613). Wymaga to jakiegoś dodatkowego dnia pracy.

Instalacja i konfiguracja nie powinna zając więcej niż 8 godzin. Plus ewentualnie instalacja, konfiguracja i projektowanie Reporting Services i Report Builder

Jeśli masz pytania skorzystaj z formularza kontaktowego.