13 Aralık 2014 Cumartesi

Exchange Server 2013 WhiteSpace ve Move Mailbox

Sürücü boyutuna erişen Exchange Server Mailbox Database içinde boş alanın açılması.
WhiteSpace

Taşınacak mailbox ların listelenmesi
Öncelikle disable olan kullanicilar tasınabilir.
Get-MailboxDatabase MailBoxDB | Get-Mailbox -ResultSize unlimited | where {$_.ExchangeUserAccountControl -eq "AccountDisabled"} Get-MailboxStatistics | select DisplayName,Alias,LastLogonTime,TotalItemSize | Sort-Object TotalItemSize -Descending

Aşlağıdaki komutla da Daatabase deki mailbox listesi de alınabilir.
Get-MailboxStatistics -Database MailBoxDB | Select DisplayName,Database,TotalItemSize,LastLogonTime |Sort-Object TotalItemSize -Descending

Taşınacak MailBox için küçük bir doğrulama yapmak iyi olabilir.
Get-Mailbox "kullanicinin görünen adi" | select database,alias

Kullanıcının Alias ve MailboxDatabase i görünen adı ile doğrulanır
get-mailbox -Identity "Kubilay Kaya"| select database,alias

Database                                                    Alias
--------                                                    -----
MailBoxDB                                              kubilay.kaya

Taşıma işlemine başlanır
New-MoveRequest -Identity kubilay.kaya -TargetDatabase MailBoxDB2

Taşıma işlemlerinin gözlemlenmesi:
Aşağıdaki komut ile ayrı bir powershell pencersinde çalıştırılarak sıklıkla taşıma ile ilgili bilgi alınabilir
while (1) {sleep -sec 30; cls ; Get-MoveRequest|Get-MoveRequestStatistics}

yada aşağıdaki komut tercih edilebilir.

while (1) {sleep -seconds 10 ;Get-MoveRequest | Get-MoveRequestStatistics | ft DisplayName,StatusDetail,TotalMailboxSize,BytesTransferred,BytesTransferredPerMinute,PercentComplete}

Toplu taşıma işlemlerinin yapılması
Taşıma işleminin disable olan tüm mailbox lar için başlatılması aşağıdaki komutla sağlanabilir.
Get-MailboxDatabase MailBoxDB  | Get-Mailbox -ResultSize unlimited | where {$_.ExchangeUserAccountControl -eq "AccountDisabled"} | New-MoveRequest -TargetDatabase MailBoxDB2

yada

MailBox kapasitesi en büyük 10 kulanıcıyı görmek için aşağıdaki komut uygulanabilir.
Get-MailboxDatabase MailBoxDB  | Get-Mailbox -ResultSize unlimited | Get-MailboxStatistics | Sort-Object TotalItemSize -Descending | Select DisplayName,Database,TotalItemSize,LastLogonTime -first 10

5 Gb dan büyük Mailbox ları görmek için aşağıdaki komut uygulanabilr.
Get-MailboxStatistics -Database MailBoxDB  | where {$_.TotalItemSize -gt 5GB} | select DisplayName,TotalItemSize|Sort-Object TotalItemSize -Descending

5 GB dan büyük mailbox ları taşımak içinde aşağıdaki komut kullanılabilir.
Get-MailboxStatistics -Database MailBoxDB  | where {$_.TotalItemSize -gt 5GB -and $_.TotalItemSize -lt 6GB} | Get-Mailbox | New-MoveRequest -TargetDatabase MailBoxDB2

Taşıma işlemi sonrası 
Taşıma işlemi kaynak mailbox üzerinde softdelete işlemi uygular. Mailbox retention period dikkate alınarak kaynak mailbox içinden taşınan mailbox silinir.
Mailbox ın büyüklüğü tabii olarak disk ile doğru orantılıdır. Taşınan mailboxlar, deleted mailbox retention zamanları dikkate alınarak silindiğinden mailbox database
kapasitesinde bir azalma görülmez. Eğer mailbox database kapasitesi disk kapasitesine ulaşmış ise, mailbox database içindeki boş alan (WhiteSpace) kontrol edilebilir.
Bu alan sürekli değişken olabilir. Küçük değerler, eğer mailbox database in durduğu sürücüde alan yoksa dikkate alınmalıdır. Mailbox retention zamanları beklenmeden taşınan mailbox ların, kaynak mailboxdatabase üzerinden silinmesi yoluna gidilebilir.

Aşağıdaki komutla Database üzerindeki boş alan görülebilir.
Get-MailboxDatabase MailBoxDB  -Status | select name, availablenewmailboxspace


Softdelete uygulanan ve mailbox database içinden kalıcı olarak silinebilir. Öncelikle deleted mailbox retention zamanı beklenen mailboxlar aşağıdaki komutla listelenebilir.
Get-MailboxStatistics -Database MailBoxDB  | where {$_.DisconnectReason -eq "SoftDeleted"} | select DisplayName,Totalitemsize,Identity | Sort-Object TotalItemSize -Descending

aşağıdaki komutla da silinebilir.
Get-MailboxStatistics -Database MailboxDatabase | where {$_.DisconnectReason -eq "SoftDeleted"} | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}

Bu yapıldığında da mailbox database kapasitesinde düşme olmaz, ama AvailableNewMailboxSpace kapasitesi arttırılmış olunur. Exchange bu alanı yeni obje ve mailbox lar için kullanır.

tek bir mailbox için aşağıdaki komut uygulanabilir.
Remove-StoreMailbox -Database MailBoxDatabase-Identity "27fdefaa-ca0b-400d-876e-c31d614c6eae" -MailboxState SoftDeleted


24 Kasım 2014 Pazartesi

Yavas Baglantiya Sahip Uzak Ofislerde Domain Controller Kurulumu IFM - Installing AD DS from Media

Yavas Baglantiya Sahip Uzak Ofislerde Domain Controller Kurulumu IFM
Installing AD DS from Media

Kurulum Klasörü hazırlamadan önce bilinmesi gerekenler
RO DC olmayan bir DC de hazırlanabilir.
RO DC de hazırlanan kurulum klasörü yine RO DC de, Writable DC de hazırlanan kurulum klasörü yine writable DC kurulumda kullanılabilir.
Kurulum klasörünün hazırlandığı işletim sistemi ne ise, kurulum klasörünün kulanılacağı işletim sistemi de aynı olmalıdır.

IFM ile kurulum yapilacaksa Tombstone için zaman asimi degerleri göz önüne alinmalidir. Yani bu süreler aşılmadan ve yeni DC kurulmalıdır.
Silinen objelerin ne kadar AD veritabaninda tutulacaginin süresidir. Silinen LDP yada diğer araçlar ile görülebilr. Geçerli olarak her 12 saatte bir tombstone da

tutulan objeler taranır ve zaman aşımına uğrayan objeler gerçekten silinir. AD esitleme işleminde, diger işlemler ve arayüzlerden görülemeyen bu objelerin listesini

de eşitler. Bu şekilde diger tüm DC lerde de silme işleminin gerçekleştiği kontrol edilir. TomStone diger DC lere de esitlenir.

Tombstone Life Time Geçerli süreler
ADSIEDIT ile degistirilebilir.

Asağıdaki komut ile görülebilir.
dsquery * "cn=directory service,cn=windows nt,cn=services,cn=configuration,dc=<forestDN>" –scope base –attr tombstonelifetime

Windows Server 2000  60 Gün
Windows Server 2003  60 Gün
Windows Server 2003 (SP1)  180 Gün
Windows Server 2003 R2 (SP1) 60 Gün
Windows Server 2003 R2 (SP2) 180 Gün
Windows Server 2008 / 2008 R2 180 Gün

Ntdsutil ile aşağıdaki versiyonlarda yapılabilir.
Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012

Esitleme sorunu olmayan bir domian controller da asagidaki komutlar sirasi ile uygulanir
Start --> Cmd
ntdsutil
Activate Instance NTDS
IFM
create sysvol full d:\IFM

Kullanılabilecek Komutlar
create full : Yeni kurulacak DC yada için AD veritabanın hazırlanmasını sağlar.
create rodc : Yeni kurulacak sadece okunabilir DC için AD veritabanın hazırlanmasını sağlar.

create sysvol RODC : Yeni kurulacak sadece okunabilir DC için AD veritabanın SYSVOL klasörü ile hazırlanmasını sağlar.

create sysvol full : Yeni kurulacak DC yada için AD veritabanın SYSVOL klasörü ile hazırlanmasını sağlar.

create sysvol full nodefrag :Yeni kurulacak DC yada için AD veritabanın SYSVOL klasörünün defrag yapılmadan ile hazırlanmasını sağlar.

Bir harici diske d:\IFM klasörü kopyalanir.

IFM ile Yeni Additional Domain Controller kurulumu

Active Directory Domain Service yüklenir
IFM klasörü kopyalanan harici disk sunucuya takilir yada bir sekilde IFM klasörü, sunucunun erisebilicegi bir ortama kopyalanir.
Active Directory Domain Services Configuration Wizard peneresinde Additional Options adiminda
Install from media seçilir ve IFM klasörünün yolu gösterilir.












24 Eylül 2014 Çarşamba

Exchange Server 2010/2013 Mailbox Auditing - Mail Kutusu Denetimi

Exchange Server 2010/2013 Mailbox Auditing

Mailbox seviyesinde konfigüre edilir.
Geçerli olarak user audit kapalıdır.
User, Delegate ve Administrative seviyelerinde konfigüre edilir.

Mailboxlar üzerinde 11 hareket izlenir
copy, mesajın kopyalanması (Administrator, Delegate)
create, gönderilen ve alınan mesajlar, oluşturulan klasörler hariç (Administrator, Delegate, Owner)
Folderbind, mailbox ve içindeki herhangi bir klasöre erişim (Administrator, Delegate)
harddelete, Recoverable Item dan silinen öğeler (Administrator, Delegate, Owner)

messagebind Okunan yada açılan mesajlar (Administrator)
move, taşınan öğeler (Administrator, Delegate, Owner)
movetodeleteditems, silinen mesajlar (Administrator, Delegate, Owner)
sendas, send as yetkisi ile gönderilen mesajlar (Administrator, Delegate)
sendonbehalf, sendonbehalf (asıl gönderenin belli olduğu) yetkisi ile gönderilen mesajlar (Administrator, Delegate)
softdelete, silinmiş öğelerden silinen (Administrator, Delegate, Owner)
update bir objenin özelliklerinde yapılan güncelleme (Administrator, Delegate, Owner)

audit loglar kulanıcıların mailbox ı içinde tutulur
Recoverable Items içinde Audits 
owa ve outlook üzerinden görülemez
MFCMAPI program ile görülebiliyor

Powershell ile konfigüre edilir.
Set-Mailbox -Identity 'Kubilay Kaya' -AuditEnabled $True

Geçerli olarak 90 gün
AuditAdmin
{Update, Move, MoveToDeletedItems, SoftDelete, HardDelete, FolderBind, SendAs, SendOnBehalf, Create}

AuditDelegate
{Update, SoftDelete, HardDelete, SendAs, Create}

hareketleri loglanmaya başlar.

AuditOwner aşırı log üretebileceğindan, belirli kullanıcılar için gerekli durumlarda açılması önerilir. Mesela kulllanıcının mesajlarının periyodik olarak kaybolması gibi. 


Audit işleminden hariç tutulacak kullanıcılar önceden belirtilir.
Set-MailboxAuditBypassAssociation -Identity 'test' -AuditBypassEnabled $True

Tüm kullanıcılar için aşağıdaki komutlalarla yada oluşturulacak ps1 dosyası 
çalıştırılarak açılabilir
$UserMailboxes = Get-mailbox -Filter {(RecipientTypeDetails -eq 'UserMailbox')}
$UserMailboxes | ForEach {Set-Mailbox $_.Identity -AuditEnabled $true -AuditDelegate Update, Move, MoveToDeletedItems, SoftDelete, HardDelete, FolderBind, SendAs, SendOnBehalf, Create -AuditLogAgeLimit 366.00:00:00}


Mailbox Audit yapılandırmasını bir kullanıcı üzerinde görmek için
Get-Mailbox -Identity 'Kubilay Kaya' | Format-List Audit*

Audit enabled olan tüm kullanıcıların listesini almak için
Get-Mailbox -resultsize unlimited | where {$_.Auditenabled -eq "True"}

Hangi hareketlerin loglanacağı belirlemek için
Set-Mailbox -Identity "Kubilay Kaya" -AuditDelegate SendAs,SendOnBehalf -AuditEnabled $true

Set-Mailbox -Identity "Kubilay Kaya" -AuditAdmin MessageBind,FolderBind -AuditEnabled $true

Set-Mailbox -Identity "Kubilay Kaya" -AuditOwner HardDelete -AuditEnabled $true


Audit Loglar
Geçerli olarak 90 gün tutulur  24.855 güne arttırılabilir 
Eğer AuditlogAgeLimit 0 verilirse loglar temizlenir.
her log 1.5 - 3 kb arasındadır
mailbox içinde tutulan loglar kotadan hariçtir

Powershell ile görülebilir
Audit sayı ve büyüklüğünü görmek için
Get-MailboxFolderStatistics -Identity "Kubilay Kaya" | ? {$_.Name -eq "Audits" -and $_.FolderType -eq "Audits"} | Format-Table Identity, ItemsInFolder, FolderSize -AutoSize

Identity                      ItemsInFolder    FolderSize
--------                        ------------------    ----------

kubilay.kaya\Audits                     23   253.8 Kb (259891 bytes)


Audit arama
Search-MailboxAuditLog -Identity 'Kubilay Kaya' -ShowDetails -StartDate 
"11/18/2013 00:00:00 AM" -EndDate "11/18/2013 12:00:00 PM" | Format-Table 
Operation, OperationResult, LastAccessed, LogonType, LogonUserDisplayName, 
FolderPathName, ItemSubject -AutoSize

Tarihin dinamik olarak verilmesi
Search-MailboxAuditLog -Identity 'Kubilay Kaya' -ShowDetails -StartDate (get-date -format g(get-date).adddays(-1)) -EndDate (get-date -format g) | Format-Table Operation, OperationResult, LastAccessed, LogonType, LogonUserDisplayName, FolderPathName, ItemSubject -AutoSize

Search-MailboxAuditLog -Identity 'Kubilay Kaya' -ShowDetails | Format-Table Operation, LastAccessed, LogonType, LogonUserDisplayName, FolderPathName, ItemSubject -AutoSize


Sadece belirli bir olayın loglanması
Search-MailboxAuditLog -Identity 'Kubilay Kaya' -ShowDetails | ? {$_.Operation -eq "HardDelete"} | Format-Table Operation, LastAccessed, LogonType, LogonUserDisplayName, FolderPathName, ItemSubject -AutoSize

Logların dışarı çıkarılması
Search-MailboxAuditLog -Identity 'Kubilay Kaya' -Showdetails | select -prop Owner, LastAccessed, Operation, OperationResults, LogonType, FolderPathName, ClientInfoString, ClientIpAddress, InternalLogonType, MailboxOwnerUPN, LogonUserDN, Subject|Export-Csv C:\users\kkaya\Desktop\mailboxaudit.csv -NoTypeInformation -Encoding "UTF8"

Search-MailboxAuditLog -Identity 'Kubilay Kaya' -Showdetails -StartDate (get-date -format g(get-date).adddays(-1)) -EndDate (get-date -format g) | select * | Export-xml  C:\users\kkaya\Desktop\mailboxaudit.xml get-mailbox | Search-MailboxAuditLog -Showdetails -Resultsize 250000 -StartDate (get-date -format g(get-date).adddays(-1)) -EndDate (get-date -format g) | select * | Export-clixml  C:\users\kkaya\Desktop\mailboxaudit.xml


Gerekli olabilecek alanlar
Owner, LastAccessed, Operation, OperationResults, LogonType, FolderPathName, ClientInfoString, ClientIpAddress, InternalLogonType, MailboxOwnerUPN, LogonUserDN, Subject


New-MailboxAuditLogSearch "Admin and Delegate Access" -Mailboxes "test","test2" -LogonTypes Admin,Delegate -StartDate 1/1/2013 -EndDate 12/31/2013 -StatusMailRecipients "test@test.test"

logontyper owner verilirse -Showdetails kullanılmalıdır.

Folder izinlerinin görüntülenmesi gerekli olabilir
Get-MailboxFolderPermission -Identity test@test.test:\Calendar

Add-MailboxFolderPermission -Identity kullanici1:\calendar -User kullanici2 -AccessRights Reviewer


Örnek Komutlar

Get-DistributionGroupMember ksg | Get-Mailbox | fl Au*

Get-DistributionGroupMember mailgrupadi | Set-Mailbox -AuditDelegate Update, 

Move, MoveToDeletedItems, SoftDelete, HardDelete, FolderBind, Send As, 

SendOnBehalf, Create -AuditEnabled $true

7 Ağustos 2014 Perşembe

Exchange Server 2013 ortamında Office Web Apps Server kurulumu ve yapılandırılması

Exchange Server 2013 ortamında Office Web Aspps Server kurulumu ve yapılandırılması
Web Apps sunucu/servisi ile owa ya bağlanan kullanıcılar Word, Excel, PowerPoint ve PDF dökümanlarını bağlandıkları tarayıcı vasıtasıyla dökümanı kendi bilgisayarlarına indirmeden görebilirler.
OWA Web Apps için içerde ve eğer dışardan erişilmesi de isteniyorsa dış DNS A kaydı, dışardan erişilebilicek IP adresi ve Firewall üzerindne gerekli yönlendirmenin Owa Web Apps olacak sunucuya eğer sertifika ile erişim yapılacaksa 443 portunun yönlerilmesinin yapılmış olduğu kontrol edilmelidir.

Aybı şekilde Lync, Sharepoint içerisinden de aynı işlevi kullanabilirler.
doc, docx, dotx, dot, dotm, xls, xlsx, xlsm, xlm, xlsb, ppt, pptx, pps, ppsx, potx, pot, pptm, potm, ppsm

Öncelikle Windows Server 2008 R2, Windows Server 2012 yada Windows Server 2012 R2 olan sunucuda kurulduktan sonra düncelleştirmeleri yapılr ve domaine alınır. Daha sonra aşağıdaki PowerShell komutuyla gerekli bileşenler kurulur.

Windows Server 2008 R2 için aşağıdkai gereksinimler kurulur
SP1
.Net FrameWork 4.5
PowerShell 3.0
KB2670838

PowerShell de aşağıdaki komutlar uygulanarak gerekli bilşenlerin yüklenmesi sağlanır.
Import-Module ServerManager
Add-WindowsFeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,Web-Security,Web-Windows-Auth,Web-Filtering,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Console,Ink-Handwriting,IH-Ink-Support

Gerekli olursa sunucu yeniden başlatılır.


Windows Server 2012 ve 2012 R2 de
Aşağıdaki komut PowerShell de uygulanarak gerekli bileşenlerin kurulması sağlanır.
Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServices
Gerekli olursa sunucu yeniden başlatılır.

http://www.microsoft.com/en-us/download/details.aspx?id=35489 adresinden Microsoft Office Web Apps Server indirilebilir.
Setup.exe çalıştırılarak kuruluma başlanır. Ekrana gelen Lisans sözleşmesi  kabul edilir. Sonraki ekransa kurulum yapılacak klasör belirlenir Install Now butonuna tıklanır.
  

Kurulum bitirilince aşağıdaki pencere ekrana gelir.
http://technet.microsoft.com/en-US/office/ee748587.aspx adresinden son güncelleştirmeler kontrol edileirek yüklenebilir. Windows Update ile de son güncelleştirmeler sunucuya yüklenebilir.

.
 Dil paketleri http://www.microsoft.com/en-us/download/details.aspx?id=35490 adresinden yüklenir.




Eğer HTTPS ile bağlantı yapılması isteniyorsa Exchange CAS sunucu üzerindeki SSL sertifikası sunucuya yüklenir. Bunun için Exchnage CAS suncuda Runàmmc yazılır ve OK butonuna tıklanır.
Ekrana gelen MMC penceresinde File à Add/Remove Snap-In seçilir. Available snap-ins kısmında Certificates seçilir ve Add butonuna tıklanır. Ekrana gelen pencerede Computer Account seçilir ve Finish tıklanır. OK butonuna tıklanır.

Certificates (Local Computer) à Personal à Certificates başlığında tıklanır. Sağdaki kısımda ilgili sertifika üzerinde sağ tıklanır ve Export seçilir. 


 Ekrana gelen pencered Next tıklanır,  Export Private Key penceresinde Yes seçilir ve Next tıklanır. Export File Format penceresimde Export all extended properties seçilir ve Next butonuna tıklanır. Secutiry penceresinde parola verilir ve Next butonuna tıklanır. Filer to Export penceresinde setifikanın kayıt edileceği konum ve açıklayıcı bir isim belirlenir ve Save butonuna tıklanır. Next ve Finish butonlarına tıklanarak işlem bitirilir. Export edilen sertifika OWA WebApps sunucusuna kopyalanır.

Owa Web Apps sunucusunda yine Certificates konsolu Local Computer ile açılır. Certificates (Local Computer) à Personal à Certificates başlığında sağ tıklanır. Açılan menüden All Tasks à Import seçilir. Kopyalanan pfx uzantılı sertifika gösterilir. Sertifikanın Friendly Name kısmaındaki ifade not edilir.
OWA Web Apps sunucuda Power Shell yönetici tekisi ile açılır. Sırasıyla aşağıdaki komutlar uygulanır.

Import-Module -Name OfficeWebApps komutu ile komut seti yüklenebilir.
New-OfficeWebAppsFarm -InternalURL "https://owas.owaskotroletdomainadi.com" -ExternalURL "https://owas.owaskotroletdomainadi.com" -CertificateName "owaskotroletdomainadi-cer" –EditingEnabled

İçerden ve dışardan belirlenmiş olan DNS adı eşimin olduğu kontrol edililir.

Domain adınının owaskotroletdomainadi.com olduğunu varsayalım.
https://owas.owaskontroletdomainadi.com/hosting/discovery adresine girildiğinde aşağıdakine benzer bir sayfanın gelmesi beklenir.


Öncelikle önceden bir Owa Wep Apps sunucu yapılandırması var mı Exchange Power Shell ile kontrol edilebilir.
Get-OrganizationConfig | fl WAC*

Aşağıdaki komutla Owa Web Apps sunucu adresi konfigüre edilir.
Set-OrganizationConfig -WACDiscoveryEndpoint https://owas.owaskotroletdomainadi.com/hosting/discovery

Bu komuttan hemen sonra IIS konsolunda MSExhangeAppPool Recylce edilir. Cas sunucudaki Application Log da 142 nolu Event ID oluştuğu gözlemlenir.

İsteğe göre OWA üzerinde dökümanların Owa Wep Apps ile kullanıcıdan bir aksiyon gelmeden açılması sağlanabilir. Bunu için aşağıdkai komutlar CAS sunucularda uygulanır.

Set-OwaVirtualDirectory "cassunucuadi\owa (Default Web Site)" -ForceWacViewingFirstOnPublicComputers $true -ForceWacViewingFirstOnPrivateComputers $true

Owa açılarak bir dökümanın tarayıcı penceresinde açılabildiği (Preview) kontrol edilir.
Ayrıntılı Bilgi İçin

ofis dosyalarının owada görülmesi

26 Mart 2014 Çarşamba

Exchange Server 2010 Sp3 Mail Recipients ve Distribution Group İzinlerinin Belirli Kullanıcılara verilmesi Exchange Server 2010 Delagation



Exchange Server 2010 Sp3 Mail Recipients ve Distribution Group İzinlerinin Belirli Kullanıcılara verilmesi


Öncelikle Exchange 2010 ile beraber gelen yetki grupları ile yönetimin dağıtılması sağlanabilir. Ancak istenilenden fazla yetki de verilebilir. Yetkilerin sınırlandırılması için Exchange içerisindeki Role Grupları, Role Gruplarına atacak yetki ve komut parametrelerinin belirlenmesi ile istenen yetkilerin verilmesi sağlanabilir. Burada RBAC ve diğer konularla ilgili birçok bilgi bulabilirsiniz. 
Aşağıdaki link ve "role based access control rbac exchange 2010" gibi bir ifade ile arama yapıldığında çıkan sonuçlar yeterli olacaktır.
Burada RBAC ve diğer konularla ilgili detaylı bilgi bulabilirsiniz.
http://technet.microsoft.com/en-us/library/dd298183(v=exchg.150).aspx

Bu nedenle açıklama yapmadan istenilen yetkilerin verilmesi için gerekli adımları uygulamaya başlayabiliriz.

Amaç belirli bir kullanıcı grubuna Mail Box ve Distribution Group oluşturma ve Mailbox ve Distribution Grup özelliklerinde değişiklik yapma yetkisinin verilmesi. Delete, Disable, Remove ve MailBox üzerindeki Mail Forward, Quota ların yetki verilen kullanıcı grubun tarafından değiştirilmesinin engellenmesi.
Kısaca Exchange 2010 içerisindeki yetki gruplarının, bir kopyasını alıp, içinde gerekli değişiklikleri yapıp ilgili gruba atayarak yetkilendirme yapılır.

1. Kurulumla beraber gelen grupların yetkileri yeni oluşturulan yetki gruplarına aşağıdaki gibi kopyalanır.

Get-ManagementRole "Distribution Groups" | New-ManagementRole "YardimMasasi Distribution Groups"
Get-ManagementRole "Mail Recipient Creation" | New-ManagementRole "YardimMasasi Mail Recipient Creation No Delete"
Get-ManagementRole "Mail Recipients" | New-ManagementRole "YardimMasasi Mail Recipients No Delete"


2. Yeni oluşturulan yetki grupları içindeki silme gibi yetkiler aşağıdaki komutlarla alınır.
Burada -like yada -eq kullanılabilir. Komutun hangi yetkileri sileceğini görmek için sonuna -Whatif eklenebilir.

Get-ManagementRole "YardimMasasi Distribution Groups" | Get-ManagementRoleEntry | where {$_.name -like "Remove-DistributionGroup"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Distribution Groups" | Get-ManagementRoleEntry | where {$_.name -like "Remove-DynamicDistributionGroup"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Distribution Groups" | Get-ManagementRoleEntry | where {$_.name -like "Disable-DistributionGroup"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Distribution Groups" | Get-ManagementRoleEntry | where {$_.name -like "Write-AuditAdminLog"} | Remove-ManagementRoleEntry


Get-ManagementRole "YardimMasasi Mail Recipients Creation" | Get-ManagementRoleEntry | where {$_.name -like "Remove*" } | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients Creation" | Get-ManagementRoleEntry | where {$_.name -like "Write*" } | Remove-ManagementRoleEntry

Silinen izinler
Remove-RemoteMailbox
Remove-Mailbox
Remove-MailUser
Write-AdminAuditLog
Remove-MailContact

Get-ManagementRole "YardimMasasi Mail Recipients" | Get-ManagementRoleEntry | where {$_.name -like "set-mailboxpermission"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients" | Get-ManagementRoleEntry | where {$_.name -like "Disable-*"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients" | Get-ManagementRoleEntry | where {$_.name -like "Remove-*"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients" | Get-ManagementRoleEntry | where {$_.name -like "Write-AdminAuditLog"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients" | Get-ManagementRoleEntry | where {$_.name -like "Clear-ActiveSyncDevice"} | Remove-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients" | Get-ManagementRoleEntry | where {$_.name -like "Add-MailboxFolderPermission"} | Remove-ManagementRoleEntry


Yeni oluşturlan gruplardaki yetkiler aşağıdaki komutla görülebilir.
Get-ManagementRole "YardimMasasi Distribution Groups" | Get-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipient Creation No Delete" | Get-ManagementRoleEntry
Get-ManagementRole "YardimMasasi Mail Recipients No Delete" | Get-ManagementRoleEntry

3. İstenmeyen diğer yetkilerin alınması. Örnek olarak Bir Mailbox üzerinde Forward, Kota düzenleme yetkileri

Set-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-Mailbox" -Parameters ForwardingAddress,ForwardingSmtpAddress -RemoveParameter
Set-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-Mailbox" -Parameters ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota -RemoveParameter
Set-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-Mailbox" -Parameters RetainDeletedItemsFor,RetainDeletedItemsUntilBackup -RemoveParameter
Set-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-Mailbox" -Parameters GrantSendOnBehalfTo -RemoveParameter
Set-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-Mailbox" -Parameters SharingPolicy -RemoveParameter

Aşağıdaki komutla yetki verilen komutla uygulanabilir parametrenin izinin kaldırılğı kontrol edilebilir. Komutun çıktısı olmamalı. 
Get-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-Mailbox" | where {$_.parameters -eq "ForwardingAddress"}

Biraz açıklama ihtiyacı hissediyorum. ManagementRoleEntry içindeki kullanılabilir komutlar aşağıdaki gibi görülebilir. 
Tüm uygulanabilir komutların görülmesi için aşağıdaki komutlar uygulanabilir.
Get-ManagementRoleEntry "YardimMasasi Mail Recipients\*"
Get-ManagementRole "YardimMasasi Mail Recipients" | fl RoleEntries

Belirli bir komutun parametrelerinin görülmesi ile, verilen yetklilerle uygulanabilir komutların içindeki hangi parametrelerin kısıtlanabileceği belirlenebilir.
Get-ManagementRoleEntry "YardimMasasi Mail Recipients\Set-User" | paramaters
get-help set-user -Detailed | more

get-help çıktısındaki parametrelerin ismi yazılarak yetkiler kısıtlanabilir.


4. Yetki verilecek kullanıcıların yada grupların üye yapılacağı Management Role Group oluşturulması, yeni oluşturulan Management Role Groupların, Role Group a bağlanması ve yetki verilecek Active Directory Grubunun RoleGroup a üye yapılması
New-RoleGroup -Name "Test" -Roles "YardimMasasi Distribution Groups","YardimMasasi Mail Recipient Creation","YardimMasasi Mail Recipients" -Members "Yardim Masasi Grubu"

Örnek olarak Set-Mailbox komutu parametrelerini aşağıda sıraladım.
AcceptMessagesOnlyFrom,
AcceptMessagesOnlyFromDLMembers,
AcceptMessagesOnlyFromSendersOrMembers,
AddOnSKUCapability,
AddressBookPolicy,
Alias,
AntispamBypassEnabled,
ApplyMandatoryProperties,
Arbitration,ArbitrationMailbox,
ArchiveDatabase,ArchiveDomain,
ArchiveName,
ArchiveQuota,
ArchiveStatus,
ArchiveWarningQuota,
AuditAdmin,
AuditDelegate,
AuditEnabled,
AuditLogAgeLimit,
AuditOwner,
BypassLiveId,
BypassModerationFromSendersOrMembers,
CalendarLoggingQuota,
CalendarRepairDisabled,
CalendarVersionStoreDisabled,
ClientExtensions,
Confirm,
CreateDTMFMapCustomAttribute1,
Database,
DefaultPublicFolderMailbox,
DeliverToMailboxAndForward,
DisplayName,DomainController,
DowngradeHighPriorityMessagesEnabled,
DumpsterMessagesPerFolderCountReceiveQuota,
DumpsterMessagesPerFolderCountWarningQuota,
EmailAddresses,EmailAddressPolicyEnabled,
EnableRoomMailboxAccount,
EndDateForRetentionHold,
EvictLiveIdExtensionCustomAttribute1,
ExternalOofOptions,
FederatedIdentity,
FolderHierarchyChildrenCountReceiveQuota,
FolderHierarchyChildrenCountWarningQuota,
FolderHierarchyDepthReceiveQuota,
FolderHierarchyDepthWarningQuota,
Force,
ForwardingAddress,
ForwardingSmtpAddress,
GMGen,
GrantSendOnBehalfTo,
HiddenFromAddressListsEnabled,
IgnoreDefaultScope,
ImListMigrationCompleted,
ImmutableId,
IsExcludedFromServingHierarchy,
IssueWarningQuota,
JournalArchiveAddress,
Languages,
LinkedCredential,
LinkedDomainController,
LinkedMasterAccount,
LitigationHoldDate,
LitigationHoldDuration,
LitigationHoldEnabled,
LitigationHoldOwner,
MailboxMessagesPerFolderCountReceiveQuota,
MailboxMessagesPerFolderCountWarningQuota,
MailboxPlan,
MailRouting,
MailTip,
MailTipTranslations,
ManagedFolderMailboxPolicy,
ManagedFolderMailboxPolicyAllowed,
Management,
MaxBlockedSenders,
MaxReceiveSize,
MaxSafeSenders,
MaxSendSize,
MessageTracking,
MessageTrackingReadStatusEnabled,
MicrosoftOnlineServicesID,
ModeratedBy,
ModerationEnabled,
Name,
NetID,
NewPassword,
OABGen,
Office,
OfflineAddressBook,
OldPassword,
OriginalNetID,
Password,
PrimarySmtpAddress,
ProhibitSendQuota,
ProhibitSendReceiveQuota,
PstProvider,
PublicFolder,
QueryBaseDN,
QueryBaseDNRestrictionEnabled,
RecipientLimits,
RecoverableItemsQuota,
RecoverableItemsWarningQuota,
RejectMessagesFrom,
RejectMessagesFromDLMembers,
RejectMessagesFromSendersOrMembers,
RemoteAccountPolicy,
RemoteRecipientType,
RemoveManagedFolderAndPolicy,
RemovePicture,
RemoveSpokenName,
RequireSecretQA,
RequireSenderAuthenticationEnabled,
ResetPasswordOnNextLogon,
ResourceCapacity,
ResourceCustom,
RetainDeletedItemsFor,
RetainDeletedItemsUntilBackup,
RetentionComment,
RetentionHoldEnabled,
RetentionPolicy,
RetentionUrl,
RoleAssignmentPolicy,
RoomMailboxPassword,
RulesQuota,
SamAccountName,
SCLDeleteEnabled,
SCLDeleteThreshold,
SCLJunkEnabled,
SCLJunkThreshold,
SCLQuarantineEnabled,
SCLQuarantineThreshold,
SCLRejectEnabled,
SCLRejectThreshold,
SecondaryAddress,
SecondaryDialPlan,
SendModerationNotifications,
SharingPolicy,
SimpleDisplayName,
SingleItemRecoveryEnabled,
SKUAssigned,
SKUCapability,
StartDateForRetentionHold,
SuiteServiceStorage,
TenantUpgrade,
ThrottlingPolicy,
Type,
UMDataStorage,
UMDtmfMap,
UMGrammar,
UsageLocation,
UseDatabaseQuotaDefaults,
UseDatabaseRetentionDefaults,
UserCertificate,
UserPrincipalName,
UserSMimeCertificate,
WhatIf,
WindowsEmailAddress,
WindowsLiveID,

13 Mart 2014 Perşembe

SQL Server Cluster Ortamında User Database, System Database, Reporting Server veritabanlarının (master, model, msdb) yeni sürücüye taşınması.

Yeni Diskler tüm Cluster üyesi sunuculara yada tekil sunucuya tanıtılır.
Herhangi bir cluster üyesi sunucudan Disk Management ile disk Online ve Initialize edilir ve Formatlanır. Disk Diğer Cluster üyesi sunucularda kullanılmayan sürücü harfi belirlenir.
Disk tekrar offline yapılır.
Failove Cluster Manager konsolunda Storage başlığına sağ tıklanır ve Add Storage seçilir ve disk eklenir.
Service and Application altında diskin ekleneceği SQL Cluster Resource üzerinde sağ tıklanır ve Add Storage seçilir.

Eklenen disk Other Resource altında SQL Server (InstanceName) özelliklerinde Dependencies e eklenir.

OK butonuna tıklanır. SQL Server Resource Offline ve Online yapılarak yapılana ayarların etkinleşmesi sağlanır.

Auditlerin taşınması:
Eğer Audit yapılandırılmış ise SQL Server Man Consolde Security --> Audits altındaki her tanımlama için, sağ tıklanır Disable Audit seçilir. Sonra Audit özelliklerinde teki log dosyalarının konumları değiştirilir.Önceki log dosyaları yeni diskteki belirlenmiş klasörlere kopyalanır. Enable Audit ile loglama aftifleştirilir. Eğer fazla dosya varsa bu işlem daha sonraya bırakılabilir.

User Db lerin taşınması:
Taşınacak veritabanları Deatach edilip yeni konumlarına kopyalanıp attach edilir.

TempDb nin taşınması:
Önce Temp dblerin konumunu değiştiriyoruz. Taşınacak sürücünün T olduğunu düşünelim.

USE master
GO
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = 'T:\TmpDATA1\tempdb.mdf') 
GO 
ALTER DATABASE tempdb MODIFY FILE (NAME = templog, FILENAME = 'T:\TmpDATA1\tempdb.ldf')
GO

SQL Servisi yeniden başlatılır. 

Temp dbler için Internet üzerinde konfigürasyon önerilerini bulabilirsiniz. Genel olarak CPU sayısı kadar tmp db açılması yada 8 den fazla yapılmaması gibi öneriler bulunmakta. Bu çalışmada 8 core olan bir sunucuda tempDb leri oluşturuyoruz. TempDb lerin oluşturulacağı sürücünün T: sürücüsü olduğunu düşünelim.


ALTER DATABASE tempdb

ADD FILE (NAME = tempdb1, FILENAME = 'T:\TmpDATA1\tempdb1.mdf', SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdb2, FILENAME = 'T:\TmpDATA1\tempdb2.mdf', SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdb3, FILENAME = 'T:\TmpDATA1\tempdb3.mdf', SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdb4, FILENAME = 'T:\TmpDATA1\tempdb4.mdf', SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdb5, FILENAME = 'T:\TmpDATA1\tempdb5.mdf', SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdb6, FILENAME = 'T:\TmpDATA1\tempdb6.mdf', SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdb7, FILENAME = 'T:\TmpDATA1\tempdb7.mdf', SIZE = 1024);

GO

SQL Servisi yeniden başlatılır. Dosyaların verilen konumda oluştuğu kontrol edilebilir.


Sistem Veritabanlarının Taşınması:
Sistem veritabanları taşımak için aşağıdaki Query uygulanır. 

ALTER DATABASE  Model  MODIFY FILE ( NAME = modeldev, FILENAME = 'K:\Data1\model.mdf' )
ALTER DATABASE  Model  MODIFY FILE ( NAME = modellog , FILENAME = 'K:\Data1\modellog.ldf' )

ALTER DATABASE  MSDB MODIFY FILE ( NAME = MSDBData, FILENAME = 'K:\Data1\MSDBData.mdf' )
ALTER DATABASE  MSDB MODIFY FILE ( NAME = MSDBLog , FILENAME = 'K:\Data1\MSDBLog.ldf' )

SQL Servisi durdurulur.
Dosyalar ilgili konuma kopyalanır.

Master Db nin taşınamsı için
SQL Server Configuration Manager açılır. SQL Server Services başlığına tıklanır. Sağdaki pencerede SQL Server (InstanceName) özelliklerine girilir. Advanced tabında Start Parameters taşınacak klasörlerin yolları
yazılarak düzenlenir.

Startup Parameters ilk hali
-dL:\MSSQL10_50.MSSQLSERVER2\MSSQL\DATA\master.mdf;-eL:\MSSQL10_50.MSSQLSERVER2\MSSQL\Log\ERRORLOG;-lL:\MSSQL10_50.MSSQLSERVER2\MSSQL\DATA\mastlog.ldf

Düzenlenen hali
-dK:\Data1\master.mdf;-eK:\Logs\ERRORLOG;-lK:\Data1\mastlog.ldf

Dump Directory parametresindeki klasör yolu da düzenlenir.

Aşağıdaki Query ile MasterDB nin konumunun doğru olduğu gözlemlenir.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID('master');
GO

SQL Servisi başlatılır.

Log Konumlarının değiştirilmesi.
SQL Management Studio açılır. SQL Server Agent altında Error Logs üzerinde sağ tıklanır ve Configure seçilir. Ekrana gelen pencerede ilgili ayarlar yapılandırılır.

Analysis Service Taşınması:
SQL Management Studio açılır,Analysis Service e bağlanılır. 










Analysis Server Özelliklerinde BackupDir, DataDir, LogDir yolları düzenlenir.


Management Studio kapatılır. Analysis Service durdurulur. OLAP klasörü yeni sürücüye kopyalanır.
Tüm Cluster üyesi sunucularda aşağıdaki Registry ayarları yapılır.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MSSQLServerOLAPService
yada
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MSOLAP$InstanceName anahtarında ImagePath yeni sürücü yolu olarak düzenlenir.


OLAP\Config\msmdsrv.ini dosyası açılır ve yol tanımları düzenlenir.

<ConfigurationSettings>
    <DataDir>K:\OLAP\Data</DataDir>
    <LogDir>K:\OLAP\Log</LogDir>
    <BackupDir>K:\OLAP\Backup</BackupDir>
     <AllowedBrowsingFolders>K:\OLAP\Backup\|K:\OLAP\Log\</AllowedBrowsingFolders>
    <TempDir>K:\OLAP\Temp</TempDir>


Reporting Services Taşınması:
Aynı sunucu içinde başka bir sürücüye taşıma yapacağımız için ReportingServer ve ReportingServTempDB veritabanları Detach edip, ReportServer.mdf, ReportServer_log.ldf, ReportServerTempDB, ReportServerTempDB_log.ldf dosyaları yeni konuma kopyalanır ve atach edilir. Report Server URL sine bağlanılır. Sorun olursa Reporting Services Configuration Manager da Database başlığı altında Change Database butonu tıklanır ve ekrana gelen pencerede Choose an existing report server database seçilir ve Next butonuna tıklanır. Sonraki pencerede SQL Server üzerinde yönetim yetkisine sahip SQL kullanıcısı yada zeten login olmuş kullanıxı yetkisi ile Report Server a bağlanılır. Test Connection ile bağlantı doğrulanır. Credentials bölümünde Credentials seçilerek ayarlar bitirilir ve tekrar bağlantı test edilir.


Default Database Location:

SQL Management Studio açılır. Sunucu adı üzerinde sağ tıklanır, ekrana gelen pencerede Database Settings de yeni sürücü ve klasör yolu düzenlenir.


Failover Cluster Manager açılır ve Devreden çıkarılacak Diskin ilişkisi, SQL Server (Instance Name) özelliklerinde, Dependicies tabında seçilerek Delete butonu ile kaldırılır ve Disk Offline yapılır.SQL Server Active Node, uygun olan diğer bir Node üzerine alınır. Hatalar gözlemlenir. Eğer hata görülmüyorsa Failover Cluster Manager, Service and applications altında SQL Server (Instance Name) seçililir ve detay penceresinde Disk Drives altında ilgili disk seçlerek Remove from SQL server seçilerek işlem bitirilir.

Move master db sql cluster