Archivo

Archivo para la categoría ‘Windows’

Truncar archivos LDF de SQL Server

Miércoles, 28 de julio de 2010 Enric Solsona Sin comentarios

Desde hace un tiempo, tengo varias Bases de Datos en que el fichero LDF se va llenando sin parar.
Aquí dejo una sentencia para vaciar dicho fichero y dejar de tener problemas con los espacios

use @Base_de_Datos;

BACKUP LOG @Base_de_Datos WITH NO_LOG

DBCC SHRINKFILE (@Base_de_Datos_Log, 10) WITH NO_INFOMSGS

Aquí tenemos el ejemplo:

Después podemos ver la diferencia de espacio del log:

Categories: SQL, Sin categoría, Windows Tags:

VbScript para duplex en impresora y predeterminarla

Jueves, 15 de julio de 2010 Enric Solsona Sin comentarios

Hace tiempo que el mundo lucha por un espacio mas verde.

“Todos” reciclamos, contaminamos menos etc…

Flor

La empresa por la que trabajo en la actualizad, no es menos. Por esto, entre otros motivos, me he visto envuelto en una tarea de configurar de forma automática todos los ordenadores (hay un spool).

La solución era;

Configurar el duplex en la impresora del spool.

Eliminar la impresora del usuario

Conectar de nuevo la impresora del usuario (se establecen las configuración que hay en el spool)

Establecer la impresora predeterminada.

Para realizarlo nada mejor que un VbScript por Active Directory.

No hace nada mas que sacar un listado de las impresoras de red, las guarda en un fichero (con el nombre de red Ej: \\spool\printer1) Guardar en otro fichero la impresora predeterminada (de la misma manera, con un fichero) y  luego conectarlas todas de nuevo.

Aquí tenemos el script:

Const ForAppending = 8
Const ForReading = 1

‘ Get the local computer name.
strComputer = “.”
Dim aqui

‘ MsgBox “Printers have been mapped.” & vbCRLF & varDelText & vbCRLF & vbCRLF & “Impresoras Mapeadas”, 64, “Script Complete”
‘strComputer = “.”
‘Set objWMIService = GetObject(“winmgmts:” _
‘ & “{impersonationLevel=impersonate}!\\” _
‘ & strComputer & “\root\cimv2″)
‘Set colInstalledPrinters = objWMIService.ExecQuery _
‘ (“Select * from Win32_PrinterConfiguration “)
‘For Each objPrinter In colInstalledPrinters
‘ objPrinter.Duplex = False

‘Wscript.Echo “Duplex: ” & objPrinter.Duplex & objPrinter.Name
‘Next

Set oShell = CreateObject(“Wscript.Shell”)
strUserProfile = oShell.ExpandEnvironmentStrings(“%USERPROFILE%”)
Set filesys = CreateObject(“Scripting.FileSystemObject”)
dim filesys, filetxt, getname, path, demofile, demofile3, filesys3

path = filesys.GetAbsolutePathName(strUserProfile & “\text.txt”)
getname = filesys.GetFileName(path)

If filesys.FileExists(path) Then
Set filesys= CreateObject(“Scripting.FileSystemObject”)
set demofile = filesys.GetFile(strUserProfile & “\text.txt”)
demofile.Delete
End If

path3 = filesys.GetAbsolutePathName(strUserProfile & “\text2.txt”)
getname = filesys.GetFileName(path3)
If filesys.FileExists(path3) Then

Set filesys3= CreateObject(“Scripting.FileSystemObject”)
set demofile3 = filesys3.GetFile(strUserProfile & “\text2.txt”)
demofile3.Delete
End If

Set WshNetwork = CreateObject(“WScript.Network”)
Set objWMIService = GetObject(“winmgmts:{impersonationLevel=impersonate}!\\” & strComputer & “\root\cimv2″)
Set colInstalledPrinters = objWMIService.ExecQuery(“Select * from Win32_Printer”)
Set colItems = objWMIService.ExecQuery(“Select * from Win32_ComputerSystem”,,48)
Set WshShell = WScript.CreateObject(“WScript.Shell”)
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
filOutput = strUserProfile & “\text.txt”
filOutput2 = strUserProfile & “\text2.txt”

‘ Creates a text file with the listing of all network printers for the logged in user.
Set objOutputFile = objFSO.OpenTextFile (filOutput, ForAppending, True)
Set objOutputFile2 = objFSO.OpenTextFile (filOutput2, ForAppending, True)
For Each objPrinter in colInstalledPrinters
strTest = Left(objPrinter.Name, 2)
If strTest = “\\” Then
If objPrinter.Name = “\\Gestetner09\P9CORMFP” then
‘MsgBox “AQUESTA NO” & objPrinter.Name
elseif objPrinter.Name = “\\Gestetner09\P9CORMFPFACT” then
‘MsgBox “AQUESTA NO” & objPrinter.Name
else
‘MsgBox objPrinter.Name
objOutputFile.WriteLine(objPrinter.Name)
WshNetwork.RemovePrinterConnection objPrinter.Name
End If

If objPrinter.Default = True Then

aqui = objPrinter.Name
objOutputFile2.WriteLine(objPrinter.Name)
‘MsgBox aqui
‘MsgBox objPrinter.Name & “DEFAULT”

End If

End If
Next
objOutputFile.Close
‘MsgBox “Backup Echo ‘” & filOutput & “‘.”, 64, “Script Complete”

‘ Opens the text file matching the logged in user and reconnects to the printers listed.
Set objTextFile = objFSO.OpenTextFile (filOutput, ForReading)

‘Set objTextFile2 = objFSO.OpenTextFile (filOutput2, ForReading)
‘ Do Until objTextFile2.AtEndOfStream
‘ strPrinter = objTextFile2.Readline
‘ strTest = Left(strPrinter2, 2)
‘Loop

Do Until objTextFile.AtEndOfStream
strPrinter = objTextFile.Readline
strTest = Left(strPrinter, 2)

‘ If strTest = “\\” Then
‘MsgBox strPrinter & ” ” & strPrinter2
WshNetwork.AddWindowsPrinterConnection strPrinter
if strPrinter = aqui Then

‘WshNetwork.SetDefaultPrinter strPrinter2
WshNetwork.SetDefaultPrinter aqui
End If
‘ End If

Loop

‘MsgBox “Impresoras Mapeadas”, 64, “Script Complete”

objTextFile.Close

‘ MsgBox “Printers have been mapped.” & vbCRLF & varDelText & vbCRLF & vbCRLF & “Impresoras Mapeadas”, 64, “Script Complete”
‘strComputer = “.”
‘Set objWMIService = GetObject(“winmgmts:” _
‘ & “{impersonationLevel=impersonate}!\\” _
‘ & strComputer & “\root\cimv2″)
‘Set colInstalledPrinters = objWMIService.ExecQuery _
‘ (“Select * from Win32_PrinterConfiguration “)
‘For Each objPrinter In colInstalledPrinters
‘ objPrinter.Duplex = False

‘MsgBox objPrinter.Duplex
‘Next
‘MsgBox “Finalizado. Impresora por defecto ” & aqui
Wscript.Quit

Aquí para descargarlo

Categories: Sin categoría, Windows Tags:

VmWare Physical to Virtual (P2V)

Martes, 4 de mayo de 2010 Enric Solsona Sin comentarios

Hace tiempo estuve trabajando en una empresa de hosting. En dicha empresa se hacían los backup con Acronis y eso permitía hace un “backup to virtual” con cierta facilidad. Pero este no es el caso, esta situación es un Physical to Virtual (P2V) y sin parar la maquina.

Para ello necesitamos el VMware Converter, en mi caso la versión 4.0.1-161434.

Primero agregamos la maquina seleccionando “Powered-on machine”, en mi caso una Linux Debian Lenny

Agregamos la maquina origen

Seleccionamos el cluster (en este caso es un cluster) de destino. Podría ser solo un ESx o un ESxi

Seleccionamos Cluster destino

Al ser un cluster, tenemos que seleccionar el ESx que queremos de destino, y el datastore. También podemos modificar el nombre.

Asignar ESx

Una vez asignado el Esx quizas nos encontramos que nos tenemos espacio. En mi caso mi Debian tenia varios volúmenes;

Valúmenes

Por suerte podemos reasignar espacios. En mi caso lo pongo al mínimo;

Reasignar espacios

Al final obtenemos un resumen;

Resumen P2V

Y ya lo tenemos listo para empezar;

Iniciamos

Justo al iniciar ya tenemos agregada la maquina al VCenter. Solo nos queda esperar un buen ratito para tener la maquina lista!

Virtual Center

Categories: Linux, VmWare, Windows Tags:

Network Load Balancing en Windows Server 2003 (NLB)

Domingo, 25 de abril de 2010 Enric Solsona Sin comentarios

Este es un pequeño manual para crear un Load Balancing (frontal y 2 backends sirviendo con un IIS) con un Windows 2003 Data Center Edition.

Primero vamos a definir la infraestructura.

Front-Win001 (192.168.1.41)
Back-Server01 (192.168.1.39)
Back-Server02 (192.168.1.42)
Balanced-Server01 (192.168.1.40)

La maquina Balanced-Server01 en realidad es el servicio Load Balancing que dependiendo del estado de los backend (o de la configuración del Load Balancing) servirá la web desde un servidor o desde otro.

Los los Backends tienen un IIS en este caso sin ninguna configuración en especial (pero lo ideal seria tener un sistema de archivos centralizado para estar sirviendo la misma web, pero para hacer las pruebas y ver que funciona, vamos a mostrar webs distintas dependiendo del backend que esta funcionando)

La maquina Front es la maquina “fisica” que tiene corriendo el servicio de Load Balancing.

Primer tenemos que tener instalado el servicio IIS en los backends.

Instalar IIS

Instalar IIS

Cuando ya tenemos los backend funcionando con el IIS vamos a ir al servicio de Network Load Balancing del Frontal (en este caso Front-Win001 (192.168.1.41)) para configurar los dos backends.

Le damos a crear un cluster y poner la IP (en este caso Balanced-Server01 (192.168.1.40)) que vamos a publicar de la web.

Configuración IP Balanceado

Configuración IP Balanceado

Es importante describir ciertos campos de este apartado:

Microsoft Network Load Balancing nos ofrece dos alternativas para el modo de operación del Cluster NLB (Cluster operation mode):

  • Unicast. Esta es la opción por defecto y es la opción recomendada. La dirección MAC del Cluster, es asignada a todas las tarjetas de red asignadas al Cluster NLB, y la dirección MAC de cada tarjeta de red NO es utilizada. Es decir, cada tarjeta de red asignada al Cluster NLB mantiene una única dirección MAC, en particular, la MAC del Cluster. Así, tanto la dirección IP del Cluster como la dirección IP propia de la tarjeta de Red, se resuelven a la dirección MAC del Cluster, ya que se sobrescribe la dirección MAC real de las tarjetas de red del Cluster NLB con la dirección MAC del Cluster.Esta configuración, implica que NO es posible la comunicación desde un Host del Cluster NLB a otro Host del Cluster NLB a través de la tarjeta de red utilizada en el Cluster, debido a que al compartir la dirección MAC (es decir, utilizar la misma dirección MAC en el equipo de origen y en la tarjeta de red del equipo destino), se produce una confusión, es decir, en el nivel de enlace OSI (Ethernet y direcciones MAC) no es posible diferenciar al destinatario del emisor, y por ello, la comunicación host-to-host (también conocida como intra-host) NO es posible.Es interesante recordar (para aquellos pocos que lo puedan utilizar) que al utilizar Application Center 2000 para configurar NLB, se especificará el modo de operación del Cluster NLB en Unicast, conforme indicar el artículo de soporte KB 278431.
  • Multicast. La dirección MAC del Cluster, es asignada a todas las tarjetas de red asignadas al Cluster NLB, pero de forma adicional, cada tarjeta de red mantiene su dirección MAC. Es decir, cada tarjeta de red asignada al Cluster NLB mantiene dos direcciones MAC, pero sólo la dirección MAC del Cluster es utilizada para la comunicación con los equipos clientes. Así, la dirección IP del Cluster se resuelve a la dirección MAC del Cluster, y la dirección IP propia de la tarjeta de Red se resuelve a la dirección MAC propia de dicha tarjeta.Este comportamiento implica que una tarjeta de Red de un Cluster NLB configurado en modo de operación Multicast, es capaz de manejar tanto el tráfico de los clientes (paquetes destinados a la dirección IP/MAC del Cluster) como el tráfico propio del Host (paquetes destinados a la dirección IP/MAC de la tarjeta de Red del Cluster NLB).En algunos casos la utilización de direcciones MAC multicast, no es soportada por la implementación ARP de algunos enrutadores (routers), como es el caso de Cisco (ni más ni menos ;-) , en cuyo caso, el Cluster NLB no será visible fuera del segmento Ethernet al que pertenece. Para evitar este tipo de problemas, debe garantizarse que el enrutador (Router) acepta respuestas ARP que incluyan una dirección MAC en el payload de la trama Ethernet, pero que parecen proceder de un dispositivo con una dirección MAC distinta, conforme se muestra en la cabecera Ethernet. Si el enrutador (router) o el conmutador multi-capa (multi-layer switch) correspondiente no soporta esta funcionalidad, es posible crear una entrada ARP estática en el router como solución al problema, para que así sea capaz de resolver la dirección IP Unicast a la dirección MAC Multicast correspondiente.Multicast puede ofrecer un rendimiento inferior a Unicast, debido a que utiliza una única tarjeta de red tanto para el tráfico de los equipos clientes como para el tráfico host-to-host (también conocido como tráfico intra-host).Al utilizar Multicast es posible activar la opción IGMP Multicast. La principal razón por la que activar o desactivar la opción IGMP Multicast, es en caso de descubrir algún tipo de problema de funcionamiento, como por ejemplo, problemas de convergencia.

La recomendación de Microsoft es utilizar el modo de operación Unicast, excepto que se disponga de una única tarjeta de red (tanto para el Cluster NLB como para el resto de comunicaciones) y además sea necesaria la comunicación entre los distintos Nodos del Cluster. Como hablamos, es recomendado para evitar problemas con enrutadores (routers).

Es importante tener en cuenta, que la dirección MAC del Cluster NLB, se genera de forma automática, es decir, no podemos especificar de forma explícita que dirección MAC deseamos utilizar para utilizar como MAC del Cluster.

También es interesante recordar que, independientemente del modo de operación del Cluster NLB (es decir, sea Unicast o sea Multicast), las tarjetas de red utilizadas en un Cluster NLB dispondrán al menos de dos direcciones IP: la dirección IP propia de la tarjeta más la dirección IP del Cluster NLB.

Nota: Información de aqui

Una vez tenemos esto seguimos con definiendo los puertos del balanceador. Microsoft por defecto nos habilita todo los puertos.

Puerto

Puerto

Por defecto dejaremos solo el 80.

Por defecto dejamos el 80

Por defecto dejamos el 80

En la siguiente opción, al ser un servicio, podemos indicarle como queremos que se inicie. En este caso, al conseiderarlo critico lo dejaremos como inicio por defecto Iniciado.

Inicio por defecto

Inicio por defecto

Una vez finalizada la configuración ya tenemos el primer nodo del cluster. Mientras configurabamos este nodo, teniamos la posibilidad de agregar mas nodos y configurarlos todos a la vez, pero siempre va bien hacer uno por uno.

Ahora es tan facil como boton derecho, agregar nodo y poner la ip de dicho nodo, en este caso Back-Server02 (192.168.1.42) y ya lo tendremos. Las dos maquinas y el frontal.

Frontal y 2 Backends

Agregar maquina

Frontal y 2 Backends

Frontal y 2 Backends

Pero ahora tocan las prubas. La mas facil es;

Conectarse al balanceador (192.168.1.40) y ver que web muestra:

Primera conexión

Primera conexión

Desactivamos la tarjeta de red del servidor 1 (192.168.1.39) y nos volvemos a conectar al frontal (192.168.1.40) con otro navegador (por temas de cache)

Segunda conexión

Segunda conexión

Y vemos que nos muestra otra web, conectandonos a la misma ip. Ya tenemos nuestro balanceador funcionando. :)

Categories: IIS, Windows Tags:

IIS Migration Tool

Miércoles, 7 de abril de 2010 Enric Solsona Sin comentarios

Para la migración de un site (o varios) una buena solución es el IIS Migration Tool. Esta herramienta de micrososft nos permite la “automatización” de parte de la configuración de los nuevos sites.

Aquí dejo la explicación de como he migrado un site:

Primero descargamos el software de la web oficial: (aqui)

Lo dejamos en la maquina destino y lo ejecutamos. Nos va aparecer una pantalla tipo MS-DOS y tendremos que pasarle variamos parámetros como el site que queremos migrar, el servidor origen, usuario y password, directorio de destino (si es distinto, como es mi caso) etc..

Aquí dejo un pantallazo de mi ejecución:

En esta web se muestran y explican parte de los parametros de la aplicación.

SourceServer
Required

Identifies the source server by providing the following:
DNS or NetBIOS name for the source server

IP address of the source server


WebSite
Required

Identifies the site to be migrated by providing the following:
Web site description, such as “Default Web Site”

Metabase key path, such as W3SVC/1

/user UserName
Optional

Specifies the user name of an account that is a member of the Administrators group on the source server. This parameter is not necessary if you log on with an account that is a member of the Administrators group on both the source server and the target server.

/password Password
Optional

Specifies the password that is associated with the user name.

/path Path
Optional

Specifies a different directory location for the home directory of the Web site on the target server. This parameter is ignored if /configonly is included.

/serverbindings ServerBindingsString
Optional
Allows a c
hange to the IP address, host header, or port configuration of the Web site during the migration.

/siteid SiteID| Replace
Optional

Specifies the site ID on the target server, which can be specified as one of the following:
SiteID – Overwrites the site ID on the target server.

Replace – Overwrites the site ID on the target server with the site ID from the source server.

/configonly
Optional

Migrates only the Web site configuration and not the Web site content.

/fpse
Optional

Reapplies FrontPage Server Extensions to the migrated site on the target server. This parameter is ignored if /configonly is included.

/verbose
Optional

Displays metabase path copy and file copy operations to the screen during the migration process.

/overwrite
Optional

Does not display messages that prompt the user to confirm the overwriting of an existing destination folder or file when content is being copied from the source server to the target server.

/noninteractive
Optional

Does not display messages that prompt the user for input. The migration tool will exit on the first error condition. This is a useful switch for invoking the migration tool from a batch file or script program to perform an unattended migration.

Categories: IIS, Windows Tags:

Ver conexión por usuario y base de datos en SQL Server !

Jueves, 18 de febrero de 2010 Enric Solsona Sin comentarios

Para ver que usuarios estan conectados a cada base de datos y la cantidad de logins que hay tenemos que lanzar la siguiente select;

SELECT db_name(dbid) as DatabaseName, count(dbid) as NoOfConnections,
loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame

a disfrutarlo!

Categories: SQL, Windows Tags:

Carta abierta de un informático acerca de la corrupción

Viernes, 8 de enero de 2010 Enric Solsona Sin comentarios

Fuente entornoconsultoria.blogspot.com

Hastiado, ésta es la palabra que define mi ánimo. Desde hace años y cada vez más veo como el nivel de corrupción en las empresas aumenta demoledoramente. Desde mi posición como informático y autónomo, tengo una visión privilegiada acerca de la información almacenada en el software de gestión empresarial.

¿De qué sirve hacer 1000 inspecciones para detectar que un autonómo se desgravó 100 euros de más en un trimestre, si con 10 inspecciones se encontrarían que grandes empresas tienen agujeros contables de 100.000 euros en un trimestre de una manera descarada y muy fácil de probar? Porque el autónomo no tiene medios para vengarse con denuncias ni ‘untarte’…

Estoy harto que las empresas (e incluso ayuntamientos), que para colmo son auditados, requieran, por poner un ejemplo de las decenas de tipologías de fraude que conozco, un sistema informático para introducir doble contabilidad, y nadie haga nada con lo fácil que es detectarlo. Multinacionales o empresas ‘de gran prestigio’, cuyo logo queda bonito en medio de la cosmopolita ciudad, y que nadie se atreve o no hay voluntad de inspeccionar simplemente por un hecho: que untan a diestro y siniestro y te pueden denunciar por ‘perjudicar su imagen de marca’.

Que me digan a mí cómo el jefe de inspectores que analizaba la empresa Núñez y Navarro le había comprado pisos a la promotora. Que me digan cómo es posible que después de años de denuncias anónimas al sr. Millet es ahora cuando le cogen, cuando ya ha disfrutado la vida a tope saqueando las arcas públicas y ahora ya es anciano. Personalmente no creo que estén esperando a que ‘se acumule su delito para que salga a cuenta ’, cuando sale a cuenta desde el primer mes, sino que simplemente ahora interesa por ciertas razones políticas y antes no.

Millones de euros defraudados en las altas esferas (personajes públicos, empresas privadas y administración pública). Es todo una maraña de intereses, para que luego nos suban los impuestos a los que menos tenemos, el IVA y se carguen el consumo, quiten la desgravación por primera vivienda, saqueen las herencias de las clases medias con el ‘impuesto de la muerte’, suba el IRPF, aumenten las multas de tráfico indiscriminadas (mientras pagamos las del sr. Benach que se pasea a 200 kmh para llegar a Barcelona desde Reus), aumenten las tasas municipales, se destruya el empleo ante la inacción de la clase política, aumenten las inspecciones a autónomos y no a las empresas que les obligan a facturar en lugar de pagar nóminas para ahorrarse la seguridad social y el despido, etc.

Este es un país de chiringuitos financieros, untados, chupópteros y demás fauna que necesita una regeneración social y moral en todos los estratos. Mientras tanto, veo cómo el círculo se estrecha y cada vez la gente arroja la toalla más pronto. En mi caso, seguiré luchando porque prefiero morir de pie que vivir arrodillado, mientras espero que me lleguen las costas judiciales y posible embargo de mi vivienda, después de una denuncia que interpuse contra IBM por incumplimiento de contrato, mientras el subcontratista (proveedor principal y cuya única estructura es la buhardilla de su domicilio particular y un teléfono) seguía cobrándoles por mis servicios sin que yo estuviere, e hinchando a comisiones ilegales al socio. Otra vez más, la maquinaria arrolladora legal de las multinacionales (dígase PWC, que también ayuda a los socios de IBM en sus pleitos familiares) destruye los derechos de los más pequeños, ante la impasividad de los sindicatos (que sólo ‘luchan’ para conseguir rebajas de 1 euros en el menú del comedor de empresa), administración pública (después de haber enviado cartas de denuncia de fraude fiscal con pruebas) cuando en EEUU esta compañía hace años que su división de consultoría es ilegal y le han prohibido tener contratos con la administración pública.

Sé que esta carta difícilmente se publicará en ningún medio, dado que también los medios forman parte de grupos de interés, pero al menos podré decir ‘yo lo intenté’…

En fin, tenemos el mundo que nos merecemos y habrá que esforzarse mucho por mejorarlo.

Fuente entornoconsultoria.blogspot.com

Dicha carta ha sido publicada por estar al 100% a favor de su contenido, osties.es

Categories: Apache, Debian, IIS, Linux, Nagios, SQL, Sin categoría, Windows Tags:

Que servicio usa un Application Pool en IIS 6? !

Sábado, 24 de octubre de 2009 Enric Solsona Sin comentarios

Fruto de un problema que me he encontrado en el trabajo, he buscado un poquito la manera de ver el servicio que esta usando un Application Pool.

Si tenemos un servidor web con Windows, podemos ver un servicio llamado w3wp.exe, que no es nada mas que el Application Pool que tenemos en el IIS. Muchas veces, fruto de problemas, este servicio empieza a consumir muchos recursos.

Si nos encontramos con este problema, y tenemos varios Aplication Pool, necesitaremos ver que proceso una un Application Pool, o mejor dicho que Application pool esta asignado a un proceso.

Para ver esto, es tan facil como lanzar un script que ya viene con el Windows;

systemroot\system32\iisapp.vbs

Con esto nos mostrará el proceso y el Application Pool.

A partir de aquí, solo queda buscar el raíz del problema.

Aquí tenemos algo de documentación Microsoft

Categories: IIS, Windows Tags:

Actualizar software en Windows !

Sábado, 24 de octubre de 2009 Enric Solsona Sin comentarios

Secunia tiene un programa que analiza el software instalado en tu maquina y mira si hay actualizaciones posibles, si no hay te lo marca como software “end of life”, si hay te permite la descarga directa.

Secunia

Secunia

Con estos parámetros valora la seguridad en tu maquina. No detecta el software de microsoft, pero si el otro (a veces mas difícil de mantener)

100% recomendado.

Su Web

Categories: Software, Windows Tags: