Ücretsiz Araç

M365 PowerShell Komut Üretici

Microsoft 365 admin için 19 hazır PowerShell senaryosu — formu doldurun, kopyalanabilir komut oluşsun. Microsoft Graph + Exchange Online + Security & Compliance + SharePoint Online + Microsoft Teams + Power Platform Admin modülleri uyumlu. Kullanıcı yönetiminden risk-based Conditional Access, SharePoint site, Teams policy, Defender Anti-Phishing ve Power Platform DLP'ye kadar.

Kullanıcı Mailbox Audit Migration Identity Compliance SharePoint Teams Defender Power Platform
Yeni Kullanıcı Oluştur Microsoft.Graph
Form alanlarını doldurun...
Ön koşul: Install-Module Microsoft.Graph -Scope CurrentUser -Force ve Connect-MgGraph -Scopes 'User.ReadWrite.All','Directory.ReadWrite.All'

M365 Yöneticileri İçin PowerShell — Hızlı Başlangıç

Microsoft 365 admin merkezi (admin.microsoft.com) günlük işlerin %90'ını çözer; ancak toplu işlemler, raporlama, audit, migration, compliance, SharePoint provisioning, Teams policy, Defender ve Power Platform governance için PowerShell vazgeçilmezdir. Bu sihirbaz, bizim 5+ yıllık M365 yöneticiliği deneyimimizden damıttığımız 19 sık kullanılan senaryoyu form-tabanlı şekilde sunar — kullanıcı yönetiminden risk-based Conditional Access, SharePoint site, Teams policy, Defender Anti-Phishing ve Power Platform DLP'ye kadar.

Tüm üretilen komutlar Microsoft Graph (Microsoft.Graph), Exchange Online Management (ExchangeOnlineManagement), Security & Compliance (Connect-IPPSSession), SharePoint Online (Microsoft.Online.SharePoint.PowerShell), Microsoft Teams (MicrosoftTeams) ve Power Platform Admin (Microsoft.PowerApps.Administration.PowerShell) modülleriyle uyumludur. Eski MSOnline ve AzureAD modülleri Mart 2024 sonrası deprecated; yeni script'lerinizde Microsoft.Graph kullanın. DLP/Anti-Phishing komutları Compliance Center'a ayrı bağlantı (Connect-IPPSSession), SharePoint Connect-SPOService -Url https://<tenant>-admin.sharepoint.com, Teams Connect-MicrosoftTeams ve Power Platform Add-PowerAppsAccount bağlantısı gerektirir.

Modülleri Kurma

İlk kullanımdan önce iki modülü yükleyin:

# PowerShell'i yönetici olarak başlatın
Install-Module Microsoft.Graph -Scope CurrentUser -Force
Install-Module ExchangeOnlineManagement -Scope CurrentUser -Force
Install-Module Microsoft.Online.SharePoint.PowerShell -Scope CurrentUser -Force
Install-Module MicrosoftTeams -Scope CurrentUser -Force
Install-Module Microsoft.PowerApps.Administration.PowerShell -Scope CurrentUser -Force

# Bağlanın (modern auth, MFA dahil çalışır)
Connect-MgGraph -Scopes "User.ReadWrite.All","Group.ReadWrite.All","Directory.ReadWrite.All","AuditLog.Read.All","Policy.ReadWrite.ConditionalAccess"
Connect-ExchangeOnline -UserPrincipalName admin@sirketim.com

# DLP, Anti-Phishing (Microsoft Purview / Defender) komutları için ayrı bağlantı:
Connect-IPPSSession -UserPrincipalName admin@sirketim.com

# SharePoint Online — admin URL formatı: https://<tenant>-admin.sharepoint.com
Connect-SPOService -Url https://sirketim-admin.sharepoint.com

# Microsoft Teams
Connect-MicrosoftTeams

# Power Platform Admin (DLP, environment yönetimi)
Add-PowerAppsAccount

19 Sık Kullanılan Senaryo

1. Yeni Kullanıcı Oluştur (New-MgUser)

Tek bir kullanıcı eklemek için en hızlı yöntem. UPN (User Principal Name) e-posta adresi formatında olmalı.

2. Lisans Ata (Set-MgUserLicense)

Önce Get-MgSubscribedSku ile organizasyonunuzdaki mevcut SKU'ları listeleyin (örn: ENTERPRISEPACK = E3, SPB = Business Premium). Ardından kullanıcıya atayın.

3. Parola Sıfırlama

ForceChangePasswordNextSignIn=$true ile kullanıcı bir sonraki girişte yeni parolayı zorunlu olarak değiştirir. Production'da geçici parolayı güvenli kanaldan paylaşın.

4. CSV'den Toplu Kullanıcı Oluşturma

İK'dan gelen 50-500 kişilik onboarding listelerini tek seferde işleyin. CSV sütunları: DisplayName, UserPrincipalName, Password, MailNickname. UTF-8 BOM ile kaydedin.

5. MailboxStatistics ve Mailbox Boyut Raporu

Tek kullanıcı için kullanım: Get-MailboxStatistics -Identity user@sirket.com. Bu, kotaya yaklaşan kullanıcıları tespit etmek için kritik.

6. Tüm Mailbox'ların Boyutu (CSV)

Lisans azaltma veya archive politikası kararı için tüm organizasyonun mailbox boyutu raporu. 1000+ kullanıcılı organizasyonlarda -ResultSize Unlimited önemli.

7. Distribution Group Oluşturma + Üye Ekleme

Klasik dağıtım listesi (örn: pazarlama@sirket.com). Microsoft 365 Group olarak da oluşturabilirsiniz; Distribution Group eski mail listesi mantığında çalışır.

8. MFA Durum Raporu

Hangi kullanıcıların MFA aktive ettiğini, hangilerinin sadece SMS kullandığını gösterir. Conditional Access politikalarınızın gerçekten çalıştığını doğrulamak için kritik.

9. Sign-In / Login Geçmişi

Şüpheli login (yurt dışı IP, anormal saat) tespiti veya bir kullanıcının "ne zaman son giriş yaptı?" sorusu için. Audit Log Read scope gerekli.

10. Auto-Forward Audit (Güvenlik Kontrolü)

En kritik audit komutu. BEC (Business Email Compromise) saldırılarında saldırgan, ele geçirdiği hesaplara gizli auto-forward kuralı kurar. Tüm mailbox'larda forward kontrolü her ay çalıştırılmalı.

11. Hybrid Mailbox Migration Batch (New-MigrationBatch)

On-premises Exchange ortamından Microsoft 365'e mailbox dalgası (wave) taşımanın resmi yöntemi. CSV dosyasına UPN listesi (tek sütun: EmailAddress) verirsiniz, batch otomatik başlar. Pilot batch ile 1-2 mailbox test edin, sonra dalga bazında ilerleyin (Wave-1: 50 mailbox, Wave-2: 100, vs.). Get-MigrationUser -BatchId ile her kullanıcının senkron yüzdesini izleyebilirsiniz. Ön koşul: Exchange Hybrid Configuration Wizard tamamlanmış + AAD Connect senkron + public Exchange endpoint.

12. Conditional Access Politikası (MFA Zorunluluğu)

Microsoft Entra ID'nin en güçlü güvenlik silahı: belirli koşullarda (kullanıcı, uygulama, lokasyon, cihaz) ek doğrulama (MFA) veya erişim engelleme. Bu sihirbaz "tüm kullanıcılara MFA zorunlu, break-glass hesabı hariç" template'i üretir. Her zaman önce enabledForReportingButNotEnforced (report-only) modunda devreye alın — 1-2 hafta Sign-in logs > Conditional Access tab altında etkilenecek girişleri izleyin, sonra enabled'a çevirin. Break-glass hesabı (acil durum admin) mutlaka hariç tutulmalı, yoksa politikanın kendisi tüm yöneticileri kilitleyebilir.

13. Litigation Hold (Hukuki Saklama)

Mahkeme kararı, KVKK denetimi veya iç soruşturma sürecinde mailbox içeriğinin (silinmiş öğeler dahil) belirli süre sabitlenmesi. Set-Mailbox -LitigationHoldEnabled $true -LitigationHoldDuration 2555 komutu ~7 yıllık hold uygular. Kullanıcı silse, mailbox'tan çıkarsa bile içerik korunur ve eDiscovery aramalarında bulunur. Litigation Hold ≠ Retention Policy: Hold hukuki amaçlı sabitleme, Retention regulasyon gereği saklama+silme. RetentionComment alanına vaka numarası yazın (örn: "2026-LIT-001 — XYZ davası"). Lisans: Exchange Online Plan 2 veya Microsoft 365 E3+.

14. DLP Politikası (TC Kimlik / Kart No Sızıntı Engelleme)

Microsoft Purview DLP, e-posta/OneDrive/SharePoint/Teams üzerinden TC Kimlik No, kredi kartı, IBAN gibi hassas verilerin dışarı sızmasını algılar ve isteğe göre engeller. Bu sihirbaz Türkiye'ye özel TC Kimlik (Turkey National Identification Number) built-in classifier'ını kullanan politika üretir — Microsoft'un dahili regex+kontrol algoritması TC algoritmasıyla uyumlu (Mod 10/11 doğrulama). KVKK Madde 12 (veri güvenliği) yükümlülüğünü teknik tedbir olarak destekler. Her zaman önce TestWithNotifications modunda 2-4 hafta çalıştırın, false-positive'leri ayıkladıktan sonra Enable'a alın. Aksi takdirde meşru iş süreçleri (örn: İK personel dosyası gönderimi) kesintiye uğrar.

15. Conditional Access — Risk-Based + Location-Based

Microsoft Entra Identity Protection, milyarlarca sign-in sinyaliyle (sızdırılmış parola, anormal sign-in, atypical travel, malware infected device, anonymous IP) kullanıcı/sign-in risk skoru üretir. Bu skoru CA politikasında kullanmak statik kuralları adaptif kararlara dönüştürür: "her sign-in'e MFA" yerine "sadece riskli sign-in'lere MFA". Recommended template: signInRisk medium → MFA + signInRisk high → BLOK (iki ayrı politika, çünkü tek politikada hem MFA hem BLOK olmaz). Microsoft Entra ID P2 (Microsoft 365 E5 veya P2 add-on $9/kullanıcı) zorunlu. Production'a almadan önce 2-3 hafta report-only modda izleyin, false-positive (ör: VPN kullanıcısı sürekli "atypical travel" tetikliyor) ayıklanmadan enforce ederseniz operasyon kesintisi yaşarsınız.

16. SharePoint Online Site Oluşturma (New-SPOSite)

Yeni proje veya departman için modern SharePoint sitesi oluşturmak — admin merkez UI yerine PowerShell ile saniyeler sürer. İki ana yaklaşım vardır: (1) Microsoft 365 Group bağlı site — önerilen modern yöntem, otomatik Teams/Planner/OneNote entegrasyonu, M365 Group permissions (üyelikten Teams'e otomatik yansır), Microsoft Graph üzerinden New-MgGroup ile oluşturulur (SharePoint sitesi otomatik provision olur 1-3 dakika); (2) Klasik Team Site (STS#3) — sadece SharePoint izinleriyle, M365 Group YOK, tipik intranet veya departman içi belge merkezi için. Connect-SPOService -Url https://<tenant>-admin.sharepoint.com bağlantısı gerekir. Bölge için Türkçe LCID 1055, Istanbul timezone ID 13.

17. Microsoft Teams Policy (Messaging / Meeting / Calling)

Teams policy'ler, çalışan sohbet/toplantı/arama davranışını compliance gereksinimlerinize göre kısıtlar. Strict template (compliance, finans, hukuk için): mesaj silme/düzenleme yok, GIF/sticker yok, anonymous toplantı katılımı yok, lobby zorunlu. Standard template: ortalama kurumsal — temel kontrol + bireysel rahatlık. Open template: rahat ofis ortamı, max kullanıcı özgürlüğü. Connect-MicrosoftTeams sonrası New-CsTeamsTipPolicy + Grant-CsTeamsTipPolicy -Identity user@sirket.com -PolicyName .... Toplu atama için Get-CsOnlineUser -Filter ile filtre + ForEach-Object. Calling Policy'de PreventTollBypass mutlaka $true (uluslararası toll fraud koruması).

18. Defender for Office 365 — Anti-Phishing (C-Level Impersonation Koruma)

BEC (Business Email Compromise) saldırılarının %70'i CEO/CFO impersonation ile gerçekleşir — saldırgan görünüm adını "Ahmet Yılmaz" yapıp gönderim adresini "ahmet.yilmaz@sirket-tr.com" gibi benzer domain'e koyar. Defender Anti-Phishing politikası bu saldırıları üç katmanda algılar: (1) Targeted User Protection — korunan kişiler listesi (UPN:DisplayName), (2) Targeted Domain Protection — korunan domain (sirket.com), (3) Mailbox Intelligence — gönderici-alıcı arasındaki normal iletişim profili (ML), anormal davranış quarantine'e gider. PhishThresholdLevel 2 önerilir (1 az algılar, 4 çok false-positive). Connect-IPPSSession bağlantısı + Microsoft Defender for Office 365 P1 (E3 dahil değil) gerek.

19. Power Platform DLP (Connector Classification)

Power Apps ve Power Automate ile çalışanlar 1000+ connector'ı (Office 365, SharePoint, Twitter, Dropbox, kişisel Gmail vb.) flow/uygulama içinde birleştirebilir. DLP politikası olmadan, bir kullanıcı SharePoint'ten müşteri verisini Twitter'a tweet'leyen bir flow yazabilir — KVKK Madde 12 (veri güvenliği) + Madde 9 (yurtdışı aktarım) ihlali. DLP çözümü: connector'ları üç gruba ayırır — Business (iş verisi erişimi var), Non-Business (kişisel/sosyal), Blocked (tamamen yasak). Aynı flow/uygulama içinde Business + Non-Business KARIŞAMAZ. Default ortamla başlayın, Microsoft connector'ları (Office 365, SharePoint, OneDrive, Teams, Dynamics) Business'a ekleyin; sosyal/blog connector'ları (Twitter, Facebook, Telegram, Pinterest) Blocked'a ekleyin. Mevcut flow'lar kırılabilir — admin merkez "Suspended" işaretleyip makers'a 30 gün düzeltme süresi tanıyın.

Production'da Güvenli Çalıştırma — Kontrol Listesi

  1. Test ortamında deneyin. Yeni script'leri ilk önce test tenant'ında çalıştırın.
  2. -WhatIf parametresi ile dry-run. Komutun gerçek etkisini uygulamadan ne yapacağını gösterir. Geri dönülmez işlemlerde mutlaka.
  3. Toplu işlemleri batch'leyin. 1000 kullanıcılı toplu lisans atamasını 10 batch × 100 olarak çalıştırın; tek seferde olası throttling riski azalır.
  4. Logging ekleyin. Start-Transcript -Path "C:\Logs\m365-$(Get-Date -Format 'yyyy-MM-dd-HHmm').log" ile tüm output'u dosyaya kaydedin.
  5. Hatalarda durdurun. $ErrorActionPreference = 'Stop' veya komutlara -ErrorAction Stop ekleyin.
  6. Just-in-Time admin (PIM). Sürekli Global Admin yerine PIM ile geçici (saatlik) yetki alın. Microsoft 365 E5 / Microsoft Entra ID P2 ile gelir.
  7. Service Principal (App Registration) kullanın. İnsan hesabı yerine, sınırlı izinlere sahip uygulama hesabı ile otomatize edin.

Yaygın Hata Mesajları ve Çözümleri

Kurumsal PowerShell Otomasyonu Danışmanlığı

Microsoft Kurumsal (Micro Bilgi Teknolojileri), Microsoft Yetkili Çözüm Ortağı (CSP) olarak müşterilerimize:

Ücretsiz keşif görüşmesi planlayın →

PDF Teklif Oluştur

Plan:-
Kullanıcı:-
Süre:-
Toplam:-

Gitmeden önce fiyat hesaplayın!

Microsoft 365 planlarınızı saniyeler içinde hesaplayın. Ücretsiz, kayıt gerektirmez.

Ücretsiz Fiyat Hesapla