Blog Arksoft
  • Arksoft Bilisim
  • Scripts
    • SCCM (ConfigMgr)
    • Hyper-V
    • WSUS
    • Exchange Scripts
      • Exchange Virtual Directory Config
      • Virtual Directory Script
      • LogPath Config
  • NİSAN 2025
    • Microsoft’un Mayıs 2025 Güncellemeleri: Sistem Yöneticileri İçin Kapsamlı Özet
    • Exchange Server 2019 CU15 Apr25HU
    • Nisan 2025:Microsoft Güvenlik Güncellemeleri
    • Power BI Gateway ile On-Prem Verilerin Gücünü Keşfedin!
    • IT Personelleri Neden Adli Bilişim Farkındalık Eğitimi Almalıdır?
    • ''SCCM 2503'' Sürüm Yükseltme Rehberi
  • Mart 2025
    • SCCM Üzerinden Kritere Göre Uygulama ve Deployment’ları Otomatik Silmek
    • Mart 2025: Microsoft Güvenlik Güncellemeleri
  • ŞUBAT 2025
    • SPN Nedir, Kerberos Nasıl Çalışır ve Duplicate SPN Neden Sorun Yaratır?
    • Şubat 2025: Microsoft'un Güvenlik Güncellemeleriyle Sistemlerinizi Güçlendirin!
    • Exchange Server CU15 Güncellemesi
    • log_reuse_wait_desc Nedir ve Ne Anlatır?
  • OCAK 2025
    • Azure SQL Nedir? Temel Bilgiler ve Avantajlar
    • Live Migration için Ağ Kartı Seçerken Dikkat Edilmesi Gerekenler
    • Protected Attribute Nedir? Nasıl Oluşturulur?
    • Ocak 2025 Microsoft Güvenlik Güncellemeleri: Sistemlerinizi Güvende Tutun!
    • CLIUSR Hesabı Neden Önemlidir? CLIUSR sertifikası nedir, neden süresi doldu uyarısı alıyorum?
  • ARALIK 2024
    • TLS 1.2 Öncesi Protokollerin Güvenlik Açıkları ve TLS 1.2/1.3 Önemi
  • Kasım 2023
    • Microsoft Exchange Server Kasım Ayı Güvenlik Güncellemesi
  • Temmuz 2023
    • Microsoft Office Zero-Day Zafiyeti CVE-2023-36884
  • Mayis 2023
    • Hashing ve Salting Kavramları Nedir? Azure AD Parola Güvenliği Nasıl Sağlanır?
  • Nisan 2023
    • DDOS Saldırıları Nedir ve Korunma Yolları Nelerdir?
    • Fidye Yazılımları Nedir ve Korunma Yöntemleri Nelerdir?
    • Ransomwares And Defence Strategies
    • PowerShell Modülleri: Temel Kavramlar ve Kullanım Örnekleri
    • PowerShell Fonksiyonları: Temel Kavramlar ve Kullanım Örnekleri
    • PowerShell Cmdlet'ler: Temel Kavramlar ve Kullanım Örnekleri
    • PowerShell Değişkenleri: Temel Kavramlar ve Kullanım Örnekleri
    • PowerShell Nedir?
    • Oltalama E-Postalarından Korunma
    • CVE-2023-2033
    • Cloud Computing and Its Advantages
    • Bulut Bilişim Nedir ve Bulut Bilişimin Avantajları Nelerdir?
    • Bilgi ve İletişim Güvenliği Rehberi Nedir ve Rehbere Uyumlu Olmak Neden Önemlidir?
  • Mart 2023
    • Sık Kullanılan Portlar ve Üzerinde Çalışan Protokoller
    • Siber Güvenlik ve İnternet Dünyasında Güvende Kalmanın Yolları
    • Outlook Kullanıcılarına Uyarı: CVE-2023-23397 Güvenlik Açığına Karşı Önlem Alın
  • Şubat 2023
    • Üçüncü Parti Uygulamaların Güncellenmesinin Önemi
  • Aralık 2022
    • Siber Tehdit
    • FRS to DFSR Migration
  • Kasım 2022
    • Domain Controller 2022 Kasım Ayı Bug'ı
  • Mart 2022
    • OWA ve ECP erişim sorunu: Microsoft Exchange Server Auth Certificate is expired
    • MIM 2016 SSPR Türkçe Karakter Problemi
  • Haziran 2021
    • KMS (Key Management Service)
  • Ağustos 2020
    • Microsoft Teams Konuk (Guest) Erişimi ve Dış (External) Erişim- Sizin için hangisi uygun?1
    • SCCM 2006 Güncellemesi
    • Skype For Business 2019 Kurulumu- Hata Kodu 1603 (Server.msi(Feature_Server, Feature_HealthyAgent))
    • Skype for Business 2019 “Centralized Logging” Servisinin Başlatılamaması Problemi ve Çözümü
  • Temmuz 2020
    • Clean Inactive Agents from Operations Manager
  • Haziran 2020
    • Microsoft Teams Katılımcı Raporu İndirme
    • Microsoft Teams Toplantı ve Grup Sohbet Sınırı 300'e çıkarıldı
  • Mayıs 2020
    • MIM 2016 Service and Portal Kurulumundaki Bug
    • Telegram ve Powershell ile Sistem İzleme-Part 1
  • Ekim 2019
    • Windows Server 2019 Active Directory Domain Services Kurulumu
  • Nisan 2019
    • Huawei FusionCompute Kurulumu
  • Mart 2019
    • Password Reveal Düğmesi
  • Ocak 2019
    • ReportServer Veri Tabanı içerisinden RDL Dosyalarının Çıkartılması
  • Temmuz 2018
    • Active Directory Certificate Services - SHA1’ den SHA2’ ye Yükseltme
    • Local Administrator Password Solution
Powered by GitBook
On this page
  • Telegram Botu Nasıl Oluşturulur?
  • Botu Kullanarak İlk Mesajın Gönderilmesi
  • Event Logları Telegrama Göndermek
  1. Mayıs 2020

Telegram ve Powershell ile Sistem İzleme-Part 1

Ozge Kara

Bu makalede, Telegram Bot API kullanarak telegram mesajlarını Powershell ile otomatikleştirme ve bir mesajlaşma platformunu nasıl bir izleme ve yönetim aracına dönüştürebileceğimizden bahsedeceğim.

Aslına bakarsanız telegram botları mesaj göndermekten daha fazlası için kullanılabilecek büyük bir potansiyel gösteren araçlardır. Örnek vermek gerekirse kişi sistemde gerçekleştirilmesini istediği eylemi telegram botuna göndereceği bir mesajla kolaylıkla gerçekleştirebilir. Bu durumda da yalnızca system izlemek için değil aynı zamanda system yönetimi için de basit ve hızlı bir platform sağlamaktadır.

Aslında bir çoğumuz halihazırda Powershell scriptlerini, zamanlanmış görevler tanımlayarak rapor oluşturması ve bu raporları e-posta yoluyla iletmesi için kullanmaktayız. Exchange sunucular için kullandığımız sağlık kontrollerini yapan scriptlerin çıktılarını mail yerine telegram üzerinden gönderilmesini sağlayabiliriz.

Bu makaleyi bir yazı dizisi şeklinde yayınlamayı tercih ettim, elimden geldiğince küçük parçalara bölüp sizlerle telegramın bot apisini bu işler için nasıl kullanılabileceğimizi aktarmak istiyorum.

Öncelikle telegramda nasıl bot oluşturalacağından bahsedip,powershell ile nasıl bağlantı kurulacağını göstereceğim. Sizlere de fikir vermesi açısından basit bir script ile örnek bir çalışma yapacağım.

Telegram Botu Nasıl Oluşturulur?

Yapmanız gereken ilk şey hesabınız yoksa bir telegram hesabına sahip olmaktır.

  1. Telegramda bot oluşturmak için BotFather adı verilen başka bir bot ile mesajlaşma ekranını açmanız gerekmektedir. Bunun için arama çubuğuna BotFather yazın.

Şekil 1 - Arama çubuğu

  1. Botfather ile bir mesajlaşma ekranı açtıktan sonra Start diyerek konuşmayı başlatın.

Şekil 2

  1. Yeni konuşma başladığında BotFather size yapabileceğiniz işlemlerle ilgili bir liste gösterecektir. Burada "/newbot" linkine tıklayarak ya da mesaj yazma kısmına "/newbot" komutunu yazarak yeni bir bot oluşturma işlemini başlatın.

Şekil 3

  1. Bu noktada, BotFather size botunuz için bir görünen ad tanımlamanızı isteyecektir. Görünen ad olarak istediğiniz şeyi yazmakta özgürsünüz. Bu değerin özgün olması gerekmemektedir. Örneğin ben oluşturduğum bot için "Powershell" ifadesini görünen ad olarak seçtim. Daha sonra BotFather size botunuz için bir kimlik adı seçmeniz gerektiğini söyleyecek. Bu adın özgün olması ve "_bot" ifadesi ile bitmesi gerekmektedir. Ayrıca daha sonra bu adı kullanarak botunuzu aratıp iletişimi başlatabileceksiniz.

  2. Bu işlemlerden sonra BotFather size işlemin bittiğini bildirecektir kısa bir açıklama ardından http API'yi kullanarak botunuza erişebilmeniz için gerekli token bilgisini gösterecektir. Token bilgisini powershell kodlarımızda kullanmamız gerekiyor bu nedenle kaydetmenizi tavsiye ederim.

Şekil 4

Botu Kullanarak İlk Mesajın Gönderilmesi

Telegram botu kullanarak bir kişiye mesaj gönderebilmeniz için öncelikle o kişinin bu bot ile bir konuşma başlatmış olması gerekmektedir. Aksi takdirde mesaj gönderilemez.

Botunuzun durumu ile ilgili bilgileri, başlatılmış olan konuşmaları görebilem için, aşağıdaki linkten <HTTP_API_TOKEN> yazan yere kendi token bilginizi yazarak herhangi bir tarayıcı yardımıyla erişebilirsiniz.

Yeni oluşturulmuş bir bot için bu sayfa aşağıdaki gibi görünecektir.

Şekil 5

Botunuz ile mesajlaşma sayfasını açtın, bunun için botunuzun kimlik adını arama çubuğuna yazabilirsiniz. Daha sonra /start komutu ile konuşmayı başlatın.

Şekil 6

Bu işlemin ardından tekrar aynı sayfayı ziyaret ettiğinizde başlatılan konuşma ile ilgili bilgileri de göreceksiniz. Burada bizim için önemli olan diğer bir bilgiyi bulabilirsiniz. Bu da Chat ID bilgisidir. Bu chat idyi kullanarak ilgili kişiye mesaj göndermeyi deneyeceğiz.

Şekil 7

Aşağıda yer alan Powershell komutlarını kullanarak "Merhaba Dünya" mesajı göndermeyi deneyelim. <HTTP_API_TOKEN> yazan alana BotFather'ın yeni bot oluşturduktan sonra size verdiği token değerini yazmanız ve <CHAT_ID> yazan alana da bot ile başlatmış olduğunuz konuşmanın chatId değerini yazmanız gerekmektedir.

$BotToken = "<HTTP_API_TOKEN>"
$chatID = <CHAT_ID>
$Message = "Merhaba Dünya"
Invoke-RestMethod -Uri "https://api.telegram.org/bot$($BotToken)/sendMessage?chat_id=$($chatID)&text=$($Message)" 

Komutlarımızı çalıştırdığımızda aşağıdaki gibi bir çıktı almayı bekliyoruz.

Şekil 8

Telegram hesabınızda da Botunuzdan gelen şu şekilde bir mesaj görmelisiniz.

Şekil 9

Event Logları Telegrama Göndermek

Botumuzu oluşturup, başarılı bir şekilde çalıştığını test ettikten sonra örnek powershell scriptimizi çalıştırabiliriz.

Bu script ile Telegram, sistem loglarında son 1 saat içinde oluşmuş hata mesajlarını bize iletecektir.

$BotToken = "<HTTP_API_TOKEN>"
$chatID = <CHAT_ID>
$EventLogs = Get-EventLog -List
foreach ($Eventlog in $EventLogs) {
    $Errors = Get-EventLog -LogName $Eventlog.log -EntryType Error -After (Get-Date).AddHours(-1) 
    foreach ($ErrorMsg in $Errors) {
        $Message = $ErrorMsg | Format-List * | Out-String
        $Response = Invoke-RestMethod -Uri "https://api.telegram.org/bot$($MyToken)/sendMessage?chat_id=$($chatID)&text=$($Message)"    
    }
} 

Powershell scriptini çalıştırdıktan sonra aşağıdaki gibi hata mesajları mesaj olarak gelmeye başlayacaktır. Bu scripti görev zamanlayıcı ile otomatikleştirebilir, kritik durumlardan anında haberdar olabilirsiniz.Makalemin başında da belirttiğim gibi bunu bir makale dizisi şeklinde devam ettirmeyi planlıyorum. Bir sonraki makalemde Chat Id değerini otomatik olarak alma üzerinde durmaya çalışacağım. Basit bir tablo oluşturarak farklı Telegram kullanıcılarına farklı mesajlar göndermeyi deneyeceğim.

PreviousMIM 2016 Service and Portal Kurulumundaki BugNextWindows Server 2019 Active Directory Domain Services Kurulumu

Last updated 2 years ago

https://api.telegram.org/bot<HTTP_API_TOKEN>/getUpdates