Sissejuhatus
Hetkel on käsil Configuration Manager 2007 Client Health e „Kliendi Tervise“ projekt ja selleks olen ehitanud PowerShellis ühe custom lahenduse, mis kontrollib kliendi arvutis teatuid asju ja peale seda raporteerib serverisse tagasi. Skripti käivitamine arvutis käib Task Scheduleri kaudu, mis on arvutitesse seadistatud läbi GP (Group Policy) eelistuste kaudu. Custom lahendus näeb välja selline.
Kuna skripti käivitamise task on seadistatud läbi GPO ja kuna GPO-ga ei saa ma tagasisidet kas see task on seadistatud kliendi arvutis või mitte. Siit tekkiski vajadus kontrollida, et kui palju arvutitel on reaalselt see task olemas ja võrrelda seda numbrit raporteerinud arvutite arvuga.
Probleem
Esialgu tundus selle probleemi lahendamine lihtne aga asjaga tegeledes avastasin ühe väga lolli asja. Keegi tark mees on arvanud, et need Scheduled Taskid mida tehakse läbi graafilise liidese ei registreerita neid Win32_ScheduledJob WMI klassi. Win32_ScheduledJob klassi registreeritakse ainult läbi skriptiga tehtud taskid. Selline erinevus on minu jaoks kuidagi arusaamatu, et miks on kaks eraldi API´d selle jaoks ja miks ei võiks registreerida kõiki töid sinna. Lähemalt saate lugeda siit
Kui teil on näiteks GP-ga seadistatud Scheduled Task, siis need leiab C:\Windows\Tasks kausta alt või kasutada Schtsaks tööriista. Kuna WMI klassi neid ei registreerita, siis ei saa lihtsalt teha ka mingit ConfigMgr raportit. Hetkel ei oska öelda kuidas on asi lahendatud Windows 8-s.
Lahendus
Selleks, et välja selgitada millistes arvutites on konkreetne task olemas või mitte, siis selleks ma otsustasin kasutada Desired Configuration Management komponenti. DCM´ga saab lihtsasti teha reegli mis kontrollib teatuid asju ja vastavalt sellele kas arvuti on vastavuses või mitte (Compliance või Non-Compliance). Selleks, et DCM´ga vastavust kontrollida peate te lubama DCM kliendi teenuse ja klientidel peab olema vähemalt DotNet 2.0 installeeritud
Selleks, et see asi tööle saada peame me:
1. Seadistama Configuration Item´i e CI
2. Seadistama Configuration Baseline ja linkima CI Baseline külge
3. Rakendama uue Baseline kollektsioonile
Configuration Itemi loomine
1. Vali CM konsoolist Desired Configuration Managament ja sealt Configuration Items
2. Actions menüüst vali General Configuration Item
3. Sisesta CI nimi ja kirjeldus
4. Siin lehel pole vaja midagi seadistada
5. Siin lehel vali New ja sealt Script
6. Sellel lehel tuleb sisestada skript millega vastavust kontrollida ja teil on võimalus kasutada VB Skripti, JSkripti või PowerShelli. Selles näites kasutan VBScripti. Skript mida kasutada saate on järgmine:
Option Explicit
Dim strReturn
Dim objFSO
Dim File
On Error Resume Next
strReturn = "FALSE"
Set objFSO = CreateObject("Scripting.FileSystemObject")
File = "C:\Windows\Tasks\Client_Health.job"
If objFSO.FileExists (FILE) then
' Return TRUE
strReturn = "TRUE"
Wscript.Echo strReturn
Wscript.exit
Else
' No JOB
Wscript.Echo strReturn
End If
Selles skriptis tuleks muuta punasega märgitud teksti.
7. Validation paneeli pealt valige New
8. Selle paneeli alt tuleb seadistada, et milline on skripti väljund. Ülal toodud skripti väljund on TRUE, kui kliendi arvutis on vastav Scheduled Task olemas. Kui Scheduled Task on puudu, siis skript väljund on FALSE
9. Valida välja millistele operatsioonisüsteemidele seda soovite paigaldada.
10. Kui kõik on OK, siis peaksite nägema järgmist rohelist linnukest
Configuration Baseline loomine
Kui CI on loodud, siis tuleks luua BaseLine ja selle külge linkida vastav CI.
1. Valige Action menüüst New Configuration Baseline
2. Sisestage Baseline nimi ja kirjeldus
3. Valige Application and General link
Peale seda valige oma loodud CI ja vajutage OK
4. Kui kõik läks hästi, siis peaksite nägema rohelist linnukest
Baseline rakendamine kollektsioonile
Kui CI ja Baseline on olemas, siis valige oma Baseline ja valige „Assign to a Collection“. Peale seda valige kollektsioon kuhu te soovite seda rakendada. Mõne aja pärast peaksite te saama tulemused.
See oli siis selline lihtne näide, et kuidas saab kontrollida kas konkreetne Scheduled Task ekisteerib või mitte kliendi arvutis.