120 lines
2.8 KiB
Markdown
120 lines
2.8 KiB
Markdown
## 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:
|
|
|
|
```json
|
|
{
|
|
"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
|
|
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
|
|
|