Forum
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.
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,
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
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,
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>
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.
Saygılarımla,
merhaba
kullanıcının security ayarlarında include inheritable işaretini kaldır tamam de. daha sonra tekrar aynı yere girip işaretle
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,