Powershell Logging

Powershell Logging yazımızda powershell üzerinde çalıştırılan komutların ve çıktılarının loglamasını yapacağız. Bunun değeri oldukça fazladır. Çünkü herhangi bir komut çalıştırıldığında sizlere loglama yapılacak ve çıktılarını görebileceğiz. Sizden habersiz çalışan herhangi bir PS komutu veya script varsa neler yapıldığını görebileceksiniz. Aslında amaç PS SIEM yapmaktadır.

Daha önceki yazılarımızda Powershell Signing ve Powershell Engelleme konularına değinmiştik.

Öncellikle ben demo ortamımda Domain Controllerlar üzerinde çalışan powershellerin loglamasını yapacağım. Sizler genele dağıtabilirsiniz. Fakat şunu unutmamak lazım eğer diğer uygulamalarınız loglama yapacağınız client veya server üzerinde ps çalıştırıyorsa log dosyaları büyümeye başlayacak , disk alanında artmalar başlayacaktır. Bunu kesinlikle dikkate alın. Örnek olarak SCOM uygulamasının çalıştırması gibi.

İlk olarak Domain Controller OU sunda GPO oluşturdum ve 3 tane ayar yapacağız. İlk olarak

Computer Configuration> Administrative Templates >Windows Components> Windows PowerShell

Turn on Module Logging = Enabled Shows = * olarak ayarlıyoruz. Tüm herşeyi loglayacağız. Filtrelemeler yapabilirsiniz.

Powershell Logging Turn On

Script bloklarını loglamak için; Turn on Powershell Script Block Logging= Enabled olarak ayarlıyoruz. Burada aşağıdaki kutucuğu işaretlemeniz start/stop eventlerinide yazacak alan daha da büyüyecektir.

Powershell Logging Script Block

Son olarak nereye atacağımızı belirliyoruz. Turn on Powershell Transcription = Enabled Output Directory sizlerin belirleyeceği yer olacaktır. Ben C diskinde PSLogs klasörü içerisine atacağım.

Powershell Logging Output Directory

Son olarak çıktılar gelmeye başladı. Kimin çalıştırdığı ve komutu aşağıda görüyorsunuz. Output aşağıdaki gibi yazmaktadır.

Powershell Logging Output

Active Directory Powershell Logging konusuna bu yazımızda sizlere sunduk. Diğer yazılarımızı aşağıdaki kategorilerden takip edebilirsiniz.