Collecting event logs

In the past month I had several times the need for collecting event logs across multiple servers or parsing exported ones from *.evtx files. Get-WinEvent is the perfect Cmdlet for doing this as you can use it for querying both with.

But of course the out-of-the-box experience, usage and output didn’t fit others and my own requirements. Therefore I ended-up in writing a new script.

Continue reading

Formatting output of Admin- and UnifiedAuditLog

I often have to perform searches in the Exchange AdminAuditLogs on-premises and in EXO or in the UnifiedAuditLogs, which are only in EXO available. Depending on the need I either analyse them using Out-GridView or export them to CSV file.

Challenge is always proper formatting. There are thousands way of doing, but here are my.

Continue reading

Get-ExchangeDiagnosticInfo: Deep dive

In a previous post here, I wrote about a few basic commands, which are useful to quickly gather information about transport component of an Exchange server.

In this post I want to give you a deep dive about it and how you can explore what the CmdLet can do for you as it evolves in each Exchange version and can be very useful.

Continue reading

Exchange performance:Garbage Collection

In the past I had to deal with some performance issues, which were really tricky to narrow down. It turned out that the servers spent too much time in Garbage Collection for a protocol used by Outlook clients: MAPI over HTTP.

As this was not obvious and it took some time to identify, but the impact could be extremely critical, I thought it would makes sense to explain what happened and how you can avoid this situation. Continue reading

Get-ActiveExchangeUsers 2.0

A while a go I wrote the initial script and post about it here. Due to my experience over the last few weeks and to meet additional requirements it was time to go over the script and extend its functionality. I thought about updating the previous post, but due to the major changes I decided to create this new post.

Update May 30, 2016:

Many thanks to fellow MCM/MCSM Thomas Stensitzki, who added some code for nicer format and preview when sending the output as e-mail:

Active_New_08

Update November 11, 2018:

There is a new version available on GitHub. You can find the script and any new version here:

https://github.com/IngoGege/Get-ActiveExchangeUsers

I added a bunch of new features and improvements:

  • UseASPDOTNET: As the Exchange performance counters are not reliable, you can now query IIS performance counters to gather current requests
  • IISMemoryUsage: This will gather the memory usage of the application pools (we had some issue with memory leaks).
  • UseCIM: As you’ll get only a generic name when you use IISMemoryUsage (performance counters doesn’t know any names of application pools), you can use CIM for gathering the data

Please read the Readme. I have also some posts queued to show the daily usage.

The script will query multiple performance counters from Exchange servers in a given AD site.

Default counter collection

MSExchange RpcClientAccess\User Count

Shows the number of users connected to the service.

MSExchange RpcClientAccess\Connection Count

Shows the total number of client connections maintained.

RPC/HTTP Proxy\Current Number of Unique Users

Shows the number of unique users currently connected to a back-end server via RPC/HTTP.

Continue reading

Troubleshooting Exchange with LogParser:RCA logs

In this post I’m going to show you how to troubleshoot connectivity issues, specifically RPC Client Access.

Do you think this is only a topic for Exchange 2010? That’s not true as Exchange 2013 has still the service Microsoft Exchange RPC Client Access. And there are still logs written for.

What do you need in order to parse those logs?

  • LogParser
  • a server from where you will run the script. this server needs SMB access to all Exchange server as we will access the RCA logs via UNC path
  • adjust the execution policy. Here is an example, which bypass the policy only for the running process:
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  • the script itself

Continue reading

Troubleshooting Exchange with LogParser:IIS logs #2

In my previous post I described how to extract data from the IIS logs for one or multiple user/users or device/devices. This post is more about analytic or statistic tasks you can perform with this script.

There are the following reports available:

  • EASReport
  • EASErrorReport
  • ClientReport
  • ClientBandwidth
  • HTTPReport

Continue reading

Get-ExchangeDiagnosticInfo One-liners

The CmdLet Get-ExchangeDiagnosticInfo is not very well documented, but very useful if you want to see your server’s health state. Brian Reid already posted more details and how to format the output. You can find his post here.

After I read about it, this CmdLet got one of my favorites and I use it very often in my daily work.

In Exchange 2010 there are only 2 processes you can query:

E2k10_01

Continue reading

How many users are connected to Exchange per protocol?

Update May, 9 2016:

Please read the new post with the new version of the script here

Get-ActiveExchangeUsers 2.0

If you want to know how many unique users per protocol are currently connected to your Exchange server you can pull it from performance counters:

MSExchange RpcClientAccess\User Count

Shows the number of users connected to the service

MSExchange RpcClientAccess\Connection Count

Shows the total number of client connections maintained

RPC/HTTP Proxy\Current Number of Unique Users

Shows the number of unique users currently connected to a back-end server via RPC/HTTP

Continue reading