Script Powershell Para Listar Las Colas De Transporte de Exchange 2007
Publicado por urpiano en Viernes 23 de Octubre de 2009
Este script de Powershell nos permite listar las colas de transporte de nuestra organización de Exchange 2007 y almacenar este listado en un fichero de valores separados por tabuladores, ideal para ser abierto con Excel.
La sintaxis del script es:
<ruta>\estado-colas -Fichero <fichero TAB>
Siendo:
- Ruta (requerido): Ruta de la carpeta en la que se encuentra ubicado el script. Powershell requiere que se pase la ruta de los scripts, aunque estos se encuentren en una carpeta incluída en la variable de entorno PATH. En el caso de que el script se encuentre en la carpeta en la que está situado Powershell, es suficiente con poner un punto como ruta.
- Fichero (requerido): Cadena con la ruta y nombre del fichero de valores separados por tabuladores en el que se volcará el listado.
Ejemplo
Se volcará el listado de las colas en el fichero \\bacterio-fs\listados\miscolitas.tab:
.\estado-colas -Fichero \\bacterio-fs\listados\miscolitas.tab
Este es el código del script:
################################################################################ # # # estado-colas.ps1 # # # # Este script lista todas las colas de mensajes de la organización de # # Exchange; este listado es volcado a un fichero de valores separados por # # tabuladores, ideal para ser abierto con Excel # # # # Esta es la sintaxis del script: # # # # <ruta>\estado-colas -Fichero <fichero TAB> # # # # Siendo: # # # # - Ruta (requerido): # # Ruta de la carpeta en la que se encuentra # # ubicado el script. Powershell requiere que se # # pase la ruta de los scripts, aunque estos se # # encuentren en una carpeta incluída en la # # variable de entorno PATH. En el caso de que el # # script se encuentre en la carpeta en la que está # # situado Powershell, es suficiente con poner un # # punto como ruta. # # # # - Fichero (requerido): # # Cadena con la ruta y nombre del fichero de # # valores separados por tabulador al que se # # volcará el listado. # # # # Ejemplo # # # # Se volcaráá el listado de las colas en el fichero # # \\bacterio-fs\listados\miscolitas.tab # # # # .\estado-colas -Fichero \\bacterio-fs\listados\miscolitas.tab # # # # Fernando Reyes López # # Octubre de 2009 # # # ################################################################################ # Declaramos el parámetro de fichero de salida param([string] $Fichero) # Comprobamos si están cargados los Cmdlets de Exchange. En caso contrario los # cargamos. If(!(Get-PSSnapin | ` Where-Object {$_.Name -eq ` "Microsoft.Exchange.Management.PowerShell.Admin"` })) { Add-PSSnapin -name Microsoft.Exchange.Management.PowerShell.Admin } # Obtenemos los servidores de transporte de la organización ForEach($Servidor In Get-TransportServer) { # Recorremos las colas del servidor de transporte actual ForEach($Cola In Get-Queue -Server $Servidor -ErrorAction SilentlyContinue) { # Almacenamos los datos en la salida $Salida = $Salida + ` $Servidor.Name + "`t" + ` $Cola.Identity + "`t" + ` $Cola.MessageCount + "`t" + ` $Cola.IsDeliveryQueue() + "`t" + ` $Cola.IsPoisonQueue() + "`t" + ` $Cola.IsSubmissionQueue() + "`t" + ` $Cola.DeliveryType + "`t" + ` $Cola.IsValid + "`t" + ` $Cola.Status + "`t" + ` $Cola.ObjectState + "`r`n" } # $Cola } # $Servidor # Ponemos los encabezados a la salida $Salida = "Servidor`tNombre`tNMensajes`tDelivery`tPoison`tSubmission`t" + ` "TipoEntrega`tValida`tEstado`tEstadoObjeto`r`n" + $Salida # Volcamos la salida al fichero $Salida > $Fichero