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)
-
Umieść pliki w
\\domain\SysVol\domain\scripts\assets\ -
Dodaj skrypt jako Startup Script w GPO:
Computer Configuration → Scripts → Startup -
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_commandw 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