Exportar permisos de un árbol de carpetas

Cualquier servidor de ficheros de un tamaño considerable siempre va a tener problemas de permisos. Esto normalmente es causado por permisos mal otorgados, por desconocimiento de los adminstradores o por no tener una politica de gestión de los permisos.

Una vez que los permisos están mal es muy difícil corregirlos, no porque sea técnicamente imposible, sino porque lleva mucho tiempo, ya que necesitamos saber qué permisos están definidos en cuáles carpetas y si estos se heredan a las carpetas inferiores no. Luego esta información hay que trasladársela al responsable de la carpeta para que defina los permisos correctos y poder corregirlos.

Este script es muy útil para esto, exporta en formato CSV los permisos de un árbol de carpetas. Para hacer el listado más fácil de leer sólo se exportan los permisos no heredados, es decir, si tienes 200 carpetas y sólo 3 de estas tienen permisos especiales definidos, sólo estas 3 apareceran en el reporte, ya que por lógica las demás carpetas heredan de su respectiva carpeta madre.


$allFolders = Get-ChildItem -Recurse "Ruta de la carpeta" | ? {$_.PSisContainer}

$output = @()

foreach($folder in $allFolders)
{
$notInherited = ($folder.FullName | Get-Acl).Access | where {$_.isinherited -eq $false}

if($notInherited -ne $null)
{
$all = ($folder.FullName | Get-Acl).access
foreach ($item in $all)
{
$outputObj = "" | Select FullName,IdentityReference,FileSystemRights

$outputObj.FullName = $folder.FullName
$outputObj.IdentityReference = $item.IdentityReference
$outputObj.FileSystemRights = $item.FileSystemRights

$output += $outputObj
}
}
}

$output | Export-Csv -NoTypeInformation -Encoding utf8 -Delimiter ";" Reporte.csv

ESXi 5.5 no se puede instalar en VirtualBox 4.3 ¿O sí?

A esto, la verdad es que no le he conseguido solución ni respuesta definitiva, pero quiero compartirlo antes de que se me olviden los detalles.

Mi portátil es un Toshiba Satellite L645-SP4134L. Cuando lo compré hace unos 4 años supongo que era de gama media, tiene un Intel Core i3-380M que no va como un avión, pero me sirve para todo lo que quiero. También le cambié el disco duro por uno SSD y le amplié la memoria a 8 GB, por lo que me es útil para pequeños laboratorios y pruebas de concepto utilizando VirtualBox.

Hace un par de semanas estuve estudiando para la certificación de VMware VCP5 y quería hacer pruebas con Auto Deploy. En teoría era muy facil, solo necesitaba un equipo con vCenter, un servidor TFTP y un host ESXi. Con las primeras dos cosas no tuve problemas, lo complicado del asunto fue cuando intenté desplegar un ESXi dentro de VirtualBox. Cada vez que intentaba instalarlo me aparecía el siguiente error:

Error ESXi

Pensando que era un problema con VirtualBox y mi equipo, intenté hacer el mismo experimiento en el portátil del trabajo que tiene las mismas caracteristicas, con la diferencia de que el procesador es un Intel Core i5-4310U. En este caso la instalación de ESXi finalizó sin problemas. Un poco raro, ¿No?

Como soy bastante terco, quise averiguar por qué esto no funcionaba en mi portátil. Lo primero que se me ocurrió fue utilizar la herramienta de identificación de CPU de VMware para ver las diferencias entre los dos procesadores.

CPUID del i3
CPUID i3

CPUID del i5
CPUID i5

Si comparamos las dos imágenes podemos darnos cuenta de lo siguiente:

  • VirtualBox está presentando dos procesadores virtuales con las mismas características independientemente del procesador físico que tenga la máquina.
  • Aparentemente, el i3 soporta Flex Migration, pero el i5 no. Flex Migration es una tecnología de Intel que permite mover máquinas virtuales entres hosts con CPUs de diferentes características ocultando las diferencias entre los mismos. Que el antiguo procesador lo soporte y el nuevo no es raro, raro.

Se me ocurre que esto debe ser un tema de como VirtualBox está virtualizando los MSRs de los diferentes procesadores. Los Model Specific Registers son registros del CPU que nos muestran y permiten controlar ciertas carácteristicas de los procesadores, tales como ACPI, Temperatura y Turbo Boost.

Para probar esta teoría instalé VMware Workstation 11 en mi portátil e intenté desplegar una máquina virtual con ESXi y bueno, funcionó 🙂 . Sin embargo, sigo sin estar satisfecho. ¿Por qué funciona esto en VirtualBox con algunos procesadores?

Si vemos el CPUID de la máquina virtual de VMware Workstation tenemos los siguiente:

CPUID Workstation

¡Unas caracaterísticas de procesador totalmente diferentes!

Así que definitivamente, este problema debe tener su raíz en como VirtualBox presenta las características del procesador a las máquinas virtuales. Creo que este ticket habla precisamente de esto. A lo mejor es cierto que el i3 tiene cosas que el i5 no y VirtualBox no las tienen implementadas. La verdad es que intenté ocultar ciertas características del procesador en VirtualBox utilizando los parámetros SETEXTRADATA pero no tuve mucho éxito y esto ya se escapa de mis conocimientos.

Vamos a ver si en próximas versiones de VirtualBox corrigen esto, mientras tanto, sigo trabajando con VMware Workstation.

Fuentes:
Características del i3

Características del i5

MSR