Windows Server Yönetimi ve Active Directory
Windows Server ortamlarının kurulumu, Active Directory yapılandırması ve sistem yönetimi. Enterprise Windows altyapısı için kapsamlı rehber.
Windows Server Yönetimi ve Active Directory#
Windows Server, enterprise ortamlarında yaygın olarak kullanılan bir sunucu işletim sistemidir. Bu rehberde Windows Server kurulumu, Active Directory yapılandırması ve sistem yönetimi konularını ele alacağız.
Windows Server Nedir?#
Windows Server, Microsoft tarafından geliştirilen enterprise düzeyinde sunucu işletim sistemidir. Ağ hizmetleri, dosya paylaşımı, web servisleri ve veritabanı yönetimi gibi birçok sunucu rolünü destekler.
Windows Server Sürümleri#
- Standard Edition: Küçük ve orta ölçekli işletmeler için
- Datacenter Edition: Büyük veri merkezleri ve cloud ortamları için
- Essentials Edition: 25 kullanıcıya kadar küçük işletmeler için
- Server Core: GUI olmadan minimal kurulum
Windows Server Kurulumu#
Sistem Gereksinimleri#
Minimum Gereksinimler:
- 1.4 GHz 64-bit işlemci
- 512 MB RAM (2 GB Desktop Experience için)
- 32 GB disk alanı
- Gigabit Ethernet adaptörü
Önerilen Gereksinimler:
- Çok çekirdekli işlemci
- 4 GB+ RAM
- SSD depolama
- Redundant ağ adaptörleri
Kurulum Türleri#
1. Desktop Experience (GUI)#
# Kurulum sonrası GUI ekleme Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell -Restart
2. Server Core#
# Server Core'dan GUI kaldırma Uninstall-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell -Restart
İlk Yapılandırma#
# Bilgisayar adını değiştir Rename-Computer -NewName "DC01" -Restart # IP adresi yapılandırması New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.10 -PrefixLength 24 -DefaultGateway 192.168.1.1 Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 192.168.1.10,8.8.8.8 # Windows Update yapılandırması Install-Module PSWindowsUpdate Get-WUInstall -AcceptAll -AutoReboot
Active Directory Domain Services (AD DS)#
AD DS Kurulumu#
# AD DS rolünü yükle Install-WindowsFeature AD-Domain-Services -IncludeManagementTools # Domain controller'ı yapılandır Install-ADDSForest ` -DomainName "company.local" ` -DomainNetbiosName "COMPANY" ` -SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) ` -InstallDns ` -Force
Domain Controller Ekleme#
# Mevcut domain'e DC ekleme Install-ADDSDomainController ` -DomainName "company.local" ` -Credential (Get-Credential) ` -SafeModeAdministratorPassword (ConvertTo-SecureString "P@ssw0rd123!" -AsPlainText -Force) ` -InstallDns ` -Force
Active Directory Yönetimi#
Organizational Unit (OU) Yönetimi#
# OU oluşturma New-ADOrganizationalUnit -Name "Departments" -Path "DC=company,DC=local" New-ADOrganizationalUnit -Name "IT" -Path "OU=Departments,DC=company,DC=local" New-ADOrganizationalUnit -Name "HR" -Path "OU=Departments,DC=company,DC=local" New-ADOrganizationalUnit -Name "Finance" -Path "OU=Departments,DC=company,DC=local" # OU listeleme Get-ADOrganizationalUnit -Filter * | Select-Object Name,DistinguishedName # OU silme Remove-ADOrganizationalUnit -Identity "OU=OldDept,DC=company,DC=local" -Confirm:$false
Kullanıcı Yönetimi#
# Kullanıcı oluşturma New-ADUser ` -Name "John Doe" ` -GivenName "John" ` -Surname "Doe" ` -SamAccountName "jdoe" ` -UserPrincipalName "[email protected]" ` -Path "OU=IT,OU=Departments,DC=company,DC=local" ` -AccountPassword (ConvertTo-SecureString "TempPass123!" -AsPlainText -Force) ` -Enabled $true ` -ChangePasswordAtLogon $true # Toplu kullanıcı oluşturma $Users = Import-Csv "C:\Users.csv" foreach ($User in $Users) { New-ADUser ` -Name "$($User.FirstName) $($User.LastName)" ` -GivenName $User.FirstName ` -Surname $User.LastName ` -SamAccountName $User.Username ` -UserPrincipalName "$($User.Username)@company.local" ` -Path $User.OU ` -Department $User.Department ` -Title $User.JobTitle ` -AccountPassword (ConvertTo-SecureString $User.Password -AsPlainText -Force) ` -Enabled $true } # Kullanıcı bilgilerini güncelleme Set-ADUser -Identity "jdoe" -Department "IT" -Title "System Administrator" # Kullanıcı şifresini sıfırlama Set-ADAccountPassword -Identity "jdoe" -NewPassword (ConvertTo-SecureString "NewPass123!" -AsPlainText -Force) -Reset Set-ADUser -Identity "jdoe" -ChangePasswordAtLogon $true
Grup Yönetimi#
# Güvenlik grubu oluşturma New-ADGroup -Name "IT Admins" -GroupScope Global -GroupCategory Security -Path "OU=IT,OU=Departments,DC=company,DC=local" # Dağıtım grubu oluşturma New-ADGroup -Name "All Employees" -GroupScope Universal -GroupCategory Distribution -Path "OU=Departments,DC=company,DC=local" # Kullanıcıyı gruba ekleme Add-ADGroupMember -Identity "IT Admins" -Members "jdoe" # Grup üyeliklerini listeleme Get-ADGroupMember -Identity "IT Admins" | Select-Object Name,SamAccountName # Kullanıcının grup üyeliklerini görme Get-ADPrincipalGroupMembership -Identity "jdoe" | Select-Object Name
Group Policy Yönetimi#
Group Policy Object (GPO) Oluşturma#
# GPO oluşturma New-GPO -Name "IT Security Policy" -Comment "Security settings for IT department" # GPO'yu OU'ya bağlama New-GPLink -Name "IT Security Policy" -Target "OU=IT,OU=Departments,DC=company,DC=local" # GPO ayarlarını yapılandırma Set-GPRegistryValue -Name "IT Security Policy" -Key "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -ValueName "NoAutoUpdate" -Type DWord -Value 0
Yaygın GPO Ayarları#
# Şifre politikası Set-GPRegistryValue -Name "Default Domain Policy" -Key "HKLM\System\CurrentControlSet\Services\Netlogon\Parameters" -ValueName "MaximumPasswordAge" -Type DWord -Value 90 # Ekran koruyucu politikası Set-GPRegistryValue -Name "Desktop Policy" -Key "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" -ValueName "ScreenSaveActive" -Type String -Value "1" Set-GPRegistryValue -Name "Desktop Policy" -Key "HKCU\Software\Policies\Microsoft\Windows\Control Panel\Desktop" -ValueName "ScreenSaveTimeOut" -Type String -Value "900" # Windows Update politikası Set-GPRegistryValue -Name "Update Policy" -Key "HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" -ValueName "AUOptions" -Type DWord -Value 4
DNS Yönetimi#
DNS Zone Yönetimi#
# Primary zone oluşturma Add-DnsServerPrimaryZone -Name "company.local" -ZoneFile "company.local.dns" # Reverse lookup zone oluşturma Add-DnsServerPrimaryZone -NetworkID "192.168.1.0/24" -ZoneFile "1.168.192.in-addr.arpa.dns" # DNS kayıtları ekleme Add-DnsServerResourceRecordA -ZoneName "company.local" -Name "web" -IPv4Address "192.168.1.100" Add-DnsServerResourceRecordCName -ZoneName "company.local" -Name "www" -HostNameAlias "web.company.local" Add-DnsServerResourceRecordMX -ZoneName "company.local" -Name "." -MailExchange "mail.company.local" -Preference 10 # DNS kayıtlarını listeleme Get-DnsServerResourceRecord -ZoneName "company.local"
DNS Forwarders#
# DNS forwarder ekleme Add-DnsServerForwarder -IPAddress 8.8.8.8,8.8.4.4 # Conditional forwarder ekleme Add-DnsServerConditionalForwarderZone -Name "external.com" -MasterServers 192.168.2.10
DHCP Yönetimi#
DHCP Server Kurulumu#
# DHCP rolünü yükle Install-WindowsFeature DHCP -IncludeManagementTools # DHCP server'ı authorize et Add-DhcpServerInDC -DnsName "dc01.company.local" -IPAddress 192.168.1.10 # DHCP scope oluşturma Add-DhcpServerv4Scope -Name "Main Network" -StartRange 192.168.1.100 -EndRange 192.168.1.200 -SubnetMask 255.255.255.0 # DHCP options ayarlama Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -Router 192.168.1.1 Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -DnsServer 192.168.1.10 Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -DnsDomain "company.local"
DHCP Rezervasyonları#
# MAC adresine göre IP rezervasyonu Add-DhcpServerv4Reservation -ScopeId 192.168.1.0 -IPAddress 192.168.1.50 -ClientId "00-15-5D-00-00-01" -Name "Server01" # Rezervasyonları listeleme Get-DhcpServerv4Reservation -ScopeId 192.168.1.0
File Server Yönetimi#
Paylaşım Oluşturma#
# Klasör oluşturma ve paylaşım New-Item -Path "C:\Shares\Department" -ItemType Directory New-SmbShare -Name "Department" -Path "C:\Shares\Department" -FullAccess "COMPANY\IT Admins" -ReadAccess "COMPANY\Domain Users" # NTFS izinleri ayarlama $Acl = Get-Acl "C:\Shares\Department" $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("COMPANY\IT Admins","FullControl","ContainerInherit,ObjectInherit","None","Allow") $Acl.SetAccessRule($AccessRule) Set-Acl "C:\Shares\Department" $Acl
DFS (Distributed File System)#
# DFS rolünü yükle Install-WindowsFeature FS-DFS-Namespace,FS-DFS-Replication -IncludeManagementTools # DFS namespace oluşturma New-DfsnRoot -TargetPath "\\dc01\DFSRoot" -Type DomainV2 -Path "\\company.local\Files" # DFS folder ekleme New-DfsnFolder -Path "\\company.local\Files\Departments" -TargetPath "\\fileserver01\Departments"
Backup ve Disaster Recovery#
Windows Server Backup#
# Windows Server Backup özelliğini yükle Install-WindowsFeature Windows-Server-Backup -IncludeManagementTools # System State backup wbadmin start systemstatebackup -backuptarget:E: -quiet # Full server backup wbadmin start backup -backuptarget:E: -include:C:,D: -allcritical -quiet # Backup policy oluşturma $Policy = New-WBPolicy $FileSpec = New-WBFileSpec -FileSpec "C:\Important" Add-WBFileSpec -Policy $Policy -FileSpec $FileSpec $BackupLocation = New-WBBackupTarget -VolumePath "E:" Add-WBBackupTarget -Policy $Policy -Target $BackupLocation Set-WBSchedule -Policy $Policy -Schedule 02:00 Set-WBPolicy -Policy $Policy
Active Directory Backup#
# AD veritabanı backup ntdsutil "activate instance ntds" "snapshot" "create" "mount {snapshot-guid}" quit quit # SYSVOL backup robocopy C:\Windows\SYSVOL E:\Backup\SYSVOL /MIR /R:3 /W:10
Monitoring ve Performance#
Performance Monitoring#
# Performance counter'ları toplama Get-Counter "\Processor(_Total)\% Processor Time" Get-Counter "\Memory\Available MBytes" Get-Counter "\LogicalDisk(C:)\% Free Space" # Performance counter set oluşturma $Counters = @( "\Processor(_Total)\% Processor Time", "\Memory\Available MBytes", "\LogicalDisk(C:)\% Free Space", "\Network Interface(*)\Bytes Total/sec" ) Get-Counter -Counter $Counters -SampleInterval 5 -MaxSamples 12
Event Log Monitoring#
# Event log'ları sorgulama Get-EventLog -LogName System -EntryType Error -Newest 10 Get-EventLog -LogName Application -Source "Application Error" -Newest 5 # Specific event ID'leri arama Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 10 # Event log'ları filtreleme Get-WinEvent -FilterHashtable @{LogName='System'; Level=2; StartTime=(Get-Date).AddDays(-1)}
PowerShell ile Otomasyon#
Scheduled Tasks#
# Scheduled task oluşturma $Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\DailyMaintenance.ps1" $Trigger = New-ScheduledTaskTrigger -Daily -At "02:00AM" $Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries Register-ScheduledTask -TaskName "Daily Maintenance" -Action $Action -Trigger $Trigger -Settings $Settings -User "SYSTEM"
Remote Management#
# WinRM yapılandırması Enable-PSRemoting -Force Set-WSManQuickConfig -Force # Remote session oluşturma $Session = New-PSSession -ComputerName "Server01" -Credential (Get-Credential) Invoke-Command -Session $Session -ScriptBlock { Get-Service } # Remote'da komut çalıştırma Invoke-Command -ComputerName "Server01","Server02" -ScriptBlock { Get-EventLog -LogName System -EntryType Error -Newest 5 } -Credential (Get-Credential)
Güvenlik#
Windows Defender#
# Windows Defender durumunu kontrol et Get-MpComputerStatus # Tarama başlat Start-MpScan -ScanType QuickScan # Exclusion ekleme Add-MpPreference -ExclusionPath "C:\MyApp" Add-MpPreference -ExclusionExtension ".log"
Windows Firewall#
# Firewall kuralı ekleme New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow # Firewall profillerini görüntüleme Get-NetFirewallProfile # Firewall loglarını etkinleştirme Set-NetFirewallProfile -Profile Domain,Public,Private -LogAllowed True -LogBlocked True -LogFileName "C:\Windows\System32\LogFiles\Firewall\pfirewall.log"
Troubleshooting#
Yaygın Problemler#
- Domain Controller senkronizasyon problemi:
# Time sync kontrol w32tm /query /status w32tm /resync # AD replication kontrol repadmin /showrepl repadmin /syncall
- DNS resolution problemi:
# DNS cache temizleme Clear-DnsClientCache ipconfig /flushdns # DNS test nslookup company.local Resolve-DnsName company.local
- Group Policy problemi:
# GPO refresh gpupdate /force # GPO troubleshooting gpresult /r gpresult /h C:\GPReport.html
Log Analizi#
# Active Directory log analizi Get-WinEvent -LogName "Directory Service" | Where-Object {$_.LevelDisplayName -eq "Error"} # Authentication log analizi Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624,4625} -MaxEvents 100 # System log analizi Get-EventLog -LogName System -EntryType Error,Warning -After (Get-Date).AddDays(-1)
Sonuç#
Windows Server ve Active Directory yönetimi, enterprise ortamlarında kritik öneme sahiptir. Bu rehberde ele aldığımız konular:
- Windows Server kurulumu ve yapılandırması
- Active Directory yönetimi
- DNS ve DHCP servisleri
- File server ve DFS
- Backup ve monitoring
- PowerShell ile otomasyon
- Güvenlik ve troubleshooting
Windows Server ortamlarını etkili yönetmek için PowerShell becerilerinizi geliştirin ve Microsoft dokümantasyonunu düzenli takip edin. Bir sonraki yazımızda Linux ve Windows hibrit ortamlarının yönetimi konusunu ele alacağız.