Merhaba,
Bu yazıda sürekli yaptığım baseline’ları tekil clientlarda anında tetiklemek adına kullandığım ufak bir script’i paylaşacağım.
Öncelikle neden böyle bir ihtiyaç olduğunuz belirmeliyim. Zaman zaman yapılan compliance ya da remediation baseline’ları tekil olarak bazı makinelerde istendiği gibi çalışmayabilir. Bu durumda baseline’da bu kullanıcıları da kapsamak adına ufak bir düzenleme yapmak gerekebilir. Baseline’ı, test ya da lab ortamınızda elle tetikleseniz bile, amaç düzgün çalışmayan makinede tekrar çalıştırarak sonucu görmek olacaktır. Tabii ki baseline’ın çalışma döngüsü sonrası kendi kendine tetiklenmesi bekleyebilir, ya da cihaza bağlanılarak elle tetiklenebilir, ancak burada daha dinamik olmak adına bu script’i kullanmaktayız.
Bunun için aşağıdaki script’i kullanabiliriz. Powershell ortamınızda açıksa direkt en üstteki $ComputerName parametresini çalıştırmak istediğiniz bilgisayarın hostname’i olarak düzenleyebilirsiniz.
$ComputerName = $env:COMPUTERNAME
$baseline = 'baseline ismi'
$obj = Get-CimInstance -ComputerName $ComputerName -Namespace root\ccm\dcm -ClassName SMS_DesiredConfiguration -Filter "DisplayName = '$baseline'"
Invoke-CimMethod -InputObject $obj -MethodName TriggerEvaluation -Arguments @{ Name = $obj.Name; version = $obj.Version }
Fakat ortamınızda Powershell sadece belli .exe’ler tarafından execute edilebiliyorsa, ve SCCM’in bu execute hakkı var ise, bu durumda SCCM’in script mekanizması üzerinden hızlıca tetikleme işlemini yapabiliriz.
SCCM konsolumuzda Software Library > Scripts bölümüne girerek yeni bir script oluşturuyoruz ve tetikleyeceğimiz baseline’ın ismini bire bir aynı olacak şekilde tırnak içerisine yazıyoruz. Script’i lokal çalışacak $Env:COMPUTERNAME parametresi üzerinden computername’i çekiyor dolayısıyla bu şekilde herhangi bir değişiklik yapılmadan kullanılabilir.