Introducción
Hoy veremos una de las funcionalidades mas esperadas (sobre todo para los desarrolladores y programadores) el power shell de Exchange 2007.
En versiones anteriores, por ejemplo para crear un buzón teníamos que recurrir a Visual Basic Script con llamadas a componentes COM o complejos procedimientos para realizar esta tarea. Ahora disponemos de un conjunto de nuevos comandos que nos facilitaran su manipulación por línea de comandos sobre todo cuando tenemos que realizar una tarea repetitiva varias veces.
Manos a la obra
Cuando instalamos exchange 2007, uno de los requisitos que tendremos que instalar previamente es el Microsoft Command Shell (MSH):

Para instalarlo, previamente tendremos que descargarlo:
Cuando iniciamos el shell vemos lo siguiente:
Tal indica, podemos ver el listado completo de comandos ejecutando get-command y los comandos específicos de Exchange con el comando get-excommand.
Ejecutamos get-excommand y nos muestra el listado completo:
Si queremos obtener ayuda de un comando en concreto lo haremos a través del comando help:
----------- ---- ----------
Cmdlet Add-ADPermission Add-ADPermission [-Identity]...
Cmdlet Add-AttachmentFilterEntry Add-AttachmentFilterEntry [-...
Cmdlet Add-AvailabilityAddressSpace Add-AvailabilityAddressSpace...
Cmdlet Add-ContentFilterPhrase Add-ContentFilterPhrase [-Ph...
Cmdlet Add-DistributionGroupMember Add-DistributionGroupMember ...
Cmdlet Add-ExchangeAdministrator Add-ExchangeAdministrator [-...
Cmdlet Add-IPAllowListEntry Add-IPAllowListEntry -IPRang...
Cmdlet Add-IPAllowListProvider Add-IPAllowListProvider [-Na...
Cmdlet Add-IPBlockListEntry Add-IPBlockListEntry -IPRang...
Cmdlet Add-IPBlockListProvider Add-IPBlockListProvider [-Na...
Cmdlet Add-MailboxPermission Add-MailboxPermission [-Iden...
Cmdlet Add-PublicFolderPermission Add-PublicFolderPermission [...
Vale todo esto está muy bien pero ¿como creo por línea de comandos un buzón por ejemplo?
Lo primero que debemos saber es en que base de datos de buzones vamos a crear nuestro buzón. Lo sabremos con el comando Get-MailboxDatabase:
Podemos ver que nuestra base de datos es First Storage Group\MailBox Database
---- ------ ------------ ---------------
Mailbox Database DCEX2007 First Storage Group False
Mailbox Database DCEX2007 Recovery Storage ... True
Por lo tanto crearemos un buzón de la siguiente forma:
new-Mailbox -alias "kenmyer" -name KenMyer –userprincipalname kenmyer@fabrikam.com -database " First Storage Group\MailBox Database"
Listo! En este caso el usuario debe existir pero no necesariamente. También podemos crear el buzón y el usuario a la vez:
También lo podréis automatizar pero ya será necesario crear un script de varias líneas para ello.
Supply values for the following parameters:
Password: ************
Database: First Storage Group\Mailbox Database
UserPrincipalName: kenmyer@fabrikam.com
Name: KenMyer
OrganizationalUnit: Users
---- ----- ------ ---------------
Julian Julian dcex2007 unlimited
Crearemos un fichero llamado CrearBuzon.msh que contendrá las siguientes líneas:
{
$secureString = new-object System.Security.SecureString
{
$secureString.AppendChar($char)
}
}
$upn = "Alvaro@nwtraders.msft"
new-mailbox -Password $ss -Database "First Storage Group\Mailbox Database" -UserPrincipalName $upn -Name "Alvaro" -OrganizationalUnit "Users
Lo ejecuraremos desde la shell de la siguiente forma:

Vemos que nos ha creado correctamente el usuario Alvaro y además nos ha creado un buzón en el servidor DCEX2007.
Os preguntareis ¿Para que es necesaria la funcion New-SecureString?
La necesitamos para pasarle como parámetro al comando New-Mailbox la password del usuario de forma cifrada. Sino la función no lo acepta directamente. Veamos lo que sucede si no se la mandamos cifrada:
New-Mailbox : Cannot bind parameter 'Password'. Cannot convert value "Exchange2007" to type "System.Security.SecureString". Error: "Invalid cast from 'System.
String' to 'System.Security.SecureString'."
At line:1 char:22
+ New-Mailbox -Password <<<< Exchange2007 -Database "First Storage Group\Mailbox Database" -UserPrincipalName Julian@nwtraders.msft -Name Julian -OrganizationalUnit Users
Por el momento esto es todo. Próximamente veremos muchos mas comandos sobre este potentísimo shell. Hasta pronto!
Exchange Server 2007
lunes, 4 de diciembre de 2006
Introducción al Power Shell de Exchange 2007
[MSH] C:\>Get-MailboxDatabase
Name Server StorageGroup RestoreDatabase
[MSH] C:\>New-Mailbox
cmdlet New-Mailbox at command pipeline position 1
Name Alias Server ProhibitSendQuota
function New-SecureString([string] $plainText)
foreach($char in $plainText.ToCharArray())
$secureString
$ss = new-securestring "Exchange2007"
[MSH] C:\ >New-Mailbox -Password "Pepito2007" -Database "First Storage Group\Mailbox Database" -UserPrincipalName Julian@nwtraders.msft -Name Julian -OrganizationalUnit Users
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario