miércoles, mayo 17, 2017
jueves, mayo 11, 2017
Cambio de Zona horaria via GPO
Este año en chile tenemos una nueva zona horaria para el sur, la zona de magallanes, varios me han preguntado como automatizar via GPO el cambio a esta nueva zona, asi que aca esta la receta:
Crear un archivos .bat con el siguiente comando:
Publicadas por
Isabel de la Barra
a la/s
jueves, mayo 11, 2017
0
comentarios
Etiquetas: Active Directory, Scripts
viernes, febrero 26, 2016
Erase una vez
Era los años '80 y un par de jovenes de tan solo 14 años caminaban de la mano por la Alameda camino al cine a ver Romeo y Julieta,
Era un amor de juventud, el le cantaba canciones de amor, bailaban lentos y la respetaba, era la mujer que queria para casarse.
Ella escuchaba sus canciones y lo deseaba solo para si, era el chico mas popular de la escuela y siempre estaba rodeado de chicas, pero sus ojos la miraban a ella.
A veces discutian, pero nunca se pelearon, nunca terminaron, nunca se despidieron, pero los separaron, la familia de el volvio al sur.
Pasaron 3 años y el volvio a buscarla , se juntaron, caminaron de la mano y se prometieron amor, huyamos juntos donde podamos estar tranquilos, pero nuevamente sin terminar, sin despedirse, volvieron a separarse, en una esquina, ella corrio a su casa sin mirar atras, mientras el la miraba alejarse mientras le prohibian volverla a ver.
El le escribio varias cartas ......... y nunca recibio respuesta.
Ella guardo sus besos en un bolsillo de su corazon, esperando que vuelva para entregarle su amor.
Pasaron muchos años. Hicieron sus vidas separados, se casaron, tuvieron hijos, no se volvieron a ver ni supieron uno del otro.
El volvio a buscarla, pero ya no estaba, pasaba por su calle y recordaba aquellos momentos juntos.
Ella se olvido de la musica, de las canciones, de las cartas, de los besos, todo lo que pudiera recordarlo, asi era mas facil, no dolia.
35 años pasaron .....
El nunca dejo de buscarla, a todos les hablaba de su gringa. Ella nunca volvio a mencionarlo.
Ella salia del trabajo un jueves a fines de diciembre y reviso su celular, un mensaje la hizo recordar todo aquello que habia olvidado, respondio pero el demoraba en responder, encontro el numero y lo llamo, estaba feliz, Estaban Felices.
Quedaron de juntarse, como saludarlo? le daria la mano, un beso en la cara?
Paso el metro y se detuvo un poco mas alla, el la reconocio de inmediato, ella no lo vio hasta que estuvo a un par de metros, se miraron y sin decir palabras se abrazaron y besaron como hace 35 años, salieron de la mano caminando por la alameda recordando cuando fueron al cine a ver Romeo y Julieta como si hubiera sido solo hace unos dias.
Pero no todo es como cuento de hadas, ambos tenian temas sin resolver, el se estaba separando, ella esperando por alguien.
El le pidio 2 meses y se volvieron a separar...
Ella se habia prometido no volver a sufrir por un hombre, pero dolio.
10 dias espero y envio un mensaje, no volveria a perderlo, nunca mas. El respondio.
Los 2 meses fueron 2 semanas,
El camionero, ella ingeniera, ambos reconocidos por sus pares, ambos destacados en lo suyo. Almas gemelas, necesitaban recuperar esos años perdidos, volverse a conocer, volverse a enamorar de las nuevas personas que eran, pero fueron descubriendo que seguian siendo los mismos y mientras mas hablaban mas se daban cuenta como todo lo que vivieron separados los habian preparado para estar juntos, uno comenzaba una frase y el otro la terminaba, nunca antes ambas mitades de una naranja habian encajado tan bien. El tiempo no habia pasado, volvian a tener 14 años.
El era todo lo que ella necesitaba,
Ella era todo lo que el necesitaba.
Nada mas importaba, ahora nada ni nadie los separaria.
El era el hombre que ella siempre deseo, ella era la mujer de la que nunca se debio separar, la mujer que siempre respeto por que la queria para casarse y ahora ese sueño sera realidad.
------------
Esta historia es real, es mi historia, es nuestra historia y este no es un final feliz, sino que el comienzo de nuestra vida juntos.
Nuestra boda sera maravillosa, seguro se enteraran, por que queremos compartir con todo el mundo nuestro amor y mostrar que el amor puro y verdadero es capaz de superar cualquien obstaculo.
Nunca terminaremos, nunca nos despediremos.
Isabel y Armando
Publicadas por
Isabel de la Barra
a la/s
viernes, febrero 26, 2016
2
comentarios
Etiquetas: Personal
viernes, diciembre 14, 2012
Archivo no existe?? :O
Era una instalación como cualquier otra, muchas veces anteriormente instale SQL Server 2008 R2 y no habia tenido problemas, pero esta iba a ser una excepcion.
Mientras instalaba un feo mensaje aparecio.
TITLE: Microsoft SQL Server 2008 R2 Setup
------------------------------
The following error has occurred:
Error reading from file D:\x64\setup\sql_engine_core_shared_msi\PFiles32\SqlServr\100\Tools\Binn\schemas\sqlservr\2004\SOAP\types\SqlTran\6ckmcwa9.xsd. Verify that the file exists and that you can access it.
Click 'Retry' to retry the failed action, or click 'Cancel' to cancel this action and continue setup.
For help, click: http://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft+SQL+Server&EvtSrc=setup.rll&EvtID=50000&ProdVer=10.50.1600.1&EvtType=0xDF039760%25401201%25401
Estuve buscando en Internet y no encontre algo que me indicara que estaba ocurriendo, ningun articulo era claro. Habian mas casos que hacian referencias al archivo, es mas, encontre varios sitios de donde bajarlos, pero que estaba pasando?
Quizas el medio estaba malo?? Una forma de probarlo era copiando los archivos desde el dvd al equipo e intentar una instalacion usando las copias locales.
Durante la copia me dio error al copiar ese archivo... el DVD estaba malo, pero que paso? No lo tengo claro, el ISO esta ok antes de grabarlo, durante la grabacion quedo ese archivo corrupto y no solo en ese dvd sino que ambas copias que se hicieron, pero al extraer el iso directamente no tenia problemas, sera el largo del path??
La solucion, al expandir el iso tome el archivo faltante y lo copie en la ruta indicada de modo que se pudiera leer sin problemas en forma local, la instalacion por fin paso y quedo todo ok.
Saludos!
Isa
Publicadas por
Isabel de la Barra
a la/s
viernes, diciembre 14, 2012
1 comentarios
Etiquetas: SQL Server
lunes, septiembre 24, 2012
Cambiando a DHCP usando Politicas de Dominio
Una de las actividades que me ha tocado realizar al migrar una red que usa IP fija a DHCP es el como realizar masivamente el cambio en las estaciones de trabajo. Cuando son pocas no hay problemas, un chico de soporte puede manualmente cambiarlas y listo, pero cuando son 100, 200 o mas estaciones esto podria consumir bastantes horas de soporte para realizarlo
Una de las formas mas simples es a traves de una politica de dominio, el cambio de configuracion de la tarjeta de red requiere provilegios de administración sobre el equipo y probablemente no todos los usuarios son administradores de su equipo.
La forma mas simple es a traves de un ejecutable (un bat por ejemplo) que colocamos en la carpeta NETLOGON y lo agregamos en la politica en el startup del equipo y acostumbro tambien agregarlo en el login del usuario. Luego linkeamos la politica en la OU correspondiente donde estan los equipos donde deseamos se desean cambiar, mucho cuidado de no incluir en esta OU a los servidores, asi que no se les ocurra linkearlo a la raiz del dominio o usar la politica default del dominio.
El bat que usaremos sera algo parecido a lo siguiente:
netsh interface ip set address "Conexi¢n de rea local" dhcp
netsh interface ip set address "Conexión de área Local" dhcp
netsh interface ip set address "Conexion de area Local" dhcp
netsh interface ip set address "Local Area Connection" dhcp
netsh interface ip set dns "Conexi¢n de rea local" dhcp
netsh interface ip set dns "Conexión de área Local" dhcp
netsh interface ip set dns "Conexion de area Local" dhcp
netsh interface ip set dns "Local Area Connection" dhcp
Wow!! que onda! por que tantas lineas??
Pues no todos los equipos tienen el mismo nombre en la interfaz de red, por lo que inclui TODOS los posibles nombres que habian entre las estaciones de trabajo. Para aquellas lineas en que trata de cambiar uno que no existe aparecera el siguiente mensaje.
El nombre de archivo, el nombre de directorio o la sintaxis de la etiqueta del volumen no son correctos.
Una de las cosas que me hizo perder algo de tiempo fue el tema de los acentos, en las version español de Windows el nombre de la interfaz tiene acento y aunque en el archivo bat los veia bien al ejecutar el comando se veia mal como lo muestra la siguiente imagen.
La solucion usada?? bueno, ya lo vieron en la imagen anterior, editar en aquellas estaciones que se ve mal el archivo usando el comando edit y corregir el nombre de la interfaz.
No es una solución elegante pero si practica :)
Ahora a poner mas bonito en script.
Saludos!
Isha
Publicadas por
Isabel de la Barra
a la/s
lunes, septiembre 24, 2012
0
comentarios
Etiquetas: Active Directory, DHCP, Scripts, Windows 7
domingo, abril 29, 2012
Quiero mis papitas!!! D:
Muchos de mis seguidores son parte de la comunidad donde juego y creo podran entender mi frustración y probablemente no el resto del artículo.
Como muchos juegos online gratuitos, si quieres tener algo mas que lo que te brinda el juego gratis necesitas invertir lo que llamamos dinero real para comprar una moneda intermedia que nos sirve para adquirir aquellos tan preciados bienes.
Este fin de semana era especial, no solo estaba la tienda con un 50% de descuento sino que ademas habian sets muy especiales que uno no podia dejar de adquirir, preparo mi tarjeta de credito, selecciono cargar papitas, selecciono medio de pago, coloco los datos de mi tarjeta y me sale el mensaje que todo esta ok.
Espero unos minutos que se hagan efectivos y nada :( espero un par de horas y nada, aun espero y solo digo: Quiero mis papitas!!! D:
Transacciones.
En el mundo de las bases de datos y un poco mas alla, existen lo que llamamos transacciones, cual es la idea de una transaccion, que si yo saco dinero de una cuenta, esta aparesca en la cuenta de destino y que no se pierda en el camino, para que una transaccion sea realmente tal debe cumplir con ciertas caracteristicas, por lo que decimos que las transacciones son "ACID".A tomica (Atomicity). Una transaccion debe ser lo mas pequeña posible y realizar solo la transaccion, esta debe ser un todo o nada, si alguna parte de la transaccion falla, toda la transaccion falla, debe considerar cada punto en la transaccion, incluyendo fallas de comunicacion, cortes de energia, etc.
C onsistente (Consistency). Las transacciones comiensan con un estado valido de los datos y deben finalizar con un estado valido y no un estado intermedio, esto incluye validaciones, triggers , etc.
I ndependiente (Insolation). Una transaccion no debe ser afectada por otras transacciones, una vez que ella comenzo no puede ser cambiado el contexto de cuando comenzo.
D durables (Durability). Una vez que la transacción a terminado se debe asegurar que no se revertira, aunque ocurran errores como cortes de energia o fallas.
Algunas de estas caracteristicas las entrega la base de datos y otras es parte responsabilidad de quienes desarrollan la transacción.
Ahora a esperar que mis papitas aparescan, lastima que ya las tendre disponibles cuando no este el evento D:
Buena Caza!!
Isha
Publicadas por
Isabel de la Barra
a la/s
domingo, abril 29, 2012
0
comentarios
Etiquetas: Fly For Fun, SQL Server
miércoles, abril 18, 2012
Y donde esta el Cluster??
Estaba pensando en un lindo articulo sobre SQL Server tranquilamente frente a mi linda note cuando recibo una llamada telefonica, un Exchange 2010 habia perdido el DAG y las bases de datos no montaban.
Ok, quizas sea un caso interesante asi que acepte el desafio y manos a la obra viendo de que se trataba.
Efectivamente las bases estaban abajo, el DAG a simple vista se veia ok, sin embargo no se podia editar ni hacer nada, el error enviado era que no podia contactar el servicio de cluster.
Bien, vamos a mirar como esta el cluster......
El cluster .....
:S
No hay Cluster! Desaparecio, Uups!
[PS] C:\Windows\system32>Get-DatabaseAvailabilityGroup -Identity 'DAG1' -Status
Error en una operación de Active Manager. Error en la operación de clúster. Error: Error en la API de clúster 'OpenByNames('nodo1.dominio.com', 'nodo2.dominio.com') failed for each server. Specific exceptions: 'Error en una operación de Active Manager.
Error en la operación de clúster. Error: Error en la API de clúster '"OpenCluster(nodo1.dominio.com) error con 0x6d9. Error: No hay más extremos disponibles desde el asignador de extremos"'.', 'Error en una operación de Active Manager.
Error en la operación de clúster. Error: Error en la API de clúster '"OpenCluster(nodo2.dominio.com) error con 0x6d9. Error: No hay más extremos disponibles desde el asignador de extremos"'.'.'.
+ CategoryInfo : InvalidArgument: (:) [Get-DatabaseAvailabilityGroup], AmClusterApiException
+ FullyQualifiedErrorId : 62F1FD80,Microsoft.Exchange.Management.SystemConfigurationTasks.GetDatabaseAvailabilityGRoup
(Odio los mensajes en español, no entiendo nada!!)
He ahi la causa del problema, desaparecio el Cluster y el DAG seguia haciendo referencia a el, bueno, ya tenia la causa del problema, ahora a encontrar la solucion.
Comence a buscar por internet y no encontre nada relacionado con el tema, y si trato de recrear el cluster "a mano"?? mmm a buscar info de como hacerlo, nop, el cluster no existia en ninguno de los 2 nodos, el servicio estaba instalado, pero en ambos nodos estaba desabilitado, al habilitarlo y tratar de levantarlo enviaba error. Por supuesto al tratar de conectarse al cluster tambien enviaba error de RPC.
Habian algunos articulos muy buenos como Recover from a DAG member loss sin embargo no era el escenario, no se perdio un miembro, sino todo el cluster.
Conversando con un colega sobre las alternativas veiamos 2:
1) Guardar las bases de datos, Reinstalar con la opcion /m:RecoverServer y luego colocar las bases de datos.
2) Hacer otro DAG eliminando el actual y asociando las bases a ese nuevo DAG.
Despues de un rato viendo los pro y los contras de cada opcion nos inclinamos por la segunda, aunque no sabiamos con certeza como lo hariamos.
Antes de comenzar a trabajar con el Exchange en esa opcion intente crear un nuevo cluster con ambos nodos, seguro no lo iba a hechar a perder mas de lo que ya estaba, pero no me dejaba agregarlos por que decia que ya pertenecian a un cluster, asi que hice limpieza ejecutando el comando cluster node /force. Despues del comando intente crear el cluster con otro nombre y me dejo, lo elimine y volvi al problema.
Se crea el nuevo DAG y no podemos elegir ningun server para agregar, ya que estan asociados al otro DAG. Intente sacar un nodo y envia el error indicando problema de comunicacion con el servicio de cluster, sin embargo el mismo error me recomendaba una solucion, usar el parametro -ConfigurationOnly, al buscar informacion sobre el parametro me di cuenta que lo que hacia era cambiar la configuracion pero sin intentar conectarse al servicio de Cluster, por lo que saque del DAG antiguo el servidor que habia limpiado ya la configuracion del Cluster usando el siguiente comando PowerShell:
Remove-DatabaseAvailabilityGroupServer –Identity DAG1 –MailboxServer NODO1 –ConfigurationOnly
Eso me permitio remover el Server del DAG y agregarlo al nuevo DAG, a continuación fui a cada una de las bases de datos revise las propiedades y guarde quedando asociadas al nuevo DAG, monto una y sube ok. Repito la operacion en el otro nodo ejecutando ambos comandos, el que limpia la configuracion de cluster del nodo2, saco del DAG antiguo el nodo2 y lo agrego al nuevo DAG.
Monto el resto de las bases de datos las cuales montaron sin problemas quedando el servicio ok, excepto una que me daba error MapiExceptionCallFailed: Unable to mount database. (hr=0x80004005, ec=-550) pero eso ya es otra historia :D
Saludos!!!
Isa
Publicadas por
Isabel de la Barra
a la/s
miércoles, abril 18, 2012
0
comentarios
Etiquetas: Exchange, Exchange 2010, Microsoft, PowerShell, Troubleshoting, Windows 2008
martes, febrero 28, 2012
Eliminando un exchange 2010 inexistente
Siempre me tocan problemas extraños .....
En esta ocasión se trato de un disaster recovery con un recovery mas dañino que el desastre.
Con un servidor exchange inexistente que necesitaba eliminar.
Opcion 1:
- Instalar un server con el mismo nombre que el inexistente
- Instalar exchange usando Setup /m:RecoverServer
- Desinstalar Exchange en forma limpia
Esta opcion tiene sus pro y sus contras, es mas limpio, es mas seguro, es la recomendada por microsoft, pero necesito otro server el cual no tenia.
Opcion 2:
Usando ADSI Edit conectarse a la particion de configuracion, navegar hasta CN=Configuration [domain] → CN=Services → CN=Microsoft Exchange → CN=[organization] → CN=Administrative Groups → CN=Servers y eliminar el server desaparecido.
Si era un mailbox, ir a CN=Configuration [domain] → CN=Services → CN=Microsoft Exchange → CN=[organization] → CN=Administrative Groups → CN=Databases y eliminar las bases de datos relacionadas a ese servidor.
Abrir Active Directory Users and Computers y eliminar de los grupos de seguridad de Exchange (Exchange Servers y Exchange Trusted Subsystem) el server inexistentes o mejor aun, eliminar el objeto computador, validar que tampoco exista en el DNS.
Espero que esto les ayude tan bien como me ayudo a mi.
Saludos!
Isa
Publicadas por
Isabel de la Barra
a la/s
martes, febrero 28, 2012
1 comentarios
Etiquetas: Exchange, Exchange 2010, Microsoft, Troubleshoting
jueves, enero 26, 2012
Quiero Queso!
Hace unos dias conversaba con un amigo quien me comentaba que estaba muy aburrido con su trabajo, hacia cosas que no le gustaba, tenia problemas con su jefe incluso no se llevaba muy bien con el equipo de trabajo.
Le pregunte que era lo que a el le gustaria hacer, comenzo a mencionarme una serie de cosas que le gustaban y muchas de ellas no tenian ninguna relacion con lo que hacia actualmente.
Mi siguiente pregunta fue, y que estas haciendo para cambiar la situacion?? Estas buscando un nuevo trabajo? Estas estudiando o perfeccionandole, etc, la respuesta era la esparada, nada, lo unico que hacia era quejarse y soñar, pero en realida no estaba haciendo nada para cambiar su situacion, recibia un sueldo fijo, que le era comodo y esto lo hacia a pesar de todas las cosas que no le gustaban, estar conforme con su situacion.
Si no hacemos nada para cambiarlas cosas, estas nunca cambiaran, a menos que tengamos un golpe de suerte, un hada madrina, una lampara magina o algo por estilo, las cosas no ocurren en forma magica, la magia debemos hacerla nosotros.
Si queremos Queso, debemos buscar queso, el queso no vendra solito a nosotros..
Les dejo aca un Video de un libro muy bueno (es mejor leer el libro) espero lo disfruten, se pongan sus zapatillas y busquen el queso que mas les gusta.
Saludos!
Isa
Publicadas por
Isabel de la Barra
a la/s
jueves, enero 26, 2012
0
comentarios
jueves, enero 19, 2012
Problemas de Busqueda Sharepoint Foundation 2010
Despues de la Instalación del SP1 de SharePoint Foundation comence a tener problemas para realizar busquedas, el error que me mostraba en el sitios decia que no tenia asignado un servidor de busquedas y que contactara al administrador.
Revise la configuracion del servicio y se veia ok.
Revise los jobs de sharepoint para ver si estaba indexando y me mostraba Status Failed
Job Title
|
SharePoint Foundation Search Refresh
|
Server
|
SPF
|
Web Application
|
|
Content Database
|
|
Status
|
Failed
|
Completed
|
1/19/2012 4:15 PM
|
Duration (hh:mm:ss)
|
0:00:00
|
Error Message
|
The device is not ready.
|
Revise el log de eventos y horror, una serie de mensajes de error se encontraban presentes.
Log Name: Application
Source: Microsoft-SharePoint Products-SharePoint Foundation Search
Date: 19-01-2012 16:09:11
Event ID: 70
Task Category: Gatherer
Level: Error
Keywords:
User: NETWORK SERVICE
Computer: SPF
Description:
The mount operation for the gatherer application 9df61633-f8ef-4667-bd08-c7454fe31860 has failed because the schema version of the search administration database is less than the minimum backwards compatibility schema version supported for this gatherer application. The database might not have been upgraded.
Log Name: Application
Source: Microsoft-SharePoint Products-SharePoint Foundation
Date: 19-01-2012 16:09:17
Event ID: 6398
Task Category: Timer
Level: Critical
Keywords:
User: NETWORK SERVICE
Computer: SPF
Description:
The Execute method of job definition Microsoft.SharePoint.Search.Administration.SPSearchJobDefinition (ID eaa0e366-8978-4dcb-bd64-566bc4c4326e) threw an exception. More information is included below.
The device is not ready.
Buscando informacion en San Google encontre el siguiente articulo que me dio la solucion.
http://blogs.technet.com/b/sbs/archive/2011/07/06/potential-issues-after-installing-sharepoint-foundation-2010-sp1.aspx
Usando la interfaz PowerShell con privilegios elevados ejecute lo siguiente:
(get-spserver $env:computername).NeedsUpgrade
y me respondio True por lo tanto segui con el siguente comando en la consola de comandos ejecurada con privilegios elevados:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>PSConfig.exe -cmd upgrade -inplace b2b -force -cmd applicationcontent -install -cmd installfeatures
SharePoint Products Configuration Wizard version 14.0.6009.1000. Copyright (C) Microsoft Corporation 2010. All rights reserved.
Performing configuration task 1 of 6
Initializing SharePoint Products upgrade...
Waiting to get a lock to upgrade the farm.
Successfully initialized SharePoint Products upgrade.
Performing configuration task 2 of 6
Initiating the upgrade sequence...
Successfully initiated the upgrade sequence.
Performing configuration task 3 of 6
Registering SharePoint features...
Successfully installed feature C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Template\Features\ReportServerStapling\Feature.xml.
Successfully registered SharePoint features.
Performing configuration task 4 of 6
Installing the application content files...
Installing the SharePoint Central Administration Web Application content files...
Installing the SharePoint Web Application content files...
Successfully installed the application content files.
Performing configuration task 5 of 6
Upgrading SharePoint Products...
10.00%The farm is being upgraded in the timer service process. The task is 14.55
% completed.
The farm is being upgraded in the timer service process. The task is 27.07% completed.
The farm is being upgraded in the timer service process. The task is 27.78% completed.
The farm is being upgraded in the timer service process. The task is 27.78% completed.
The farm is being upgraded in the timer service process. The task is 28.28% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 30.30% completed.
The farm is being upgraded in the timer service process. The task is 41.25% completed.
The farm is being upgraded in the timer service process. The task is 61.23% completed.
The farm is being upgraded in the timer service process. The task is 91.28% completed.
The farm is being upgraded in the timer service process. The task is 91.28% completed.
Successfully upgraded SharePoint Products.
Performing configuration task 6 of 6
Finalizing the SharePoint Products configuration...
Successfully completed the SharePoint Products configuration.
Total number of configuration settings run: 6
Total number of successful configuration settings: 6
Total number of unsuccessful configuration settings: 0
Successfully stopped the configuration of SharePoint Products.
Configuration of the SharePoint Products has succeeded.
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN>
Vuelvo a mi sitio y realizo la busqueda funcionando correctamente :)
Saludos!
Isha
Publicadas por
Isabel de la Barra
a la/s
jueves, enero 19, 2012
1 comentarios
Etiquetas: Sharepoint
lunes, noviembre 28, 2011
Cambio Masivo en AD con PowerShell
Holas!!
Hace tiempo que no escribia un articulo, andaba poco creativa, pero aprovechando que ando en unas mini vacaciones en Concepcion aprovechare de compartir un poco de Scripts.
Hace unos dias me pidieron crear un script para modificar la informacion de los usuarios en forma masiva, eran cerca de 800 usuarios a modificar y la informacion estaba en un excel.
Estuve buscando en el Script Center de Microsoft pero los que alli estan no me dejaban satisfechas, algunos campos podian ser modificados pero otros multivalor no podian hacerlo, ademas que se queria agregar la fotografia del usuario en el campo jpegPhoto.
En la consola PowerShell de Active Directory puedes encontrar el cmdlet Set-ADUser con el cual puedes modificar el usuario, identificas al usuario en forma unica con la cuenta, este es el atributo sAMAccountName, asi que colocamos -identity "usuario" a nuestro comando.
A continuacion identificamos que atributos necesitamos modificar, para el caso en que sea multiatributo y deseamos agregar, reemplazar o eliminar algun valor tambien lo podemos hacer usando add, replace, o remove indicando el atributo a modificar, por ejemplo -add @{Description = "Descripcion Agregada"}
Tambien, necesitamos cambiar el nombre del objeto en si (atributo cn) para lo cual usamos el cmdlet Rename-ADObject indicandole el usuario que deseamos renombrar.
Como queremos hacerlo para muchos usuarios, necesitamos generar un archivo csv, separados por comas, en que los nombres de las columnas indiquen los campos que queremos modificar, como ya vimos anteriormente, para parsear el archivo usamos en cmdlet import-csv y lo colocamos en una variable.
Otro problema que se nos presento es la fecha de expiracion de la cuenta, la cual al mirar el objeto nos percatamos que era el dia anterior, para eso hicimos el sucio truco de sumarle un dia (New-TimeSpan -Days 1) a la fecha entregada en el archivo.
Como ultimo desafio, nos quedo el cargar la foto, como el archivo es jpg, no hay un upload foto, asi que hubo que realizar una conversion del archivo a un formato binario ([Byte[]]$(Get-Content -Path "E:\usuario.jpg" -Encoding Byte -ReadCount 0) )
Con todos los ingredientes listos, nuestro script quedo asi:
$data = import-csv $args[0]
$fecha2 = New-TimeSpan -Days 1
foreach ($i in $data)
{
# Se le suma 1 dia a la fecha de expiracion para que lo cargue bien
$fecha = Get-Date $i.accountExpires
$fechaExpira = $fecha + $fecha2
# Renombra la cuenta al nuevo nombre
Get-ADUser -Identity $i.sAMAccountName | Rename-ADObject -NewName $i.DisplayName
# Actualiza los datos de la cuenta
Set-ADUser -identity $i.sAMAccountName -AccountExpirationDate $fechaExpira -Description "Descripcion" -Manager $i.manager -GivenName $i.givenName -Surname $i.sn -DisplayName $i.DisplayName -Company $i.Company -MobilePhone $i.mobile -Department $i.department -HomePhone $i.HomePhone -Title $i.title
#Agrega la Foto del Usuario
Set-ADUser -Identity $i.sAMAccountName -replace @{jpegPhoto = ([Byte[]]$(Get-Content -Path "E:\$i.sAMAccountName.jpg" -Encoding Byte -ReadCount 0) ) }
}
Saludos!!
Publicadas por
Isabel de la Barra
a la/s
lunes, noviembre 28, 2011
0
comentarios
Etiquetas: Active Directory, PowerShell, Scripts
martes, septiembre 06, 2011
Algo que vale la pena compartir...
Felipe Cubillos, empresario, navegante chileno, patrón del desafío Cabo de Hornos que terminó en segundo lugar en la regata Vuelta al Mundo, fallecido en el accidente aereo de Juan Fernandez el 2 de Septiembre del 2011, escribió:
Lo que aprendí en la regata de la vuelta al mundo
Hola a todos,
Estamos ya a menos de 24 horas de terminar la Regata de la Vuelta al Mundo y cuando Uds. abran sus computadores posiblemente tengamos una ventaja cercana a las 150 millas y muchos de Uds pensarán que ya ganamos esta etapa, de punta a cabo. Nos encantaría que fuera así, pero la experiencia nos enseña que hay que esperar y que las regatas se ganan y se pierden en la meta.
Y aquí va un corto resumen de lo que yo aprendí o reafirmé, durante todo este tiempo; lo hago en primera persona pues no puedo involucrar al Negro en todo lo que a continuación van a leer.
1.. acerca de los hijos, definitivamente no son tuyos, solo quiérelos y ámalos y trata de educarlos con el ejemplo y si puedes, transmíteles que busquen sus propios sueños, no los tuyos. Y no esperes que te agradezcan todo lo que haces por ello; ese agradecimiento vendrá muchos años después, quizás cuando tu ya te hayas convertido en abuelo/a (ahí sabrán recién lo que es ser padre/madre). Pero si en el intertanto, te llegan a decir que están orgullosos de ser tu hijo/a, date por recompensado con creces. Y si alguno de ellos debe partir antes que tú, que al menos te quede el consuelo que le dijiste muchas veces cuanto lo querías.
2.. acerca de tus padres, no dejes nunca de agradecerles el hecho de que te hayan traído a este mundo maravilloso y te hayan dado tan solo la posibilidad de vivir, solo eso, ¡¡¡ vivir !!!
3.. acerca del mar, el viento y la naturaleza, admírala y cuídala, es única y no tenemos otra. Y al mar y el viento, nunca trates de vencerlos ni menos desafiarlos. Llevan todas las de ganar. Si quieres ser un navegante, acostúmbrate a vivir en crisis permanente.
4.. acerca de los límites, ellos no existen o están mucho mas allá de lo que te imaginas. ¿Cuanto más allá? Ese es la pregunta, tienes que llevarte al extremo y ahí lo descubrirás.
5.. acerca del talento, no sirve para nada si no va acompañado de determinación, planificación, disciplina y perseverancia. El talento es efímero, la determinación, eterna.
6.. acerca del amor, da las gracias al Universo si te despiertan cada mañana con un beso y una sonrisa. Y haz como las abejas y las mariposas, ellas no buscan la flor más linda del jardín, sino aquella que tiene el mayor contenido.
7.. acerca de la sociedad, ayuda a los que son igual o más capaces que tú, pero que no han tenido tus mismas oportunidades. Son ellos los más olvidados de la sociedad pues siempre se ayuda a los que piden y vociferan, pero a los que me refiero, no piden ayuda, solo necesitan una oportunidad. Sueño todavía con una sociedad más justa y más humana.
8..acerca del liderazgo, echo de menos en el mundo actual esos líderes que hacían lo que se debe hacer y decían lo que se debe decir, sin esperar resultados inmediatos en las encuestas. Me refiero a los que marcan un camino, no los que siguen a las masas.
9.. acerca de la riqueza, una vez que hayas financiado tu flujo de caja, trata de comprar más tiempo que dinero, más libertad que esclavitud.
10.. acerca de la angustia y la amargura, cuando creas que algo no es posible, que los problemas te agobian, que ya no puedes, date un tiempo para ver las estrellas y espera despierto el amanecer, ahí descubrirás que siempre sale el sol, ¡¡¡ siempre !!!
11.. acerca del triunfo, si quieres triunfar debes de estar dispuesto a fracasar mil veces y dispuesto a perder todo lo que has conseguido. Y no temas perderlo todo, pues si te lo has ganado bien, de seguro lo recuperas con creces.
12.. acerca del presente, vívelo intensamente, es el único instante que realmente importa; los que viven aferrados al pasado ya murieron y los que viven soñando con el futuro, aún no han nacido.
13.. acerca del éxito y el fracaso, reconócelos como dos impostores, pero aprende sobretodo de los fracasos, los propios y los de los demás, ahí hay demasiado conocimiento que generalmente no usamos.
14.. acerca de los amigos, elije los que están contigo cuando estás en el suelo, porque cuando estés en la gloria, te van a sobrar.
15.. acerca del equipo, motívalo en los momentos difíciles y nunca dejes que uno te abandone por haberse equivocado, ése es el más importante.
16.. acerca de tu país, ama a la tierra que te vio nacer, trabaja por hacer de tu país un mejor lugar para todos y pasea orgulloso/a tu bandera, cualquiera que ella sea (ya sea que seamos buenos o malos para el fútbol).
17.. acerca del esfuerzo, no te rindas nunca, no te creas el cuento de que cuando algo está costando mucho es porque no debe resultar, es simplemente que el Universo te está poniendo a prueba de si eres o no merecedor del éxito.
18.. acerca del miedo, no le temas, es un gran compañero, pero que no te inmovilice y no temas hacer el loco o el ridículo; la historia nos enseña que las grandes enseñanzas y tremendos descubrimientos son producto de esos instantes.
19.. acerca de Dios y el Cielo, creo que si actuamos haciendo el bien, podremos estar en la lista de espera si el Cielo existe y si no existe, habremos tenido nuestro propio Cielo en esta Tierra. Y a Dios no lo encontré solo en el Mar del Sur, en las nubes, en las tormentas, en las olas, ni en la meta ni en las partidas; estuvo siempre con nosotros, dentro, muy dentro nuestro.
20.. y cuando tengas dudas de qué debes hacer, pregúntate cual es tu Cabo de Hornos, ármate de una pequeña mochila que lleve sólo lo necesario para sobrevivir y comienza a caminar. Y no dejes de mirar al cielo, ahí descubrirás al albatros, que te enseñará a despegar con esfuerzo y a volar en libertad. Y te darás cuenta que no necesitas volar en bandada.
21.. y nunca, nunca renuncies a tus sueños, persíguelos apasionadamente y si no los consigues, no importa, el solo recorrer ese camino habrá valido la pena vivir y ojalá el sueño que persigas sea el sueño imposible.
22.. y si tienes la fortuna de un día competir con rivales del tamaño de los que nos tocó enfrentar en esta Regata, hónralos, admíralos, pero entrega todo lo que tienes por vencerlos en buena lid; ellos se lo merecen.
23.. y si en el día de mi muerte me dan la opción de renacer, elijo ser Albatros y volar el Mar del Sur y mirar a los intrépidos navegantes que arriesgan sus vidas y dejan todo en busca de su sueño, en busca de su sueño imposible.
24.. y nunca te tomes demasiado en serio a un navegante que está terminando una Vuelta al Mundo. Solo sabrá navegar un poco más, ¡¡nada más!!
Felipe
Publicadas por
Isabel de la Barra
a la/s
martes, septiembre 06, 2011
1 comentarios
Etiquetas: Personal
lunes, agosto 15, 2011
Borrando una configuracion IMAP del perfil de Outlook
El desafio era, agregamos el perfil de exchange, pero como sacamos el perfil anterior??
Aca les dejo el script que contruimos, falta depurarlo, seguro se puede hacer en menos lineas, jejjee.
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_CURRENT_USER = &H80000001
Set Ws = WScript.CreateObject("WScript.Shell")
Dim ww
set ww=wscript.createobject("wscript.network")
nombreusu=ww.UserName
avalor = Array(1,1,1,1,1,1)
strComputer = "."
KeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\"
DefaultProfile="vacio"
On Error Resume Next
DefaultProfile = ws.RegRead("HKCU\" & KeyPath & "DefaultProfile")
If DefaultProfile = "vacio" Then
WScript.quit
End if
Call BuscaKey()
WScript.Quit
Sub BuscaKey()
'----------------------
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676"
oReg.EnumKey HKEY_CURRENT_USER,strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
WScript.Echo subkey
If eslakey(subkey) Then
aborrar = strKeyPath & "\" & subkey
oReg.DeleteKey HKEY_CURRENT_USER, aborrar
End if
Next
End sub
Private Function eslakey(subkey)
'-------------------------------
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\" & subkey
oReg.EnumValues HKEY_CURRENT_USER,strKeyPath, arrValueNames
For Each Valor In arrValueNames
If Valor = "IMAP Server" Then
imapserver = 1
End If
Next
eslakey = 0
if imapserver = 1 Then
strValueName = "IMAP Server"
oReg.GetBinaryValue HKEY_CURRENT_USER, strKeyPath, strValueName,strValue
imapsrv=strValue
email= ""
For i = lBound(strValue) to uBound(strValue)
If strvalue(i) <> 0 Then
email=email + Chr(strValue(i))
End If
Next
If LCase(email) = "mailserver.dominio.cl" or LCase(email) = "10.10.10.11" Then
eslakey = 1
End if
End If
End function
WScript.Quit
Saludos!
Isa
Publicadas por
Isabel de la Barra
a la/s
lunes, agosto 15, 2011
1 comentarios
miércoles, agosto 10, 2011
Migrando a Exchange
Hace tiempo que no posteaba un articulo para mi blog, mas bien ha sido por que le he dedicado mas tiempo a otro Blog, ya les contare sobre ese proyecto que me ocupa varias de mis horas.
Este ultimo tiempo una de las actividades que mas me ha tocado enfrentar ha sido la migracion de la plataforma de correo de distintos sabores a Exchange 2007/2010, han sido proyectos bastante interesantes y entretenidos, unos mas expeditos que otros, pero el ultimo desafio es mas interesante ya que debiamos practicamente automatizar la migracion usando un grupo de prueba de 5 usuarios y dejar los procedimientos y scripts para migrar los otros 2000 usuarios en forma lo mas trasparente posible.
Interesante.
Primer Desafio: Creación de las cuentas Exchange.
Parecia algo facil, teniendo el archivo csv con los datos de los usuarios el crear la cuenta o asociarles un buzon a cuentas existentes no revertia gran complejidad, sin embargo en este caso las cuentas pertenecian a otro dominio, por lo que se trataba de cuentas linkeadas.
Tomando como base un artículo publicado por Cristian Aguilera y teniendo la línea de comando al crear un usuario me arme del siguiente script.
$Credential = Get-Credential
$data = import-csv $args[0]
foreach ($i in $data)
{
$upn = $i.alias + '@DOMINIO.CORP'
New-Mailbox -Name $i.displayname -Alias $i.Alias -OrganizationalUnit 'DOMINIO.CORP/Usuarios' -UserPrincipalName $upn -SamAccountName $i.sam -FirstName $i.nombre -Initials '' -LastName $i.apellido -Database $i.database -LinkedMasterAccount $i.usuarioad -LinkedDomainController 'DC1.dominio.cl' -LinkedCredential $Credential
}
El script me funciono a la segunda, pues a la primera use el alias como SamAccountName y me reclamo por el largo que era mayor a 20 caracteres, asi que tuve que volver a generar el csv con este dato truncado a 20.
Otro problema que nos surgio fueron los nombres con acentos y eñes, tales como Díaz o Muñoz, al crear el usuario aparecian signos de interrogacion o cuadraditos, estabamos bajando el languaje pack cuando un articulo nos dio la luz, guardar el archivo como unicode, probamos y solucionado.
Segundo Desafio: Transferir los Datos de los Usuarios.
En proyectos anteriores ya habia usado este juguetito, se llama Microsoft Transporter Suite, que sirve para migrar cuentas pop/imap a Exchange 2007 (No esta disponible para Exchange 2010).
Tercer Desafio: Migrar los perfiles Outlook de los Usuarios
En migraciones anteriores esto habia estado a cargo del cliente quien migraba los pst y configuraciones usando a gente de soporte, sin embargo esta vez, debido al volumen de usuarios se queria hacerlo usando alguna GPO a la que se le agregara algun script.
Con la orientacion de mis amigos del GLUE que me recomendaron realizar estos cambios usando archivos prf logre realizar al menos parte de lo que necesitaba.
Tomando el perfil por defecto, llamado Outlook, se le agrego la configuracion de Exchange, se dejo ese perfil como predeterminado, se deja la configuracion exchange como predeterminada configurandola con la informacion del Usuario autenticado, se tomo un archivo de ejemplo y se modificaron las siguientes secciones:
; **************************************************************
; Section 1 - Profile Defaults
; **************************************************************
[General]
ProfileName=Outlook
DefaultProfile=Yes
OverwriteProfile=Append
ModifyDefaultProfileIfPresent=True
DefaultStore=Service1
;***************************************************************
; Section 4 - Default values for each service.
;***************************************************************
[Service1]
OverwriteExistingService=Yes
UniqueService=Yes
MailboxName=%username%
HomeServer=EXMBX0
AccountName=Microsoft Exchange Server
DefaultAccount=TRUE
El resto de las secciones se dejo por defecto, con esto los usuarios quedaron con sus pst y configuraciones que tenian, para aplicar esta modificacion bastaba con ejecutar el outlook con los siguientes parametros:
Outlook.exe /importprf archivo.prf
Queda ahora el desafio de como eliminar la configuración del servidor anterior.
Saludos!
Isa
Publicadas por
Isabel de la Barra
a la/s
miércoles, agosto 10, 2011
0
comentarios
Etiquetas: Exchange, Outlook, PowerShell
jueves, enero 13, 2011
Nos Invaden?? :O
Buscando algún tema interesante que publicar y pensando que quizás las sugerencias vendrían mas por el área técnica, me encontré con un amigo que me saco de contexto sorprendiéndome con una sugerencia: que tal sobre los extraterrestres?
Si bien el tema pareciera un poco fuera de lugar con las cosas que he escrito anteriormente, la verdad no esta fuera de lugar con los temas que alguna vez estuve interesada (y quizás aun lo estoy).
En mi época de colegio, me interese mucho en temas misteriosos o inexplicables, entre los libros que adquirí en esa época habían varios relacionados con ovnis y extraterrestres, también otros como sobre las pirámides, los hombres lobos, las brujas, etc. Muchos de esos libros ya no están en mi poder, pero recuerdo algunas cosas que contenían.
Hace unos días salió una noticia que nos pone en sobre aviso respecto a los extraterrestres, piden a la ONU que se cree un plan para el caso de una invasión, en otros medios suavizan el tema y hablan de encuentro mas que invasión.
En el documento se pidió que "la Organización de las Naciones Unidas (ONU) configure un grupo de trabajo dedicado a asuntos extraterrestres, con la capacidad de delinear un plan a seguir ante un eventual contacto alienígena."
Pero, que tan real es este encuentro??
En los libros que leía, habían muchos casos no solo de avistamiento de OVNIs sino que también de encuentros, estos se presentaban como hechos reales, los ONVIs de por si no necesariamente implica extraterrestre, su nombre solo indica No Identificado, perfectamente puede ser de origen terrestre como se ha visto en varias situaciones.
Muchas películas también nos ponen en alerta sobre este hecho y tenemos también el caso de un programa radial de La Guerra de los Mundos que hizo pensar a muchos que estábamos verdaderamente siendo invadidos generando un verdadero pánico en quienes escucharon el programa. Estaremos nuevamente siendo influenciados por los medios??
Hay alguien ahí fuera??
En mi afán de saber mas y de tener una participación en un encuentro me uní a un grupo de chilenos que participaban del proyecto SETI, si bien hace mucho tiempo deje de procesar unidades y no porque me convencieron los que apoyaban el proceso de la búsqueda contra el cáncer, sino por que la cuenta de la luz estaba muy alta (ahora también lo esta pero por distintos motivos).
Este proyecto lo que busca es Inteligencia Extraterrestre, si bien hasta el momento no se ha encontrado alguna prueba de ello, que tan factible es que realmente exista y que estén tan próximos como para invadirnos??
Igual nos deja pensando lo que dijo Hawking hace unos meses atrás: “Si los alienígenas nos visitaran, el resultado sería similar a la llegada de Colón al nuevo mundo, lo que como sabemos no resultó muy positivo para los nativos americanos”.
Bueno, independiente de cual sea la verdad, siguen entreteniéndome programas como Xfiles: La verdad esta ahí fuera, y películas como Encuentros Cercanos del Tercer Tipo.
Saludos!
Isa
Publicadas por
Isabel de la Barra
a la/s
jueves, enero 13, 2011
4
comentarios
Etiquetas: Otros
martes, diciembre 28, 2010
Azul Azul!!!!
Esa famosa pantallita que se ha hecho famosa y se asocia a Microsoft, pero según lo que me ha tocado ver, la gran mayoría de los casos se debe a otros culpables, tales como drivers o productos de terceros, pero el tema es lograr identificar quien fue el responsable de la caída inesperada y con ese dato, poder realizar las acciones necesarias para resolver la causa raíz.
Cuando ocurre la caída, el sistema guarda un DUMP de lo que estaba ocurriendo en ese momento, si es que la caída corresponde a un tema de software, en caso de un corte de energía el código de error es distinto y no queda DUMP.
Primero que nada debemos asegurarnos que estamos escribiendo un dump, si no lo tenemos difícilmente podremos realizar un análisis. Para validar esto vamos a My Computer, click con el botón derecho, Properties, en el tab Advanced, sección Startup and Recovery, click en el botón Settings. En la sección Write Debugging Information, asegurese que este seleccionado algun dump, ya sea el de Kernel o small y se encuentre el directorio donde será escrito el dump. También es buena practica que escriba un registro en el Log de Eventos, el cual será algo como lo siguiente:
Event Type: Error
Event Source: System Error
Event Category: (102)
Event ID: 1003
Date: 12/20/2010
Time: 11:49:21 AM
User: N/A
Computer: SERVER
Description:
Error code 0000000a, parameter1 00000000, parameter2 d0000002, parameter3 00000001, parameter4 80828230.
NOTA: que para que pueda escribir el dump, es necesario que al menos una parte del archivo de paginación resida en la partición del sistema
Esto no nos dice mucho, el Error code nos ayudara a identificar si es problema de energía o de software, pero en el caso de software, nos queda el dump.
ok, ya tenemos el dump, como lo analizamos ahora??
Existe un juguetito llamado Windbg, el cual es parte de “Microsoft Debugging Tools”, el cual puede ser bajado desde Aquí. Al menos a mi me hizo también instalar el Framework .Net 4.0
Una vez instalado ejecutamos Windbg, antes de comenzar, debemos cargar los símbolos, esto es para ayudar al programa a identificar los distintos componentes que forman parte del dump. Para ello ir a File, Simbol File Path y agregar lo siguiente:
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Click en OK.
Ahora estamos listos para leer nuestro dump, vamos a file, Open Crash Dump, seleccionamos el archivo de dump a analizar (Memory.dmp), nos pregunta si deseamos guardar la información en un workspace, le damos Yes, nos abre una pantalla blanca con información respecto al dump recién leído, esto es algo similar a lo siguiente:
Loading Dump File [C:\Users\xxxxx\Documents\dump\MEMORY.DMP]
Kernel Summary Dump File: Only kernel address space is available
WARNING: Whitespace at end of path element
Symbol search path is: SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows Server 2003 Kernel Version 3790 (Service Pack 2) UP Free x86 compatible
Product: Server, suite: Enterprise TerminalServer SingleUserTS
Built by: 3790.srv03_sp2_gdr.100216-1301
Machine Name:
Kernel base = 0x80800000 PsLoadedModuleList = 0x8089ffa8
Debug session time: Sun Dec 19 14:41:05.155 2010 (UTC - 3:00)
System Uptime: 2 days 23:37:22.861
Loading Kernel Symbols
...............................................................
...............................................
Loading User Symbols
PEB is paged out (Peb.Ldr = 7ffd500c). Type ".hh dbgerr001" for details
Loading unloaded module list
...
*********************************************
* *
* Bugcheck Analysis *
* *
*********************************************
Use !analyze -v to get detailed debugging information.
BugCheck A, {0, d0000002, 1, 80828230}
*** ERROR: Module load completed but symbols could not be loaded for fortimon2.sys
Probably caused by : fortimon2.sys ( fortimon2+4295 )
Followup: MachineOwner
---------
En BugCheck tenemos el error code entregado en el log de eventos y sus parámetros, y en Probably caused by: tenemos al sospechoso de la caída. Si queremos obtener mas detalles del problemas ejecutamos el siguiente comando en esa consola:
!analyze
**********************************************
* *
* Bugcheck Analysis *
* *
**********************************************
IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high. This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: 00000000, memory referenced
Arg2: d0000002, IRQL
Arg3: 00000001, bitfield :
bit 0 : value 0 = read operation, 1 = write operation
bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: 80828230, address which referenced memory
Debugging Details:
------------------
WRITE_ADDRESS: 00000000
CURRENT_IRQL: 2
FAULTING_IP:
nt!KeWaitForMultipleObjects+280
80828230 8902 mov dword ptr [edx],eax
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0xA
PROCESS_NAME: cidaemon.exe
TRAP_FRAME: b8b00814 -- (.trap 0xffffffffb8b00814)
ErrCode = 00000002
eax=8a9c75b0 ebx=00000003 ecx=8721a3dc edx=00000000 esi=8a9c7508 edi=8a9c7580
eip=80828230 esp=b8b00888 ebp=b8b008b4 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010282
nt!KeWaitForMultipleObjects+0x280:
80828230 8902 mov dword ptr [edx],eax ds:0023:00000000=????????
Resetting default scope
LAST_CONTROL_TRANSFER: from 80828230 to 80886ad1
STACK_TEXT:
b8b00814 80828230 badb0d00 00000000 f760f69c nt!KiTrap0E+0x2a1
b8b008b4 f760b295 00000003 b8b008e8 00000001 nt!KeWaitForMultipleObjects+0x280
WARNING: Stack unwind information not available. Following frames may be wrong.
b8b008fc f76084c0 8b1a55f0 810443e2 e404c298 fortimon2+0x4295
b8b00950 f723bb73 88ce4a14 00b00974 8a9b7720 fortimon2+0x14c0
b8b009b8 f723dfc2 00ce49b8 00000000 88ce49b8 fltmgr!FltpPerformPostCallbacks+0x1c5
b8b009cc f723e4f1 88ce49b8 87e5b008 b8b00a0c fltmgr!FltpProcessIoCompletion+0x10
b8b009dc f723eb83 8ae64c80 87e5b008 88ce49b8 fltmgr!FltpPassThroughCompletion+0x89
b8b00a0c f724c5de b8b00a2c 00000000 00000000 fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x269
b8b00a48 8081d5c3 8ae64c80 87e5b008 87e5b008 fltmgr!FltpCreate+0x26a
b8b00a5c 808f100b b8b00c04 8b139de8 00000000 nt!IofCallDriver+0x45
b8b00b44 8092f806 8b139e00 00000000 848ec4b0 nt!IopParseDevice+0xa35
b8b00bc4 8092b946 00000000 b8b00c04 00000040 nt!ObpLookupObjectName+0x5b0
b8b00c18 808e2ed7 00000000 00000000 79654b01 nt!ObOpenObjectByName+0xea
b8b00c94 808e4171 0007dda8 00120089 0007dd6c nt!IopCreateFile+0x447
b8b00cf0 808e6c00 0007dda8 00120089 0007dd6c nt!IoCreateFile+0xa3
b8b00d30 80883948 0007dda8 00120089 0007dd6c nt!NtCreateFile+0x30
b8b00d30 7c82860c 0007dda8 00120089 0007dd6c nt!KiFastCallEntry+0xf8
0007dd9c 00000000 00000000 00000000 00000000 0x7c82860c
STACK_COMMAND: kb
FOLLOWUP_IP:
fortimon2+4295
f760b295 2bc7 sub eax,edi
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: fortimon2+4295
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: fortimon2
IMAGE_NAME: fortimon2.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 4be9ce76
FAILURE_BUCKET_ID: 0xA_fortimon2+4295
BUCKET_ID: 0xA_fortimon2+4295
Followup: MachineOwner
---------
Con esto ya podemos ver cual fue la causa y el modulo que la provoco, en nuestro caso fue un acceso a una dirección de memoria que no correspondía, el detalle se puede observar en el stack text y el resto de la información.
Espero que les sirva como me sirvió a mi.
Saludos!!
Isa
Publicadas por
Isabel de la Barra
a la/s
martes, diciembre 28, 2010
0
comentarios
Etiquetas: Microsoft, Troubleshoting, Windows 2008, Windows Server 2003
lunes, diciembre 20, 2010
Problemas de Memoria 2
Aun existen muchas máquinas que están trabajando con 32 bits, ya vimos en artículos anteriores el como optimizar el uso de memoria en estas versiones para servidores de Bases de Datos (SQL Server y Exchange) a través del uso de los parámetros /3GB y /PAE en el archivo boot.ini
Parámetro /PAE
Este parámetro lo que hace es permitir al sistema operativo reconocer la memoria por sobre los 4GB de RAM, a continuación una tabla de las versiones de sistema operativo y la cantidad de RAM soportada.
Windows y PAE
| Versión de Windows | Soporte |
| Windows 2000 Profesional Windows XP | AWE API y 4GB de RAM Física |
| Windows XP SP2 y Posterior | AWE API y 4GB de Espacio de Direccionamiento Físico |
| Windows 2000 Server Windows Server 2003, Standard Edition | AWE API y 4GB de RAM Física |
| Windows Server 2003 SP1, Standard Edition | AWE API y 4GB de Espacio de Direccionamiento Físico |
| Windows Server 2003, Enterprise Edition | 8 procesadores y 32GB de RAM |
| Windows Server 2003 SP1, Enterprise Edition | 8 procesadores y 64GB de RAM |
| Windows 2000 Advanced Server | 8 procesadores y 8GB de RAM |
| Windows 2000 Datacenter Server | 32 Procesadores y 32GB de RAM |
| Windows Server 2003, Datacenter Edition | 32 Procesadores y 64GB de RAM |
| Windows Server 2003 SP1, Datacenter Edition | 32 Procesadores y 128GB de RAM |
Fuente: http://www.microsoft.com/whdc/system/platform/server/PAE/pae_os.mspx
Parámetro /3GB
En circunstancias típicas y para cada proceso se asignan 2 GB de espacio de direcciones virtuales para el proceso de modo de usuario y se asignan otros 2 GB de espacio de direcciones virtuales para el sistema operativo. Cuando utiliza el modificador /3GB en Windows Server 2003, se asignan 3 GB de espacio de direcciones virtuales para el proceso de modo de usuario y sólo se asigna 1 GB de espacio de direcciones virtuales para el sistema operativo.
Este parámetro debe usarse con cuidado, ya que al cambiar la forma de direccionar la memoria puede obtenerse un efecto inverso al que se espera, en servidores por ejemplo que tienen el rol de Active Directory, Terminal Server (Remote Desktop) o Application Server los cuales hacen uso de memoria kernel, se ven estrangulados y su capacidad de direccionamiento disminuye, en Servidores como Exchange o SQL Server se puede apreciar su beneficio.
El problema.
Se tenían servidores con distintos roles los cuales necesitaban ser actualizados de 4GB a 32GB de RAM, eran 2 grupos de servidores, los primeros, Application servers los cuales trabajaban con IIS y los otros, Cluster SQL Server 2005.
Al realizarse el upgrade de memoria física, los servidores de Aplicación no tuvieron problemas, sin embargo los servidores de SQL Server comenzaron con un comportamiento extraño.
No se observaron errores en el log de eventos que nos indicara algún problema o la causa del problema, si aparecía un error pero al parecer era la consecuencia, este error es el Event ID 1053
Revisando mas, se observa que las tarjetas de red no presentan trafico, bytes enviados o recibidos estaban en cero.
Nada que nos indicara que podría estar ocurriendo y menos como resolverlo. El único cambio que se había realizado era agregar la memoria al servidor. Se vuelve atrás.
Se programa nuevamente la actividad pero esta vez se realiza una actualización completa del sistema operativo y los drivers correspondientes al hardware, muchos de los problemas se resuelven de esta forma, un sistema operativo actualizado tiene menor probabilidad de tener problemas relacionados con issues conocidos y con parches liberados.
Nuevamente se realiza la actualización y presenta el mismo efecto.
Que configuraciones relacionadas con la memoria tenemos en el servidor?? Pues /PAE y /3GB en el archivo boot.ini
Vamos a la configuración de booteo y duplicamos la línea donde están estos parámetros cambiándole a una de ellas la descripción y sacándole ambos.
Se reinicia el servidor y se valida la configuración de memoria. Solo reconoce 3.4Gb de los 32Gb.
Se repone el parámetro /PAE en archivo boot.ini, este parámetro esta presente en las maquinas de aplicación.
Se reinicia el servidor y se valida configuración de memoria, reconoce los 32Gb y los servicios funcionan bien.
El culpable era el parámetro /3GB, revisemos el siguiente articulo donde se explica con mas detalle que es 4GT y como funciona.
http://technet.microsoft.com/en-us/library/cc786709(WS.10).aspx
Quiero destacar de acá las siguientes líneas que describen nuestro escenario:
4GT should not be used if either of the following is true:
- Greater than 16 GB of physical memory are available and PAE X86 is enabled on the server.
Nuestra situación era exactamente esa, mas de 16Gb y PAE habilitado.
Saludos!
Isa
pd: No olvidar cambiar los tamaños en el archivo de paginación cuando se realicen aumentos de memoria!!!!!
Publicadas por
Isabel de la Barra
a la/s
lunes, diciembre 20, 2010
0
comentarios
Etiquetas: Perfomance, SQL Server, Troubleshoting, Windows Server 2003
martes, diciembre 07, 2010
Identificando la Version de SQL Server Instalada.
En muchas oortunidades nos toca que necesitamos saber cual es la version instalada en nuestro servidor de SQL Server.
El siguiente KB es bastante completo para realizar esta operacion: http://support.microsoft.com/kb/321185/en-us
Como un resumen, aca dejo un listado de las versiones y a cual corresponden desde 6.5 hasta 2008 SP1
10.0.1600 - SQL Server 2008 release (RTM)
10.0.2531 - SQL Server 2008 Service Pack 1
9.00.1399 – SQL Server 2005 release (RTM)
9.00.2047 – SQL Server 2005 SP1
9.00.3042 – SQL Server 2005 SP2
9.00.4053 – SQL Server 2005 SP3
8.00.194 – SQL Server 2000 release (RTM)
8.00.384 – SQL Server 2000 SP1
8.00.534 – SQL Server 2000 SP2
8.00.760 – SQL Server 2000 SP3
8.00.2039 – SQL Server 2000 SP4
7.00.623 – SQL Server 7.0 release (RTM)
7.00.699 – SQL Server 7.0 SP1
7.00.842 – SQL Server 7.0 SP2
7.00.961 – SQL Server 7.0 SP3
7.00.1063 – SQL Server 7.0 SP4
6.50.201 – SQL Server 6.5 release (RTM)
6.50.213 – SQL Server 6.5 with Service Pack 1
6.50.240 – SQL Server 6.5 with Service Pack 2
6.50.258 – SQL Server 6.5 with Service Pack 3
6.50.281 – SQL Server 6.5 with Service Pack 4
6.50.415 – SQL Server 6.5 with Service Pack 5
6.50.416 – SQL Server 6.5 with Service Pack 5a
6.50.479 - SQL Server 6.5 with Service Pack 5a(Update)
Saludos!!
Isa
Publicadas por
Isabel de la Barra
a la/s
martes, diciembre 07, 2010
0
comentarios
Etiquetas: Microsoft, SQL Server
viernes, diciembre 03, 2010
Ultima Conexion ..........
Ante una auditoria, necesitamos obtener para cada una de las cuentas del dominio, cuando fue la ultima conexion y validar tambien el estatus de la cuenta, si es que esta desabilitada, etc.
Este proceso tiene varios pasos, el primero de ellos es obtener la lista de los usuarios, esto lo podemos realizar de varias formas, usando algun programa ya hecho, usando scripts visual basic o power shell o usando algun comando que obtiene informacion de Active Directory. En esta ocasion, seleccione uno bien interesante y multiproposito: CSVDE
Este comando permite principalmente importar y exportar objetos en active directory, si quieres aprender mas sobre el puedes hacerlo en el siguiente link
Una vez seleccionado el comando esta la seleccion de los atributos que necesito, obtener una lista completa nos podria generar un archivo demasiado grande y engorroso de manipular, asi que mi lista reducida fue la siguiente: objectClass, userAccountControl, sAMAccountName, lastLogonTimestamp
objectClass me muestra el tipo de cuenta, me dice si la cuenta es user o computer.
userAccountControl me da el status de la cuenta mas adelante me explayo mas sobre este atributo.
sAMAccountName es el nombre de la cuenta.
lastLogonTimestamp es cuando fue la ultima conexion de la cuenta.
Este ultimo atributo, lastLogonTimestamp fue introducido en Windows Server 2003 para ayudar a identificar de forma mas certera los usuarios y equipos que se encuentran activos, cabe hacer notar que este datos tampoco es en tiempo real ya que la informacion debe ser actualizada por los demas domain controlers de la red pues a diferencia del atributo lastLogon, este es replicado.
El numero entregado por este atributo representa la intervalos de 100 nanosegundos transcurridos desde el 1ro de Enero de 1601, el codigo en vbs para transformar este numero a fecha es el siguiente:
set objLogon = objUser.Get("lastLogonTimestamp")
intLogonTime = objLogon.HighPart * (2^32) + objLogon.LowPart
intLogonTime = intLogonTime / (60 * 10000000)
intLogonTime = intLogonTime / 1440
WScript.Echo strADsPath & ";" & intLogonTime + #1/1/1601#
Si esa misma formula queremos usarla en excel usemos la siguiente:
Ingles: =IF(C2>0,C2/(8.64*10^11) - 109205,"")
Español: =SI(E2>0;E2/(8.64*10^11) - 109205;"")
ok! ya tenemos la lista de usuarios y tenemos el ultimo logon en formato de fecha :) nos esta faltando ahora saber si las cuentas estan desabilitadas o no o si ha expirado la password.
A traves del atributo userAccountControl podemos saber alguna informacion del estado de la cuenta, este atributo es una serie de bits que visualizamos como un numero en donde cada posicion representa una caracteristica que puede estar seteada en 1 o 0 el bit que en nuestro caso nos interesa es el segundo, ACCOUNTDISABLE, o sea, un usuario normal tendra el número 512 y si ese usuario esta desabilitado sera 514, si quieren saber mas detalle de este atributo pueden revisarlo en la siguiente link
Otro atributo que tambien nos puede ayudar y que nos indica si la cuenta esta con la password expirada o no es msDS-User-Account-Control-Computed pues el anterior aunque tiene la opcion de mostrar si tiene la password expirada no lo indica, para este caso, la columna representada por este atributo me mostrara un 8388608 que representa 0x800000 en hexadecimal y corresponde al status PASSWORD_EXPIRED
Bien, ya tengo identificados aquellos usuarios que no estan cumpliendo :)
Saludos!!
Isa
Publicadas por
Isabel de la Barra
a la/s
viernes, diciembre 03, 2010
0
comentarios
Etiquetas: Active Directory, Microsoft, Scripts
jueves, marzo 11, 2010
Cambio de Hora en Chile
Post original de Gonzalo Balladares
---------------------------------------------------
Como es de conocimiento mundial, el 27 de febrero hubo un “mega-terremoto” con devastadoras consecuencias, tanto en pérdida de vidas humanas como en pérdidas de miles de hogares y cuantiosos daños a la infraestructura pública.
En lo estrictamente informático, esto trajo muchas consecuencias, como las que revisa Luis Montenegro en su blog sobre planes de contingencia, pero una de las consecuencias más importantes que el Gobierno de Chile determinó retrasar el cambio de horario de invierno, el cual se aplaza desde la media noche del sábado 13 de marzo (cuando debiese ocurrir) a la medianoche del sábado 3 de abril (nueva fecha)
Microsoft liberó un hotfix que actualiza los sistemas operativos para este cambio de horario, el cual puede ser descargado en la siguiente dirección:
Le recomiendo leer detenidamente la información referente al hotfix y luego solicitarlo desde el link “Ver y Solicitar la descarga de la revisión” que aparece al inicio de la página. Se recomienda instalar la actualización lo antes posible.
Aprovecho la oportunidad para responder un par de preguntas que ya he recibido:
- ¿Cómo se aplica el hotfix en un entorno virtualizado con Hyper-V?
El Hotfix DEBE ser aplicado tanto en la partición padre (host) y como en las particiones hijas (guests). Hay que tener cuidado con las máquinas virtuales que están sincronizando la información de horas con con el host de virtualización. - ¿Cómo afecta este cambio a los Usuarios/Administradores de Exchange Server?
Las citas del calendario se verán desfasadas 1 hora durante el período entre el 13 de marzo y el 3 abril.
Una vez aplicado el hotfix, hay 4 formas para enfrentar esto:
A. No hacer nada, y decir a los usuarios que confirmen sus reuniones por mail o por teléfono.
B. Pedir a los usuarios que revisen y re-programen manualmente sus reuniones para ese período de tiempo.
C. Utilizar la herramienta “Time Zone Data Update Tool for Microsoft Outlook” en cada estación de trabajo.
D. Utilizar la herramienta “Microsoft Exchange Calendar Update Configuration Tool” , con la cual se pueden actualizar las citas en el calendario centralizadamente, pero ojo, pues es un proceso complejo.
Como pueden ver, hay varias opciones y la mejor dependerá de su entorno particular (cantidad de usuarios, uso de outlook para calendarios, etc.)
Más información:
- Información más detallada pueden encontrarla en este post del grupo de soporte para latinoamérica (En Inglés)
http://blogs.technet.com/latam/archive/2010/03/11/guidance-for-chile-dst-changes-effective-saturday-march-13-2010.aspx - Información en Español desde el sitio de MS Chile:
http://www.microsoft.com/chile/cambiodehora/
Cualquier duda pueden hacerla como comentario, o a través de la lista de distribución del Grupo Latinoamericano de Usuarios de Exchange (G.L.U.E.)
Gonzalo
Publicadas por
Isabel de la Barra
a la/s
jueves, marzo 11, 2010
1 comentarios
Etiquetas: Exchange, Microsoft, Technet, Windows 2008

