viernes, 23 de septiembre de 2016

Actualización a Windows 10 edición aniversario con WSUS

Escribo esto por si algún otro hispano parlante está sufriendo los problemas que yo he pasado ayer y hoy.Imagino que MS corregirá la KB.

Resulta que para distribuir la actualización de Windows 10 aniversario mediante WSUS hay que instalar al servidor WSUS la actualización  KB3159706  distribuida mediante windows update.
No solo eso sino que despues de instalarla debes realizar unas tareas manuales descritas en la KB3159706 correspondiente.
Si no lees el articulo, no realizas la tareas posteiores y apruebas las actualizaciones el WSUS se quedará  en un estado incoherente.
Como puedes imaginar hay mucha gente que ha caído en la trampa.

Finalmente Microsoft publicó ayer una solución pasa por aplicar una serie de scripts PowerShell y TSQL descritos en la KB3194588

Desgraciadamente el script que suministran solo funciona  en versiones inglesas y aquellas lenguas donde versión se escriba version. En portugués tampoco debe ir.

El problema está en una línea que busca en la descripción de las actualizaciones 
$1607Updates = $s.SearchUpdates(“version 1607”)

Esta línea no devuelve los updates en español que usan la palabra versión con tilde.
Y luego el T-SQL tampoco hacen nada por supuesto.

Hay que usar
$1607Updates = $s.SearchUpdates(“versión 1607”)

Una vez reparado el WSUS probablemente tendrás que dar una limpieza al cliente de windows update tal como indica la KB

Acceder a la Base de datos de WSUS

Problema:

Has usado la base de datos interna de Windows para WSUS y tienes que acceder para aplicar TSQL de una KB. ¿Como abrirla desde SQL Server Management Studio (instalado en la misma maquina)

Solución:

Ejecutar  SQL Server Management Studio en modo administrador y abrir copiando y pegando:
    \\.\pipe\MICROSOFT##WID\tsql\query


jueves, 10 de marzo de 2016

jquery.validation de un tinyMCE en un paso de jquery.steps

Sumario:

Tienes una página construida con plugin jquery.steps para asistentes (Wizards). Uno de los pasos es un texto HTML editado con tinyMCE. El elemento textarea que corresponde al este editor esta marcado como requerido para la validación mediante jquery.validation:
id= "CuerpoHTML" data-val="true" data-val-required="El campo Cuerpo de la noticia es obligatorio."
Sin embargo la validación no funciona: cuando dejas el texto vacio puedes pasar al siguiente paso.

Solución:

Tienes que hacer dos cosas cuando avanzas al siguiente paso del texto enriquecido.
  • Guardar el texto editado con tinyMCE.triggerSave()
  • Habilitar la validación de campos oculto
Para abreviar copio el código


        var stepTinyMCE = 1; // (manual pero puede automatizarse) Recordar que empieza en cero
        var form = $('form');
        form.children("div").steps({
            headerTag: "h2",
            bodyTag: "section",
            transitionEffect: "slideLeft",
            onStepChanging: function (event, currentIndex, newIndex) {
                if (currentIndex > newIndex)
                {
                    return true
                }
                else if (currentIndex == stepTinyMCE)  //paso del tinyMCE
                {
                    form.validate().settings.ignore = "";
                    tinymce.triggerSave();
                    return $('#CuerpoHTML').valid();
                } else 
                {
                    form.validate().settings.ignore = ":disabled,:hidden";
                    return form.valid();
                }
            },
            onFinishing: function (event, currentIndex) {
                form.validate().settings.ignore = ":disabled";
                return form.valid();
            },
            onFinished: function (event, currentIndex) {
                alert("Submitted!");
            }
        });