La bitácora de rodri

octubre 26, 2011

Mostrar dispositivos ocultos.

Archivado en: Trucos Windows XP, windows 2003 — rodri @ 10:05 am

Para que el “Device Manager” te muestre todos los dispositivos ocultos ejecuta desde la línea de comandos la siguiente instrucción:

Set devmgr_show_nonpresent_devices=1

Ahora marca la opción “Mostrar dispositivos ocultos” en el menú “Ver” y listo.

junio 16, 2011

Ejecutar un cmdlet-powershell en Exchange 2010 desde cmd

Archivado en: Exchange — rodri @ 9:12 am

Exchange 2010 soporta la versión de powershell 2.0
En esta versión de Powershell cambian algunos comandos, para empezar cambia la forma de ejecutar la extensión de la consola de exchange-powershell respecto a versiones anteriores.
Para llamar a un cmdlet de exchange 2010 desde la linea de comandos ejecutaremos la siguiente instrucción:
powershell.exe -command “.’C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1′;  Connect-ExchangeServer -auto; C:\scripts\miscript.ps1”
donde “miscript.ps1″ es el cmdlet que quiero ejecutar en la ruta “c:\mis scripts”
saludos

junio 15, 2011

Crear un botón personalizado en Outlook

Archivado en: outlook — rodri @ 3:23 pm

Para crear un botón personalizado en Outlook que realice una acción con un atajo de teclado o que ejecute una macro asociada podemos seguir los siguientes pasos:

1-    Abrir Outlook y hacer click en la barra de herramientas Standard (la que contiene botones como enviar/recibir)

2-    Click en “personalizar”.

3-    En la pestaña “Comandos”, arrastrar un icono de cualquier menú a la barra de herramientas Standard.

4-    Seleccionar el icono que acabamos de arrastrar y con el botón derecho escoger la opción “Solo Texto (siempre)”.

5-    Seleccionar el icono que acabamos de arrastrar y cambiamos el valor del campo “Name” a  &X u otro atajo de teclado. (el valor & indica el atajo de teclado, en este caso Alt+X)

6-    En el campo “Name” también podemos colocar el nombre de la macro si la intención es que se ejecute una macro cada vez que hacemos click en el botón.

macro archivado de mensajes en un pst

Archivado en: outlook — rodri @ 2:54 pm

El siguiente código permite  mover los mensajes de nuestra bandeja de entrada a una carpeta de nombre  “inbox” en un  fichero local pst de nombre ” archivado”.

————————————————————————————–

Sub archivado()
‘ Mover mensajes seleccionados a la carpeta “inbox” en “Personal Folder”
‘ alt+1

On Error Resume Next

Dim oApp As Outlook.Application
Dim objFolder As Outlook.MAPIFolder
Set oApp = New Outlook.Application
Set objFolder = oApp.GetNamespace(“MAPI”).Folders(“archivado”).Folders(“inbox”)
Dim oEmail As Outlook.MailItem

‘Assume this is a mail folder
If objFolder Is Nothing Then
MsgBox “Esta carpeta no existe !!!!”, vbOKOnly + vbExclamation, “INVALID FOLDER”
End If

If Application.ActiveExplorer.Selection.Count = 0 Then
‘Require that this procedure be called only when a message is selected
Exit Sub
End If

For Each objItem In Application.ActiveExplorer.Selection
If objFolder.DefaultItemType = olMailItem Then
If objItem.Class = olMail Then
objItem.Move objFolder
End If
End If
Next

Set objItem = Nothing
Set objFolder = Nothing
Set objInbox = Nothing
Set objNS = Nothing

End Sub

junio 18, 2010

Error gpresult: “INFORMACION: El objeto de directiva no existe”.

Archivado en: Directorio Activo — rodri @ 3:43 pm

Tras la migración de usuarios a un nuevo dominio, no se les aplican las directivas de grupo (GPOs) y reciben un error Userenv 1053 en el visor de sucesos relacionado con una falta de recursos para poder procesar las GPOs.

Event id:  1053

Windows cannot determine the user or computer name. (Espacio de almacenamiento insuficiente para completar esta operación.). Group Policy processing aborted.

Los mensajes indican que el sistema operativo no puede generar un token de autenticación para el usuario, al no disponer de espacio de almacenamiento suficiente en memoria para llevar a cabo esa operación.

La situación se produce porque los usuarios migrados generan un token de autenticación más grande (debido a su membresía de grupos, historial de SIDs, etc) que el espacio designado por el sistema operativo por defecto. 

SOLUCIÓN

Reducir el número de grupos a los que pertenecen los usuarios, O establecer el valor MaxTokenSize estableciéndolo a 65535 decimal en los equipos cliente para aumentar el espacio disponible para generar correctamente un token para los usuarios en los equipos modificando la siguiente clave de registro:

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters

Si esta clave de registro no existe deberemos crearla. 

Crear un Nuevo valor DWORD de nombre MaxTokenSize con un valor decimal 65535

Reiniciar el equipo.

febrero 5, 2010

Aumentar el nivel de registro al generar la Libreta de direcciones

Archivado en: Exchange — rodri @ 12:10 pm

Aumentar el nivel de registro en el servidor que genera la libreta de direcciones en la siguiente clave de registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeSA\Diagnostics\

Modificaremos el valor de “OAL Generator” a 5.

febrero 4, 2010

Unable to accept meetings from lotus notes

Archivado en: Exchange — rodri @ 2:19 pm

En una migración de Notes a Exchange he podido comprobar que cuando un usuario envía una convocatoria de reunión a un usuario de Exchange éstos últimos no pueden aceptar ni denegar la convocatoria de reunión porque no aparece el botón aceptar (ni en OWA ni en Outlook).

Lo que reciben es un mensaje con varios ficheros adjuntos en formato .ics.

Si editamos los ficheros adjuntos que acompañan al mensaje en formato .ics con un editor de texto cualquiera podemos comprobar que el campo (ORGANIZER: CN=”XXX” : mailto: )  no contiene la dirección de correo del remitente tal y como especifica  la RFC2447 – iCalendar Message-Based Interoperability Protocol

Si modificas el fichero .ics y añades la dirección de internet en ese campo podrás comprobar que al abrir el fichero .ics ya aparece el botón aceptar/denegar la reunión.

La solución és simple y está reportada en este documento de IBM:

http://www-01.ibm.com/support/docview.wss?uid=swg1LO43772

Tal y como se comenta en la nota la solución és simple, basta con rellenar  el campo “mail domain” de la ubicación en el cliente notes.
Este problema no se detecta en la versión 7.0.4 de cliente notes.

febrero 1, 2010

Aumentar el nivel de registro de eventos de Microsoft Transporter Suite

Archivado en: Exchange — rodri @ 2:24 pm

Podemos aumentar el nivel de registro de eventos para el conector de freebusy desde las Powershell de la herramienta Microsoft Transporter Suite ejecutando el siguiente cmdlet:

Para comprobar el nivel actual de registro: 
Get-Transportereventloglevel

Para aumentar el nivel actual de registro:
Set-TransporterEventLogLevel –LoggingLevel High  -Identity DominoFreeBusyConnector

Lo que hace este cmdlet de powershell es modificar las siguientes claves de registro:

HKEY_LOCAL_MACHINE\system\currentcontrolset\services\MSExchangeCalCon\diagnostics
1 request from partner
2 request to partner
3 response from partner
4 response to partner
5 connection
6 general
7 housekeeping

Si necesitas todavía aumentar más el nivel de registro puedes modificar a mano una por una el valor de estas claves colocándole un valor de 5.
Si con un valor de 5 todavía no tienes suficiente puedes modificar el valor a 7.
Puedes aumentar el nivel de registro de eventos para el conector de Directorio desde las Powershell de la herramienta Microsoft Transporter Suite ejecutando el siguiente cmdlet:

Para comprobar el nivel actual de registro: 
Get-Transportereventloglevel

Para aumentar el nivel actual de registro:
Set-TransporterEventLogLevel –LoggingLevel High  -Identity DominoDirectoryConnector

diciembre 21, 2009

Service ‘MSExchangeAntispamUpdate’ failed to reach status ‘Running’ on this server.

Archivado en: Trucos Windows XP — rodri @ 11:58 am

Me ha aparecido alguna vez este error al montar entornos de laboratorio con Exchange 2007 o en entornos de producción  al realizar un setup en modo de RecoverServer.

El servicio MSExchangeAntispamUpdate no puede arrancar.

Este error se produce porque el equipo afectado no puede llegar al siguiente sitio web:

http://crl.microsoft.com/pki/crl/products/CSPCA.crl

La solución es bastante sencilla.

  1. Crea un archivo en el path siguiente: C:\Program Files\microsoft\Exchange Server\Bin y, a continuación, asígnale el nombre MSExchangeAntispamUpdate.exe.config
  2. En un editor de texto, abre este archivo.
  3. Agrega el código siguiente al archivo.

     <configuration>

<runtime>

           <generatePublisherEvidence enabled=”false” />

</runtime>

</configuration>

  1. Guarda los cambios en el archivo.

Ya puedes arrancar el servicio y seguro que no te dará ningún problema.

Nota: Si el fichero con el nombre MSExchangeAntispamUpdate.exe.config ya existe debes editarlo y añadir  el parámetro <generate….> entre las opciones del runtime.

 Quizás tengas que crear también nuevos archivos de configuración para los siguientes servicios:

  • Microsoft.Exchange.AntispamUpdateSvc.exe
  • MsExchangeFDS.exe
  • MSExchangeTransport.exe

Más info:

http://support.microsoft.com/kb/944752

noviembre 9, 2009

Unable to edit the specified address policy email address policies created with legacy versions of exchange must be upgraded using the “SetEmailAddressPolicy” task with exchange 2007 Recipient filter specified

Archivado en: Exchange — rodri @ 9:22 am

Este warning nos indica que la politica por defecto es un objeto heredado de una version anterior y no se puede editar ni gestionar desde Exchange 2007 hasta que realicemos un upgrade de versión del objeto, para ello ejecutaremos el siguiente comando:

Set-EmailAddressPolicy “Default Policy” -IncludedRecipients AllRecipients

Una vez ejecutado este comando las politicas por defecto ya no podran ser gestionadas desde exchange 2003.

noviembre 5, 2009

Reinstalar un CMS (Clustered Mailbox Server) en Exchange 2007

Archivado en: Exchange — rodri @ 11:16 am

Si no estas de suerte y no tienes mas remedio utiliza este post como ultimo recurso. Suerte

1-    Desinstalar primero el nodo pasivo.

2-    Para  asegurarnos que maquina es el nodo pasivo podemos ejecutar el comando:

Get-ClusteredMailboxServerStatus

3-    Mediante línea de comandos debemos colocarnos en el directorio bin de instalación de Exchange, en la instalación por defecto es el siguiente path:

c:\ProgramFiles\Microsoft\Exchange Server\bin

4-    Ejecutar la siguiente instrucción:

Setup /mode:uninstall

5-    Después de la desinstalación reiniciar la máquina.

6-    Después del reinicio eliminar cualquier archivo y directorio de instalación de Exchange Server. 

7-    Deberemos eliminar también el directorio y subdirectorio %SystemDrive%\ExchangeSetupLogs.

8-    A continuación desinstalaremos el nodo activo mediante línea de comandos. Para ello nos colocamos en el directorio bin de instalación como en el paso 2.

9-    Ejecutamos la siguiente instrucción:

Setup /mode:uninstall /removeCMS /CMSName:<XXX>

Donde XXX sera el nombre de nuestro Clustered Mailbox Server.

10- Después de la desinstalación reiniciar la máquina.

11- Después del reinicio eliminar cualquier archivo y directorio de instalación de Exchange Server. 

12- Deberemos eliminar también el directorio y subdirectorio %SystemDrive%\ExchangeSetupLogs.

13- Borrar la clave de registro “HKLM\Software\Microsoft\Exchange\v8.0” en los dos nodos.

14- Eliminar los Recursos de cluster de Exchange desde la consola “Cluster Admin”.

15- Destruir el cluster desde la consola “Cluster Admin” en w2008.

16- Eliminar el nombre de maquina CMS en Directorio Activo desde la consola “Users and Computers”

17- Eliminar el Nombre de Maquina CMS de directorio activo desde ADSIEDIT en Container de  Configuracion de Exchange.

18- Eliminar los registros DNS y comprobar que no existen registros duplicados para el CMS.

19- Reiniciar el servidor y comprobar que no se registran de nuevo las entradas del CMS en el DNS.

20- Añadir la cuenta que vamos a usar para instalar Exchange permisos como Administrador local en los dos nodos.

21- Construir de nuevo el cluster.

22- Reinstalar  Exchange en el nodo activo, podemos hacerlo desde línea de comandos o desde el entorno grafico.

23- Reinstalar  Exchange en el nodo pasivo, podemos hacerlo desde línea de comandos o desde el entorno grafico.

octubre 30, 2009

Ejecutar un cmdlet de Exchange-powershell desde cmd

Archivado en: Exchange — rodri @ 11:21 am

Es realmente útil si quieres programar una tarea para se ejecute fuera de horarios de producción.

Primero debes crearte un directorio en la unidad C de nombre “mis scripts”.

Escribe el comando cmdlet de Exchange que desees ejecutar en un editor de texto y lo guardas como fichero de texto en el directorio que hemos creado para ello.

Acto seguido debes renombrar su extensión a .ps1.

En este caso el nombre de mi script se llama “miscript.ps1”

Ahora escribe en un editor de texto la siguiente instrucción:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -PSConsoleFile “C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1″ -noexit -command “. ‘C:\mis scripts\miscript.ps1′”

Pause

Exit

Lo guardas como fichero de texto en el directorio “c:\mis scripts”  y cambias la extensión por .cmd.

Ahora ya lo puedes ejecutar.

Si la sintaxis del fichero “miscript.ps1” es la correcta debería funcionar.

Suerte.

octubre 26, 2009

Modificar idioma por defecto en Owa 2007

Archivado en: Exchange — rodri @ 12:20 pm

La primera vez que un usuario con buzón en Exchange 2007 se conecta a él via OWA aparece una ventana de configuración de idioma y horario después de logarse.

Esta pantalla lo que hará será configurar el idioma de entorno de usuario únicamente para OWA modificando un atributo en las propiedades el usuario en el Directorio Activo.

Es decir que si accede a su buzón via MAPI con un cliente de correo tipo Outlook en otro idioma lo podrá hacer sin ninguna afectación y será independiente del acceso o idioma de acceso a OWA.

Otra cosa es la estructura de carpetas que la podrá cambiar desde Outlook con el moderador Outlook /resetfoldernames o desde OWA en opciones regionales.

Desde el punto de vista de administración podemos hacer que esta ventana no aparezca y se configure de forma automática en el idioma que nosotros decidamos; esto tiene mucho sentido en entornos de un solo idioma pero no en entornos multilingües y debemos tener en cuenta que NO puede definirse únicamente para un grupo de usuarios sino que afectará a todos los usuarios.

Para ello iniciaremos la consola de Powershell y ejecutaremos las siguientes instrucciones:

Set-OwaVirtualDirectory -identity “servername\Owa (Default Web Site)” -DefaultClientLanguage <3082>

Set-OwaVirtualDirectory -identity “servername\Owa (Default Web Site)” -LogonAndErrorLanguage <3082>

Donde “Servername” es el nombre del servidor.

En este caso el idioma por defecto seria el español (alfabetización internacional)

Podemos consultar la lista de idiomas en el siguiente enlace.

http://technet.microsoft.com/es-es/library/aa997435.aspx

En caso de querer volver a la configuración por defecto y que sea el usuario el que determine el idioma que desea utilizar el código a utilizar es  0.

octubre 14, 2009

Error: Invalid URI: The host name could not be parsed

Archivado en: Exchange — rodri @ 3:13 pm

Al instalar el rol de Client Access en Exchange 2007 en un cluster NLB podemos encontrarnos con este error.

Invalid URI: The host name could not be parsed

Esto ocurre si tenemos instalada la característica de balanceo de carga (NLB) de Microsoft al instalar Exchange.

 La solución es simple, desintalar la característica o rol desde la consola server manager o desde la línea de comandos ejecutando el siguiente comando (en W2008 server)

servermanagercmd –remove nlb

A continuación y después de reiniciar el servidor ya puedes instalar el rol CAS de Exchange 2007.

Una vez instalado reinicia el servidor e instala la característica de balanceo de carga con el siguiente comando(en W2008 server):

servermanagercmd –i nlb

agosto 7, 2009

Administrando carpetas publicas con Powershell

Archivado en: Exchange — rodri @ 10:01 am

Crear carpeta publica: 

New-PublicFolder -Name “carpeta01″ -Path “\raiz” -Server “server.midominio.local”

Habilitar carpeta publica para correo:

Enable-MailPublicFolder -Identity “\raiz\carpeta01″ -Server “server.midominio.local”

Deshabilitar Politica de Direcciones:

Set-MailPublicFolder –identity “\raiz\carpeta01″ -EmailAddressPolicyEnabled $false

Cambiar Alias:

Set-MailPublicFolder -identity “\raiz\carpeta01″ -Alias 01

Definir direcciones de correo:

Set-MailPublicFolder -identity “\raiz\carpeta01″ -EmailAddresses 01@midominio.com,01@midominio.es

Ocultarla GAL:

set-publicfolder -identity “\raiz\carpeta01″ -HiddenFromAddressListsEnabled $true

Deshabilitar programacion replicacion:

set-publicfolder -identity “\raiz\carpeta01″ -UseDatabaseReplicationSchedule $false

Deshabilitar replicacion:

set-publicfolder -identity “\raiz\carpeta01″ -ReplicationSchedule Never

Añadir permisos send us:

Add-ADPermission -Identity ‘CN=carpeta01,CN=Microsoft Exchange System Objects,DC=midominio,DC=local’ -User “user01″ -ExtendedRights “Send-as”

Añadir permisos administrativos:

Add-Publicfolderadministrativepermission –identity “\raiz\carpeta01″ -accessrights allextendedrights –user user01

Añadir permisos de cliente:

Add-PublicFolderClientPermission –Identity “\raiz\carpeta01″ –accessrights CreateItems –user user01

Eliminar permisos de cliente:

Remove-PublicFolderClientPermission –Identity “\raiz\carpeta01″ –accessrights CreateItems –user user01 -confirm:$false

Consultar permisos cliente:

Get-PublicFolderClientPermission –Identity “\raiz\carpeta01″ | fl

Renombrar carpeta:

set-publicfolder -identity “\raiz\carpeta01″ -name “carpeta02″

Eliminar carpeta publica:

remove-PublicFolder -identity “\raiz\carpeta02″

Añadir permisos en la carpeta raiz y propagarlos de forma recursiva a todas sus subcarpetas:

nota: ejecutarlo desde la ruta “c:\program files\Microsoft\Exchange Server\scripts\”

AddUsersToPFRecursive.ps1 -toppublicfolder “\raiz\carpeta01″ -recurse -resultsize unlimited -user user01 -permissions publishingeditor

enero 7, 2009

Te ha desaparecido el icono de internet explorer 7 del escritorio?

Archivado en: internet explorer — rodri @ 4:55 pm

Si has actualizado la versión de internet explorer a la versión 7 y ya no te aparece en el escritorio, no te preocupes tiene solución.
Copia este código en un editor de texto y guárdalo.

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel]
“{871C5380-42A0-1069-A2EA-08002B30309D}”=dword:00000000

Renombra la extensión del archivo a “.reg”.
En propiedades del menú inicio selecciona el menú inicio de XP (en menú de inicio clásico no funciona).
Ejecuta el archivo xxx.reg que acabas de crear y acepta las dos ventanas que aparecen.
Haz click en el escritorio y actualiza con la tecla “F5”.
Microsoft ha reconocido que es un fallo en el diseño del producto.

Problemas con los iconos de internet explorer 7

Archivado en: internet explorer — rodri @ 4:34 pm

Al instalar Internet Explorer 7 puede que los iconos de archivos como HTM, HTML, MTH, MTHML aparezcan como iconos de archivo desconocido.

Para solucionarlo, abrimos el bloc de notas o cualquier editor de texto y copiamos y pegamos lo siguiente:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\htmlfile\DefaultIcon]
@=”C:\Program Files\Internet Explorer\IEXPLORE.EXE,-32529″

[HKEY_CLASSES_ROOT\mhtmlfile\DefaultIcon]
@=”C:\Program Files\Internet Explorer\IEXPLORE.EXE,-32554″

[HKEY_CLASSES_ROOT\xmlfile\DefaultIcon]
@=”msxml.dll,-128″

[-HKEY_CLASSES_ROOT\htmlfile\ShellEx\IconHandler]
[-HKEY_CLASSES_ROOT\mhtmlfile\ShellEx\IconHandler]
[-HKEY_CLASSES_ROOT\xmlfile\ShellEx\IconHandler]

Guardaremos el archivo como archivo de registro con el nombre de RestoreIconHandlerKeys.reg. Luego hacemos clic derecho y seleccionamos la opción Combinar. Le damos clic a la opción SI y luego Aceptar.
Reiniciamos la máquina.
Ahora solo queda asociar las extensiones con la aplicación que los abre en Mi PC->Herramientas->Opciones de Carpeta, buscar los formatos de HTML y asociarlo con iexplorer.

enero 2, 2009

Instalar Office 2007 de forma desatendida

Archivado en: Office — rodri @ 11:31 am

Para instalar office 2007 de forma desatendida puedes utilizar el asistente que aparece ejecutando el moderador siguiente:
D:\SETUP.EXE /admin
Te creará un archivo de respuestas que lo dejará en el directorio updates.

julio 16, 2008

Conectarse a una sesión de consola con Terminal Server

Archivado en: windows 2003 — rodri @ 2:57 pm

El comando a ejecutar para conectarse  a través de Terminal Server a una sesión de consola como si estuviéramos sentados físicamente delante de la máquina es el siguiente:

 

Mstsc –v:nombreservidor /F –console

 

http://support.microsoft.com/default.aspx?scid=kb;en-us;278845

mayo 26, 2008

Para que tu Windows sea Genuine…

Archivado en: Trucos Windows XP — rodri @ 1:12 pm

Copia este copigo en un editor de texto y guardalo como genuine.reg.

Ejecútalo y listo.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents]

“OOBETimer”=hex:ff,d5,71,d6,8b,6a,8d,6f,d5,33,93,fd

“LastWPAEventLogged”=hex:d5,07,05,00,06,00,07,00,0f,00,38,00,24,00,fd,02

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]

“CurrentBuild”=”1.511.1 () (Obsolete data – do not use)”

“InstallDate”=dword:427cdd95

“ProductId”=”69831-640-1780577-45389″

“DigitalProductId”=hex:a4,00,00,00,03,00,00,00,36,39,38,33,31,2d,36,34,30,2d,\

31,37,38,30,35,37,37,2d,34,35,33,38,39,00,5a,00,00,00,41,32,32,2d,30,30,30,\

30,31,00,00,00,00,00,00,00,00,0d,04,89,b2,15,1b,c4,ee,62,4f,e6,64,6f,01,00,\

00,00,00,00,27,ed,85,43,a2,20,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\

00,00,00,00,00,00,00,00,00,00,00,31,34,35,30,34,00,00,00,00,00,00,00,ce,0e,\

00,00,12,42,15,a0,00,08,00,00,87,01,00,00,00,00,00,00,00,00,00,00,00,00,00,\

00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,94,a2,b3,ac

“LicenseInfo”=hex:9e,bf,09,d0,3a,76,a5,27,bb,f2,da,88,58,ce,58,e9,05,6b,0b,82,\

c3,74,ab,42,0d,fb,ee,c3,ea,57,d0,9d,67,a5,3d,6e,42,0d,60,c0,1a,70,24,46,16,\

0a,0a,ce,0d,b8,27,4a,46,53,f3,17

Entradas más antiguas »

Tema Silver is the New Black. Blog de WordPress.com.

Seguir

Get every new post delivered to your Inbox.