Simplemente les comentare las grandes áreas
- Hyper-v Dynamic Memory se agregara en WS2008 R2 Sp1 AL FIN
- XP mode no necesitara virtualizacion asistida por HW intel VT o amd-v –> Genial para las empresas que no tienen $$$$ para CPUs con estas tecnologias
- Una mejor experiencia de usuario en VDI WS2008 R2 Sp1 RemoteFX
Noticia Original
http://www.microsoft.com/Presspass/press/2010/mar10/03-18DesktopVirtPR.mspx
Hola a todos. Después de estar jugando un poco con mi Windows Server 2008 con Hyper-v para hacerlo bootear desde un VHD me ocurrió el siguiente error al tratar de iniciar una máquina
La maquina virtual no se puede iniciar porque el Hypervisor no esta en Ejecución
Tenemos 3 opciones
1.- El hardware no es el adecuado.
R.- 100% Seguro que es el adecuado, ya que lo tenía funcionando hace menos de 1 hora
2.-Habilitación de Intel-vt y DEP faltantes en la BIOS o HARD reset
R.- 100% Seguro que es el adecuado, ya que lo tenía funcionando hace menos de 1 hora
3.-Modificación del almacén de datos de arranque
R.- ESTO SI QUE LO MODIFIQUE
Ojo que la herramienta de Startup Rapair igualmente modifica el almacén de datos de arranque
Entonces miremos que es lo que tenemos en el cargador de arranque de Windows
C:\>bcdedit /v
Cargador de arranque de Windows
-----------------------------
Identificador {ffe86a89-97eb-11de-88e4-8d9d20f53a42}
device vhd=[D:]\2008x64BaseR2.vhd,locate=custom:12000002
path \Windows\system32\winload.exe
description VHD hyper-v Server
locale es-ES
inherit {6efb52bf-1766-41db-a6b3-0ee5eff72bd7}
recoverysequence {ffe86a82-97eb-11de-88e4-8d9d20f53a42}
recoveryenabled Yes
osdevice vhd=[D:]\2008x64BaseR2.vhd,locate=custom:22000002
systemroot \Windows
resumeobject {ffe86a80-97eb-11de-88e4-8d9d20f53a42}
nx OptIn
hypervisorlaunchtype Off
detecthal Yes
Esta clarisimo cual es el error, el valor del campos hypervisorlaunchtype esta en Off, el cual debe ser cambiado a Auto
Ejecutamos el comando ….. y listo
C:\>bcdedit /set {ffe86a89-97eb-11de-88e4-8d9d20f53a42} hypervisorlaunchtype Auto
La operación se completó correctamente.
Reiniciamos y todo OK.
Salu2
Hola a todos
Después de postear la Parte 1, 2 y 3 sobre la correcta delegación de permisos, ahora nos enfrentamos al desafío de hacer exactamente lo mismo, el problema es que ahora nuestros host son manejados por System Center Virtual Machine Manager y el sistema de delegación de permisos ya no lo maneja el Hyper-v con el archivo InitialStore.XML, sino que ahora los maneja el archivo HyperVAuthSore.XML.
El problema es que el SCVMM reescribe los Alcances de las maquinas virtuales por defecto cada “15” minutos aproximadamente, con lo cual nuestras maquinas virtuales que les creamos Scopes personalizados con el script SetScope.vbs ya no nos sirven para nada.
Recreemos la problemática
Tengo un dominio llamado PRUEBA el cual tiene un usuario común y corriente llamada PRUEBA\pcamposs , al cual le quiero delegar el control solo de la maquina W7 y no de todo el listado de las maquinas virtuales que les muestro a continuación
Entonces abro el azman.msc y cargo el archivo XML llamado C:\ProgramData\Microsoft\Virtual machine Manager\HyperVAuthSore.XML
Y me creo un Scope llamado Test al cual dejo como administrador a PRUEBA\pcamposs
Ahora trato de conectarme desde mi maquina remota que tiene Windows 7 con RSAT como el usuario PRUEBA\pcamposs
Pero me dice que no se encontraron maquinas virtuales, eso sucede porque no tengo asociadas maquinas virtuales al Scope Test
Ahora uso el Script SetScope.vbs para asociar una maquina virtual llamada W7 al Scope Test
SetScope.vbs W7 Test
Ahora Quiero ver que Scope tiene con el Script GetScope.vbs
GetScope.vbs W7
Perfecto ahora mi maquina W7 pertenece al Scope de Seguridad Test
Ahora Actualizo mi maquina cliente con Windows 7 como el usuario PRUEBA\pcamposs y PEFECTO !!!!!! solo veo la maquina W7
Entonces al Parecer todo esta bien…. pero después de un rato….
”No se encontraron maquinas Virtuales en este Servidor”…. Entonces que paso ….
Uso nuevamente el comando GetScope.vbs y SORPRESA
GetScope.vbs W7
Ahora la maquina Virtual W7 pertenece a su Scope por defecto, el cual no tiene ningún tipo de delegación de permisos.
¿ Cual es la solución ?
Microsoft para este problema no tiene una solución documentada, la solución que presento a continuación no es oficial, pero la he probado y funciona de maravillas.
Manos a la obra
Lo primero que tenemos que hacer es examinar el registro HKLM\Software\Microsoft\Windows NT\CurrentVersion\Virtualization
Y cambiar los valores que modifico el SCVMM por los anteriores, con esto el sistema de delegación de permisos lo manejara nuevamente el Hyper-v con el archivo InitialStore.XML
Entonces cambiamos primero el valor
StoreLocation y le asignamos el valor que esta en VmmPreviousStoreLocation
msxml://C:\ProgramData\Microsoft\Windows\Hyper-V\InitialStore.xml
ServiceApplication y le asignamos el valor que esta en VmmPreviousApplication
Hyper-V services
Reiniciamos y listo :)
Saludos a todos
Hola a todos
Una de las cosas entretenidas de la Virtualizacion es el manejo de los espacios disponibles, en este aspecto están los discos duros de expansión dinámica… “OJO ESTO NO ESTA RECOMENDADO EN PRODUCCION” … Estos discos tienen la capacidad de crecer dinámicamente, pero no de decrecer.
Ej: Si usted tiene un Disco Dinámico de 128 GB y realmente tiene usado de ese disco 10GB .. en el disco del Host Hyper-v Solo ocupa 10GB.
El problema principal radica cuando borramos 4GB de nuestro duro dinámico. La maquina virtual creara que tiene ahora ocupado solo 6GB (10GB-4GB) pero en el host de Hyper-v el disco sigue ocupando 10GB….
Para solucionar este problema se pueden compactar los discos con las herramientas de Hyper-v, pero hay que obviamente apagar la maquina virtual.
Para automatizar este proceso podemos hacer un lindo script con powershell, el cual :
1)Apagara la VMs “debe tener los ICs instalados”
2)después compactara el disco
3)Después prendera la maquina
Le debemos decir la el nombre de la Vm y la ruta del VHD
$MasterVM="2003AS"
$VHDName = "D:\dataServer2008\discos\2003AD-Difl.vhd"
----------------------------------------------------------------------------------------------------------
$MasterVM="2003AS"
$Vm = Get-WmiObject -Namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='$MasterVM'"
$ShutdownIC = Get-WmiObject -Namespace root\virtualization -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"
$ShutdownIC.InitiateShutdown("TRUE", "Need to shutdown")
while ($job.JobState -eq 3 -or $job.JobState -eq 4)
{
write-host "Apagando. "$job.PercentComplete "% complete"
start-sleep 1
$job=[WMI]$Result.job
}
$VHDName = "D:\dataServer2008\discos\2003AD-Difl.vhd"
$ImageManagementService = gwmi Msvm_ImageManagementService -namespace "root\virtualization"
$result = $ImageManagementService.CompactVirtualHardDisk($VHDName)
$job=[WMI]$Result.job
while ($job.JobState -eq 3 -or $job.JobState -eq 4)
{
write-host "Compacting. "$job.PercentComplete "% complete"
start-sleep 1
$job=[WMI]$Result.job
}
$SourceVm.RequestStateChange(2)
----------------------------------------------------------------------------------------------------------
Si alguien lo quiere mejorar, sacando un listado de todas las Vms X Host y la ruta de sus discos ….. Bienvenida sea … cuando llegue de mis vacaciones lo mejorare
salu2
Hola a todos
En esta parte 3 y final veremos como delegar el control granular de ciertas maquinas a nuestro usuario tipo “CAPACITA\pablocampos”
1.. LA PROBLEMATICA
El problema es que si le delegamos el control a “CAPACITA\pablocampos” de nuestro host de Hyper-v, el podrá ver todas las VMS de ese host, cosa que yo como admin no quiero, entonces que podemos hacer.
Para delegar el control de forma mas granular crearemos un nuevo ámbito llamado “Ambito de Prueba” en el cual asignaremos a “CAPACITA\pablocampos” como administrador en este ámbito
Después de esto debemos asignar las maquinas virtuales a este ámbito, para esto usaremos unos scripts que están disponibles en este sitio al final abajo BackupVMsAndScopeScripts.zip
En una consola con permisos de administrador ejecutamos el script SetScope.vbs, en el cual como primer parámetro debemos pasar el nombre de la maquina virtual y como segundo parámetro debemos pasar el nombre del ámbito
cscript SetScope.vbs “Core” “Ambito de Prueba”
cscript SetScope.vbs “2008 AD” “Ambito de Prueba”
El resultado de este comando debería ser un XML donde al final abajo debería salir un “cero” 0 , el cual indica que el proceso fue exitoso
De igual manera pueden utilizar el Script GetScope.vbs para ver a que ambito pertenece cada maquina
En mi caso asigne al “Ambito de Prueba” mis maquinas llamadas “Core” y “2008 AD”
Tratamos de conectarnos al servicio de hyper-v yyyyyy no vemos nada :(
El problema es que el usuario debe tener los permisos de lectura del Servicio de Hyper-v a nivel de Raíz, para lo cual crearemos en la raíz una nueva definición de rol llamada “Servicios” a la cual le asignaremos las siguientes operaciones
100 - Read Service Configuration
105 - Reconfigure Service
Y asignaremos a nuestro usuario “CAPACITA\pablocampos” a este rol
OJO RECUEREN QUE ESTO LO DEBEN HACER FUERA DEL AMBITO EN LA RAIZ
Despues de eso asignamos como administrador del ambito “Ambito de Prueba” al usuario “CAPACITA\pablocampos” y tratamos nuevamente de conectarnos a la consola del hyper-v yyyyy????
Ahora “CAPACITA\pablocampos” solo puede ver las maquinas “Core” y “2008 AD”
Nos conectamos como administradores y vemos la consola FULL
Les dejo un pantallazo de la consola del administrador y la de “CAPACITA\pablocampos” juntas
Saludos
Después de al anterior post ahora nos queda solamente probar si todo anda bien.
Desde un Cliente con Windows 7 Unido a un dominio, Instalamos las Herramientas de Administración Remota de Servidores RSAT para Windows 7.
Después simplemente abrimos el “Administrador de Hyper-v” con la cuenta de usuario que le delegamos el control el el post anterior ej : CAPACITA\pablocampos
Usaremos la opción de ejecutar como otro usuario…. ojo que si no ves ese menú, mantén presionado la tecla SHIFT y le das con el botón derecho del mouse al “Administrador de Hyper-v” y aparecerá
Ahora en el administrador del hyper-v, en el menú derecho seleccionamos “Conectar al Servidor” y escribimos el nombre de nuestro Servidor…”Servidor1” y presionamos aceptar
Pero lamentablemente al conectarnos nos envía un muy feo error
“No dispone de los permisos necesarios para completar esta Tarea. Póngase en contacto con el administrador de la directiva de autorización del equipo”
Pero si el la parte 1 de este post me enseñaron a configurar bien la delegación con azman?????
El problema es que los usuarios “comunes y corrientes” para administrar remotamente un host de hyper-v, debes tener algunos privilegios y pertenecer a un grupo especifico
Primero agregamos a nuestro usuario CAPACITA\pablocampos al grupo local de
“Usuarios COM Distribuidos”
Ahora debemos concederle permisos especiales de conexión dentro del Control WMI. Le damos clic derecho con el mouse en “Control WMI” y seleccionamos Propiedades
Una vez dentro del Control WMI seleccionamos la pestaña “seguridad”, Expandimos Root y seleccionamos CIMV2 y presionamos el botón Seguridad
Después Pinchamos “Opciones avanzadas” y veremos la siguiente pantalla sonde presionaremos el botón Agregar y buscaremos al usuario CAPACITA\pablocampos.

Una vez seleccionado el usuario procederemos a seleccionar la opción aplicar a “Este espacio de nombre y espacio de subnombre”, además debemos dejar seleccionadas las opciones
Habilita Cuenta y Llamada remota habilitada
No olvidar habilitar la casilla “Aplicar estos permisos solo ………”

Después aplicar aceptar aceptar aceptar :)
Después debemos realizar los mismos pasos anteriores solo que ahora en el Contenedor de “Virtualization”
Ahora Probamos si nos podemos conectar con la MMC de hyper-v …..
Conectado satisfactoriamente….
Ahora si trato de cambiar el estado de una amquina virtual … por ejemplo Guardar Estadio “Save State”
Con lo cual queda demostrado la correcta delegación de permisos
Saludos
Hola a todos, después de montar exitosamente varios server con Hyper-v, ahora toca la no menor tarea de la administración y delegación del control del host de Maquinas Virtuales, tarea la que no es sencilla de hacer y requiere de conocer bien ciertos términos.
AzMan es una función de control de acceso basado en roles (RBAC) la cual proporciona una herramienta administrativa para gestionar la política de autorización que permite a las aplicaciones realizar comprobaciones de acceso en contra de esa misma política.
La herramienta de administración AzMan (azman.msc) se suministra como una Microsoft Management Console (MMC), la cual carga un archivo XML que contiene la configuración de delegación de control de nuestro hyper-v.
El archivo XML tiene como nombre InitialStore.XML la ubicación en un host con hyper-v es
C:\ProgramData\Microsoft\Windows\Hyper-V\InitialStore.XML
Recuerde que si usted tiene instalado System Center Virtual Machine Manager la ubicación por defecto cambia
C:\ProgramData\Microsoft\Virtual machine Manager\HyperVAuthSore.XML
Si quiere estar seguro donde esta el archivo XML siga esta ruta del registro
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Virtualization
Ahora vemos el valor de StoreLocation
Después de encontrar nuestro XML de configuración procedemos a abrir la aplicación azman.msc y cargar nuestro archivo XML InitialStore o HyperVAuthSore
Como podemos ver en la siguiente imagen Existe contenedores de Definiciones de rol, definiciones de Tareas y Asignación de Roles.
Mas abajo se ven contenedores con IDs que realmente se llaman Ámbitos, los cuales los explicaremos mas adelante

Basado en Roles, la directiva de autorización de acceso se especifica basándose en los roles de usuario, los cuales reflejan los requisitos de autorización de una aplicación especifica.
Los usuarios se asocian a los roles basados en sus funciones de trabajo y a estos roles se les otorgan los permisos necesarios para realizar tareas relacionadas.
Los administradores usan el complemento AzMan para administrar las funciones que deben tener acceso a las tareas.
A medida que el negocio evoluciona, las funciones deben ser modificadas, el administrador realiza cambios en la política de autorización, la aplicación empresarial subyacente no necesita ser cambiado.
Comencemos explicando de lo mas general a lo mas especifico
Alcance “Scope”: Un alcance le permite definir que objetos son propiedades de que rol. Si tienes un sistema donde quieres conceder derechos administrativos a solo un par de maquinas virtuales de un host hyper-v a un usuario especifico, debería crear un alcance para esas maquinas virtuales y aplicar los cambios de configuración solo a ese ámbito
Roles : Un rol define un trabajo o responsabilidad que se lleva a cabo por un usuario. Por ejemplo, “Administrador_de_Redes”. Este rol debería tener todas las operaciones relacionadas con la administración de redes virtuales. Entonces este rol se le asignará a ciertos usuarios según corresponda.
Tareas: Las tareas un un conjunto de operaciones
Operaciones: Esta es la parte mas básica de la administración de autorización, y representa alguna acción que puede ser realizada por un usuario. Ejemplo:
“Start Virtual Machine”
Comenzaremos viendo las Tareas
En el menú izquierdo del azman veremos varios contenedores, entre los cuales de encuentra definiciones, tanto de rol como de Tarea.
Daremos click derecho con el mouse sobre definición de tarea y seleccionaremos “Definición de Nueva Tarea”
Ahora creamos una nueva tarea llamada “Tarea de solo Conexión”, le ponemos una descripción y presionamos el botón agregar
En esta pantalla seleccionamos la pestaña operaciones donde saldrá el listado completo de operaciones delegables sobre el Hyper-v. Nosotros elegiremos sólo las operaciones necesarias para poderse conectar y ver las maquinas virtuales
Allow Input to Virtual Machine
Allow Output from Virtual Machine
Read Service Configuration
Ahora simplemente aceptar
Les dejo el listado con sus respectivos ids de todas las operaciones :)
100 - Read Service Configuration
105 - Reconfigure Service
200 - Create Virtual Switch
205 - Delete Virtual Switch
210 - Create Virtual Switch Port
215 - Delete Virtual Switch Port
220 - Connect Virtual Switch Port
225 - Disconnect Virtual Switch Port
230 - Create Internal Ethernet Port
235 - Delete Internal Ethernet Port
240 - Bind External Ethernet Port
245 - Unbind External Ethernet Port
250 - Change VLAN Configuration on Port
255 - Modify Switch Settings
260 - Modify Switch Port Settings
265 - View Switches
270 - View Switch Ports
275 - View External Ethernet Ports
280 - View Internal Ethernet Ports
285 - View VLAN Settings
290 - View LAN Endpoints
295 - View Virtual Switch Management Service
300 - Create Virtual Machine
305 - Delete Virtual Machine
310 - Change Virtual Machine Authorization Scope
315 - Start Virtual Machine
320 - Stop Virtual Machine
325 - Pause and Restart Virtual Machine
330 - Reconfigure Virtual Machine
335 - View Virtual Machine Configuration
340 - Allow Input to Virtual Machine
345 - Allow Output from Virtual Machine
350 - Modify Internal Ethernet Port
355 - Allow Virtual Machine Snapshot
Ahora veremos los Roles
Daremos clic derecho con el mouse sobre definición de rol y seleccionaremos “Nueva definición de rol”
Crearemos una definición de rol llamada “Solo Conectar”, la cual habilitara a los usuarios para conectarse a la consola MMC del hyper-v y ver todas las VMS y poder entrar en ellas, OJO que estos usuarios no pueden cambiar la configuración de esas maquinas ni las pueden apagar, iniciar,guardar ,exportar etc
Presionamos Agregar y podemos seleccionar otro rol, tareas u operaciones
En nuestro caso le agregaremos la tarea anteriormente creada “Tarea de solo Conexión”
Asignando usuarios a nuestro Rol
Ahora ya tenemos listo nuestra definición de Rol y nuestra definición de tareas, lo único que nos falta es la asignación de Roles, para esto seleccionaremos con el botón derecho del mouse sobre “Asignación de roles” y seleccionaremos “Nueva Asignación de roles”
En esta sección obviamente seleccionaremos nuestro Rol Creado con anterioridad
“Solo Conectar”
Ahora solo nos queda seleccionar nuestros usuarios y asignarlos al Rol “Solo Conectar”
Damos clic derecho del mouse sobre el rol “solo conectar” y seleccionamos “Asignar usuarios y grupos” -> “de Windows y Active Directory” y seleccionamos al usuario indicado para realizar esta delegación
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Los espero en la Parte 2 donde solucionaremos posibles problemas de conexión mediante la MMC de hyper-v
La parte 3 se tratara específicamente de como delegar el control de solo un subconjunto de maquinas virtuales
Y la parte 4 y final veremos que pasa si se nos corrompe o borra nuestro archivo XML InitialStore.XML
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Al iniciar el administrador de maquinas virtuales vi que me faltaban dramáticamente 5 maquinas virtuales. Pero desde otro servidor ya estaba logeado hace días a un administrador de maquinas virtuales sonde si estaban, pero al tratar de modificarlas o iniciarlas me enviaba el siguiente error
The requested operation cannot be performed on a file with a user-mapped section open. (0x800704C8)
Como estaba desesperado …. cree nuevamente las maquinas virtuales y les adjunte los discos duros… configure la red y listo.
Pero que ocurrió realmente
El problema fue mi muy querido antivirus Trendmicro Office Scan que escanea los XML de configuración de las maquinas virtuales y los deja dañado … “que lindo no????”
Después de ver los archivos con el internet explorer me di cuenta que los xmls estaban malos …
Abrí el XML y no pille el error es ese sector pero mas abajo … chachaannnn
----------------------------------------------------------------------------------------------------------
<processors>
<count type="integer">2</count>
<limit type="integer">100000</limit>
<reservation type="integer">0</reservation>
<weight type="integer">100</weight>
</processors>
<stopped_at_host_shutdown type="bool">True</stopped_at_host_shutdown>
</settings>
</configuration>type="integer">1024</size>
</bank>
</memory>
<processors>
<count type="integer">2</count>
<limit type="integer">100000</limit>
<reservation type="integer">0</reservation>
<weight type="integer">100</weight>
</processors>
<stopped_at_host_shutdown type="bool">True</stopped_at_host_shutdown>
</settings>
</configuration>
-------------------------------------------------------------------------------------------------------
Al parecer el antivirus agrego un par de líneas de código al final del XML… elimine las líneas en rojo y listo ….
Salu2
Hola a todos, les dejo las dos partes de la conferencia de PowerShell, para los que no pudieron ir y especialmente para los de regiones
Conferencia Técnica TechNet: Simplificando las tareas de administración mediante el uso de Powershell, 
Primera Parte
Segunda Parte
Hola a todos después de la charla de PowerShell en Microsoft me comprometí con subir los ejemplos de powershell remoting. asiq comencemos
Primero que todo deben habilitar la función de remoting con el comando
Enable-PSRemoting
Después de esto ya estamos listos para comenzar a invocar comandos de manera remota.
Recuerden que si están en un entorno con dominio de Active Directory y su cuenta tiene derechos sobre el computador de destino, todo funcionara OK, de lo contrario nos enviara un mensaje de acceso denegado, para solucionar ese problema usaremos el cmdlet
get-credential y lo pasaremos como parámetro.
Imaginemos que mi dominio se llama capacita.local
$credencial=Get-Credential CAPACITA\Administrador
Ahora si queremos invocar un cmdlet remoto solo debemos ejecutar el comando
Invoke-Command -ComputerName SERVIDOR01 -Credential $credencial
-ScriptBlock {Get-Process}
El cmdlet Invoke-Command abre una sesión el el servidor01 con las credenciales almacenadas en la variable $credencial , luego ejecuta todo lo que este dentro de las llaves del parámetro –ScriptBlock, que en este caso es el cmdlet Get-Process y lo muestra por pantalla.
El problema es que con el cmdlet Invoke-Command se abre y cierra una sesión, esta no es persistente y no guarda el estado de posibles variable, para esto debemos crear una nueva sesión y usarla como parámetro
$sesion1=New-PSSession -ComputerName SERVIDOR01 -Credential $credencial
Ahora tenemos en la variable $sesion1 una sesión abierta hacia el computador SERVIDOR1
Invoke-Command -Session $sesion1 -ScriptBlock {Get-EventLog -logname system -Newest 5}
Lo anterior trae los 5 últimos logs de sistema del SERVIDOR1
La mejor manera de comprobar que realmente esta sesión es persistente es hacer una variable local y incrementarla en cierto valor ejecutándola remotamente
EJ:
Variable local: $paso
$paso= {$total += 5;$total}
Invoke-Command -Session $sesion1 -ScriptBlock $paso
El primer valor seria 5, después 10, después 15 y así sucesivamente , con esto podemos probar que el estado de las variables se conserva :)
Imaginemos que nuestro servidor remoto esta corriendo un proceso llamado notepad :) y nosotros de nuestra estación de trabajo lo queremos detener
Invoke-Command -Session $sesion1 -ScriptBlock {Stop-Process -name notepad}
Ahora si queremos trabajar directamente en el servidor remota en una consola de PS, solo debemos entrar a esta con el comando
Enter-PSSession -ComputerName SERVIDOR01 -Credential $credencial
Con esto entramos a una sesión interactiva remota de powershell
Saludos
La administración de los servicios mediante interfaces gráficas o GUI ha sido uno de los grandes avances de los sistemas operativos, sin embargo cuando las tareas son muy complejas y operan sobre un conjunto grande de objetos o recursos del sistema, bien vale la pena tener a mano un buen scripting que automatice este proceso.
En esta charla Pablo Campos y Alejandro Pacheco introducen las nuevas características de Powershell y muestran algunos ejemplos prácticos de servicios y aplicaciones que pueden administrarse mediante el uso del mismo.
Oradores: Pablo Campos y Alejandro Pacheco
INFORMACION IMPORTANTE: - Este evento no incluye el pago de estacionamientos en el edificio. - Microsoft se reserva el derecho de utilizar los espacios disponibles, Una vez comenzado el evento
Producto: Microsoft technologies, Windows PowerShell
Idioma: Español
Audiencia: Generalista de IT
Microsoft Chile : Mariano Sanchez Fontecilla 310, Piso 6 Las Condes Santiago
REGISTRATE AQUI
OJO En este Mismo Blog estaré subiendo los demos de la charla del Martes 15
Hola a todos
Quizás este post no es muy novedoso, pero después de varios intentos infructuosos siguiendo manuales me decidí a hacer uno yo :)
Primero que todo tiene que tener a mano el DVD de Windows Server 2008 o Windows 7
Descargar un script de Powershell desde http://code.msdn.microsoft.com/InstallWindowsImage
Manos a la obra
1) Nos creamos un disco Duro VHD de unos 10 GB para probar de expansión dinámica
a)Desde el administrador de Discos seleccionamos “Crear VHD”
b) Le damos la ruta EJ: H:\2008VHD.vhd de 10GB de expansión Dinámica
c) Inicializamos el disco y lo formateamos
Como se dan Cuenta quedo NTFS en la letra F:
d) ahora ocupamos nuestro archivo descargado de PowerShell
Install-WindowsImage.ps1
OJO que el powershell lo deben ejecutar como administrador
Si al ejecutar el script ven el siguiente error es por la seguridad de ejecución de los scripts en powershell
Para solucionar el problema cambie se seteo de ejecución de scripts con el comando Set-ExecutionPolicy Unrestricted
e) Ahora inserte el DVD de Windows 7 “en mi caso G:”
.\Install-WindowsImage.ps1 -WIM G:\sources\install.wim
Con esto nos deberia mostar la lista de sistema operativos con indices que puede cargar este dvd.
Index Image Name
[1] Windows 7 Enterprise
Done.
En el caso de Windows Server 2008 R2
Index Image Name
[1] Windows Server 2008 R2 Standard (Full Installation)
[2] Windows Server 2008 R2 Standard (Server Core Installation)
[3] Windows Server 2008 R2 Enterprise (Full Installation)
[4] Windows Server 2008 R2 Enterprise (Server Core Installation)
[5] Windows Server 2008 R2 Datacenter (Full Installation)
[6] Windows Server 2008 R2 Datacenter (Server Core Installation)
[7] Windows Web Server 2008 R2 (Full Installation)
[8] Windows Web Server 2008 R2 (Server Core Installation)
Done.
Ahora que ya tenemos el índice [1] del sistema operativo y la ruta del archivo WIM podemos “Aplicarlo” en el disco VHD que creamos hace un rato F:
.\Install-WindowsImage.ps1 -WIM G:\sources\install.wim -Apply -Index 1 –Destination F:\
Applying "Windows 7 Enterprise" to F:\...
ADVERTENCIA: This may take up to 15 minutes...
_________________________________________________________________________________
EDITADO 10/12/2009 … Si quieres que tu VHD pueda bootear desde el Virtual PC o Hyper-v debes cargar el bcdboot en el disco montado
Sigamos pensando que nuestro disco VHD lo tenemos montado en F:
Ejecutamos el siguiente comando
F:\windows\system32\bcdboot F:\windows /s F:
Si después queremos borrar algo que nos quedo mal en el Bcdedit
bcdedit /delete {ID}
Donde ID es el id de la entrada que quieres borrar
bcdedit /delete {ffe86a97-97eb-11de-88e4-8d9d20f53a42}
_________________________________________________________________________________
Listo… Ahora solo debemos modificar el booteo de nuestro sistema para que arranque con el vhd, para eso ocuparemos el comando bcdedit “como administrador”
Bcdedit /copy {current} /d “Win7VHD”
La entrada se copió correctamente en {ffe86a96-97eb-11de-88e4-8d9d20f53a42}
Con este comando copiamos la entrada de boteo actual de nuestro SO a una llamada Win7VHD, ahora debemos modificar los parámetros device y osdevice para que arranque por el VHD
bcdedit /set {ffe86a96-97eb-11de-88e4-8d9d20f53a42} device vhd=[H:]\2008VHD.vhd
bcdedit /set {ffe86a96-97eb-11de-88e4-8d9d20f53a42} osdevice vhd=[H:]\2008VHD.vhd
Escribimos bcdedit para ver si esta todo OK
Reiniciamos y Listo
Les dejo un par de fotos del booteo… “las saque con el teléfono y me reflejo en la pantalla ”

Hola a todos, este viernes 4 estaremos dando un montón de charlas en la ciudad de los Ángeles, esto es para todos los que dicen que nunca se hacen cosas fuera de Santiago…
“yo soy de Concepción :)”
ACTUALIZADO: El Hotel queda al lado del casino de Los Ángeles, la dirección es Colo Colo #565
10:30 - 10:40 | Bienvenida
10:45 - 11:30 | Max + Brede :- Introducción a Windows 7 + Demos de Seguridad Infantil.
11:30 - 12:15 | Pablo : Win Server 2008 R2
12:15 - 13:00 | Gonzalo: "Que es lo nuevo de ASP.NET 4.0"
14:00 - 14:45 | Ale: ASP.NET y silverlight
14:45 - 15:30 | Gonzalo: "Desarrollando Aplicaciones compatibles con Windows 7"
15:30 - 16:10 | Brede: IIS, PHP y SQL Server como buenos amigos
16:15 - 17:00 | Pablo: "Windows Deployment services con Windows 7"
17:00 - 17:45 | Francisco: silverlight
Max = Maximiliano Marin: Microsoft Student Partner
Pablo = Pablo Campos :MCP MCTS, Instructor Certificado Microsoft YO :)
Ale = Alejandro Pacheco : Gerente de Relaciones Académicas, Microsoft Chile
Brede = Brede Basualdo: Microsoft Student Partner
Francisco : Francisco Agurto : Microsoft Student Partner
Gonzalo: Gonzalo "Chalalo" Pérez , Microsoft MVP ASP/ASP.NET
Hola a todos, después del ScreenCast de Hyper-v y Linux, un usuario llamado Cesar me realizó un comentario sobre cambiar la resolución de la pantalla de la instalación antes de comenzarla, ya que durante la instalacion de suse 10l a pantalla quedaba a 1280x1024 o algo por el estilo, lo cual hacia muy complejo una instalacion tranquila y me envió la foto en la cual me muestra como configurar suse 11
El problema es que esa es para Suse 11, y yo tenia Suse 10, el cual en su BootScreen es solo modo Texto
Entonces como cambiar ala resolución de la pantalla antes que comience la instalación ?????
Encontré esta tablita muy interesante y se puede pasar como parámetro al proceso de instalación
| Depth |
800×600 |
1024×768 |
1152×864 |
1280×1024 |
1600×1200 |
| 8 bit |
vga=771 |
vga=773 |
vga=353 |
vga=775 |
vga=796 |
| 16 bit |
vga=788 |
vga=791 |
vga=355 |
vga=794 |
vga=798 |
| 24 bit |
vga=789 |
vga=792 |
|
vga=795 |
vga=799 |
Entonces lo único que falta por hacer es pasar como parámetro la resolución que mas nos guste
EJ:
linux vga=788
Y cuando arranquemos Suse 10 el proceso de instalación quedara en 800x600 a 16 bits

Saludos :)
Una manera sencilla y práctica de mostrar “¿Cómo se hace?”.
En este video veremos cómo instalar y configurar de manera completa los Componentes de Integración de servicios sobre Suse Linux. Además mostraremos la configuración de la tarjeta de red sisntética seth0. Se instalará además el componente Satori para mejorar la integración del mouse por Escritorio Remoto.
Hola a todos. El MIERCOLES 4 a las 9:45 a 10:45 estaré mostrando como configurar Linux sobre Hyper-v
EDITADO.... Es el MIERCOLES 4 no es Jueves
El objetivo de esta sesión es mostrar cómo Hyper-V tiene capacidades para extender la virtualización más allá de virtualizar solo Windows, es decir, virtualizar sistemas operativos basados en Linux y demostrar los componentes de integración que están en desarrollo para mejorar la experiencia en Linux virtualizado con Hyper-V así como el impacto de las 22.000 líneas de código donadas por Microsoft al kernel de Linux que van orientadas a mejorar Linux de cara a la virtualización con Hyper-V
Les comparto toda la agenda
9:45 - 10:45: Pablo Campos -
Interoperabilidad en ambientes virtualizados
11:00 - 12:00: Max Marín -
Introducción a Windows 7
12:15 - 13:15: Francisco Agurto -
Silverlight 3 new features!
13:15 - 14:15: Almuerzo
14:30 - 15:30: Brede Basualdo -
Programación para Windows Mobile
15:45 - 16:45: Leo Muñoz -
Desarrollo de cliente escritorio para Facebook
17:00 - 18:00: Gonzalo Pérez -
Lo nuevo de ASP.net
Donde: DuocUC- Sede San Andrés Concepción
#Nombre del Servidor hyper-v
$HyperVHostOrigen="hyperv-01"
#Carpeta donde reside el Export Anterior
$dirMaquina = "D:\Backup\Backup_2009_7_6\2008"
#Instanciamos el Servicio de VMM
$VM_Service = get-wmiobject -computer $HyperVHostOrigen -namespace root\virtualization -class Msvm_VirtualSystemManagementService
#Importamos la maquina
$Status = $VM_Service.ImportVirtualSystem("$dirmaquina", $True)
If ($status.ReturnValue -eq 4096)
{
$Job = [WMI]$Status.Job
$JobStatus = $Job.JobState
while ($JobStatus -ne 7)
{
sleep(1)
$Job = [WMI]$Status.Job
$JobStatus = $Job.JobState
echo $job.PercentComplete
}
}
Hola a todos, les dejo este scripts que les puede servir para automatizar el respaldo de sus maquinas virtuales con hyper-v, solamente queda meterlo en el programador de tareas y lanzarlo las veces que quieran.
Recuerden que para exportar una maquina esta debe estar apagada o en estado guardado, asiq mientras se realiza la exportación la maquina queda sin conectividad
#Selecciono el hyper-v de Origen puede ser hyper-v en modo core o GUI
$HyperVHostOrigen="hyperv-01"
#Nombre de la maquina virtual a respaldar
$MasterVM="2008"
#Carpeta de destino del respaldo
$fecha = get-date
$dirMaquina = "D:\Backup\" + "Backup_" + $fecha.year + "_" + $fecha.month + "_" + $fecha.day
$VM_Service = get-wmiobject -computer $HyperVHostOrigen -namespace root\virtualization -class Msvm_VirtualSystemManagementService
$SourceVm = Get-WmiObject -Namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='$MasterVM'" -ComputerName $HyperVHostOrigen
#Nos aseguramos que la maquina quede en estado Guardado
$SourceVm.RequestStateChange(32769)
#Le damos unos 15 segundos para que se pueda gurdar la maquina
sleep(15)
#Exportamos la maquina virtual
$Status = $VM_Service.ExportVirtualSystem($SourceVm.__PATH, $True, $dirMaquina)
#Generamos un par de validaciones para ver cuando se termine el trabajo
If ($status.ReturnValue -eq 4096)
{
$Job = [WMI]$Status.Job
$JobStatus = $Job.JobState
while ($JobStatus -ne 7)
{
sleep(1)
$Job = [WMI]$Status.Job
$JobStatus = $Job.JobState
echo $job.PercentComplete
}
}
#Iniciamos la amquina virtual
$MaquinaFuente.RequestStateChange(2)

PD: Los valores de los RequestStateChange los saque del sitio de MSDN http://msdn.microsoft.com/en-us/library/cc723874%28VS.85%29.aspx
Más artículos
Página siguiente >