# Bu script ile Özel kanallar ve WEF Abonelikleri import etmiş olacaksınız.
# NOT : Bu script sadece WEF SERVER üzerinde çalıştırınız.

Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) WEF Abonelikler kuruluyor..."

Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Ozel kanallar olusturuluyor..."
if (-not (Test-Path "$env:windir\system32\LogsignCustomEventChannels.dll"))
{
    Copy-Item ${PSScriptRoot}\Wef-Abonelikler\windows-event-channels\LogsignCustomEventChannels.dll "$env:windir\system32"
    Copy-Item ${PSScriptRoot}\Wef-Abonelikler\windows-event-channels\LogsignCustomEventChannels.man "$env:windir\system32"

    Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Ozel kanallar uygulaniyor..."
    wevtutil im "c:\windows\system32\LogsignCustomEventChannels.man"
    Write-Host "Kanallarin boyutu 4GB olarak ayarlaniyor..."
    $xml = wevtutil el | select-string -pattern "WEC"
    foreach ($subscription in $xml) { wevtutil sl $subscription /ms:4294967296 }
    $xml2 = wevtutil el | select-string -pattern "Logsign"
    foreach ($subscription in $xml2) { wevtutil sl $subscription /ms:4294967296 }
    Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Windows Event Collector Servisi baslatiliyor..."
    net start wecsvc

    Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Abonelikler Olusturuluyor..."
    cd ${PSScriptRoot}\WEF-Abonelikler\wef-subscriptions
    cmd /c "for /r %i in (*.xml) do wecutil cs %i"

    Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) Abonelikler aktif ediliyor..."
    cmd /c "for /r %i in (*.xml) do wecutil ss %~ni /e:true"

    Write-Host "$('[{0:HH:mm}]' -f (Get-Date)) WEF icin izinler tanimlaniyor ..."
    wecutil qc /q:true
}
else
{
  Write-Host "WEF abonelikler zaten olusturuldu, bir sorun var ve sorun giderilmisse IF_GET_ERROR scriptini deneyin ! ..."
  if ((Get-Service -Name wecsvc).Status -ne "Running")
  {
    net start wecsvc
  }
}
Start-Sleep -Seconds 60
if ((Get-Service -Name wecsvc).Status -ne "Running")
{
    throw "Windows Event Collector failed to start"
}
