Descripción del problema:
Necesitas compactar el disco de una maquina virtual hyper-V, pero no te deja porque dice que tiene instaneas (snapshots).
Tu no las ves y por tanto no puedes eliminarlas.
Cuando vas al directorio donde se almacena el disco ves un archivo .VHD y otro .AVHD
Solución:
Debes unir ambos archivos en un unico disco y luego crear una maquina virtual nueva que use ese disco.
Es recomendable guardar una copia de los dos archivos por si pasara algo.
Luego le cambias la extensión al .AVHD por .VHD.
Lo editas con el editor de discos (al que has renombrado) y lo combinas (merge) con su disco primario.
Finalmente creas una maquina virtual con ese disco y te olvidas de la otra.
(por supuesto ahora puedes compactar)
Esta descrito con muchas ilustraciones en:http://www.networkfoo.org/server-infrastructure/recovering-your-virtual-machine-how-manually-merge-hyper-v-snapshots-back-one-
jueves, 28 de abril de 2011
martes, 26 de abril de 2011
No puedes comprimir (editar) un disco virtual hyper-V Windows 7
Sintoma:
Tienes una maquina virtual hyper-v con windows 7 y quieres reducir el tamaño de su disco virtual. El asistente te dice que la operración actual no puede hacerse por limitaciones del sistema operativo.
Solución:
Probablemente tengas copias sombra, shadow copies, instaneas, puntos de recuperación del sistema, o como quieras llamarlos. Cuidado no digo en hyper-v sino en la misma maquina windows 7.
Eliminalos con el mandato
vssadmin delete shadows /all
En consola de administrador.
Tienes una maquina virtual hyper-v con windows 7 y quieres reducir el tamaño de su disco virtual. El asistente te dice que la operración actual no puede hacerse por limitaciones del sistema operativo.
Solución:
Probablemente tengas copias sombra, shadow copies, instaneas, puntos de recuperación del sistema, o como quieras llamarlos. Cuidado no digo en hyper-v sino en la misma maquina windows 7.
Eliminalos con el mandato
vssadmin delete shadows /all
En consola de administrador.
viernes, 18 de marzo de 2011
Refrescar intellisense en Managament Studio SQL Server 2008 R2
Sintomas:
Cuando creas o modificas una base de datos el intellisense al escribir consultas marca en rojo los campos o tablas nuevas.
Solución:
Ctrl+Shift+R o Editar -> IntelliSense -> Actualizar la cache local.
sábado, 5 de marzo de 2011
Renovación certificados FNMT Firefox si viene Internet Explorer
Problema
Te llega el aviso de renovación del certificado de la FNMT (hacienda), accedes con Firefox te dá error, te vas al IE9 RC te dá error, pruebas con chrome error.
Solución
Tienes que preparar Firefox para los certificados.
En primer lugar cargas el certificado raíz de la FNMT: http://www.cert.fnmt.es/index.php?cha=cit&sec=4&page=139&lang=es
Luego exportas desde el Internet Explorer los certificados y los importas en Firefox.
Mas documentación en:
http://www.cert.fnmt.es/content/pages_std/docs/Renovacion_con_Mozilla_Firefox.pdf
Te llega el aviso de renovación del certificado de la FNMT (hacienda), accedes con Firefox te dá error, te vas al IE9 RC te dá error, pruebas con chrome error.
Solución
Tienes que preparar Firefox para los certificados.
En primer lugar cargas el certificado raíz de la FNMT: http://www.cert.fnmt.es/index.php?cha=cit&sec=4&page=139&lang=es
Luego exportas desde el Internet Explorer los certificados y los importas en Firefox.
Mas documentación en:
http://www.cert.fnmt.es/content/pages_std/docs/Renovacion_con_Mozilla_Firefox.pdf
viernes, 18 de febrero de 2011
GoogleBot no tiene idioma
Sintomas:
Una página dinámica que se visualiza correctamente en los exploradores no es leida por googlebot.
Causa:
Parece ser que Googlebot no suministra idioma a la página como hacen casi todos los exploradores.
En el caso de la página en cuestión el código consultaba la colección Request.UserLanguages para establecer el lenguaje por defecto.
Antes de consultar realizaba una comprobación erronea de que la lista no estaba vacía:
if infoASPX.Request.UserLanguages.Count > 0
Digo que era erronea porque la sentencia correcta es:
if infoASPX.Request.UserLanguages isnot nothing andalso infoASPX.Request.UserLanguages.Count > 0
Esos pequeños detalles.
Comentarios:
Lo cierto es que era frustrante, descubrí el problema cuando ví que no se indexaba esta porción de nuestro sitio. Afiné el fallo cuando probé con las herramientas para webmaster de Google. Al verificar la conformidad HTML con http://validator.w3.org/ obtuvé error 500.
Siguiendo la traza de errores con la utilidad correspondiente de IIS7.5 comprobé que solo había errores cuando accedía con GoogleBot y el validator.
Luego descubrí que si el idioma estaba establecido con un parametro en el querystring el error no aparecía y tirando del hilo.....
Una página dinámica que se visualiza correctamente en los exploradores no es leida por googlebot.
Causa:
Parece ser que Googlebot no suministra idioma a la página como hacen casi todos los exploradores.
En el caso de la página en cuestión el código consultaba la colección Request.UserLanguages para establecer el lenguaje por defecto.
Antes de consultar realizaba una comprobación erronea de que la lista no estaba vacía:
if infoASPX.Request.UserLanguages.Count > 0
Digo que era erronea porque la sentencia correcta es:
if infoASPX.Request.UserLanguages isnot nothing andalso infoASPX.Request.UserLanguages.Count > 0
Esos pequeños detalles.
Comentarios:
Lo cierto es que era frustrante, descubrí el problema cuando ví que no se indexaba esta porción de nuestro sitio. Afiné el fallo cuando probé con las herramientas para webmaster de Google. Al verificar la conformidad HTML con http://validator.w3.org/ obtuvé error 500.
Siguiendo la traza de errores con la utilidad correspondiente de IIS7.5 comprobé que solo había errores cuando accedía con GoogleBot y el validator.
Luego descubrí que si el idioma estaba establecido con un parametro en el querystring el error no aparecía y tirando del hilo.....
miércoles, 9 de febrero de 2011
Dar permisos a un usuario para enviar en nombre de un grupo en Exchange 2010
Objetivo:
Que un usuario pueda enviar en nombre de un grupo (send on behalf of).
Solución:
En exchange power shell usar:
Set-DistributionGroup GroupName -GrantSendOnBehalfTo UserName
Por supuesto el usuario deberá saber visualizar en Outlook en campo De de un mensaje.
Comentarios
Creo que la opción desapareció en el interfaz gráfico de exchange 2010.
Un aspecto interesante es que si quieres que todos los miembrosdel grupo puedan enviar en nombre del grupo puedes escribir:
Set-DistributionGroup GroupName -GrantSendOnBehalfTo GroupName
Que un usuario pueda enviar en nombre de un grupo (send on behalf of).
Solución:
En exchange power shell usar:
Set-DistributionGroup GroupName -GrantSendOnBehalfTo UserName
Por supuesto el usuario deberá saber visualizar en Outlook en campo De de un mensaje.
Comentarios
Creo que la opción desapareció en el interfaz gráfico de exchange 2010.
Un aspecto interesante es que si quieres que todos los miembrosdel grupo puedan enviar en nombre del grupo puedes escribir:
Set-DistributionGroup GroupName -GrantSendOnBehalfTo GroupName
jueves, 3 de febrero de 2011
Subinformes RDLC en report cargado dinámicamente.
Sintomas
Creas un informe RDLC con subreports mediante visual studio.
Cargas dinámicamente el informe pero se produce un error al cargar el subinforme.
No encuentra el archivo.
Por otro lado ¿Cómo cargas los datos del subinforme.
Soluciones:
Debes cargar dinámicamente con loadsubrepordefinitión el subinforme utilizando como nombre del report el Reportname (el que rellenas en usar este informe como subinforme de las propiedades) y no el del subinforme dentro del informe.
Ejemplo:
Dim informe As New LocalReport
Dim lector As New System.IO.StreamReader(My.Request.PhysicalApplicationPath + "\ListadoOrgsProd.rdlc")
informe.LoadReportDefinition(lector)
lector.Close()
lector = New System.IO.StreamReader(My.Request.PhysicalApplicationPath + "\ListadoProd.rdlc")
informe.LoadSubreportDefinition("ListadoProd.rdlc", lector)
lector.Close()
AddHandler informe.SubreportProcessing, AddressOf infoParametros
Por cierto que en la última línea se resuelve como establecer los datos de subinforme: hay que hacer establecer mediante addHandler la referencia a un procedimiento que se dispará cuando vaya a procesarse el informe:
Sub infoParametros(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
e.DataSources.Add(New ReportDataSource("dsProductos", datosProd))
End Sub
Creas un informe RDLC con subreports mediante visual studio.
Cargas dinámicamente el informe pero se produce un error al cargar el subinforme.
No encuentra el archivo.
Por otro lado ¿Cómo cargas los datos del subinforme.
Soluciones:
Debes cargar dinámicamente con loadsubrepordefinitión el subinforme utilizando como nombre del report el Reportname (el que rellenas en usar este informe como subinforme de las propiedades) y no el del subinforme dentro del informe.
Ejemplo:
Dim informe As New LocalReport
Dim lector As New System.IO.StreamReader(My.Request.PhysicalApplicationPath + "\ListadoOrgsProd.rdlc")
informe.LoadReportDefinition(lector)
lector.Close()
lector = New System.IO.StreamReader(My.Request.PhysicalApplicationPath + "\ListadoProd.rdlc")
informe.LoadSubreportDefinition("ListadoProd.rdlc", lector)
lector.Close()
AddHandler informe.SubreportProcessing, AddressOf infoParametros
Por cierto que en la última línea se resuelve como establecer los datos de subinforme: hay que hacer establecer mediante addHandler la referencia a un procedimiento que se dispará cuando vaya a procesarse el informe:
Sub infoParametros(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs)
e.DataSources.Add(New ReportDataSource("dsProductos", datosProd))
End Sub
Suscribirse a:
Entradas (Atom)