Forum

Exchange 2010 Bazı ...
 
Bildirimler
Hepsini Temizle

Exchange 2010 Bazı kullanıcılarda OWA ya giremiorum.

8 Yazılar
3 Üyeler
0 Likes
659 Görüntüleme
(@hilmicihan)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Merhaba Arkadaşlar;


Uzun zamandır takipcisi olduğum foruma bün üyeliğim gerçekleşti. Sizlerden bir konu hakkında yardım telebim olacak.


Server 2008 Ent. üzerinde Exchange 2010 SP1 kullanıyoruz. Exchange 2007 den geçiş yaptık. Şuan eskiden gelen bazı kullanıcılarda owa ya login olmak istediğimde "Posta kutunuzu kullanmaya çalışırken bir sorun oluştu" diye bir hata alıyorum. Yaptığım araştırmalarda AD de kullanıcının security ayarlarında include inheritable işaretli olması gerektiği söyleniror. bende işaretli ama hala login olamıyorum. Konuyla ilgili ardımlarınız için şimdiden teşekkürler. 

 
Gönderildi : 09/01/2012 18:25

(@selahattinsadoglu)
Gönderiler: 826
Prominent Member
 

Merhaba,

Bu sorun sadece geçiş yapılan kullanıcılar damı oluyor?Yoksa yeni bir kullanıcı oluşturup tekrar girmeye çalışınız.Yine aynı sorunu yaşıyor musunuz?Yoksa zaten Inherit varsayılan olarak işaretli olarak gelmektedir.Bunu test etmek için dediğim gibi yeni bir kullanıcı oluşturunuz.Inherit checkbox kısmını kontrol ediniz.Ve ya farklı bir sys admin olarak giriş yapmış olabilirsiniz. Farklı bir admin olarak sisteme girip tekrar test ediniz.

 

Saygılarımla,

 
Gönderildi : 09/01/2012 19:14

(@hilmicihan)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Merhaba;


Yeni kullanıcı eklediğimde giriş yapabiliyorum. Taşıma dan gelen kullanıcıların tümünde sorun yaşamıyorum. Sadece bazı kullanıcılarda bu sorunu yaşamaktayım. Sisteme Administrator kullanıcı ismi ile bağlanıyorum. İçeriden veya dışarıdan owaya login olmak istediğimde bazı kullanıcılarda bu sorunu yaşamaktayım. Teşekkürler

 
Gönderildi : 09/01/2012 19:19

(@selahattinsadoglu)
Gönderiler: 826
Prominent Member
 

Merhaba,

Öncelikle Inherit işaretli olmayan tüm kullanıcıları powershell script yardımıyla listeleme yapalım.

get-qaduser -sizelimit 0 -securitymask DACL | get-qadpermission 

Farklı olarak aşağıdaki komutuda kullanabilirsiniz.

gci . -rec|where{$_.psiscontainer}|foreach{if(($_|get-acl|foreach{$_.sddl}) -eq $no_inh){$_.fullname}} 

Ve ya farklı bir çözüm olarak Öncelikle listeyi aşağıdaki komutla alırsınız.

Get-QADUser -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected}

Sonrasında Inherit off olan kullanıcıları tekrar fix işlemini yapmak için aşağıdaki komutu kullanabilirsiniz.

Get-QADUser -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected} | Set-QADObjectSecurity -UnlockInheritance

Bunların çıktılarını bizimle paylaşınız.

 

Saygılarımla,

 
Gönderildi : 09/01/2012 20:03

(@hilmicihan)
Gönderiler: 3
Active Member
Konu başlatıcı
 

Merhaba;


Öncelikle ilglinize teşekkürler. Verdiğiniz komutlarda değiştirmem gereken bir alan varmı? Verdiğiniz şekilde çalıştırdığımda hata alıyorım. Gelen hatalar aşağıdaki gibidir.. Teşekkürler


VERBOSE: Connected to ekolexc.ekolofset.com.
[PS] C:\Users\administrator.domain.local\Desktop>get-qaduser -sizelimit 0 -securitymask DACL | get-qadpermission
The term 'get-qaduser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:12
+ get-qaduser <<<<  -sizelimit 0 -securitymask DACL | get-qadpermission
    + CategoryInfo          : ObjectNotFound: (get-qaduser:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


[PS] C:\Users\administrator.domain.local\Desktop>gci . -rec|where{$_.psiscontainer}|foreach{if(($_|get-acl|foreach{$_.sddl}) -eq $no_inh){$_.fullname}}
[PS] C:\Users\administrator.domain.local\Desktop>Get-QADUser -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected}
The term 'Get-QADUser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:12
+ Get-QADUser <<<<  -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected}
    + CategoryInfo          : ObjectNotFound: (Get-QADUser:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


[PS] C:\Users\administrator.domain.local\Desktop>
[PS] C:\Users\administrator.domain.localIN\Desktop>Get-QADUser -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected} | Set-QADObjectSecurity
 -UnlockInheritance
The term 'Get-QADUser' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At line:1 char:12
+ Get-QADUser <<<<  -SizeLimit 0 | where {$_.DirectoryEntry.psbase.ObjectSecurity.AreAccessRulesProtected} | Set-QADObjectSecurity -UnlockInheritance
    + CategoryInfo          : ObjectNotFound: (Get-QADUser:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


[PS] C:\Users\administrator.domain.local\Desktop>

 
Gönderildi : 09/01/2012 20:28

(@selahattinsadoglu)
Gönderiler: 826
Prominent Member
 

Merhaba,

Exchange Management Shell ekranından değide  Powershell Shell ekranından admin olarak açınız.Sonra EMS snapin yüklemek için aşağıdaki komutu kullanınız.

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

Sonra tekrar komutları çalıştırmayı deneyiniz.

 Bu arada birde Powershell script çalıştırma yetkisinin full olduğundan emin olunuz.

http://www.geeksww.com/tutorials/operating_systems/ms_windows/administration/how_to_set_permissions_to_run_powershell_scripts.php

Saygılarımla,

 
Gönderildi : 09/01/2012 20:55

(@sakaryafirat)
Gönderiler: 274
Honorable Member
 

merhaba

 kullanıcının security ayarlarında include inheritable işaretini kaldır tamam de.  daha sonra tekrar aynı yere girip işaretle

 
Gönderildi : 10/01/2012 16:13

(@selahattinsadoglu)
Gönderiler: 826
Prominent Member
 

Yukarıdaki işlemlere ek olarak alternatif olarak yapabileceğin işlem ise AdminSDHolder sorunu gibi duruyor.Bunun için yapman gereken ADSIEdit ile AdminCount=1 değerine sahip kullanıcıların varsa(ki bunu önceden tespit etmen lazım.)Sonra bunu aşağıdaki VBS script yardımıyla yapabilirsiniz.

Ama öncelikle Inherit permission sorunu olan kullanıcıları tespit etmen lazım.bunun için komut satırından ;

 ldifde -f Admincount-1.txt -d dc=your domain -r "(&(objectcategory=person)(objectclass=user)(admincount=1))"

 yukarıdaki komut içinde sadece your domain olan kısmı kendi domain alan bilginizi giriniz.Çıkan sonuçlarda Inherit permission ve ACL permission olan kullanıcılar listenecektir.Sonrasında aşağıdaki script ile otomatik bu işlemi yapabilirsiniz.

'********************************************************************
'*
'* File:           ResetAccountsadminSDHolder.vbs
'* Created:        November 2003
'* Version:        1.0
'*
'*  Main Function:  Resets all accounts that have adminCount = 1 back
'*    to 0 and enables the inheritance flag
'*
'*  ResetAccountsadminSDHolder.vbs
'*
'* Copyright (C) 2003 Microsoft Corporation
'*
'********************************************************************

Const SE_DACL_PROTECTED = 4096

On Error Resume Next

Dim sDomain
Dim sADsPath
Dim sPDC

Dim oCon
Dim oCmd
Dim oRst
Set oRst = CreateObject("ADODB.Recordset")
Set oCmd = CreateObject("ADODB.Command")
Set oCon = CreateObject("ADODB.Connection")

Dim oRoot
Dim oDomain
Dim oADInfo
Dim oInfo
Set oADInfo = CreateObject("ADSystemInfo")
Set oInfo = CreateObject("WinNTSystemInfo")
sPDC = oInfo.PDC & "." & oADInfo.DomainDNSName

oCon.Provider = "ADSDSOObject"
oCon.Open "Active Directory Provider"

oCmd.ActiveConnection = oCon

Set oRoot = GetObject("LDAP://rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sADsPath = "<" & oDomain.ADsPath & ">"

oCmd.CommandText = "SELECT ADsPath FROM 'LDAP://" & sPDC & "/" & sDomain & "' WHERE objectCategory='person' and objectClass = 'user' AND adminCount = 1"
Set oRst = oCmd.Execute

WScript.Echo "searching for objects with 'admin count = 1' in " & sDomain

If oRst.RecordCount = 0 Then
    WScript.Echo "no accounts found"
    WScript.Quit
End If

Do While Not oRst.EOF
    WScript.Echo  "found object " & oRst.Fields("ADsPath")
    If SetInheritanceFlag(oRst.Fields("ADsPath")) = 0 Then WScript.Echo "Inheritance flag set"
    If SetAdminCount(oRst.Fields("ADsPath"), 0) = 0 Then WScript.Echo "adminCount set to 0"
    WScript.Echo  "=========================================="
    oRst.MoveNext
Loop

Private Function SetInheritanceFlag(DSObjectPath)

    Dim oSD
    Dim oDACL
    Dim lFlag
    Dim oIADs

    Set oIADs = GetObject(DSObjectPath)

    Set oSD = oIADs.Get("nTSecurityDescriptor")

    If oSD.Control And SE_DACL_PROTECTED Then
        oSD.Control = oSD.Control - SE_DACL_PROTECTED
    End If

    oIADs.Put "nTSecurityDescriptor", oSD
    oIADs.SetInfo
   
    If Err.Number <> 0 Then
        SetInheritanceFlag = Err.Number
    Else
        SetInheritanceFlag = 0
    End If

End Function

Private Function SetAdminCount(DSObjectPath, AdminCount)

    Dim oIADs
    Dim iAdminCount

    Set oIADs = GetObject(DSObjectPath)

    iAdminCount = oIADs.Get("adminCount")

    If iAdminCount = 1 Then iAdminCount = 0

    oIADs.Put "adminCount", iAdminCount
    oIADs.SetInfo
    If Err.Number <> 0 Then
        SetAdminCount = Err.Number
    Else
        SetAdminCount = 0
    End If
   
End Function

----------------------------------------------------------------------------------------------------------------------------------

2.yöntem olarak da yapmanız gereken ;

1.Windows Powershell oturumu açınız.
2.Active Directory modülünü import edin.
    Import-Module ActiveDirectory
3.admincount=1 olan kullanıcı hesaplarını bulmak için aşağıdaki Get-ADUser cmdlet
komutunu kullanın.

    Get-ADUser -LDAPFilter "(objectcategory=person)(samaccountname=*)(admincount=1)"

Sonrasında o kullanıcının "Advanced Security settings for domain adınız" olan ayarlardan
permissions sekmesindeyken aşağıdaki "Include inheritable .... " başlayan yazının yanındaki check kaldırıp tekrar işaretleyip tekrar test ediniz.

 

Saygılarımla,

 
Gönderildi : 10/01/2012 19:30

Paylaş: