.

Can's Windows Server Blog

DC leri çoğaltmak

Eğitim amacıyla kullandığım Server 2016 nın 6 aylık ücretsiz lisansı bitmek üzere. Bu nedenle ikinci bir DC kurup FSMO ve tüm ayarlarımı ona aktarıp. yeni bir 6 aylık süreci başlatmak istiyorum.

Bu nedenle önce HyperV üzerinde VM klonladım.

Kendi notlarımı kullandım. https://win.buyukburc.de/2019/03/27/hyper-v-de-vmlerin-cogaltilmasi/

Yeni makinayı çalıştırdıkltan sonra Computername, domain ve network ayarlarını yaparken “SID aynı sysprep ı tekrar çalıştır” hatası ile karşılaştım.

Sysprep i görüldüğü şekilde çalıştırıp, reboot ettim.

Sonra Ip (192.168.0.201)yi ve DNS’i mevcut DC1 (192.168.0.200) olacak şekilde girip sistemi domain e ekliyorum aşağıda ki gibi.

Burada yazanlar maalsef olmadı. Server 2016 başlamadı adam gibi siyah ekranda kilitlendi login olduktan sonra bu nedenle yeniden kurdum.

Active Directory Recovery (snapshot)

AD DS veritabanı bazı dosyalardan oluşur.

Dosya
* ntds.dit
* edb*.log
* ebd.chk

*edbres00001.jrs

Tanım
* AD Objectleri ve bölümlerini tutar
* Transaction Logs
* Database Check Noktası (hangi loglar yazıldı hangileri yazılmadı
* Log dosyası reservasyonu. Eğer disk dolarsa sistem kilitlenmesin diye bu reserve alana yazmaya devam eder.

AD recovery yapabilmek için mutlaka backup olması gerekir. Bir diğer yöntemde varsa snapshot kullanmaktır. Snapshot ntdsutil ile alınır ve CMD yi administrator olarak çalıştırmanız gerekir.

burada önemli olan bilmediğiniz zaman ? ile yardım bulabilmenizdir.

NTDS AD DS kurulumu ile beraber gelir ve çok etkili bir tooldur.

bu komutları çalıştırırken oluşturulan snapshot a bir GUID atandı. Onu kaydetmemiz gerekiyor.

ama listeleyedebiliriz.

Videoların bu kısmı biraz kopuk !!! snapshot i nasıl nereye mount etti nasıl taşıdı göstermedi. !!

Neyse aynı makine üzerinde mount etmek için

takiben bu mount ettiğimiz db yi import etmemiz gerekiyor

Daha sonra AD DS GUI üzerinde inceleyebiliriz.

Sonra gelen pencereyi editliyoruz ve <Type a Directory……..> yazan yeri

yapıp. OK diyoruz. Not : Port numarasına dikkat daha önce kullandığımız port numarası.

Böylece snapshot geri geliyor. Tabii burdan veri kurtarma veya bunu aktif DS nasıl yapılır ??

Başka DC sistemine bu nasıl taşınır video da anlatılmamıştı. Muhtemelen Mount edip dosyaları zip leyip baska yere taşıyıp sonra orada tekrar mount edebiliriz ama denemek lazım deneyimle.

yine de daha sonra CTRL-C ile DSAMain.exe yi durduruyoruz ve snapshot i unmount ediyoruz.

Gerisini video da anlatmadı fazla.Ancak diger toollara geçtik.

Active Directory Group MSA

Group MSA ile bir security hesabını alıp birden çok sisteme koymamızı sağlar. Böylece birden çok bilgisayar aynı service hesabını kullanabilir.

AD nin minimum server2012 olması gerekli ve “KDS Root Key” diye birşeyin oluşturulması gerekli.

KDS Root Key oluşturulması aşağıda ki gibidir.

Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))

KDS Root Key oluşturulması bazı durumlarda 10 saat kadar sürebilir. Komutta ki “((get-date).addhours(-10))” kısım ile derhal hemen oluştur diyoruz.

New-ADServiceAccount
Add-ADComputerServiceAccount

New-ADServiceAccount ile bir servis hesabı oluşturup daha sonra ki komutlada bu hesabı bilgisayara atıyoruz. Kontrol etmek içinde Get-ADServiceAccount ile görebiliriz.

New-ADServiceAccount -Name AnkaraSPFarm -PrincipalsAllowedToRetrieveManagedPassword ANKSP1, ANKSP2, ANKSP3

komuta eklenen parametre ile belirlediğimiz serverlar AD üzerinden bu hesabın parolasına erişme yetkisi verebiliriz.

Daha sonra her bir SP serverında

Add-ADComputerServiceAccount

Komutunu çalıştırıyoruz.

Excel Script

Excel ile ilgili bazı işlemleri içeren bir script yazmıştım bir kısmını kapatacağım isimler burada kullanmaya uygun olmadığından.

##################################

# um mit diesem Skript zu arbeiten, sollten zunächst alle CSV-Dateien in den gleichen Ordner mit diesem Skript kopiert werden.
# auch die Reporting-Excel-Datei (HEX-Mailboxes_final.xlsx) vom Vormonat sollte ebenfalls hier sein.
# Hinweis: muss überprüfen, ob keine der CVS-Dateien 1kb Daten enthält (als wäre es eine falsche heruntergeladene Datei).
# Nachdem das Skript ausgeführt wurde, können CSV-Dateien gelöscht werden.
##################################
#
#19.07.2019
#
#################################
### Erst Excel Aktualisierung
#################################
$pwdd = (Get-Location).Path
$Excel = New-Object -ComObject excel.application
$Excel.visible = $false
$pathh = $pwdd+"\HEX-Mailboxes_final.xlsx"
$Workbook = $excel.Workbooks.open($pathh)
$Worksheet = $Workbook.WorkSheets.item(“Tabelle1”)
$worksheet.activate() 
$range = $WorkSheet.Range(“B2:D5”)
$range.copy()
$Range2 = $Worksheet.Range(“I2:K5”)
$Worksheet.Paste($range2) 
########################################
### Counts in Variables
#######################################
$CSVs = Get-ChildItem -Recurse |where {$_.Extension -eq ".csv"} | % { $_.FullName }
$Dog2010basic = $CSVs|Select-String "dohex2010-results-ex2010-basic"
$Dog2010Standard = $CSVs|Select-String "dohex2010-results-ex2010-standard"
$dog2013basic = $CSVs|Select-String "basic_sal"
$dog2013standard = $CSVs | Select-String "standard_sal_"
$dog2013ent = $CSVs|Select-String "enterprise_sal"
$Simple2010Stand = $CSVs | Select-String "Simple-results-ex2010-standard-sal"
$Simple2010Basic = $CSVs | Select-String "Simple-results-ex2010-basic-sal"
$simple2013all = $CSVs | Select-String "results-ex2013"
###############
$Dog2010basicCsv = Import-Csv $Dog2010basic -Delimiter ";"
$Dog2010basicCount = ($Dog2010basicCsv| where { $_.whencreated -ne "" } |Measure-Object).count
###############
$Dog2010StandardCsv = Import-Csv $Dog2010Standard -Delimiter ";"
$Dog2010StandardCount = ($Dog2010StandardCsv| where { $_.whencreated -ne "" } |Measure-Object).count
###############
$dog2013basicCSV = Import-Csv $dog2013basic -Delimiter ","
$dog2013basicCount = ($dog2013basicCSV | where { $_.whencreated -ne "" } |Measure-Object).count
###############
$dog2013standardCsv = Import-csv $dog2013standard -Delimiter ","
$dog2013standardCount = ($dog2013standardCsv | where { $_.whencreated -ne "" } |Measure-Object).count
###############
$dog2013entCsv = Import-csv $dog2013ent -Delimiter ","
$dog2013entCount = ($dog2013entCsv  | where { $_.whencreated -ne "" } |Measure-Object).count
###############
$Simple2010StandCsv = Import-Csv $Simple2010Stand -Delimiter ";"
$Simple2010StandCount = ($Simple2010StandCsv | where { $_.whencreated -ne "" } |Measure-Object).count
###############
$Simple2010BasicCsv = Import-Csv $Simple2010Basic -Delimiter ";"
$Simple2010BasicCount = ($Simple2010BasicCsv | where { $_.whencreated -ne "" } |Measure-Object).count
###############
$simple2013CSv = Import-Csv $simple2013all -Delimiter ";"
$simple2013BasicCounter  = ($simple2013CSv | where { $_.whencreated -ne "" -and $_.MapiEnabled -eq "False" -and $_.IsResource -eq "False" } |Measure-Object).count
$simple2013StandCounter  = ($simple2013CSv | where { $_.whencreated -ne "" -and $_.MapiEnabled -eq "True"} |Measure-Object).count
####################################
### Variables in Excel-Cells
### item(Numbers,Letters (but used as number)
####################################
$worksheet.Cells.item(2,2)= $Simple2010BasicCount
$worksheet.Cells.item(2,3)= $Simple2010StandCount
$worksheet.Cells.item(2,4)= "0"
$worksheet.Cells.item(3,2)= $simple2013BasicCounter
$worksheet.Cells.item(3,3)= $simple2013StandCounter
$worksheet.Cells.item(3,4)= "0"
$worksheet.Cells.item(4,2)= $Dog2010basicCount
$worksheet.Cells.item(4,3)= $Dog2010StandardCount
$worksheet.Cells.item(4,4)= "0"
$worksheet.Cells.item(5,2)= $dog2013basicCount
$worksheet.Cells.item(5,3)= $dog2013standardCount
$worksheet.Cells.item(5,4)= $dog2013entCount
####################################
#### Excel save
####################################
$workbook.save()
$Excel.Quit()
Remove-Variable -Name excel
[gc]::collect()
[gc]::WaitForPendingFinalizers()

Şimdi öncelikle amacı ve ne olduğunu açıklayayım.

Exchange Server üzerinde her bir müşteri tipinin detaylarını bir skript ile CSV dosyalarına atıyoruz. Takiben yine aynı skript bunları maıl atıyor. Bizde birden çok platform ve birden çok müşteri hizmeti var. Her platformda bunlar koşuyor ve mail olarak bizde toplanıyor. Gelen tüm maillerde ki CSV eklentileri bir folderda topluyoruz. ve Bu scripti orada koşuyoruz.

Şimdi blokları inceleyelim

Excelde Copy Paste

$worksheet.activate() 
$range = $WorkSheet.Range(“B2:D5”)
$range.copy()
$Range2 = $Worksheet.Range(“I2:K5”)
$Worksheet.Paste($range2) 

Burada ki en önemli kısım excelde sol üst sağ alt köşe tanımlanarak copy paste ediliyor.

CVS ye get-content

Get-conten ama biraz farklı ; her bir tip elemanı bir object attribute olarak almasını sağlıyoruz. Örneğin whencreated diye bir değer var her satırda.

$dog2013entCsv = Import-csv $dog2013ent -Delimiter ","
$dog2013entCount = ($dog2013entCsv  | where { $_.whencreated -ne "" } |Measure-Object).count

$dog2013entCsv|fl yaptığımızde detayları ve seçilebilir attribleri görüyoruz. whencreted boş olmayanları sayıyoruz.

 ($dog2013entCsv  | where { $_.whencreated -ne "" } |Measure-Object).count

Bu sayıyı bir değişkene atadıktan sonra excelde bir hücreye atıyoruz. Burada önemli nokta ise normalde excelde bir hücre B3 gibidir oysa bu komutta (Nedense !!!) biraz ters işlemişler önce 3B sonrada B yi de rakam olarak yazmışlar yani 2 kısaca 3,2

item(Numbers,Letters (but used as number)
$worksheet.Cells.item(2,3)= $Simple2010StandCount

Active Directory Configuring MSA Service Accounts

Bazen bazı uygulamalar çalışmak için kullanıcı hesabına ihtiyaç duyarlar. Bunlara “Service Accounts” denir.

Bu hesaplarla ilgili sorun şifrelerinin çok sık değişmemesi ve bu nedenle güvelik açığı teşkil etmeye başlamalalarıdır. Çoğu zaman şifre değişikliği sistemin reboot edilmesini gerektirebilir ve bu istenen bir durum değildir.

Local Sistem hesabı kullanabiliriz ama genellikle bu hesaplarda çok fazla yetki vardır bu nedenle çok da iyi olmaz. Lokal Servis hesaplarında ise çok yetersiz yetki olur bu durumda istenmeyebilir. Network Servis hesaplarınıda kullanabiliriz. Bu hesaplarda ağda pek çok servise erişebilirler ancak bu durumda istediğimiz bir durum olmayabilir.

Önemli olan şey ihtiyaç duyulan minimum yetkiyi vermektir. İşte bu nedenle Managed Service Accounts (MSA) kullanırız.

MSA hem bilgisayar hesabı hemde kullanıcı hesabı gibi davranabilir. Bu bize her ikisinin iyi tarafarını kullanma şansı verir özellikle password ve SPN (Service Principle Name) kullanımında esneklik sağlar. Pek çok hizmet service bilgilerini SPN record olarak DNS’e kaydeder. Bu durum servisten servise farklılık gösterir. Bazıları kayıt işlemini otomatik yaparken bazen bu işlemi manuel olarak yapmak zorunda kalabiliriz.

MSA için min Server 2008 R2 veya yenisi, .NET Framework 3.5.x ve active Directory Module for Powershell.

MSA’ler Managed Service Accounts adı verilen bir Containerda tutulurlar.
* CN= Managed Service Accounts, DC=<domain>,DC=<com> container

MSA bir kullanıcı hesabı ve bilgisayar hesabının karışımıdır. MSA kullanıcı hesabı gibi authentication yapabilir. Ve Bilgisayar hesabı gibi davranır ve AD onun passwordünü değiştirebilir. MSA sistem(bilgisayar) objectlerinin kullandığı password-update mekanizmasını kullanır.

Oluşturmak için

Container a girip sağ taraftan new dediğimizde karşımıza bazı opsiyonlar çıkacak bunlardan “User” seçip devam ediyoruz. Gelen pencere neredeyse aynı user hesabı oluşturmak için kullandığımız gibi.

Bunu yapmanın bir diğer yoluda AD Users and Computers.

Eski sistemlerde Managed Accounts diye de geçebilir. Ve SPN’i manuel oluşturmak gerekirdi.

Artık password otomasyonu daha kolay ve güvenli hale gelmiştir.

Active Directory Authentication Policies and Silos

Bununla kullanıcı, servis ve sistemlerin AD’ye nasıl bağlanacaklarını kontrol ediyoruz.

Öncelikle Active Directory Administrative Centerda sol menude “Authentication”ı seçiyoruz ve orta panelde “Authentication Policies” ve “Authentication Policy Silos”‘u görüyoruz.

Öncelikle bir “Authentication Policy” oluşturmamız gerekiyor daha sonra bu oluşturduğumuz policy’i Silo kullanarak uygulayacağız.

Authentication Policy e tıkladıktan sonra sağ panelde new seçiyoruz. Gelen pencere son derece çok detay içeriyor.

Ancak Screenshot eksik daha aşağıya kaydırmamız gerekli…..

Burada Only Audit policy restriction seçersek sisteme uygulanmaz ancak sanki uygulanmış gibi log tutar. Böylece uygulamadan önce bir süre takip edip kimi nasıl etkiliyor görebiliriz.

Accounts kısmında istersek bir kullanıcı, sistem veya servis de seçebiliriz.

Ekranı aşağıya kaydırınce …..

Assigned Silos : Henüz boş ancak policyi oluşturduktan sonra Silo’da oluşturacağız. O zaman uyguladığımızda burası otomatik dolacak.

Daha aşağıya kaydırdırdığımızda şu 5 başlığı göreceğiz. Böylece kine nasıl uygulanacak belirleyebileceğiz.

Bu başlıklarda genelde seçenekler hemen hemen aynı. Eğer ağda eski tip sistemler varsa Kerberos desteklemeyebilirler, bu durumda NTLM kullanabiliriz.

“Specify a Ticket Granting Ticket lifetime for user accounts” seçtiğimiz zaman sistemi Kerberos kullanmaya zorluyoruz.

İstersek Allow NTLM network authentication when user is restricted to selected devices seçeneği ile herşey kerberos iken bazılarını NTLM’de yapabiliriz.

Bu şekilde okuyup inceleyip Authentication policy oluşturuyoruz.

Daha sonra

New dedikten sonra gelen pencerede ayarları yapıyoruz. İsim veriyoruz, kime uygulanacağını belirliyoruz sonrada nasıl uygulanacağını belirliyoruz.

Active Directory Password Policy Object (PSOs)

PSO ayarlanması için powershell veya Active Directory Administrative Center.

Burada lütfen zamanların yazılışına ve yazım formatının farklılığına dikkat edin. Microsoft powershell i zor ve saçma yapan şey işte bu standartsızlık. Çoğu komutta böyle bir yazım tarzı yokken bunda var. Bu farkı bilmeyen biri uzun süre çırpınabilir.

PS C:\>Import-Module ActiveDirectory

PS C:\>New-ADFineGrainedPasswordPolicy Test -ComplexityEnabled:$true -LockoutDuration:"00:30:00" -LockoutObservationWindow:"00:30:00" -LockoutThreshold:"0" -MaxPasswordAge:"60.00:00:00" -MinPasswordAge:"1.00:00:00" -MinPasswordLength:"12" -PasswordHistoryCount:"30" -Precedence:"1" -ReversibleEncryptionEnabled:$false -ProtectedFromAccidentalDeletion:$true

PS C:\>Add-ADFineGrainedPasswordPolicySubject test -Subjects Ankara

Burda -Subjects ile bir OU hedefleniyor ancak yazım hatası var sistem OU yu bu şekilde bulamıyor. Detayını bilemedim.

Tabii ki diğer yol administrative center yani GUI.

Server Manager –>Tools –> Active Directory Administrative Center

Gelen pencerede sol taraftan Domainimizi “C1.local” tıklıyoruz. Gelen listede aşağıda “System” ı çift tıklıyoruz. orta panelde liste gelecek orada “Password Settings Container”ı seçin.

Bu containera çift tıkladığımızda boş olarak gelir. Sağ taraftan “new” diyerek devam ediyoruz. Account lock-out policy ve Password Policy de olan pek çok ayar burada da var. Çoğu zaten adından anlaşılıyor.

Ancak Precedence bir den çok PSO bir gruba veya hesaba uygulandığında hangi sıra ile uygulanacağını belirliyor. Ne kadar düşükse o kadar etkilidir. örneğin 1 her zaman 2 den daha üstündür. Ancak eğer bir kullanıcı hesabına direk eklenmiş ise (applies directly to) bu durum OU ya yapılan uyguladan üstündür. Yani OUda başka ayar olsada burada yaptıklarımız o hesap için geçerli olacaktır.

Directly applies To : dan da hangi hesap ve/veya grubu etkilemesini istiyorsak ekliyoruz.

Yapılan ayarı kontrol etmek için yine “Active Directory Administrative Center”‘da domainde hesabı bulup üzerine sağ tıklıyoruz ve “View resultant password settings” i seçiyoruz.

Hangileri uygulanmış görüyoruz.

Active Directory administrative centerdan bu yaptıklarımız aynen “active directory users and computers” dan da yapılabilir.

Active Directory Hesap Güvenliğinin ayarlanması

Server 2016 de pekçok şey ayarlanabilmektedir. Bunlardan bir kaçı

  • Password Policy
  • Account Lockout policy
  • Fine grained password Policy
  • Kerberos Policy

Server Manager –> tools –> Group Policy Management

Sonra domain içinde ki “Default Domain Policy” e sağ tıklayıp “edit” diyoruz böylece GPO editor başlıyor.

GPO içinde password ile ilgili yere
Default Domain Policy –> Policies–>Windows Settings –>Security Settings –>Account Policies –>Password Policy
ile ulaşıyoruz.

Bir Policy editlerken “Explain” kısmında yazan açıklamayıda okumakta fayda var.

Policylerde “default”lar genelde iyi ayarlanmıştır.

Bazen kullanıcılar Laptop kullanırlar ve mobildirler. Bu durumda hem domain hemde local password policy kullanmaları gerekir.

Bunu ayarlamak biraz daha ilginç. Başlattan “Windows Administrative Tools” a gidip ordan “Local Security Policy” seçilir.

Burda Domain GPO sunda ki gibi aynı seçenekleri görürüz ancak bunlar local acount üzerinde geçerlidir.

Account Lockout Policy özellikle brute force karşı geliştirilmiştir. Bununla ilgili counterlar ve zamanlarla ilgili seçenekler var okuyarak incelemek gerekli.

Kerberos : Bir kullanıcı kullanıcı adı ve şifresini girdiği zaman bu bilgi DC’ye gelir ve DC sorgulama yapılan sisteme bir ticket gönderir. (Ticket Granting Ticket– veya — PSO – Password Settings Object). işte bu gelen ticket ile kaynaklara erişime izin verir.

NTLM (New Technology LAN Manager) bu Kerberostan önce kullanılan (ve halen zaman zaman kullanılan ) bir yöntemdir. Kerberos güvenlik anlamında NTLM’den daha güçlüdür. Bu nedenle mümkün olduğunca Kerberos kullanmalıyız.

GP Editorde Account Policies altında Kerberos Policy mevcuttur. Burada “Enforce User Logon Restrictions” default olarak enabled dır. Temel mantık olarak security önlemleri artıkça performans düşer. Bununla her kullanıcı session ı kullanıcı haklarına uyumlumu değilmi kontrol edilir. (User accounts- User rights Policies). böylece Kerberos ile login olurken bunun kontrol edilmesini zorunlu kılıyoruz. Ayrıca lifetime ayarları da burada mevcuttur.

Active Directory Powershell

GUI ile yapılan hemen herşeyi Powershell ilede yapabiliriz. Soru Windows temelli sistemlerde hangisi daha kolay. Bazen GUI ile iki tıkta işi bitirebilirken bazende powershellde bin tıklık işi iki satırda bitirmek mümkün. Ayrıca bazı işlemler sadece powershellden yapılabiliyor.

AD için powershell Server Manager ekranında “Active Directory Module for windows powershell” ile erişebiliriz. Yada normal powershell de import edebiliriz. Böylece tüm ad komutlarına ulaşabiliriz.

Ad hesapları için Powershell Komutları :

  • New-ADUser
  • Set-ADUser
  • Remove-ADUser
  • Set-ADAccountPassword
  • Set-ADAccountExpiration
  • Unlock-ADAccount
  • Enable-ADAccount
  • Disable-ADAccount

Tabii kelimeler İngilizce ama çevirme ile uğraşmayacağım zaten son derece net.

Aşağıda ki basit örnekte kullanıcıdan şifre girmesini istiyoruz.

New-ADUser "Can" -AccountPassword (Read-Host -AsSecureString "Sifre Girin:") -Department IT

Ad grupları için Powershell Komutları :

  • New-ADGroup
  • Set-ADGroup
  • Get-ADGroup
  • Remove-ADGroup
  • Add-ADGroupMember
  • Remove-ADGroupMember
  • Add-ADPrincipalGroupMembership

Buda aslında son derece basit İngilizce sadece sonuncu “Add-ADPrincipalGroupMembership” objectlere grup üyeliği ekliyor.

C:\>New-ADGroup -Name "Satis" -Path "ou=yonetim,dc=C1,dc=local" -GroupScope Global -GroupCategory Security
C:\> Add-ADGroupMember -Name "Satis" -Members "Can"

Bir başka örnek

Set-ADAccountPassword -identity "CN=Can Can,OU=Satis,DC=C1,DC=local" -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "p@ssw0rd")

Powershell ile yapılacak çok şey var ancak bu ayrı bir eğitim konusu.

Active Directory OU’ların organizasyonu

En önemli konu domainimizi yada domainlerimizi nasıl yöneteceğimize karar vermektir. Tek lokasyon mu çok lokasyon mu belkide departmanlara göre veya kurumun kullandığı donanımlara görede ayrım yapılmak zorunda olabilir.

Diğer bir konu ise group policyleridir (GP). GP’lerin nasıl çalışmasını istediğimizede karar vermemiz gerekiyor. Genellikle GP’ler çalışanların departmanlarına göre olabilirken lokasyon gibi çeşitli farklı temelleride olabilir.

Lokasyon temelli :

  • Static
  • Delegasyon (karmaşık olabilir)

Organizasyon temelli :

  • Static değildir.
  • Kategorize etmek kolaydır.

Kaynak temelli : Örneğin Serverlara ayrı clientlara ayrı. Hatta server tiplerine de ayrı olabilir.

  • Statik değildir.
  • yönetimi delege etmek kolaydır.

Çok kullanıcılı strateji

  • Static
  • Yönetim delegasyonu kolay
  • Yeni kullanıcıları eklemek veya çıkartmak kolay

Hybrid

  • Lokasyon, organizasyon ve kaynak temellidir.

OU oluşturmada çeşitli katmalnar oluşturulabilir ancak derinleştikçe karmaşıklaşır. Önerilen 5 seviyeden daha aşağı inmemektir.

Genelde önce lokasyona daha sonrada o site içindeki kaynaklara göre organize edilirler. Yinede karar verme sürecinde çeşitli faktörleri göz önünde bulundurmalısınız. En çok kullanılan bu nedenle hybrid yaklaşımdır.

Şimdi yapacığım örnekte birden çok lokasyon için ama domain üzerinde OU’ları oluşturacağım. Bunun için C1.local a sağ tıklayıp new–>Organizational Unit seçip bir isim vereceğim. (lokasyonlar)

Burada öenmli bir detay bazı sembollerin üzerinde şekiller varken bazılarında yok. Çünkü sembol olmayanlar Container ve onlara GP uygulanamaz.

Ayrıca Ankara lokasyonunu kaynaklara göre bölmekte istiyorum bu nedenle yeni OU oluşturdum bunlardan biride Servers.

OUyu yanlış yere yerleştirsek bilr sağ klikle ve move diyerek başka yere taşıyıp onunla çalışmaya devam edebiliriz.