viernes, 9 de noviembre de 2012

Problemas con almacenamiento ISCSI en vmWare

Síntomas:

Tienes varios ESX y añades uno nuevo. Los ESX existentes tiene almacenes (datastores) iSCSI
Configuras la red y el iniciador iSCSI.
Después de volver a barrer la red (rescaneo) ves los dispositivos y  que están montados.
Sin embargo los almacenes (datastores) que estan en otros host ESX no son visible en el almacenamiento (storage) de tu nuevo host.

Cuando intentas añadirlos manualmente te ocurren dos cosas:
a) En algún caso lo único que te propone es formatear, cosa que desde luego no haces.
b) En otros casos te da las tres opciones, pero cuando eliges utilizar la signatura existente (keep existing signature) obtienes el error:
Error: Cannot change the host configuration.
Error Stack
Call "HostStorageSystem.ResolveMultipleUnresolvedVmfsVolumes" for object "storageVolume" on vCenter Server "MyVC" failed

Solución:

a) Cuando solo propone el formateo es porque el datastore esta utilizado por una VM en marcha o por algún mecanismos de vmWare View. No muevas los clones con el vCenter, si es preciso para los servicios del composer e incluso el View Server
b) Cuando ya puedas añadirlos manualmente utilizando la signatura existente, deberás conectar el cliente vCenter directamente al host ESX. (esto es no al vCenter Server). De esta forma evitaras el error mas arriba.

Referencias:

Las formas en que un iSCSI te puede causar problemas en vmWare son infinitas, pero yo encontré mi solución desde los logs y gracias a estas dos entradas que se complementan.
Forcemounting a VMFS datastore residing on a snapshot LUN results in the error:Cannot change the host configuration




lunes, 5 de noviembre de 2012

Error en la instalación del cliente SCCM debido a la versión BITS

Enunciado

No se produce la instalación del cliente SCCM mediante WSUS em maquinas Windows 2003 o XP.
El registro en %windir%\WINDOWSUPDATE.LOG contiene el error:
2012-10-30    15:10:59:184     892    165c    Agent    *********
2012-10-30    15:10:59:184     892    165c    Agent      * Updates to install = 1
2012-10-30    15:10:59:200     892    165c    Agent      *   Title = Configuration Manager Client Installation
.....................
2012-10-30    15:11:02:965     892    59c    AU      # WARNING: Install failed, error = 0x80070643 / 0x00000001
2012-10-30    15:11:02:965    5416    1cc    Handler      : WARNING: Exit code = 0x8024200B


(Que en resumidas cuentas nos dice que la instalación ha fallado)

La clave como otras veces la tenemos en el registro en %windir%\CCMSETUP\CCMSETUP.LOG que en este caso contiene:
<![LOG[This operating system does not contain the correct version of BITS. BITS 2.5 or later is required.]LOG]!>

Que nos está diciendo claramente lo que hay que hacer.

Solución

Instala BITS 2.5 para tu versión de sistema operativo, por ejemplo para un windows 2003 x86
http://www.microsoft.com/es-es/download/details.aspx?id=4933

jueves, 25 de octubre de 2012

Limpiar WSUS de las descargas (útil si usas SCCM)

Enunciado

Instalas WSUS y configuras la descarga de actualizaciones aprobadas.
Las apruebas.
Instalas luego SCCM y descubres que realmente no quieres que no necesitas descargar las aplicaciones.
Estas duplicando el espacio en disco.
(Para SCCM se debe instalar WSUS pero no configurarlo)

Solución

Tan simple como marcar todas las descargas como rechazadas o no aceptada y ejecutar el asistente de limpieza en opciones.

Paquetes de definiciones EndPoint Protection 2012 vacios

Síntomas:

English Version at MSDN Forums.

En System Center Configuration Manager 2012 con un servidor SQL Server español las reglas para la distribución automática de paquetes con definiciones de End Point Protection nunca se rellenan con las actualizaciones del WSUS.

Cuando analizas el rulengine.log encuentras estas entradas:
Query to run is: select CI_ID from dbo.fn_ListUpdateCIs(3082) ci~where IsExpired=0~ and (DateRevised>=N'2012-10-23 22:22:08')~ and (CI_ID in (select CI_ID from fn_ListCICategoriesAll(3082) where CategoryTypeName='Product' and (CategoryInstanceName in (N'Forefront Endpoint Protection 2010')))) SMS_RULE_ENGINE 25/10/2012 0:22:08 3136 (0x0C40)
Rule resulted in a total of 0 updates SMS_RULE_ENGINE 25/10/2012 0:22:09 3136 (0x0C40)

Solución:

En mi caso bastó con cambiar el idioma prederminado del SQL Server a Inglés ( en propiedades del servidor motor de BD, Avanzadas, Idioma por defecto).
Para ver si es tu caso lee los siguientes comentarios.

Comentarios:

Si te fijas en la primera línea del registro, a continuación del Query to run is:  tenemos una clausula SQL que podemos copiar y pegar en la en la consola (SSMS) del SQL Server. Una vez eliminado los símbolos ~   y con unos saltos de línea queda bastante legible.
select CI_ID from dbo.fn_ListUpdateCIs(3082) ci 
where IsExpired=0  
 and (DateRevised>=N'2012-10-23 22:22:08')  
 and (CI_ID in (select CI_ID from fn_ListCICategoriesAll(3082) 
                where CategoryTypeName='Product' 
                and (CategoryInstanceName in (N'Forefront Endpoint Protection 2010')
))) 
Pero si la ejecutamos tenemos un  un error:

CI_ID
-----------
Mens. 242, Nivel 16, Estado 3, Línea 1
La conversión del tipo de datos nvarchar en datetime produjo un valor fuera de intervalo.

Este error debería desaparecer si cambias en la consulta el formato de fecha (En lugar de 2012-10-23 escribes 23-10-2020).

select CI_ID from dbo.fn_ListUpdateCIs(3082) ci 
where IsExpired=0  
 and (DateRevised>=N'23-10-2012 22:22:08')  
 and (CI_ID in (select CI_ID from fn_ListCICategoriesAll(3082) 
                where CategoryTypeName='Product' 
                and (CategoryInstanceName in (N'Forefront Endpoint Protection 2010')
))) 
Obtendrás la lista de ids de definiciones, en mi caso fué:
CI_ID
-----------
16811415
16811428
16811468

(3 filas afectadas)
Por eso si cambias el idioma predeterminado a inglés del SQL Server te funcionara la ADR de SCCM.

Nota:

En mi caso opté por cambiar el idioma en el servidor  pero es posible que cambiándolo en los usuarios de SCCM o el origen de datos ODBC del servidor SCCM se resuelva también el problema.

viernes, 19 de octubre de 2012

Algunos consejos instalando SCCM con End Point Security Manager

Enunciado:

Instalar MS End Point Protection Manager con System Control Configuration Manager es una tortura (http://angrytechnician.wordpress.com/2010/08/09/the-torture-of-installing-system-center-essentials-2010/)
Espero que las siguientes notas sean de ayuda:

Problema 1:

La collation del SQL Server debe ser SQL:Latin1_General_CP1_CI_AS. 
Lo debes especificar al instalar el SQL SERVER

Si como yo procedes a instalar con los valores por defecto tendras que:

  • Desinstalar WSUS completamente si ya lo has instalado como hice yo.
  • Realizar un rebuild de la base MASTER

Para ello usas este mandato:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName /SQLSYSADMINACCOUNTS=accounts [ /SAPWD= StrongPassword ] [ /SQLCOLLATION=CollationName]


  • Volver a configurar las bases de datos del Report Server
  • Reinstalar WSUS

Problema 2

La documentación para configurar las actualizaciones de Windows Update no esta muy clara, puedes seguir este tutorial:
http://www.windows-noob.com/forums/index.php?/topic/5452-using-system-center-2012-configuration-manager-part-1-installation-cas/
y mejor que no te dejes nada de las primeras páginas.

Problema 3

Cuando configuras la primera máquina para que descargue el cliente SCCM, se produce un error. En mi caso es que no había configurado un Boundary Group. Al configurarlo le dices con que servidores tiene que conectar.

Realmente es una tortura.

miércoles, 10 de octubre de 2012

DisplayMember en windows forms checkedlistbox

Problema:

 El control checkedlistbox de de Windows Forms no me ofrece los atributos "Displaymember" o "Valuemember" en las ventana de propiedades o en la lista inteligente de código.

Solución:

Establecerlo en código aunque no aparezca en la lista. Existe pero está marcado como no browseable.
!Atención¡ Escribe bien las mayúsculas y minúsculas.

Ejemplo;

miCheckedListBox.DisplayMember="Descripcion"

Referencia:

lunes, 1 de octubre de 2012

Chekbox en windows forms solo lectura

Enunciado

A diferencia de otros controles de Windows forms las checkbox no pueden marcarse como de solo lectura (readonly). Si utilizas la propiedad Enabled, pasan a un color gris claro que se ve mal, y no es modificable.

Solución:

Coloca las casillas dentro de un panel (por ejemplo panel1)
Importa la función WindowEnabled de user32.dll para poder deshabilitar eventos de ratón y teclado en ese panel.
Imports System.Runtime.InteropServices
Public Class Form1
    <DllImport("user32.dll")> _
    Private Shared Function EnableWindow(hWnd As IntPtr, bEnable As Boolean) As Boolean
    End Function

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        EnableWindow(Panel1.Handle, False)
    End Sub