Recently I came across with a requirement to do user logon synthetic transaction on Outlook Web Access URL and capture its performance. This can be accomplished using Invoke-WebRequest PowerShell command let. The command let returns form elements which needs to be filled with username and password and the login page is invoked with the post data. The output is analyzed for successful login and logon results are returned.
001
002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
#Parameters Block
#URL = "https://myserver.mydoamin.com/owa param( [Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)] [Parameter(Mandatory=$true)] #Initialize default values $Result = $False $Username = $Domain + "\" + $Username try{ add-type @" #Initialize Stop Watch to calculate the latency. $StopWatch = [system.diagnostics.stopwatch]::startNew() #Invoke the login page #Login Page - Fill Logon Form if ($Response.forms[0].id -eq "logonform") { #Set Default Values $langpath = "$URL/lang.owa" } #Catch Exception, If any #Display Results Write-Host "Status Code: $StatusCode`nResult: $Result`nLatency: $Latency Seconds" |
Happy Blogging..
Updated the script with logoff section.
Are you using Exchange OWA other than 2010?
Great article.
thanks for sharing very useful
Great article. Wish I had this for a previous project.
Thanks for sharing.
I’m trying to monitor OWA mailbox from internet, it might help. the only problem i’m facing is too many sessions created. is it possible to logout the owa session at the end of the script executed?
after several attempts, the owa shows TooManyObjectsOpenedException error
Hi Gowdhaman,
Somehow the exchange server remember the logon sessions and TooManyObjectsOpenedException still occur after running the script 4-5 times in batch. Anyway thanks again. It is the greatest code available on the web.
John
Just noted that the code is for exchange 2010, so I quickly do a test and found that it works perfectly with OWA 2010.
Since our system is running on Exchange 2013, when I log in to OWA 2013 in browser, and paste https:///owa/auth/logoff.aspx?cmd=logoff&src=exch, the message displays "You have successfully signed out of Outlook Web App. To help protect your e-mail account,
close all browser windows". However, when I reopen the https://, it’s found that the mailbox still accessible, unless all browser windows are closed. not sure if 2013 handle the logoff in different way.
Hello JC,
I have the same problem with Exchange 2013 and the still opened session when trying to measure performance as batch.
Did you ever find a resolution for this ?
Regards, Ralf
hi just want to know this code will work in Solarwinds..