Files
PSITAgent/README.md
2026-07-11 23:27:09 +02:00

2.8 KiB

Opis

Skrypt zbiera dane systemowe (np. system operacyjny, CPU, RAM, dyski, adres MAC, oprogramowanie) na podstawie komend PowerShell zdefiniowanych w pliku konfiguracyjnym, a następnie wysyła je do Snipe-IT poprzez API.

Agent działa w oparciu o prosty plik config.json, który pozwala łatwo rozszerzać zakres zbieranych informacji bez modyfikacji kodu.

Funkcje

  • Integracja z API Snipe-IT
  • Dynamiczne zbieranie danych przez PowerShell
  • Obsługa custom fields
  • Wyszukiwanie assetu po serialu lub innym parametrze
  • Możliwość uruchamiania przez GPO / Scheduled Task
  • Działa bez dodatkowych zależności

Struktura


PSITAgent/  
├── assets.ps1  
├── config.json  
├── README.md  
└── deploy/  
    └── PSITAgent-StartupTask.xml

Konfiguracja

Plik config.json zawiera:

  • dane dostępowe do API Snipe-IT
  • sposób wyszukiwania assetu
  • definicje pól i komend PowerShell

Przykład:

{
  "snipe-it": {
    "url": "https://your-snipeit/api/v1",
    "apikey": "API_KEY",
    "verify-ssl": false
  },
  "search-term": {
    "type": "serial",
    "value": "(Get-CimInstance Win32_BIOS).SerialNumber"
  }
}

Uruchomienie

Ręczne:

powershell.exe -ExecutionPolicy Bypass -File .\assets.ps1

Wdrożenie w domenie (GPO)

  1. Umieść pliki w \\domain\SysVol\domain\scripts\assets\

  2. Dodaj skrypt jako Startup Script w GPO:

    Computer Configuration → Scripts → Startup
    
    
  3. Parametry:

    -ExecutionPolicy Bypass
    
    

Alternatywa: import gotowego zadania Harmonogramu Zadań

Zamiast ręcznie dodawać Startup Script w GPO, można zaimportować gotowy XML z deploy/PSITAgent-StartupTask.xml (uruchomienie 5 min po starcie systemu, konto SYSTEM, limit czasu wykonania i automatyczne ponowienie przy błędzie):

schtasks /Create /TN "PSITAgent" /XML "deploy\PSITAgent-StartupTask.xml"

Przed importem podmień w pliku XML ścieżkę do assets.ps1 na właściwą lokalizację na SYSVOL w swojej domenie.

Wymagania

  • Windows 10 / 11

  • PowerShell 5.1+

  • Dostęp do API Snipe-IT

Uwagi

  • Zalecane uruchamianie jako SYSTEM (GPO / Scheduled Task)

  • Możliwość rozszerzania poprzez dodanie nowych ps_command w configu

  • Skrypt może być dostosowany do pracy offline (lokalna kopia)

  • Błędy i przebieg działania są logowane lokalnie do C:\ProgramData\PSITAgent\assets.log (log rotowany po przekroczeniu 1 MB)

  • Ostatnio wysłane wartości pól są zapisywane w C:\ProgramData\PSITAgent\last_sent.json — skrypt wysyła do Snipe-IT tylko te pola, które faktycznie się zmieniły, ograniczając liczbę wywołań API

Licencja

Internal use / własny projekt