none
Доступ к OWA только отдельным группам пользователей. RRS feed

  • Вопрос

  • Добрый день!

    Хочется, чтобы доступ к OWA регулировался членством в группе пользователей. Нигде не нашел, как этого сделать. Подскажите?


    Alexey Vorobyev
    • Изменен тип Yuriy Lenchenkov 29 ноября 2010 г. 9:00 пользователь покинул тему
    • Изменен тип Yuriy Lenchenkov 10 декабря 2010 г. 14:03
    18 октября 2010 г. 0:35

Ответы

  • Открываете IIS - выбираете виртуальный каталог OWA - на нем правой кнопкой - Edit Permissions - Security - редактируете разрешения.


    http://alexxhost.ru
    • Предложено в качестве ответа Yuriy Lenchenkov 9 ноября 2010 г. 9:04
    • Помечено в качестве ответа Yuriy Lenchenkov 10 декабря 2010 г. 14:03
    18 октября 2010 г. 5:18
  • Я решил следующим образом:

    создал группу в домене и написал скрипт, который выполняется в назначенных заданиях на почтовом сервере

    Function Is-UserInGroup ($User, $Members)
        {
            $Flag = $false
            ForEach ($Member in $Members)
                {
                    If ($User.DistinguishedName -eq $Member.DistinguishedName)
                        {
                            $Flag = $true
                        }
                }
            $Flag
        }

    $Members = (Get-Group "Группа доступа к Outlook Web App").Members
    $AllMailBox = Get-Mailbox -ResultSize unlimited
    ForEach ($MailBox in $AllMailBox)
        {
            If (Is-UserInGroup -user $MailBox -members $Members)
                {
                    IF (-not (Get-CASMailbox $MailBox.DistinguishedName).OWAEnabled)
                        {
                            Set-CASMailbox $MailBox.DistinguishedName -OWAEnabled $true
                        }
                }
            else
                {
                    If ((Get-CASMailbox $MailBox.DistinguishedName).OWAEnabled)
                        {
                            Set-CASMailbox $MailBox.DistinguishedName -OWAEnabled $false
                        }               
                }
               
        }

    • Предложено в качестве ответа Yuriy Lenchenkov 9 ноября 2010 г. 9:04
    • Помечено в качестве ответа Yuriy Lenchenkov 10 декабря 2010 г. 14:03
    18 октября 2010 г. 5:34
  • Можно еще проще - в шедулер запихать PS скрипт вида: (группа должна быть mail-enabled)

    get-distributiongroupmember Имя_группы | Set-CasMailbox -OWAEnabled $true

    • Предложено в качестве ответа Yuriy Lenchenkov 9 ноября 2010 г. 9:04
    • Помечено в качестве ответа Yuriy Lenchenkov 10 декабря 2010 г. 14:04
    18 октября 2010 г. 7:07
    Отвечающий

Все ответы

  • Открываете IIS - выбираете виртуальный каталог OWA - на нем правой кнопкой - Edit Permissions - Security - редактируете разрешения.


    http://alexxhost.ru
    • Предложено в качестве ответа Yuriy Lenchenkov 9 ноября 2010 г. 9:04
    • Помечено в качестве ответа Yuriy Lenchenkov 10 декабря 2010 г. 14:03
    18 октября 2010 г. 5:18
  • Я решил следующим образом:

    создал группу в домене и написал скрипт, который выполняется в назначенных заданиях на почтовом сервере

    Function Is-UserInGroup ($User, $Members)
        {
            $Flag = $false
            ForEach ($Member in $Members)
                {
                    If ($User.DistinguishedName -eq $Member.DistinguishedName)
                        {
                            $Flag = $true
                        }
                }
            $Flag
        }

    $Members = (Get-Group "Группа доступа к Outlook Web App").Members
    $AllMailBox = Get-Mailbox -ResultSize unlimited
    ForEach ($MailBox in $AllMailBox)
        {
            If (Is-UserInGroup -user $MailBox -members $Members)
                {
                    IF (-not (Get-CASMailbox $MailBox.DistinguishedName).OWAEnabled)
                        {
                            Set-CASMailbox $MailBox.DistinguishedName -OWAEnabled $true
                        }
                }
            else
                {
                    If ((Get-CASMailbox $MailBox.DistinguishedName).OWAEnabled)
                        {
                            Set-CASMailbox $MailBox.DistinguishedName -OWAEnabled $false
                        }               
                }
               
        }

    • Предложено в качестве ответа Yuriy Lenchenkov 9 ноября 2010 г. 9:04
    • Помечено в качестве ответа Yuriy Lenchenkov 10 декабря 2010 г. 14:03
    18 октября 2010 г. 5:34
  • Можно еще проще - в шедулер запихать PS скрипт вида: (группа должна быть mail-enabled)

    get-distributiongroupmember Имя_группы | Set-CasMailbox -OWAEnabled $true

    • Предложено в качестве ответа Yuriy Lenchenkov 9 ноября 2010 г. 9:04
    • Помечено в качестве ответа Yuriy Lenchenkov 10 декабря 2010 г. 14:04
    18 октября 2010 г. 7:07
    Отвечающий
  • Аналогичный скрипт на VB (может, кому пригодится):

    Set iAdRootDSE = GetObject("LDAP://RootDSE")
    strDistinguishedName = iAdRootDSE.Get("defaultNamingContext")
    
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand = CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCOmmand.ActiveConnection = objConnection
    
    objCommand.CommandText = "<LDAP://" & strDistinguishedName & ">;(&(objectCategory=person)" & _
    	"(objectClass=user)(mail=*)" & "(!(userAccountControl:1.2.840.113556.1.4.803:=2)))" & _
    	";distinguishedName;subtree"
    
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Timeout") = 30 
    objCommand.Properties("Searchscope") = 2 
    objCommand.Properties("Cache Results") = False
    
    Set objRecordSet = objCommand.Execute
    objRecordSet.MoveFirst
    Do Until objRecordSet.EOF
    	Set objUser=GetObject("LDAP://" & objRecordSet.Fields("distinguishedName").Value)
    	strUserGroups = vbNullString
    	For Each objGroup In objUser.Groups
    		strUserGroups = strUserGroups & "[" & objGroup.Name & "]"
    	Next
    	' Я проверяю членство пользователя в группе "Мобильная почта"
    	If InGroup("Мобильная почта") Then
    		If InStr(objUser.protocolSettings, "HTTP§0") <> 0 Then
    			objUser.protocolSettings = Replace(objUser.protocolSettings, "HTTP§0", "HTTP§1", 1, 1)
    			objUser.SetInfo
    		End If
    	Else
    		If InStr(objUser.protocolSettings, "HTTP§0") = 0 Then
    			objUser.protocolSettings = "HTTP§0§1§§§§§§"
    			objUser.SetInfo
    		End If
    	End If
    	objRecordSet.MoveNext
    Loop
    
    Function InGroup(strGroup)
    	InGroup = False
    	If InStr(strUserGroups, "[CN=" & strGroup & "]") Then
    		InGroup = True
    	End If
    End Function
    
    Здесь берутся все включенные учетные записи пользователей с электронными адресами и проверяются на вхождение в группу "Мобильная почта". Если пользователь в группе - ему дается право на доступ к OWA. Если нет - то такая возможность отключается (в случае если она стоит).

    27 августа 2012 г. 4:53