Acordeón personal de cmdlets para Exchange Server | parte 1

 

Que tal amigos,

 

Trabajando con diversas personas y en diversas áreas de Exchange Server (coff coff también conocido como el Poderoso Exchangiiiiiiiii) He detectado un problema muy común. Muchos ingenieros no saben utilizar powershell, al menos no al grado de comodidad necesaria para lograr una mejor productividad, claro de igual forma también conozco gente que es muy buena en la terminal de comandos, debo aclarar.

 

 

Tomando esto en cuenta he decidido crear una serie de publicaciones en las que les compartiré tips&tricks y cmdlets de mi acordeón personal para facilitarles la vida. Cada publicación contara con  5 comandos de powershell (Algunos sumamente técnicos y otros básicos pero prácticos) esto con la mejor de las intensiones espero les sean útiles y les haga un poco mas fácil la vida

 

———————————————————

Saber la versión exacta y la ruta de de los binarios de Exchange

———————————————————

En varias ocasiones se encontraran escenarios en donde los usuarios tienen muchísimos volúmenes en el servidor, estar buscando los binarios de Exchange simplemente no es opción o de igual manera quieren saber que versión exacta se tiene instalada de Exchange server sin necesidad de abrir consolas gráficas

 

¿Por que es útil?

Rapidez de busqueda para encontrar los binarios y la versión de Exchange

 

GCM exsetup |%{$_.Fileversioninfo}

 

ScreenHunter_178 Nov. 10 00.47

 

Pero…¡GCM no parece un comando!, Exacto, por que en realidad no lo es. GCM es un alias del cmdlet: get-command. El cual les dará el mismo resultado

 

ScreenHunter_181 Nov. 10 00.59

 

Como pueden ver tenemos la versión 15.00.1130.007 (Exchange Server 2013 Cumulative Update 10)

Pueden validar los rollups, cumulative updates, service packs y versiones de Exchange visiten los los siguientes vínculos

Exchange 2007 y 2010

Exchange 2013 y 2016

 

 

 

———————————————————

Ver los comandos específicos para un verbo

———————————————————

¿Les ha pasado que intentan ejecutar un comando, recuerdan que comienza con update-… y tienen que ir uno a uno pasando los comandos hasta llegar al comando que desean?

Bueno un ligero truco es que simplemente filtren los comandos por el verbo, de esa forma puedan encontrar el comando en cuestión sin necesidad de ver todos los comandos o gastarse la tecla de tabulador

 

Get-Command -Verb Test|Get|update|remove|add| etc etc

 

ScreenHunter_182 Nov. 10 01.10

 

El ejemplo anterior también puede ser ejecutado como: GCM -verb update..Muuuuy bien 😀

 

¿Por que es útil?

Supongamos que busco el comando: update-list, dado el orden en que se encuentra, tendría que presionar tabulador muchas veces para poder llegar al comando en cuestión o bien si hacemos un listado general de todos los comandos, tardaría tal vez un poco mas en encontrar el comando necesario. Al filtrar por verbo, sera mucho mas rápido encontrar el comando de la lista

 

 

 

 

———————————————————

3 = Iniciar servicios de otros servidores

———————————————————

Todos sabemos que las arquitecturas de un solo servidor son algo muy extraño de ver y la mayor parte del tiempo nos veremos brincando de un servidor a otro realizando pruebas, reiniciando servicios y demás

En la siguiente imagen, podemos ver que me encuentro actualmente conectado en el servidor jacevedo-ex1 y al revisar los servicios del servidor jacevedo-ex2 el servicio de MSExchangeTransport se encuentra en estado detenido.

ScreenHunter_184 Nov. 10 01.23

Asi que sin mayor problema ejecutamos el siguiente comando para poder iniciar ese servicio sin tener que entrar al servidor jacevedo-ex2:

 

Invoke-Command -ComputerName jacevedo-ex2 {Start-Service MSExchangeTransport}

 

Si volvemos a validar, veremos que el servicio fue iniciado sin mayor problema.

ScreenHunter_185 Nov. 10 01.27

 

¿Por que es útil?

Por que no tenemos que estar iniciando sesión en otros servidores para iniciar un servicio y podemos de forma centralizada y remota invocar el reinicio,inicio o detener servicios de otros servidores. Muy útil para troubleshooting

 

 

 

 

———————————————————

4 = Listar servicios pertinentes a Exchange Server

———————————————————

Este es un tema bastante básico ¿cierto? se sorprenderían cuanta gente sufre cuando esta frente a una instalación de Exchange Server en español. Los nombres cambian, algo tan sencillo como encontrar un servicio, se vuelve una tarea tediosa.

 

Bueno la solución como siempre es aprender a usar powershell y determinar el nombre de los servicios desde ahi.

 

ahora existen varias formas de hacer esto, comúnmente yo utilizo dos comandos:

 

Get-Service | where {$_.DisplayName -like «*Microsoft Exchange*»}

Get-Service *msexchange*

 

Ahora no se confíen, validen con ambos comandos, esto es por que uno mostrara todo lo que en el nombre a mostrar diga Microsoft Exchange y el otro mostrara los servicios que tengan dentro de su nombre directo msexchange (ejemplo: msexchangeis,msexchangetransport etc)

ScreenHunter_187 Nov. 10 01.51

Nota: el argumento: | ft -autosize lo único que indica es que se muestren los resultados completos sin […] puntos suspensivos

 

 

¿Por que es útil?

Normalmente no lo verán como algo útil de saber hasta que se enfrentan a un deployment de Exchange que no sea en ingles….oooh créanme 🙂

 

 

 

 

———————————————————

5 = Evitar el truncado de información

———————————————————

¿Les ha pasado que mientras están obteniendo información, ciertos valores traen demasiada información que simplemente muestra […] puntos suspensivos y no nos permite ver el output completo?

 

Bueno, para este ejemplo modifique este valor para que puedan visualizar a lo que me refiero

ScreenHunter_188 Nov. 10 02.05

 

En la imagen anterior podemos ver que al intentar ver la información ObjectClass dentro del conector de recepción, me muestra incompleta la información

ObjectClass : {top…}

 

Para prevenir truncado de información solo deben ejecutar el siguiente comando (el valor numérico podrá ser diferente para ustedes dependiendo la cantidad de información que este siendo ocultada)

 

$FormatEnumerationLimit =-1

 

Si vuelvo a validar la información podrán ver que ya me muestra el resultado completo

ScreenHunter_189 Nov. 10 02.10

 

¿Por que es útil?

Por todo jaja, por que de nada nos sirve ver información incompleta, ni para reparar, ni para sacar un reporte ni para entender una organización.

 

 

—————————-

 

Bueno amigos, eso seria todo por esta publicación, como pueden ver son comandos en estricta teoría básicos pero que por desconocerlos en ocasiones tardamos mas realizando acciones que podrían ser rápidas.

 

Durante las siguientes semanas les compartiré mas y mas de los comandos que tengo en mi acordeón personal (El cual es bastante grande al día de hoy), algunos les servirán, algunos no, pero la idea final sigue…¡Compartir!

 

Coman una galleta y dense una palmada en la espalda, acabamos de repasar algunos comandos practicos para Exchange Server, se la han ganado


Parte 2


 

Por Geovany Acevedo

 

 

Coman frutas y verduras


Artículos relacionados

 Comentarios 2 comentarios

  • Rodrigo dice:

    hola sabes si existe algún comando para detener todos los servicios de Exchange 2013, para no ir uno en uno

  • 21DQC7HS www.yandex.ru dice:

    Oole1xu1TD

  • Deja un comentario

    Tu dirección de correo no será publicada. Los campos con * son obligatorios.