Active Directory Kabusları

by Murat Duman 22. Mayıs 2008 05:21

Microsoft Virtual PC 2007 kullanarak Windows Server 2003 R2 kurmuş olduğum sanal makineme Windows Sharepoint Services (MOSS 2007 için de aynı sorun oluşuyor) yükledim. Bu makine üzerinde aynı zamanda Web Part geliştirme de yaptığım için Visual Studio 2005 gibi araçlar da yüklü. Son zamanlarda uğraştığım Active Directory(AD)'de tanımlı Sharepoint kullanıcılarının site üzerinden AD şifrelerini değiştirmelerine olanak sağlayan ChangePassword Web Part'ını test etmek için, web part deployment yaptıktan sonra AD yüklü bir makinede testleri gerçekleştirmem gerekiyordu. Bu zahmetten kurtulmak için sanal makineme yeni bir AD kurmaya karar verdim. İşte kabuslarım da tam bu zaman başladı :)

Windows Server Update Services (WSUS) ya da Sharepoint yüklü bir Windows Server 2003 makinesini "Domain Controller(DC)" olarak yükselttiğinizde çok ciddi sorunlarla karşılaşacağınıza emin olabilirsiniz. Nedir bu sorunlar hemen bir bakalım.

http://support.microsoft.com/kb/929665 adresinde de görebileceğiniz bir hata oluşuyor. AD kurulumu ve sunucuyu Domain Controller(DC) olarak yükseltmek için DCPROMO ya da ADPREP kullanımış olabilirsiniz. Hata, Windows Internal Database'in kullanmış olduğu Windows/SYSMSI klasörünün DC tarafından kurulum sonrası güvenlik amaçlı kilitlenmiş olması. Bu yüzden SSEE ya da namı diğer Windows Internal Database bu klasördeki dosyaları okuyamıyor. Sorun KB929665'de şöyle geçiyor: "You cannot start the SQL Server service after you install Active Directory on a Windows Server 2003-based member server or you run the DCPromo command on a Windows Server 2003-based domain controller"

Çözüm için önerilen ise: Msiexec <MSI_File_Name> CALLERID=OCSetup.exe REINSTALL=ALL REINSTALLMODE=omus /qn REBOOT=ReallySupress /l*v <Log_File_Path>

Aslında Workaround olarak geçen bu yöntem hatayı çözmek için değil de hatadan sakınmak için belirtilmiş. Sorun şu ki <MSI_File_Name> ve <Log_File_Path> kısımlarını sizin girmeniz gerekiyor. Bunlar kurulum sırasında root dizinlere açılan SQL, W2K3 ya da WSUS ile ilgili .msi uzantılı dosyalardan biri olabilir. Ayrıca syntax'de tam değil. Bu böyle olmayacak deyip SQL loglarını inceliyoruz ve sorunun ACL bazlı çözebileceğimizi görüyoruz. Yani dosya erişim izinleri değişmiş. Yılların Network Service hesabını yeni yetme DC olan server tahtından indirmiş.

Windows/SYSMSI klasörüne sağ tıklayıp Security kısmından "Network Service" hesabını ekleyip Full Control veriyoruz. Böylelikle yönetimsel araçlardan ya da yönet (Manage) bölümünden ulaşabildiğimiz SQL Server Servislerinden SSEE isimli servisi çalıştırmamız mümkün hale geliyor. Bu servisin sağlıklı çalıştığını gördükten sonra ilerleyelim.

Bundan sonrası için ben Sharepoint üzerinden devam ediyorum. WSUS için ekstra ayarlar gerekebilir, ayrıca e-posta atarsanız cevaplayabilirim)
Sharepoint portalimizi açmaya çalıştığımızda ayrıntılı bir hata mesajı çıkacaktır. Sadece "Server Error in Application" gibi bir uyarı alıyorsanız; Sharepoint sitenizin olduğu dizine giderek (çoğu kurulumda C:\inetpub\wwwroot\wss\VirtualDirectories\80) web.config dosyasını açın ve şunları değiştirin:
 
<CustomErrors mode="Off" /> (eski hali "On" ya da "RemoteOnly"dir)
debug="true"

Sonrasında siteyi tekrar açmaya çalıştığımızda göreceğiz ki Network Service için bazı haklar daha vermemiz gerekiyor. Bunları da kullandığı framework versiyonuna göre hata raporu göstermiş durumda aslında.
Network Service hesabı için "C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" klasörüne de Full Control izni veriyoruz.

Not: Bu noktada görebileceğiniz bir hata da "Unable generate a temporary class (result=1)" olabilir. Çözüm ise C:\Windows\Temp klasörüne IWAM_MAKINEADI şeklindeki sistem hesabı için Full Control izinlerini vermeniz.

Artık çalışsın diye içimizden konuşur dışımızdan bağırırken bir bakıyoruz ki site açılmış ama Web Part'ların hepsi kardeş gibi bir ağızdan şöyle diyorlar:

Web Part Error: Cannot deserialize (convert an XML stream back into an object) the Web Part on the server.
Web Part Error: One of the properties of the Web Part has an incorrect format. Windows SharePoint Services cannot deserialize the Web Part. Check the format of the properties and try again.

Bir diğer ifade ile de: You receive a cannot deserialize the Web Part error message when you view the SharePoint Services home page

Meali: Biraz daha izin vermen lazım arkadaşım. ACL diye boşuna demedik :) KB için: http://support.microsoft.com/kb/826786

Hemen aşağıdaki klasörler için doğru izinler verilmiş mi kontrol ediyoruz.

Windows directory
%WinDir%\Temp
Administrators - Full Control
SYSTEM - Full Control
STS_WPG - Read, Write  (Microsoft sitesinde böyle yazıyor ama WSS 3.0 için WSS_WPG)
Network Service (for a domain controller only) - Read, Write

%WinDir%\system32\logfiles
STS Administrators - Full Control (Bulamazsanız bir de şunu deneyin: WSS_ADMIN_WPG)
SYSTEM - Full Control
STS_WPG - Read, Write (Bulamazsanız bir de şunu deneyin: WSS_WPG)
Network Service (for a domain controller only) - Read, Write


Sonrasında sitemiz de Web Partlarımız da eskisi gibi çalışıyor olacaklar. Artık uykumuza dönebiliriz. Böyle bir duruma düşmemek için yapmanız gereken IIS çalışan bir sunucuya DC kurmamaya özen göstermek. Diğer bir çözüm ise, Active Directory'i sunucuya ilk kurulum sonrası kurmak ve ardından Sharepoint, SQL Server gibi ürünleri yüklemek. DC ile Sharepoint gibi ürünlerin çalıştığı sunucularınızı ayırmak da Farm yapısı için öneriliyor. Sharepoint yedekleriniz varsa Dc kurulumundan sonra çalışmayan sharepoint'i kaldırıp tekrar yüklemek ve yedeklerinizi geri almak da bir alternatif. ACL ayarlarını bulmak her ne kadar uzun sürse de her zaman işe yarıyor olması 2010 yılında karşılaşacağımız bir çok sorunu da şimdiden çözecek gibi görünüyor.

İyi çalışmalar.
Murat Duman.

Yorum ekle




  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading



Powered by BlogEngine.NET 1.5.1.4
Theme by Mads Kristensen

Yazar Hakkında

Murat Duman, muratduman, blog author, seo optimized Murat Duman

E-posta Send mail

Facebook ProfileTwitterLast FMFlickr PhotosFriendFeed UpdatesFeedburner RSS

Reklamlar

Son Yorumlar

Yorum RSS comment

Alexa Ranking

Technology Blogs - BlogCatalog Blog Directory

Yasal Uyarı

Bu sitede sunulan tüm bilgi, dökümanların kullanımından doğacak sorunlardan yazar sorumlu tutulamaz. Bu site ve günce(blog) işverenimin görüşlerini, amaçlarını, planlarını veya stratejilerini temsil etmez. Tüm yazılanlar aksi belirtilmedikçe benim fikrimdir. Uygunsuz yorumlar silinecektir.

Copyright 2007-2011 © Murat Duman