Script completo para preparar equipo y lanzar Bitlocker.

Martes, 25 de junio de 2013 Sin comentarios

Hola.

Hago público el script del que os he hablado estos días.

Este Script, está hecho para que encuentre los portátiles como los encuentre, vaya mandando el comando correspondiente e irá preparando el equipo hasta lanzar el comando que cifra la unidad C:. No hace falta decir que se puede llevar al logonscript del dominio o como es mi caso, lanzarlo de forma continuada en los próximos logon vía SCCM.

Cabe destacar, que para mi, es importante que se apliquen los cambios en la gpo del dominio para que se almacene la clave de bitlocker en directorio activo.

Por partes:

#Comprobamos que la partición de boot está creada por debajo del tamaño Default ya que también se suele crear de 100mb.

      if( $Partitionstatus.size -gt 314572800) {  
        VENTANAPARTREINICIO
        bdehdcfg -target default -restart -quiet
    } 

#comprobamos que hay conectividad con alguno de los DCs antes de lanzar el cifrado ya que las directivas nos obligan a guardar la clave de bitlocker (de todas formas, no habiendo conectividad no funcionaría porque la directiva así lo ordena).

Function CONEXIONREDCIFRADODISCO
{
    $Ping1DC = Test-Connection "!DC1" -Count 1 -Quiet
    $Ping2DC = Test-Connection "!DC2" -Count 1 -Quiet
    if (($Ping1DC -eq $true) -or ($Ping2DC -eq $true)) {
        VENTANANOREINICIO
        manage-bde -on c: -skiphardwaretest -recoverypassword
    }

}

#Comprobamos que el equipo forma parte del dominio, que bitlocker no cifra ya el disco, que la partición es menor y que el equipo es un portátil.

If (($compconfig.domain -eq "!dominio.local") -and ($bitlockstatus -ne "1") -and ($Partitionstatus.size -le 314572800) -and ($tipoequipo -eq "2")) {

 

#———————————————————————————-
#Script para preparar equipos portátiles y lanzar bitlocker en unidad c:
#
# Realizado por Miguel Hernández
#
#Para personalizar este script ha de buscar el signo ! .
#———————————————————————————-

[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

$tpm = Get-WmiObject -class Win32_Tpm -namespace "root\CIMV2\Security\MicrosoftTpm"
$BitLockDrive = get-wmiobject -namespace root\CIMv2\Security\MicrosoftVolumeEncryption -class Win32_EncryptableVolume -filter "driveletter=’c:’"
$Partitionstatus= Get-WmiObject Win32_DiskPartition -filter "bootpartition=’True’"
$CompConfig = Get-WmiObject -Class Win32_ComputerSystem

##obtenemos el tipo de equipo = 1 {"Desktop"},2 {"Laptop"},3 {"Workstation"},4 {"EntServer"},5 {"SmallOfficeOrHomeServer"},6 {"AppliancePC"},7 {"PerformanceServer"},8 {"Maximum"},default {"NoConocido"}
$tipoequipo = $CompConfig.PCSystemType

#Obtenemos la información de si bitlocker ya cifra la unidad
$bitlockstatus = $BitLockDrive.protectionstatus

#——————————————————————————-
#Funciones
#——————————————————————————-

function VENTANAPARTREINICIO
{

#Ventana Form donde se comunica el reinicio

$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "IT Department."
$objForm.Size = New-Object System.Drawing.Size(300,220)
$objForm.StartPosition = "CenterScreen"

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
    {$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
    {$objForm.Close()}})

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(80,150)
$OKButton.Size = New-Object System.Drawing.Size(120,25)
$OKButton.Text = "Accept"
$OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)

$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,10)
$objLabel0.Size = New-Object System.Drawing.Size(280,30)
$objLabel0.Text = "Como parte del proceso de cifrado se va a preparar la unidad de disco de este equipo."
$objForm.Controls.Add($objLabel0)

$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,45)
$objLabel1.Size = New-Object System.Drawing.Size(280,30)
$objLabel1.Text = "Por favor, cierre todo los programas abiertos ya que al finalizar este proceso el ordenador se reiniciará."
$objForm.Controls.Add($objLabel1)

$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,85)
$objLabel0.Size = New-Object System.Drawing.Size(280,30)
$objLabel0.Text = "As part of Encrypting process it will be prepared the computer’s hard drive."
$objForm.Controls.Add($objLabel0)

$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,115)
$objLabel1.Size = New-Object System.Drawing.Size(280,30)
$objLabel1.Text = "Please close all your opened programs because the computer will be restarted."
$objForm.Controls.Add($objLabel1)

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

}

function VENTANAREINICIO
{
#Ventana Form donde se comunica el reinicio

$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "IT Department."
$objForm.Size = New-Object System.Drawing.Size(300,220)
$objForm.StartPosition = "CenterScreen"

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
    {$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
    {$objForm.Close()}})

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(80,150)
$OKButton.Size = New-Object System.Drawing.Size(120,25)
$OKButton.Text = "Accept"
$OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)

$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,10)
$objLabel0.Size = New-Object System.Drawing.Size(280,30)
$objLabel0.Text = "Se va a proceder a la activación del cifrado de su disco."
$objForm.Controls.Add($objLabel0)

$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,40)
$objLabel1.Size = New-Object System.Drawing.Size(280,30)
$objLabel1.Text = "Tras reiniciar, si su equipo es HP tendrá que pulsar la tecla F1 y si es TOSHIBA la tecla F10."
$objForm.Controls.Add($objLabel1)

$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,75)
$objLabel0.Size = New-Object System.Drawing.Size(280,20)
$objLabel0.Text = "It will proceed to activate the hard drive encryption."
$objForm.Controls.Add($objLabel0)

$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,95)
$objLabel1.Size = New-Object System.Drawing.Size(280,40)
$objLabel1.Text = "After restarting your computer if it an HP you will need to press the F1 Key however if it is a TOSHIBA press the F10 key."
$objForm.Controls.Add($objLabel1)

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

}

function VENTANANOREINICIO
{
#Ventana Form donde se comunica el proceso

$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "IT Department."
$objForm.Size = New-Object System.Drawing.Size(300,220)
$objForm.StartPosition = "CenterScreen"

$objForm.KeyPreview = $True
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Enter")
    {$x=$objTextBox.Text;$objForm.Close()}})
$objForm.Add_KeyDown({if ($_.KeyCode -eq "Escape")
    {$objForm.Close()}})

$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Size(80,150)
$OKButton.Size = New-Object System.Drawing.Size(120,25)
$OKButton.Text = "Accept"
$OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
$objForm.Controls.Add($OKButton)

$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,10)
$objLabel0.Size = New-Object System.Drawing.Size(280,20)
$objLabel0.Text = "Se va a lanzar el proceso de cifrado de su disco."
$objForm.Controls.Add($objLabel0)

$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,30)
$objLabel1.Size = New-Object System.Drawing.Size(280,40)
$objLabel1.Text = "Usted podrá trabajar con normalidad, aunque apreciará cambios en el espacio libre de su unidad de disco."
$objForm.Controls.Add($objLabel1)

$objLabel0 = New-Object System.Windows.Forms.Label
$objLabel0.Location = New-Object System.Drawing.Size(10,85)
$objLabel0.Size = New-Object System.Drawing.Size(280,20)
$objLabel0.Text = "It will proceed to activate the hard drive encryption."
$objForm.Controls.Add($objLabel0)

$objLabel1 = New-Object System.Windows.Forms.Label
$objLabel1.Location = New-Object System.Drawing.Size(10,105)
$objLabel1.Size = New-Object System.Drawing.Size(280,30)
$objLabel1.Text = "You can work normally although during this process the hard drive free space will changes."
$objForm.Controls.Add($objLabel1)

$objForm.Topmost = $True

$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()

}

#Prepara el disco para bitlocker
function PREPDISCO 
{

    if( $Partitionstatus.size -gt 314572800) {
        VENTANAPARTREINICIO
        bdehdcfg -target default -restart -quiet
    } 
}

#Comprobamos que estamos en red.
Function CONEXIONREDCIFRADODISCO
{
    $Ping1DC = Test-Connection "!DC1" -Count 1 -Quiet
    $Ping2DC = Test-Connection "!DC2" -Count 1 -Quiet
    if (($Ping1DC -eq $true) -or ($Ping2DC -eq $true)) {
        VENTANANOREINICIO
        manage-bde -on c: -skiphardwaretest -recoverypassword
    }

}

#——————————————————————————-
#Ejecución script general
#——————————————————————————-

PREPDISCO

#Entrará en el if si el disco no está cifrado, la unidad de disco está preparada, es un portátil y está en dominio
If (($compconfig.domain -eq "!dominio.local") -and ($bitlockstatus -ne "1") -and ($Partitionstatus.size -le 314572800) -and ($tipoequipo -eq "2")) {
    if (($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $true) -and ($tpm.IsOwned_InitialValue -eq $true)){
        #TPM está listo para habilitar bitlocker    
        CONEXIONREDCIFRADODISCO
    }
    elseif (($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $true) -and ($tpm.IsOwned_InitialValue -eq $false)){
        #Se obtendrá propiedad de tpm"
        $valor=1
        manage-bde -tpm -takeownership %date%%random%%random%
        CONEXIONREDCIFRADODISCO
    }
    elseif (($tpm.isEnabled_InitialValue -eq $false) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false)){
        #TPM Se pondrá en ON y se forzará reinicio
        VENTANAREINICIO
        manage-bde -tpm -t
        shutdown -r -t 60 
    }
    elseif (($tpm.isEnabled_InitialValue -eq $false) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $true)){
        #TPM Se pondrá en ON y se forzará reinicio
        VENTANAREINICIO
        manage-bde -tpm -t
        shutdown -r -t 60
    }
    elseif (($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false)){
           #TPM está encendido peri no activado, se activará y forzará reinicio
        VENTANAREINICIO
        manage-bde -tpm -t
        shutdown -r -t 60
    }
}

Categories: Sin categoría Tags:

Aplicar script solo a un tipo de equipo / servidor

Lunes, 24 de junio de 2013 Sin comentarios

Hola.

Muchas veces, uno de los condicionantes a la hora de aplicar un script, es aplicarlo solo a equipos y no a servidores e incluso a portátiles y no a puestos de trabajo.

Si os encontráis en esta situación, incluso como medida de protección ante scripts que vayáis a aplicar a una directiva aplicada a, por ejemplo, la ou donde debería haber un tipo de equipos, incluso una directiva aplicada a una consulta wmi que aplique solo a ciertos equipos, mejor aseguraros en el propio script que este, solo se aplicará si encontramos el tipo de equipo deseado, por ejemplo así:

  • $CompConfig = Get-WmiObject -Class Win32_ComputerSystem
  • $tipoequipo = $CompConfig.PCSystemType

$tipoequipo puede ser:

  • 1 {"Desktop"},2 {"Laptop"},3 {"Workstation"},4 {"EntServer"},5 {"SmallOfficeOrHomeServer"},6 {"AppliancePC"},7 {"PerformanceServer"},8 {"Maximum"},default {"NoConocido"}

Si queréis el nombre, podéis añadir esto:

Switch ($tipoequipo) {
   1 {"Desktop"}
   2 {"Mobile / Laptop"}
   3 {"Workstation"}
   4 {"Enterprise Server"}
   5 {"Small Office and Home Office Server"}
   6 {"Appliance PC"}
   7 {"Performance Server"}
   8 {"Maximum"}
default {"Not a known Product Type"}
}

 

En cuanto a equipos de dominio podemos también extraer información:

$TipoOrdenador = Get-WmiObject Win32_ComputerSystem
$Rol = $TipoOrdenador.DomainRole

 

Switch ($Rol) {
   0 {"Standalone Workstation"}
   1 {"Member Workstation"}
   2 {"Standalone Server"}
   3 {"Member Server"}
   4 {"Backup Domain Controller"}
   5 {"Primary Domain Controller"}
   default {"Not a known Domain Role"}
}

 

Tras esto, el condicionante podría ser:

If (($tipoequipo -eq "Desktop") -and ($Roldeservidor -eq "Member Workstation")) then {

}

Saludos.

Categories: powershell Tags:

Comprobación de requisitos y preparación de disco previo a la activación de bitlocker vía cmd y powershell

Viernes, 21 de junio de 2013 Sin comentarios

Hola.

Como requisito del proceso de cifrado del disco, es imprescindible que nuestro boot esté en una partición diferente a la partición que almacena nuestro o nuestros sistemas operativos.

Si disponéis de esta partición, podéis ver que en el administrador de discos, aparece sin letra y con un tamaño que ronda los 100 a 300mb.

Si no disponéis de esta partición y queréis activar bitlocker via scripting, por supuesto debéis crearla y el comando para que el sistema haga un shrink, traslade archivos de boot y modifique el bcdedit, es el siguiente:

  • bdehdcfg -target default -restart –quiet   #pongo default por hacerlo fácil, esto nos dará una partición de 314572800bytes que redondeando son  300mb.

A mi me aparece la necesidad de comprobar vía scripting que esta partición existe y he utilizado los siguientes comandos:

$Partitionstatus= Get-WmiObject Win32_DiskPartition -filter "bootpartition=’True’"

if( $Partitionstatus.size -gt 314572800) {
    VENTANAPARTREINICIO  #función mía que lanza una ventan con aviso de reinicio
    bdehdcfg -target default -restart -quiet
}

saludos.

Categories: bitlocker, powershell Tags:

Posibles estados del chip TPM y gestión de bitlocker vía Cmd y Powershell

Viernes, 21 de junio de 2013 Sin comentarios

 

En este artículo, voy a intentar plasmar las posibles situaciones en las que podemos encontrar y posicionar el chip TPM, con el fin de activar Bitlocker en los equipos de nuestro parque.

Lo primero que debemos conocer es que el comando Manage-bde es el que nos permitirá ir cambiando el estado del chip, los comandos son:

  • manage-bde –tpm –t  #activa tpm
  • manage-bde –tpm –takeownership contraseña   #Para tomar propiedad del chip si no somos propietarios.
  • manage-bde –on c: –skiphardwaretest –recoverypassword  #Para lanzar bitlocker en la unidad c:

Lo segundo que debemos conocer es que como inevitablemente el scripting va a formar parte imprescindible del proceso, hay ciertos comandos y consultas wmi que nos harán conducir el proceso.

Primero y antes de nada, la consulta wmi y la clase que extraerá la información es:

$tpm = Get-WmiObject -class Win32_Tpm -namespace "root\CIMV2\Security\MicrosoftTpm"

De la información extraida en la variable $tpm, nos importa esto:

$tpm.isEnabled_InitialValue = True or False   #¿Está habilitado?.

$tpm.isActivated.InitialValue = True or False  #¿Está activado?.

$tpm.isOwned_InitialValued = True or False  #¿Somos el propietario?.

 

Y esto nos puede dar las siguientes condiciones y debemos entonces actuar como se describe:

(($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $true) -and ($tpm.IsOwned_InitialValue -eq $true))  #entonces solo queda activar con “manage-bde –on c:….”

(($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $true) -and ($tpm.IsOwned_InitialValue -eq $false))  #Debemos hacernos propietarios y activar 1. manage-bde –tpm –takeownership contraseña y 2. manage-bde –on c:…

 

#Requieren activación de tpm “ manage-bde –tpm –t” el resto de condiciones:

(($tpm.isEnabled_InitialValue -eq $false) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false))

(($tpm.isEnabled_InitialValue -eq $false) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false))

Y

(($tpm.isEnabled_InitialValue -eq $true) -and ($tpm.isActivated_InitialValue -eq $false) -and ($tpm.IsOwned_InitialValue -eq $false))

Saludos.

Categories: bitlocker, powershell, tpm Tags:

Interactuar con usuario en tarea programada

Viernes, 21 de junio de 2013 Sin comentarios

Hola.

Uno de los problemas comunes, al programar tareas programadas via gpo a todos o parte de los equipos del parque, es que queremos interactuar con el usuario y esto choca con el usuario que debemos poner en la tarea con privilegios para que la tarea sea lanzada.

Pues bien, para que las ventanas y/o scripts salten en la sesión del usuario, debemos hacer que la tarea se ejecute con el usuario localhost\usuarios

Para ello cuando estamos en el menú “General” – debemos elegir el usuario que os he comentado y podéis ver aquí:

image

 

Saludos.

Categories: task sequence Tags:

Provocar ventana en tarea programada

Viernes, 21 de junio de 2013 Sin comentarios

Hola.

La forma de hacer que aparezca al usuario una ventana con una información concreta, disparada por una tarea programada es la siguiente:

 

1. Menú Acciones en tarea programada.

2. Crear una nueva acción con las opciones: Iniciar un programa – Powershell en “Programa o script” y en “Agregar argumentos (opcionar"), utilizar el siguiente argumento:

-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName(‘System.Windows.Forms’); [System.Windows.Forms.MessageBox]::Show(‘Your_Desired_Message’,’texto a aparecer’)}"

 

image

Saludos.

Categories: powershell, task sequence Tags:

Encontrar cadena de texto en powershell

Jueves, 20 de junio de 2013 Sin comentarios

Hola.

Estoy metido de lleno en un script para lanzar bitocker y me surge la necesidad de saber si el disco está cifrado para crear un if en el script.

Pues bien, la forma más fiable de todas las posibles es encontrar la cadena 0% en la información que devuelve manage-bde, para ello he utilizando:

 

$status=manage-bde c: -status
$id = $status -match "0%" | Out-String

if ($id -like ‘* 0%*’) {
    entonces…
}

 

Saludos.

Categories: bitlocker, powershell, tpm Tags:

Cambiar la propiedad de del chip TPM con contraseña aleatoria

Jueves, 20 de junio de 2013 Sin comentarios

Hola.

Pongámonos en situación. Tenemos un equipo con bitlocker activado, en el que para volver a instalar windows y activar Bitlocker, hemos roto la partición y vuelvo a crear otra nueva.

La instalación la haremos sin problema, pero la activación de bitlocker ya no es tan fácil ya que el chip está en modo ON y la contraseña de acceso no la tenemos.

Ante una situación como la descrita y otras muchas donde no somos propietarios o hemos borrado el contenido y password del chip a través de la bios, la solución es la misma. Tenemos que hacernos propietarios de ese chip y para ello, el comando es el siguiente:

  • manage-bde –tpm –takeownership PASSWORD
    Para mí y para muchos, ya que he podido comprobar que los foros están repletos de dudas y pocas o ninguna solución, el problema que aprecio es que la password, en un script está en texto plano e incluso, si tienes un parque medianamente extenso, va a ser la misma en todos los equipos.

Es importante subrayar que esta password, no necesitamos conocerla, ya que podemos solucionar cualquier incidencia con la clave de bitlocker que habremos almacenado en archivos de texto o mejor aun, en directorio activo gracias a una gpo correctamente configurada.

Pues bien,  tras las pruebas realizadas :), el comando que os he mostrado anteriormente se puede sustituir por:

  • manage-bde –tpm –takeownership %random%

Esto tiene un problema y es que el random puede ir des 0 a una cantidad de 4 crifras y como manage-bde te obliga a que la contraseña sea de 8 cifras, tampoco nos valdría con un %random%%random%

Pues bien, tras las pruebas realizadas (2), he optado por:

  • manage-bde –tpm –takeownership %time%%random%%random%.

¿Ingenioso eh? :), así tenemos una contraseña fuerte a prueba de auditores quisquillosos.

Categories: bit, bitlocker, tpm Tags:

DNS block list en Windows Server

Jueves, 13 de junio de 2013 2 comentarios

Hola.

Un olvidado a la hora de aumentar la seguridad de nuestra red es el servicio de blocklist de nuestro DNS, este servicio es administrable en su totalidad e incorpora una lista de direcciones, que para no ahondar mucho más en él, podemos decir que no se resolverán aunque tengamos una entrada host , alias, etc. creada.

El ejemplo más claro lo vemos cuando queremos publicar un servicio proxy pac vía dns y creamos la entrada, que debería resolver wpad.dominio.local por ejemplo.

Captura donde podéis ver que no podemos hacer ping a la dirección:

image

Gestión de la Blocklist

Comandos comunes en la gestión de este servicio son:

  • dnscmd servidor /info /globalqueryblocklist    – Nos enseña la lista de direcciones bloqueadas.
  • dnscmd Servidor /config /globalqueryblocklist nombre nombre nombre …   – Añade una o varias direcciones
  • dnscmd servidor /config /enableglobalqueryblocklist 0|1  – 0 Deshabilida  1 Habilita Blocklist
  • dnscmd /config /globalqueryblocklist  – Vacia la lista de direcciones.

Por defecto tenemos en la lista wpad y Isatap:

image

Y tras el reseteo de la lista:

image Saludos.

Categories: Sin categoría Tags:

Nuevas funcionalidades en Hyper-V dentro de Windows Server 2012 R2

Lunes, 3 de junio de 2013 Sin comentarios

 

Hola.

Hoy se han presentado bastantes novedades de lo que va a ser el nuevo rol de Hyper-V dentro de Windows Server 2012 R2 y que junto a System Center 2012 R2, también se ha dicho que en Junio será pública una Release Candidate.

Nuevas funcionalidades:

1. Replica extendida. El servidor que recibe la réplica, podrá ser a su vez un emisor hacia otro servidor de backup = Server A replica a server B y a su vez, replica a server C. También podremos controlar el intervarlo de envío de los logs al servidor de réplica.

2. Máquinas virtuales de nueva generación. Este es un concepto que a todos nos resulta nuevo, pero a falta de una exhaustiva investigación Sonrisa, son máquinas virtuales sin relación con el hardware, no dispositivos legados, no bios, todo virtual y sin dependencias.

3.Remote Desktop Services integrado en el VM Bus, lo que le va a hacer, independiente del adaptador de red.

4.Redimensionamiento Online de VHDX. Creo que la descripción lo explica todo.

5.USB como pass-trough Hoy mismo lo he echado en falta Sonrisa.

6.Compatibilidad total con Azure ya que, según Microsoft, en Azure contaremos con la misma versión de host de la que ofrece el sistema operativo que adquiriremos.

7.Online VM Export. Podremos exportar máquinas virtuales sin interrupción.

8.Live migration más rápido. Se comprimirá los datos antes de ser migrados lo que acelerará la migración en vivo. A esto se suma que se podrá combinar con las ventajas que aporta SMB direct y las nuevas versiones de SMB.

9.Activación automática de VMS. Veremos como funciona pero sabiendo que las VMS ya se puede decir que se licencian gracias a la compra del host, lo que he leido está relacionado con la activación única del host (esto es una teoría personal a falta de analizar al 100% esta funcionalidad).

10. Qos para el almacenamiento. Podremos controlar y gestionar los I/o y peso de una VM en relación a la ocupación del almacenamiento. Lo que se suma al ya antiguo Sonrisa control del peso en cuanto al uso del procesador y control de la memoria que ofrecía Dynamic Memory.

Saludos.

Categories: Ws2012 R2 Tags: