jueves, 8 de febrero de 2018

Windows 10 – AppX Packages Can Break Sysprep

Hi.

I was suffering a problem using MDT trying to capture with sysprep the Windows 10 x86 1709 release. The log shows the error 0x3cf2 after launching sysprep /generalize.

Problem and solution appears here:  KB2769827  but this guy https://virtuallyinclined.com/2017/01/08/windows-10-appx-packages-can-break-sysprep/ and myself went from throwing lines after launching sysprep /generalize again and again.

 I'd appreciate your feedback and update if you would detect that I had to remove more apps after changing them in Windows 10, because I've seen that these are changing depending on the apps promoted by Microsoft in every period.

The second problem I've found is that the shawn's script is not updated for W10 v1709 so I updated this.

Finally the scripts are:

FIRST ONE:

Import-Module AppX
Import-Module Dism

#You may have to manually uninstall some Sponsored Apps from the Start Menu

#Microsoft Apps
Get-AppxPackage *Microsoft.3DBuilder* | Remove-AppxPackage
Get-AppxPackage *Microsoft.BingTranslator* | Remove-AppxPackage
Get-AppxPackage *Microsoft.FreshPaint* | Remove-AppxPackage
Get-AppxPackage *Microsoft.Getstarted* | Remove-AppxPackage
Get-AppxPackage *Microsoft.Messaging* | Remove-AppxPackage
Get-AppxPackage *Microsoft.MicrosoftOfficeHub* | Remove-AppxPackage
Get-AppxPackage *Microsoft.MicrosoftSolitaireCollection* | Remove-AppxPackage
Get-AppxPackage *Microsoft.NetworkSpeedTest* | Remove-AppxPackage
Get-AppxPackage *Microsoft.Office.OneNote* | Remove-AppxPackage
Get-AppxPackage *Microsoft.OneConnect* | Remove-AppxPackage
Get-AppxPackage *Microsoft.People* | Remove-AppxPackage
Get-AppxPackage *Microsoft.SkypeApp* | Remove-AppxPackage
Get-AppxPackage *Microsoft.MicrosoftStickyNotes* | Remove-AppxPackage
Get-AppxPackage *Microsoft.WindowsCalculator* | Remove-AppxPackage
Get-AppxPackage *microsoft.windowscommunicationsapps* | Remove-AppxPackage
Get-AppxPackage *Microsoft.WindowsFeedbackHub* | Remove-AppxPackage
Get-AppxPackage *Microsoft.WindowsMaps* | Remove-AppxPackage
Get-AppxPackage *Microsoft.XboxApp* | Remove-AppxPackage
Get-AppxPackage *Microsoft.XboxIdentityProvider* | Remove-AppxPackage
Get-AppxPackage *Microsoft.ZuneMusic* | Remove-AppxPackage
Get-AppxPackage *Microsoft.ZuneVideo* | Remove-AppxPackage
Get-AppxPackage *SpotifyAB.SpotifyMusic* | Remove-AppxPackage
Get-AppxPackage *Microsoft.bingnews* | Remove-AppxPackage
Get-AppxPackage *king.com.BubbleWitch3Saga* | Remove-AppxPackage
Get-AppxPackage *king.com.CandyCrushSodaSaga* | Remove-AppxPackage
Get-AppxPackage *A278AB0D.MarchofEmpires* | Remove-AppxPackage
Get-AppxPackage *A278AB0D.DisneyMagicKingdoms* | Remove-AppxPackage
Get-AppxPackage *DolbyLaboratories.DolbyAccess* | Remove-AppxPackage

#Sponsored Apps
Get-AppxPackage *Duolingo* | Remove-AppxPackage
Get-AppxPackage *EclipseManager* | Remove-AppxPackage
Get-AppxPackage *Flipboard* | Remove-AppxPackage
Get-AppxPackage *Wunderlist* | Remove-AppxPackage


AND THE SECOND ONE:

Import-Module AppX
Import-Module Dism

#You may have to manually uninstall some Sponsored Apps from the Start Menu

#Remove AppX Packages for non-business Apps
Get-AppxPackage *Microsoft.3DBuilder* | Remove-AppxPackage
Get-AppxPackage *Microsoft.Getstarted* | Remove-AppxPackage
Get-AppxPackage *Microsoft.Messaging* | Remove-AppxPackage
Get-AppxPackage *Microsoft.MicrosoftOfficeHub* | Remove-AppxPackage
Get-AppxPackage *Microsoft.MicrosoftSolitaireCollection* | Remove-AppxPackage
Get-AppxPackage *Microsoft.Office.OneNote* | Remove-AppxPackage
Get-AppxPackage *Microsoft.People* | Remove-AppxPackage
Get-AppxPackage *Microsoft.SkypeApp* | Remove-AppxPackage
Get-AppxPackage *microsoft.windowscommunicationsapps* | Remove-AppxPackage
Get-AppxPackage *Microsoft.WindowsFeedbackHub* | Remove-AppxPackage
Get-AppxPackage *Microsoft.XboxApp* | Remove-AppxPackage
Get-AppxPackage *Microsoft.XboxIdentityProvider* | Remove-AppxPackage
Get-AppxPackage *Microsoft.ZuneMusic* | Remove-AppxPackage
Get-AppxPackage *Microsoft.ZuneVideo* | Remove-AppxPackage

#Remove AppX Provisioning for non-business apps
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.3DBuilder" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.Getstarted" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.Messaging" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.MicrosoftOfficeHub" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.MicrosoftSolitaireCollection" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.Office.OneNote" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.People" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.SkypeApp" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "microsoft.windowscommunicationsapps" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.WindowsFeedbackHub" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.XboxApp" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.XboxIdentityProvider" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.ZuneMusic" | Remove-AppxProvisionedPackage -Online
Get-AppxProvisionedPackage -Online | where Displayname -EQ "Microsoft.ZuneVideo" | Remove-AppxProvisionedPackage -Online

martes, 26 de diciembre de 2017

Console shows this error "requesturi is /veeamservice" when you try to connect to a veeam server

Hello.

After my investigation I didn't find in internet the solution to the problem named in the title of this article.

I found from veeam some information like this article: https://www.veeam.com/kb1756

As you are able to find in internet, this problem appears if the service is down but as I said it didn't work in my case because the services were working properly so i had to investigate more.

Finally the problem was related with the network. I had three nics in my server and Veeam worked fine when I re installed the server only with one Nic enabled and all others disabled. Maybe there is another article detailing the problem but while that, I wanted to share with you the solution I deduced after reading all others.

Cheers.




martes, 28 de marzo de 2017

Powershell script - Cambio de contraseña de administrador local 2/2

Siguiendo con la entrada anterior, publico a continuación el script que deberá ser lanzado vía sccm u otros, de forma local en los equipos por mediante un usuario que tenga permiso de acceso a los archivos que hemos generado con nuestro script que comento también en la entrada anterior.

Como comenté, el script modifica la contraseña del usuario con ID 0, el cual, ya que si fuésemos a buscar el usuario Administrador o Administrator, este podría haber sido nombrado y fallaríamos en nuestro intento.

Personalización:

El script requiere ser personalizado en la linea 1 y 2, donde pondremos la ruta correcta de los archivos.

Script:

$PasswordFile = "c:\temp\Password.txt"
$KeyFile = "c:\temp\AES.key"
$key = Get-Content $KeyFile
$pwd= get-content $passwordfile | Convertto-SecureString -Key $Key
$userlist = get-wmiobject win32_useraccount
$localadm=$userlist[0].caption.replace(“\”,”/”)
$objUser = [ADSI]"WinNT://$localadm, user"
$decodedpassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd))
$objUser.psbase.Invoke("SetPassword", $decodedpassword)
$objuser.psbase.CommitChanges()

Script Powershell para el cambio de contraseña local de usuario administrador 1/2

Hola.

Es común encontrar una gpo a través de la cual cambiamos la contraseña del usuario administrador local en los equipos de nuestro dominio, sin embargo, este proceso no es nada seguro y cualquier auditor de seguridad va directamente a por él, colocándonos un colorcito rojo en las cosas que tenemos que cambiar antes de la siguiente auditoría.

Pues bien, para ello he realizado dos scripts, este primero que os presento cifrará la contraseña que queremos poner y la guardará en un archivo txt de forma cifrada.

También tendremos un archivo que guardará la clave de cifrado que hemos usado para cifrar. Yo, lo que haría, sería ubicar ambos archivos en un carpeta de red compartida de forma oculta a la que sol tuviese acceso el usuario que vía sccm u otros, va a lanzar el proceso de cambio. Usuario que por supuesto, ha de pertencer al grupo builtin\administrators del dominio o ser administrador local de los equipos del parque por otras vías.

Cabe destacar que este script ha de ser lanzado por el personal de IT cada vez que queremos generar un archivo txt con una clave diferente, o mejor dicho, cada vez que queremos cambiar la clave de administrador de los equipos.

Personalización del script:

- Debéis modificar la linea 2 y linea 8 cambiando las rutas donde almacenar los archivos.

Contenido del script:

#generamos archivo .key
$KeyFile = "C:\Temp\AES.key"
$Key = New-Object Byte[] 16   # podemos usar 16, 24, or 32 for AES
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($Key)
$Key | out-file $KeyFile

#generamos archivo .txt y guardamos contraseña en él.
$PasswordFile = "c:\temp\Password.txt"
$Key = Get-Content $KeyFile
$Password = "Abcd123456" | ConvertTo-SecureString -AsPlainText -Force
$Password | ConvertFrom-SecureString -key $Key | Out-File $PasswordFile

lunes, 20 de febrero de 2017

Virtual shared disk en disco local


Hola.

Existe la posibilidad de montar un disco compartido entre varias VMS, ubicando ese disco en una unidad local del servidor.

Esta configuración no está soportada por Microsoft y al configurarla, por defecto aparece un error impidiendo esta configuración.

La formad de realizarlo es lanzando previamente este comando:

fltmc.exe attach svhdxflt Unidad:\


Este comando pierde su efectividad si se renombra el servidor, teniendo que volver a lanzarlo para poder arrancar las VMS.

Saludos.

miércoles, 28 de diciembre de 2016

MDT - Activación de S.O. Open or Mak

Hola.

En lo referido a la activación de sistemas operativos desplegados con MDT, cabe destacar las siguientes variables a incluir en customsettings.ini.

1.   Es importante tener la entrada: SkipProductKey=YES  *

2.   Si hablamos de activación OPEN, tendremos que usar posteriormente la clave: ProductKey= XXXX-XXXXX-...

3.  Si hablamos de activación MAK, tendremos que usar posteriormente al paso 1 la clave: OverrideProductKeay=XXXXX-XXXXX-...


*Esto incluirá esta clave en el unattend.xml.

Saludos.

GPOs de usuario no se aplican desde las últimas actualizaciones de servidores


Hola.

En concreto, seguro que estáis teniendo problemas en cuanto la aplicación de GPOs desde Junio, mes en el que se aplicó la actualización: MS16-072.

Problema

El problema, aunque es mas bien un cambio decidido en MSFT, afecta a GPOs en las que se ha eliminado el grupo "Usuarios autenticados" buscando que la GPO solo aplique a un grupo de usuarios concreto. Algo comunmente utilizado en las empresas para la distribución de configuraciones específicas, unidades de red, impresoras, etc.

Si no tenéis la configuración que aparece en la siguiente captura  y habéis añadido un grupo de usuarios en sustitución a Authenticated Users, podemos asegurar que vuestras GPOS no se están aplicando.



¿Cómo identificar y encontrar GPOs que no se están aplicando?

Análisis posible 1
Podéis utilizar el típico gpresult /h new-report.html y ver qué GPOs devuelven un “Reason Denied: Inaccessible, Empty or Disabled”

Análisis posible 2
para tener una lista de GPOs ilegibles por los usuarios.

Solución 1

Como solución y aunque tengáis a un grupo concreto con permiso de "Read" y permiso de "Apply group Policy" pasa por añadir también al grupo "Authenticated Users" solo con permiso de "Read". Esto permitirá que la aplicación de la GPO seguirá siendo selectiva y única para el grupo concreto y no se aplicará a todos los usuarios del dominio.

Solución 2 (La mas aconsejada).

Para solucionar esta incidencia, debes añadir el grupo "Domain Computers" con permiso de "Read".  Por distintas razones, esta solución es la mas aconsejada.

Fuente:
https://support.microsoft.com/en-us/kb/3163622

miércoles, 7 de diciembre de 2016

Segundo Webcast de la serie sobre Azure

Hola.

Os dejo el link del segundo Webcast de la serie sobre Azure. En este WEbcast, David Carrasco y yo, hablamos sobre Máquinas virtuales.

Haga clic aquí para unirse al seminario web.


Saludos.

jueves, 1 de diciembre de 2016

Getting GPOS and GPO Links

Hello.

This script creates a txt file with the next information:

- GPOName
- LinksTo
- Enabled
- NoOverride
- CreatedDate
- ModifiedDate


Script:

$names=get-gpo -all
        $output= foreach ($name in $names) {
            get-gpolink -name $name.DisplayName
            }
         $output | out-file C:\temp\GpoandLinks.txt



martes, 29 de noviembre de 2016

Webcast sobre máquinas virtuales en Azure

Hola.

Este próximo Viernes, realizaremos el segundo Webcast de la serie sobre Azure.

Aquí os dejo el link.

Saludos.

Primer Webcast de la serie sobre Azure

Hola.

El pasado Viernes, David Carrasco y yo realizamos el primer Webcast sobre Azure de una serie de ellos que estamos haciendo para Microsoft.

Aquí tenéis el enlace de la grabación del primer webcast:

https://t.co/EoDK4avAL1

Saludos.

martes, 4 de octubre de 2016

Problema de validación en IIS / Ftp (evitar validación dominio\usuario)

Hola.

He estado lidiando con un problema que me gustaría repotar y dejar (dejarme a mi también) documentado para futuras "apariciones".

Escenario

Un FTP configurado con IIS, el cual publica, como es normal, una carpeta local del servidor.

La característica principal de este FTP, también relacionada con la incidencia, es que tengo configurado el dominio en la opción "Basic Authentication Settings" para evitar tener que validarme con dominio\usuario o usuario@dominio ya que algunos periféricos, en mi caso los Cisco, quienes quiero que dejen ahí un backup de la configuración, con cada cambio, no se llevan bien con @ y /.


 

A la carpeta publicada mediante FTP, tiene permiso de escritura y lectura un grupo de seguridad del dominio.


Problema

Solo por añadir a un nuevo usuario creado en el grupo citado al final del anterior párrafo, puede validar si utilizo dominio\usuario o usuario@dominio en mis tests con Filezilla, pero no puede validar usando solo el usuario.

Este problema no sucede en un usuario que fue creado cuando monté el FTP.



Solución

A la vez que simple (como suele suceder) la solución es rebuscada ya que se te ha de ocurrir hacer lo siguiente.


Cada vez que creas un usuario nuevo para el FTP y quieres que este se valide sin usar "Dominio\usuario" y solo "Usuario", has de deshabilitar la opción "Basic Authentication" y volverla a habilitar.

Saludos.



martes, 20 de septiembre de 2016

Delete files in a path with more than 248 characters.


Whether if you are using the graph. interface or powershell You'll see an error (image1) if you try to delete files located in a path with more than 248 characters.

Image1


Solution

The solution that I've found is:

1. Download 7-zip
2. Open this as administrator.
3. Go to the disk of the folder or to the file that you'd like to erase.
4. Press Shift key + Click on using the right button.
5. Click on Delete.



:)

lunes, 12 de septiembre de 2016

Event id 20 - Borrado de actualizaciones durante el reinicio.

Hola.

Un par de servidores míos me han estado dando problemas al ser reiniciados. Estos tomaban mucho tiempo ya que encontraban gran número de updates que no se terminaban de instalar bien y por ello, estas eran desinstaladas en cada reinicio.

El error en el servidor es claro y llegamos a el al echarlo en falta durante bastante tiempo tras el reinicio.

En el Event log, tenemos errores de este tipo:

EVENT # 11791
EVENT LOG System
EVENT TYPE Error
SOURCE Windows Update Agent
CATEGORY Installation
EVENT ID 20
COMPUTERNAME SERVER01
TIME 11/2/2009 12:43:49 AM


MESSAGE Installation Failure: Windows failed to install the following update with error 0x3173427….


De tenerlos, tomaremos nota del o de los KB problemáticos.

Tras ello, abriremos un CMS como Administrador

Lanzaremos el comando: dism /online /get-packages, quien nos mostrará los KB instalados en nuestro equipo.



Borraremos los KB problemáticos con el comando: dism /online /remove-package /packagename:  y el número del paquete.

Por ejemplo:

Saludos.

jueves, 1 de septiembre de 2016

Clúster con CNO borrado en Directorio Activo. - Cluster where the CNO has been erased in AD.

Hola.

A continuación os voy a detallar una solución a un problema grave, como es encontrarnos que se ha borrado el equipo (CNO) objeto de clúster en el directorio activo.

La solución oficial la podéis seguir aquí:

Aunque en mi caso, esta solución o es válida porque me he encontrado que el objeto, no es recuperable con ADRestore y por tanto, he tenido que comprender e intentar suplantar el objeto borrado a base de prueba y error.

Pasos:

1. Lo primero va a ser crear un objeto con el mismo nombre que el que debería existir, en la misma OU donde están los nodos del clúster. En mi cas este es el objeto con nombre "Exchange".


2. Vamos a dar permisos en la OU aud contiene el objeto, tanto a el, como a los nodos del clúster.
    - Permiso a añadir el de crear objetos: Create all child objects.



3. Vamos a copiarnos la clave Hexadecimal del atributo ObjectGUID


4. Vamos a ver la clave "ClústerNameResource" que encontramos en uno de los nodos del clúster en la ruta HKEY_LOCAL_MACHINE/Cluster


5. A continuación vamos a ir a la clave HKEY_LOCAL_MACHINE\Cluster\Resources\9fde1b55-c399-4485-bfe6-048d8711da45\Parameters  . Dentro veremos el OBJECTGUID que tenía el objeto que se creó en su día.

6. Cambiaremos la clave ObjectGUID anterior por el código hexadecimal que copiamos en el punto 3.


7. Repetiremos los pasos 5 y 6 en todos los nodos del clúster.

8. A continuación resetearemos la cuenta que creamos en el primer punto.



Testeando la solución:

Iremos el clúster y haciendo click derecho sobre el recurso del nombre del clúster, elegiremos "More Actions - Repair".





Saludos.