martes, 14 de enero de 2020
Exchange - Changing Autodiscover Service Endpoint
Hello,
After an intensive research i finally discovered how to change the service point where Outlook connector looking for the autodiscover .XML file.
The Service Enpoint appears after launching this command:
Test-WebServicesConnectivity -identity "account@domain.com" -MailboxCredential(get-credential domain\account) | fl
How to change it:
Set-ClientAccessServer "SERVER" -AutodiscoverServiceInternalUri https://URL/Autodiscover/Autodiscover.xml
The URL will appears as service endpoint.
Regards.
martes, 26 de marzo de 2013
Script que permite limpiar o subir fotografía a AD.
Hola.
Os cuelgo a continuación un Script que he terminado y que permite al usuario subir o limpiar su foto del directorio activo, para que luego se alimente, ya sabéis, Exchange, Lync, etc.
Diréis, ¿Por qué no lo haces en C# y lo compilas?, pues porque lo he ido haciendo en mis ratos libres y como muchas otras cosas, nació para algo diferente. Pero me gusta porque el usuario lo puede lanzar con unas simples instrucciones (botón derecho, ejecutar con poweshell) y al contrario de algunas aplicaciones, no tiene por qué, tener derechos de administrador local para instalarse nada.
Como es común en estas cosas, solo tenéis que localizar y adaptar esta línea de aquí:
$root = [ADSI]'GC://dc=dominio,dc=local' #Inyecta el dominio con el que trabajarSe que es mejorable, lo se .
También tiene varias funciones que os pueden servir de utilidad.
#------------------------------------------------------
#Script encargado de guardar o limpiar fotografía en AD del campo Thumbnailphoto
#Autor: Miguel Hernández
#------------------------------------------------------
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
#-------------------------------------------------------------------------------
#Funciones
#-------------------------------------------------------------------------------
#Toma usuario y lo devuelve con valor $X0
function tomausuario
{
$objForm0 = New-Object System.Windows.Forms.Form
$objForm0.Text = "Fotografía en Directorio Activo"
$objForm0.Size = New-Object System.Drawing.Size(300,120)
$objForm0.StartPosition = "CenterScreen"
$objForm0.KeyPreview = $True
$objForm0.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{$x0=$objTextBox0.Text;$objForm0.Close()}}) #toma el valor X0
$objForm0.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm0.Close()}})
$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,10)
$objLabel0.Size = New-Object System.Drawing.Size(280,20)
$objLabel0.Text = "Usuario:"
$objForm0.Controls.Add($objLabel0)
$objTextBox0 = New-Object System.Windows.Forms.TextBox
$objTextBox0.Location = New-Object System.Drawing.Size(10,30)
$objTextBox0.Size = New-Object System.Drawing.Size(260,20)
$objForm0.Controls.Add($objTextBox0)
$OKButton0 = New-Object System.Windows.Forms.Button
$OKButton0.Location = New-Object System.Drawing.Size(110,60)
$OKButton0.Size = New-Object System.Drawing.Size(75,23)
$OKButton0.Text = "OK"
$OKButton0.Add_Click({$x=$objTextBox0.Text;$objForm0.Close()})
$objForm0.Controls.Add($OKButton0)
$objForm.Topmost = $True
$objForm0.Add_Shown({$objForm0.Activate()})
[void] $objForm0.ShowDialog()
return $x0
}
#----------------------------------------------------------
#Función resultado
#----------------------------------------------------------
#Abre form con el valor $valor escrito.
function resultado
{
$objForm0 = New-Object System.Windows.Forms.Form
$objForm0.Text = "Resultado"
$objForm0.Size = New-Object System.Drawing.Size(400,90)
$objForm0.StartPosition = "CenterScreen"
$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,20)
$objLabel0.Size = New-Object System.Drawing.Size(380,20)
$objLabel0.Text = $valor
$objForm0.Controls.Add($objLabel0)
$objForm.Topmost = $True
$objForm0.Add_Shown({$objForm0.Activate()})
[void] $objForm0.ShowDialog()
}
#-------------------------------------------------------------
#Función donde se abre ventana donde elegir fotografía
#-------------------------------------------------------------
function Select-FileDialog
{
param([string]$Title,[string]$Directory,[string]$Filter="All Files (*.*)|*.*")
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
$objForm = New-Object System.Windows.Forms.OpenFileDialog
$objForm.InitialDirectory = $Directory
$objForm.Filter = $Filter
$objForm.Title = $Title
$objForm.ShowHelp = $true
$Show = $objForm.ShowDialog()
If ($Show -eq "OK")
{
Return $objForm.FileName
}
Else
{
$valor = "Operación cancelada por el usuario."
resultado $valor
}
}
#------------------------------------------------------
#Empieza el script
#------------------------------------------------------
#Ventana Form donde se pregunta la acción a realizar
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Fotografía en Directorio Activo"
$objForm.Size = New-Object System.Drawing.Size(300,200)
$objForm.StartPosition = "CenterScreen"
$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
{$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
{$objForm.Close()}})
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(75,130)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = "OK"
$OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)
$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,10)
$objLabel0.Size = New-Object System.Drawing.Size(280,20)
$objLabel0.Text = "1. Limpiar fotografía actual"
$objForm.Controls.Add($objLabel0)
$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,30)
$objLabel1.Size = New-Object System.Drawing.Size(280,20)
$objLabel1.Text = "2. Cambiar fotografía"
$objForm.Controls.Add($objLabel1)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Size(150,130)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = "Cancelar"
$CancelButton.Add_Click({$objForm.Close()})
$objForm.Controls.Add($CancelButton)
$objLabel = New-Object System.Windows.Forms.Label
$objLabel.Location = New-Object System.Drawing.Size(10,70)
$objLabel.Size = New-Object System.Drawing.Size(280,20)
$objLabel.Text = "Seleccionar acción:"
$objForm.Controls.Add($objLabel)
$objTextBox = New-Object System.Windows.Forms.TextBox
$objTextBox.Location = New-Object System.Drawing.Size(10,90)
$objTextBox.Size = New-Object System.Drawing.Size(260,20)
$objForm.Controls.Add($objTextBox)
$objForm.Topmost = $True
$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()
#Devuelve el valor $X con 1 o 2 = 1: Limpiar fotografía / 2: Cambiar fotografía
$SAMName = tomausuario #Pregunta el usuario
$root = [ADSI]'GC://dc=dominio,dc=local' #Inyecta el dominio con el que trabajar
$searcher = new-object System.DirectoryServices.DirectorySearcher($root)
$searcher.filter = "(&(objectClass=user)(sAMAccountName=$SAMName))"
$user = $searcher.findall()
$userdn = $user[0].path
$userdn = $userdn.trim("GC")
$userdn = "LDAP" + $userdn
IF ($x -EQ "1") {
try
{
$user = [ADSI]($userdn)
$user.Properties["thumbnailPhoto"].Clear()
$user.CommitChanges()
$valor = "La fotografía ha sido borrada del servidor"
resultado $valor
}
catch
{
$valor = "La fotografía no ha podido ser borrada del servidor"
resultado $valor
}
}
IF ($x -EQ "2") {
try
{
$photo = Select-FileDialog -Title "Selecciona una fotografía (ext.jpg o .png)" -Directory "%userprofile%" -Filter "JPG Images (*.jpg)|*.jpg|PNG Images (*.png)|*.png"
[byte[]]$file = Get-Content $photo -Encoding Byte
$user = [ADSI]($userdn)
# Limpiar foto anterior
$user.Properties["thumbnailPhoto"].Clear()
# Guardar fotografía
$user.Properties["thumbnailPhoto"].Add($file)
$user.CommitChanges()
$valor = "La fotografía ha sido guardada del servidor"
resultado $valor
}
catch
{
$valor = "La fotografía no ha sido guardada en el servidor"
resultado $valor
}
}
miércoles, 30 de septiembre de 2009
Desactivar "Reply All"
No es el final de todos nuestros males, pero diría que en gran parte si lo es.
El equipo de Exchange ha colgado un post de imprescindible lectura para todos nosotros, nos explican como desactivar la opción de "Responder a todos" de Outlook por gpo.
http://msexchangeteam.com/archive/2009/09/29/452689.aspx Parte 1.
http://msexchangeteam.com/archive/2009/09/30/452724.aspx Parte2
"Reply-All Storms" nunca mejor dicho.
lunes, 3 de agosto de 2009
Cambiar almacenamiento en Cluster 2003
http://msmvps.com/blogs/clusterhelp/archive/2005/08/05/61741.aspx
martes, 26 de mayo de 2009
lunes, 2 de febrero de 2009
Buzones de recursos en Exchange 2003, Exchange 2000 y Exchange 2007
En Exchange se nos permite crear los llamados buzones de recursos, enfocados principalmente para reserva de salas, proyectores, etc.
En Exchange 2000 y 2003, la configuración de todo esto es mas bien básica, se trata de un usuario con autorespuesta ante la invitación de citas, aceptando la reunión si está libre y rechazándola si está ocupado el día y a la hora indicados.
Unas guías de configuración las tenéis aquí:
http://www.msexchange.org/tutorials/MF019.html
Guía de implementación y administración del Agente de aceptación automática
http://technet.microsoft.com/es-es/library/aa997184(EXCHG.65).aspx
A partir de Exchange 2007 y Outlook 2007, esto se ha concretado y exchange 2007 nos permite crear un buzón del tipo "Recurso" a un usuario exitente y que se aconseja que tenga el nombre de la sala, dando Exchange automáticamente, todas las configuraciones que antes teníamos que realizar a mano para conseguir esa gestión atuómata de la agenda.
Managing Resource Mailboxes
http://technet.microsoft.com/en-us/library/bb124374.aspx
How to Create a Room Mailbox
http://technet.microsoft.com/en-us/library/bb124952.aspx
How to Create an Equipment Mailbox
http://technet.microsoft.com/en-us/library/bb124925.aspx
How to Configure Resource Mailbox Properties
http://technet.microsoft.com/en-us/library/aa996915.aspx
Saludos.
jueves, 8 de enero de 2009
Aumentar B.D. Exchange 2003 sp2
Nos hemos dado cuenta que mi entrada sobre como aumentar la b.d. de Exchange 2003, con fecha de septiembre de 2007, se quedó antigua con la llegada del sp2, así que ya está actualizada.
http://undercpd.blogspot.com/2007/09/aumentar-base-de-datos-de-exchange.html
miércoles, 20 de agosto de 2008
Cambios en soporte y licenciamiento de productos virtualizados
Nuevo e importante artículo anunciado por Microsoft desde la web del equipo de producto de Exchange que no tengo tiempo de comentar, os dejo con el link:
"1.Microsoft now supports Exchange Server 2007 SP1 running Hyper-V or hypervisors validated under the Microsoft Server Virtualization Validation Program (SVVP).
2.Microsoft is waiving its 90-day license reassignment policy to enable customers who virtualize Exchange to move their licenses between servers within a data farm as often as necessary."
http://msexchangeteam.com/archive/2008/08/19/449621.aspx
viernes, 18 de julio de 2008
Desastre en controlador de dominio con Exchange 2003
Me ha llegado hoy una incidencia sobre un desastre de un controlador de dominio, que además era el servidor de correo de la organización. Ante un desastre así, lo mejor es echar mano de la documentación y pensar ¿a quien le ha podido pasar ya?, en internet he recopilado información que puede ser de ayuda para solucionar este estropicio, pero creo es en estos casos donde está sobrádamente justificada la cuota de 250€ +/- por tener soporte en Microsoft.
Por ejemplo, si no se tiene copia de seguridad, en las páginas 207, 208 explican como:
En el caso de tener que recuperar una copia de seguridad de Exchange realizada con Ntbackup, el organigrama siguiente os va a venir muy bien:

lunes, 19 de mayo de 2008
Test Exchange Connectivity
lunes, 7 de abril de 2008
Mobile 6.1
Gracias a la última entrada de Joshua Saens (Microsoft MVP - Exchange), me he enterado que ya está liberado windows Mobile 6.1, sabia que estaba al caer.
Joshua os explica todas las virtudes:
http://www.saenzguijarro.com/post/2008/04/Ya-esta-disponible-Microsoft-Windows-Mobile-61.aspx
lunes, 31 de marzo de 2008
Exchange 2007 y Windows Server 2008 , etc.
En el blog oficial de Exchange, hay una serie muy buena de artículos sobre que se puede y que no se puede, combinando Exchange 2000, 2003, 2007 (en todas sus versiones), Windows Server 2003 y Windows Server 2008.
Artículo 1:
http://msexchangeteam.com/archive/2007/08/16/446709.aspx
Cabe destacar:
- While you cannot install Exchange 2007 RTM on Windows Server 2008, Exchange 2007 RTM will be supported with Windows Server 2008 RTM domain controllers. Exchange 2003 Service Pack 2 will be similarly supported: Exchange 2003 cannot be installed on Windows Server 2008, but will be supported with Windows Server 2008 domain controllers.
- Exchange 2007 SP1 (when released) can be installed on a computer running Windows Server 2008.
- Management tools for Exchange 2007 SP1 (when released) can be installed on a computer running Windows Server 2008 or Windows Vista.
- Exchange 2000 Server Service Pack 3 can exist in an Active Directory forest that contains Windows Server 2008 directory servers, but Windows Server 2008 directory servers should not be installed in Active Directory Sites that contain Exchange 2000 Server.
- If Windows Server 2008 directory servers must be deployed Active Directory Sites that contain Exchange 2000 Server you must first hard-code directory service access (DSAccess) on the Exchange 2000 Server servers in the site to point to directory servers running Windows Server 2003 or Windows 2000 Server.
- Ugrading Exchange 2007 from Windows Server 2003 to Windows Server 2008 (Rotúndamente no y Clusters menos).
http://msexchangeteam.com/archive/2008/03/05/448338.aspx
Cabe destacar:
Con Windows Server 2008, NO se pueden realizar backups de Exchange, o implantais Microsoft System Center Data Protection Manager (DPM) 2007, o comprais un software de backup de terceros.
domingo, 30 de marzo de 2008
Iphone con Exchange parte 2
Es hora de actualizar una de las entradas mas solicitadas de este blog ( http://undercpd.blogspot.com/2007/09/iphone-con-exchange.html ) , en ella expliqué como asegurar el tráfico imap, ya que como sabeis esta era la única forma de recibir correo en un Iphone, hasta el acuerdo con Microsoft que va a permite que Iphone sea un cliente Exchange 2003 o 2007.
Pues bién, Apple ya ha "publicado" la actualización a 2.0 del sistema operativo de Iphone, aunque de momento está en beta, con esta actualización no solo se añade la posibilidad de que Iphone sea cliente Exchange si no que además añade software Cisco Ipsec VPN para asegurar la encriptación basada en IP, así como la capacidad de autenticar usando certificados digitales, destacar también que se ha añadido la funcinalidad de validación WPA2 Enterprise con autenticación 802.1x . También se han añadido una especie de políticas con las que los adminsitradores pueden administrar remótamente los Iphone existentes en su empresa, pero esto último habrá que ver como, porque que según he leido, es el usuario quien tiene que un archivo adjunto a un correo o bien conectarse a una web para que las políticas le sean aplicadas.
Por cierto, la entrada a la beta está restringida y además hay que pagar si te aceptan :-P .
lunes, 17 de marzo de 2008
Links que hoy me han venido bien.
http://blogs.technet.com/linacre/archive/2007/12/05/instalando-las-herramientas-de-administraci-n-remota-de-windows-server-2008.aspx
Cómo instalar las herramientas de administración de Exchange 2007
cuando el cliente es 64 bits es fácil ya que en el cd de exchange 2007 lo teneis todo, cuando el cliente es 32 bits, debeis descargaros las herramientas.
http://technet.microsoft.com/es-es/library/bb232090(EXCHG.80).aspx
Managing WSUS from the Command Line
http://technet2.microsoft.com/WindowsServer/en/library/2686bd2b-910a-479b-961e-cea2a20280241033.mspx?mfr=true
(nota: el comando /movecontent mueves el respositorio de las actualizaciones a otra ubicaciónes además de parar el servicio reconfigurarlo, levantarlo, descompartir antigua ubicación y compartir la nueva. Pero no borra el antiguo repositorio, con lo que os encontrareis con que no teneis mas espacio libre, así que debeis borrarlo a mano).
Eliminación de actualizaciones antiguas de WSUS
http://technet.microsoft.com/es-es/library/bb432641.aspx
How to Configure a Manually Installed System Center Essentials Agent
http://technet.microsoft.com/en-us/library/bb437257.aspx
Saludos.
miércoles, 12 de marzo de 2008
Alianza entre Apple y Microsoft
http://msexchangeteam.com/archive/2008/03/06/448367.aspx
Este fin de semana, en las páginas salmón de un diario nacional, leia que Iphone+Exchange es mejor solución de correo movil que blackberry porque tiene ciertas funciones como la de poder borrar el correo si lo dejas olvidado en un taxi. Vaya que la novedad...
Saludos.
viernes, 7 de marzo de 2008
Apple con Exchange
Hoy mismo me habia llegado la noticia y hoy mismo aparece publicado en varios diarios digitales.
Ahora añado yo, si Iphone pasa a ser un cliente Exchange y con ello tiene más y mejores posibilidades que Blackberry (por que lo tiene), no será mejor windows mobile 6.1 que además ya se integra en active directory y más aun desde Exchange 2007 se pueden configurar el equivalente a directivas locales (políticas de activesync), pudiendo cortar el uso de la cámara, del wi-fi incluso solo permitiendo el uso del bluethoot con dispositivos de manos libres...
Blackberry tiene el servidor BES con algunas de esas funciones, pero ya tienes que tener dos servidores el de Exchange y al lado el BES y una licencia más de Windows 2003 y además he dicho "algunas de esas funciones".
Cria fama....
domingo, 24 de febrero de 2008
Sin acceso a la metabase error 80080005
Una vez realizada la trama y elegido este error como causante del problema entre otros muchos aparecidos en el visor de sucesos, mi compañero Ximo se puso manos y como no podia ser de otra forma aquí está la solución al problema ;).
Despues de un apagón en el servidor sbs:
1. El iis no responde.
2. Las colas de Exchange, protocolo smtp y servicios asociados no funcionan.
El visor de sucesos muestra los siguientes errores:
(Aplicaciones)

El archivo “MetaBase.xml” que se encuentra por defecto en la carpeta “C:/Windows/system32/inestsrv” es el que se guarda toda la configuración del IIS, por lo tanto si está dañado no funcionará.
La solución es fácil, solo hay que renombrar el archivo actual por si acaso y echar mano de una copia de seguridad y para que sea aun más fácil seguramente tendréis una copia de este archivo en esta ruta : "c:\windows\system32\inetsrv\history".
Una vez restaurado ese archivo, se tienen que levantar los sitios webs que ahora si aparecen, pero caídos. También levantar el protocolo “Servidor virtual SMTP predeterminado” en el “Administrador del sistema de Exchange” que aparece también caído lógicamente
viernes, 15 de febrero de 2008
Configurar reenvio de correo a través de ISP con Exchange y SBS








Antes de liarnos a configurar el conector debemos consultar al ISP que va a reenviar nuestros correos si soporta este sistema y qué tipo de autenticación utiliza, es muy importante antes de nada tener esta información al igual que el nombre o ip del servidor smtp que utilizaremos.
miércoles, 6 de febrero de 2008
Renovación de certificados y publicación en ISA 2004
Mi ciber amigo David Buisan (MCSE) al que conozco gracias a este blog y al también le va esto de trastear servidores además de ser su obligación como currante IT Pro, me pasa un artículo donde explica con todo detalle como renovar un certificado caducado y su posterior publicación en ISA.
Como ejemplo parte de la renovación de este certificado en la web /Exchange e ISA 2004 (Ideal para todos los que mantenemos SBS 2003).
El artículo lo podeis abrir aquí.
martes, 5 de febrero de 2008
Deploying Windows Mobile® 6 with Windows® Small Business Server 2003
http://blogs.technet.com/sinead_o_grada/pages/new-deployment-guide-for-windows-mobile-6-sbs-2003.aspx
