Outlook Anywhere Kullanıcı Listesini Almak İzin Vermek veya Yasaklamak

Exchange Server 2010 üzerinde varsayılan olarak açılan her kullanıcı için outlook anywhere açık gelir. Ancak güvenlik nedenleri ile bu özelliği kapatmak isteyebilirsiniz.

Bunun için aşağıdaki gibi bir powershell komutu size yardımcı olur

Get-Mailbox –Identity hakanuzuner | Set-CASMailbox -MAPIBlockOutlookRpcHttp:$True

veya tüm kullanıcılar için aşağıdaki komutu kullanabilirsiniz

Get-Mailbox –ResultSize Unlimited | Set-CASMailbox -MAPIBlockOutlookRpcHttp:$True

Eğer yöneticilere bu izni vermek, ancak diğer kullanıcılara bu izni vermek istemiyorsanız bu durumda kimlere izin verdiğinizide görmek isteyebilirsiniz. Bunun için ise gerekli olan powershell aşağıdaki gibidir

Örneğin Outlook Anywhere özelliği açık olan kullanıcıları listeleyelim

Get-CasMailbox –resultsize unlimited | Select name,MAPIBlockOutlookRpcHttp | Where { $_.MAPIBlockOutlookRpcHttp -like “False” }

Veya Kapalı olanlar

Get-CasMailbox –resultsize unlimited | Select name,MAPIBlockOutlookRpcHttp | Where { $_.MAPIBlockOutlookRpcHttp -like “True” }

Veya isterseniz bunu OU bazlı yapabilirsiniz. Örneğin müdürler bir OU altındadır ve siz hangi müdürde bu izin var hangisinde yok bilgisine de yine aşağıdaki powershell ile ulaşabilirsiniz.

Get-Mailbox -OrganizationalUnit “OU=mudurler,DC=cozumpark,DC=com” | Get-CasMailbox | Select name,MAPIBlockOutlookRpcHttp | Where { $_.MAPIBlockOutlookRpcHttp -like “False” }

Yine OU bazlı bu yetkiyi açıp kapatabiliriz

Get-Mailbox -OrganizationalUnit “OU=mudurler,DC=cozumpark,DC=com” | Set-CasMailbox -MAPIBlockOutlookRpcHttp:$False

Tüm bunlara rağmen hala kimlerin outlook anywhere ile sisteme bağlandığını kontrol etmek için ise aşağıdaki powershell komutunu çalıştırın. Bu komut size IIS log dizinini soracaktır, bu log dizini içerisindeki txt bazlı loglardan istediğinizi veya tek tek hepsini gösterip bunun sonucunu da yine csv olarak alabilirsiniz

 

[System.Reflection.Assembly]::LoadWithPartialName(“System.Drawing”)
[System.Reflection.Assembly]::LoadWithPartialName(“System.windows.forms”)
$exFileName = new-object System.Windows.Forms.openFileDialog
$exFileName.ShowHelp = $true
$exFileName.ShowDialog()

$fname = $exFileName.FileName
$mbcombCollection = @()
$FldHash = @{}
$usHash = @{}
$fieldsline = (Get-Content $fname)[3]
$fldarray = $fieldsline.Split(” “)
$fnum = -1
foreach ($fld in $fldarray){
$FldHash.add($fld,$fnum)
$fnum++
}

get-content $fname | Where-Object -FilterScript { $_ -ilike “*MSRPC*” } | %{
$lnum ++
if ($lnum -eq $rnma){ Write-Progress -Activity “Read Lines” -Status $lnum
$rnma = $rnma + 1000
}
$linarr = $_.split(” “)
$uid = $linarr[$FldHash[“cs-username”]] + $linarr[$FldHash[“c-ip”]]
if ($linarr[$FldHash[“cs-username”]].length -gt 2){
if ($usHash.Containskey($uid) -eq $false){
$usrobj = “” | select UserName,IpAddress
$usrobj.UserName = $linarr[$FldHash[“cs-username”]]
$usrobj.IpAddress = $linarr[$FldHash[“c-ip”]]
$usHash.add($uid,$usrobj)
$mbcombCollection += $usrobj

}
}
}

$mbcombCollection | export-csv –encoding “unicode” -noTypeInformation c:\oareport.csv

 

Bunu ps1 olarak kayıt edin, çıktı ise C:\ dizinine oareport.csv olarak kayıt olacaktır.