PowerShell ile Windows Server 2019 Uzerinde CIMv2 Kullanarak Bilgi Toplamak

WMI objeleriyle calismanin bir suru avantaji var elbette. Bilgisayarinizdaki bir cok servis, arac ya da uygulama hakkinda bilgileri WMI kullanarak alabilir, degistirebilir ve yonetebilirsiniz. WMI, aslinda cok eski zamanlardan beri kullandigimiz bir arac ancak; PowerShell ile cok hizli ve kolay bir sekilde kullanilabildigi icin artik cok daha revacta diyebilirim. WMI aslinda CIM standardinin Windows sistemler icin kullanilan bicimi. Yani, CIM=WMI diyebiliriz. Bu sebeple PowerShell 3.0 ile kullanilmaya baslayan CIM komutlarini kullanarak cok daha efektif sonuclar alabilecegimizi dusunuyorum.
O halde biraz faydali komut kosturalim!
Oncelikle hangi
Hangi bilgilere erisebileceginizi goerbilmek icin “Class” adi verilen bilesenlere ihtiyacimiz bulunuyor. Her Class belirli bir yazilim, donanim ya da servis hakkinda bilgi ve aksiyonlar iceriyor.
Asagidaki komutla tum Class’lari listeleyebiliriz.

Hatta isterseniz win32* filtrelemesiyle daha rafine bir sonuc alabilirsiniz.

Bu liste epey uzun ancak icinde cok faydali Class’lar var. Ben ornek olarak 5 tanesini sececegim ancak siz de kendi denemelerinizi farkli Class’lar ile yapabilirsiniz.




Continue Reading PowerShell ile Windows Server 2019 Uzerinde CIMv2 Kullanarak Bilgi Toplamak

PowerShell ile Windows Server 2019 Active Directory Uzerinde Gruplari Farkli Sekilde Filtrelemek

AD uzerinde kullanici, grup ya da diger objeeri cok farkli yollarla yonetebilirsiniz. PowerShell’in sundugu esneklik sayesinde farkli metotlari kullanabilir, farkli senaryolarla bilginizi genisletebilirsiniz.
Bunun bir parcasi olarak, asagidaki ornegi iki farkli opsiyonla paylasmak istedim.
Opsiyon 1
[crayon]
Get-ADGroup -Properties * -filter “GroupScope -eq ‘Global’ -AND description -like ‘*Turkiye*'” -SearchBase `
“OU=PSTR,DC=powershellturkiye,DC=com” | Select Name,Group*, description
[/crayon]
Opsyion 2
[crayon]
Get-ADGroup -Properties * -filter * | where{($_.GroupScope -eq ‘Global’) -AND ($_.description -like ‘*Turkiye*’)} | Select Name,Group*, description
[/crayon]
Ilk opsiyon belki syntax anlaminda biraz daha zor gelebilir ancak bu da hizli bir alternatiftir.

Continue Reading PowerShell ile Windows Server 2019 Active Directory Uzerinde Gruplari Farkli Sekilde Filtrelemek

PowerShell ile Windows Server 2019 Active Directory Uzerinde LastLogon Bilgisini Yazdirmak

Bir liste icinde verilen kullanicilarin en son logon olma zamanlarini sade bir sekilde ekrana yazdirmak isterseniz asagidaki script’I kullanabilirsiniz. Benim kullanicilar logon olmayali epey olmus anlasilan 😊
[crayon]
$kullanicilar = @(“PSTRuser1″,”PSTRuser2″,”PSTRuser3”)
$sonuc = @()
foreach($kullanici in $kullanicilar){
$kullanicidetay = Get-ADUser $kullanici -Properties lastlogon -ErrorAction Stop
$sonuc+=New-Object -TypeName PSObject -Property (@{
‘Kullanici’ = $kullanicidetay.Name
‘LastLogon Bilgisi’ = [datetime]::FromFileTime($kullanicidetay.’lastLogon’)
})
}
$sonuc
[/crayon]

Continue Reading PowerShell ile Windows Server 2019 Active Directory Uzerinde LastLogon Bilgisini Yazdirmak

PowerShell ile Windows Defender Firewall Yonetimi

PowerShell ile Windows Defender Firewall Yonetimi yapabilmek icin asagidaki cmdlet’lere ihtiyacimiz bulunuyor.

New-NetFirewallRule
Set-NetFirewallRule
Get-NetFirewallRule
Remove-NetFirewallRule
Rename-NetFirewallRule
Copy-NetFirewallRule
Enable-NetFirewallRule
Disable-NetFirewallRule
Get-NetFirewallProfile
Set-NetFirewallProfile

PowerShell 5.1 bilgisayarinizda yukluyse kaygilanmaniza zaten gerek yok.
Baslayalim.
New-NetFirewallRule

[crayon]
New-NetFirewallRule -Name TestRule01 -DisplayName TestRule01 -Enabled True -Direction Inbound -Profile Any -Action Allow -Description “Test Kurali”
[/crayon]

Set-NetFirewallRule & Get-NetFirewallRule

[crayon]
Set-NetFirewallRule -Name TestRule01 -Description “Aciklamayi degistirdim”
Get-NetFirewallRule -Name TestRule01
[/crayon]

[crayon]
Enable-NetFirewallRule -Name TestRule01
Disable-NetFirewallRule -Name TestRule01
Rename-NetFirewallRule -Name TestRule01 -NewName TestRule01
Rename-NetFirewallRule -Name TestRule01 -NewName TestRule02
Copy-NetFirewallRule -Name TestRule01 -NewName TestRule03
Get-NetFirewallRule -Name TestRule03
Remove-NetFirewallRule -Name TestRule03
[/crayon]


Continue Reading PowerShell ile Windows Defender Firewall Yonetimi

Yeni Azure Powershell Modulumuz “Az”

Azure, AzureRM darken artik sadece “Az” diyecegiz. Yeni isim gercekten cok daha kolay anlasilabilir bir isim olmus. Zira AzureRM ve Azure ASM modulleri bir cok insan tarafindan birbirine karistiriliyordu. Az ile cok daha rahat hareket edebilecegimizi dusunuyorum.

Powershell Core ile de calisabilecek olan bu yeni paketi mutlaka denemenizi oneririm.

Her zamanki gibi kolayca yukleyebilirsiniz.

Bu yeni paket ile gelen yeni moduller ise soyle

Az.Aks (>= 0.3.0)

Az.MachineLearning (>= 0.3.0)

Az.AnalysisServices (>= 0.3.0)

Az.MachineLearningCompute (>= 0.3.0)

Az.ApiManagement (>= 0.3.0)

Az.MarketplaceOrdering (>= 0.3.0)

Az.ApplicationInsights (>= 0.3.0)

Az.Media (>= 0.3.0)

Az.Automation (>= 0.3.0)

Az.Network (>= 0.3.0)

Az.Batch (>= 0.3.0)

Az.NotificationHubs (>= 0.3.0)

Az.Billing (>= 0.3.0)

Az.OperationalInsights (>= 0.3.0)

Az.Cdn (>= 0.3.0)

Az.PolicyInsights (>= 0.3.0)

Az.CognitiveServices (>= 0.3.0)

Az.PowerBIEmbedded (>= 0.3.0)

Az.Compute (>= 0.3.0)

Az.Profile (>= 0.3.0)

Az.Consumption (>= 0.3.0)

Az.RedisCache (>= 0.3.0)

Az.ContainerInstance (>= 0.3.0)

Az.Relay (>= 0.3.0)

Az.ContainerRegistry (>= 0.3.0)

Az.Resources (>= 0.3.0)

Az.DataLakeAnalytics (>= 0.3.0)

Az.ServiceBus (>= 0.3.0)

Az.DataLakeStore (>= 0.3.0)

Az.ServiceFabric (>= 0.3.0)

Az.DevTestLabs (>= 0.3.0)

Az.SignalR (>= 0.3.0)

Az.Dns (>= 0.3.0)

Az.Sql (>= 0.3.0)

Az.EventGrid (>= 0.3.0)

Az.Storage (>= 0.3.0)

Az.EventHub (>= 0.3.0)

Az.StreamAnalytics (>= 0.3.0)

Az.Insights (>= 0.3.0)

Az.Tags (>= 0.3.0)

Az.IotHub (>= 0.3.0)

Az.TrafficManager (>= 0.3.0)

Az.KeyVault (>= 0.3.0)

Az.UsageAggregates (>= 0.3.0)

Az.LogicApp (>= 0.3.0)

Az.Websites (>= 0.3.0)

 

Boylece komutlari calistirirken AzureRM gordugunuz yere Az koyarak yolunuza kesintisiz devam edebilirsiniz.

Ornek:

Get-AzureRmVm yerine Get-AzVm

Kolay gelsin.

Continue Reading Yeni Azure Powershell Modulumuz “Az”

Show-Command Komutu ile Gorsel Powershell

Powershell her ne kadar son derece Guclu bir komut satiri uygulamasi olsa da bazen onu da bir arayuz uzerinden kullanmak isteyebilirsiniz.

Bunun icin Show-Command komutunu kullanabilirsiniz. Boylece Powershell, karsimiza asagidaki gibi bir pencere cikaracak ve komut parametrelerini bu gorsel arayuz uzerinden girerek istedigimiz komutu calistirmamiza imkan verecektir.

Ben kendi ornegimde Get-WMIObjet komutunu arayuz icerisinden calistirdim. Siz farkli komutlari da deneyebilirsiniz.

Continue Reading Show-Command Komutu ile Gorsel Powershell

Powershell ile Windows Event Viewer icine kendi loglarinizi yazdirin

Windows icinde yeni bir uygulama ya da script icin log yonetiminizi kendiniz yapabilirsiniz.
Bunun icin oncelikle Windows’un yeni bir log kaynagina igtiyaci bulunuyor ki bu kaynak sizin uygulamaniza ait olacak. Bunun icin asagidaki sekilde Windows Event deposuna yeni bir log girisi yapacagiz. Bu, sanki yeni bir defter acmak gibi dusunulebilir. Once defterimizi hazir edecegiz. Daha sonra ilgili olaylar bu ilgili deftere yazilacak.
[crayon]
$parametreler = @{
LogName = ‘Yeni Uygulama’
Source = ‘Kaynak1′,’Kaynak2’
}
New-EventLog @parametreler
[/crayon]


Simdi de deneysel bir log uretelim. Bunun icin de asagidaki kod birimini kullaniyoruz.
[crayon]
$parametreler = @{
LogName = ‘Yeni Uygulama’
Source = ‘Kaynak1’
EntryType = ‘Information’
EventId = 9999
Message = ‘Test bilgi mesaji’
}
Write-EventLog @parametreler
[/crayon]

Bununla birlikte, 9999 eventID’sine sahip bir bilgi mesaji uretmis olduk.
Simdi bakalim Event Viewer’de ne olup bitmis?

Son derece basit degil mi?

Continue Reading Powershell ile Windows Event Viewer icine kendi loglarinizi yazdirin

Powershell ile Windows Defender’i Yonetin

Windows Defender’i yonetmek icin kullanacagimiz Powershell modulunun ismi “Defender”.
Defender modulunun icinde hangi komutlarin oldugunu asagidaki komutla goruntuleyebiliriz.

Ilk komut olan Get-MpComputerStatus ile bilgisayarin genel durumunu gosteren bilgileri edinebiliriz. Komut asagidaki bilgileri geri dondurecektir.

  • AMEngineVersion:
  • AMProductVersion:
  • AMServiceEnabled:
  • AMServiceVersion:
  • AntispywareEnabled:
  • AntispywareSignatureAge:
  • AntispywareSignatureLastUpdated:
  • AntispywareSignatureVersion:
  • AntivirusEnabled:
  • AntivirusSignatureAge:
  • AntivirusSignatureLastUpdated:
  • AntivirusSignatureVersion:
  • BehaviorMonitorEnabled:
  • ComputerID:
  • ComputerState:
  • FullScanAge:
  • FullScanEndTime:
  • FullScanStartTime:
  • IoavProtectionEnabled:
  • IsTamperProtected:
  • IsVirtualMachine:
  • LastFullScanSource:
  • LastQuickScanSource:
  • NISEnabled:
  • NISEngineVersion:
  • NISSignatureAge:
  • NISSignatureLastUpdated:
  • NISSignatureVersion:
  • OnAccessProtectionEnabled:
  • QuickScanAge:
  • QuickScanEndTime:
  • QuickScanStartTime:
  • RealTimeProtectionEnabled:
  • RealTimeScanDirection:
  • PSComputerName:

Set-MpPreference komutu ile ozellestirilmis secenekleri yonetebilirsiz. Ornegin “Defender, bilgisayarda tarama yaparken hangi klasorleri haric tutsun?” seklindeki ihtiyaclarimizi bu komutla gerceklestirebiliriz.

Get-MpPreference komutu ise kendi isteklerimiz dogrultusunda ozellestiredigimiz secenekleri goruntulemek icin kullanilir.

[crayon]
Get-MpThreatCatalog | select threatname
[/crayon]

komutu sayesinde tehdit katalogunu goruntuleyebiliriz. Defender’in hangi tehditler hakkinda bilgi sahibi oldugunu bu komutla kontrol edebilirsiniz.

Update-MpSignature komutu ile Defender’i guncelleyebilirsiniz. Bu sayede yeni tehditlere karsi da koruma saglamis olursunuz.

Son olarak bilgisayarda bilgisayarda tarama yapmak icin asagidaki komutlari kullanabilirsiniz.

Hizli tarama icin Start-MpScan komutu kullanilabilir.

Start-MpWDOScan ile ise offline tarama yapabilirsiniz. Bu komut size sormadan bilgisayarinizi yeniden baslatacaktir. Bu sebeple dikkatli olun lutfen

Continue Reading Powershell ile Windows Defender’i Yonetin

Powershell ile DNS Client Islemleri

Powershell ile birlikte kullanilan DNS komutlarina asagidaki DNSClient modul komut listesinden ulasabilirsiniz.

 

En cok kullanilan 3 komuta bakalim oyleyse.

Oncelikle client bilgisayar uzerindeki DNS Server konfigurasyonu icin asagidaki komutu kullaniyoruz.

Get-DnsClientServerAddress

 

 

DNS Client detaylarina ulasmak icin ise asagidaki komutu kullanabiliriz.

Get-DnsClient

 

 

DNS cache tablosunu asagidaki komutla goruntuleyebiliriz.

Get-DnsClientCache

 

 

Clear-DnsClientCache komutuyla da yukaridaki listeyi temizlemeniz mumkun.

Continue Reading Powershell ile DNS Client Islemleri