Todas las entradas por Horus Int

Get-SCVMMInventory – Get Inventory of all VM’s in SCVMM (2012 R2/2016 and more)

Entrada actualizada para agregar compatibilidad con SCVMM 2016

Credits are from Niklas AkerlundGet an inventory of all VM’s from System Center Virtual Machine Manager including the vCPU’s, memory, all VHD´s, IP addresses.  Report to CSV and HTML. Adapted to work with last actuallly SCVMM version 3.2.8224


Créditos son de Niklas AkerlundGet

Exportar un inventario de todas las VM’s es SCVMM. Se exporta a CSV y HTML, compatible con la 3.2.8224 /SCVMM 2016 y más.

Get an inventory of all VM’s from System Center Virtual Machine Manager including the vCPU’s, memory, up to 3 VHD´s, up to 4 interfaces and IP addresses.  Report to CSV and HTML. Adapted to work with SCVMM version 3.2.8224. and at least SCVMM 2016 UR7

Thanks to @leleco for the suggestions and collaboration improvements


Get-SCVMInventory -report

Give a reports for “All Hosts”

Get-SCVMInventory -VMHost SERVER01

Give data from SERVER01 Hyper-v Host.

Publicado también en

function Get-SCVMInventory


        $VMHostGroup = "All Hosts",
        $VMHostCluster = $null,
        $VMHost = $null,
        [string]$path =".\",
        [string]$CSVFile = "VMdata.csv",
        [string]$HTMLReport = "VMdata.html"

        if(!(Get-Module virtualmachinemanager)){
            Import-Module Hyper-V
            Import-Module virtualmachinemanager
        if(Get-SCVMMServer localhost | where ProductVersion -gt 3){
            $isR2 = $true
            $isR2 = $false
         if ($VMHostCluster -eq $null){
            if($VMHost -eq $null){
                $VMHosts = (Get-SCVMHostGroup -Name $VMhostGroup).AllChildHosts
                $VMHosts = Get-SCVMHost $VMHost
            $VMHosts = (Get-SCVMHostCluster -Name $VMHostCluster).Nodes
            $VMs = $VMHosts | Get-SCVirtualMachine
            $reportArray = @()
            foreach ($VM in $VMs){
                Write-Verbose $VM.Name
                    $vNics = $VM.VirtualNetworkAdapters
                    $VHDConf = $VM.VirtualHardDisks
                    $driveConf = $VM.VirtualDiskDrives
                    if(($vNics[0].IPv4Addresses -ne $null)){
                        Write-Verbose $vNics[0].IPv4Addresses[0]
                        $IPAddress1 = $vNics[0].IPv4Addresses[0]

                        if (!$isR2){
                            if(($vNics[0].IPv4Addresses -ne $null)){
                            $IPAddress1= (Hyper-V\Get-VMNetworkAdapter -ComputerName $VM.HostName -VMName $VM.Name).IPv4Addresses[0]
                                $IPAddress1 = "N/A"
                            Write-Verbose "NO IP"
                            $IPAddress1 = "N/A"
                    if(($vNics[1].IPv4Addresses -ne $null)){
                        Write-Verbose $vNics[1].IPv4Addresses[0]
                        $IPAddress2 = $vNics[1].IPv4Addresses[0]

                        if (!$isR2){
                            if(($vNics[1].IPv4Addresses -ne $null)){
                            $IPAddress2= (Hyper-V\Get-VMNetworkAdapter -ComputerName $VM.HostName -VMName $VM.Name).IPv4Addresses[0]
                                $IPAddress2 = "N/A"
                            Write-Verbose "NO IP"
                            $IPAddress2 = "N/A"
                    if(($vNics[2].IPv4Addresses -ne $null)){
                        Write-Verbose $vNics[2].IPv4Addresses[0]
                        $IPAddress3 = $vNics[2].IPv4Addresses[0]

                        if (!$isR2){
                            if(($vNics[2].IPv4Addresses -ne $null)){
                            $IPAddress3= (Hyper-V\Get-VMNetworkAdapter -ComputerName $VM.HostName -VMName $VM.Name).IPv4Addresses[0]
                                $IPAddress3 = "N/A"
                            Write-Verbose "NO IP"
                            $IPAddress3 = "N/A"
                    if(($vNics[3].IPv4Addresses -ne $null)){
                        Write-Verbose $vNics[3].IPv4Addresses[0]
                        $IPAddress4 = $vNics[3].IPv4Addresses[0]

                        if (!$isR2){
                            if(($vNics[3].IPv4Addresses -ne $null)){
                            $IPAddress4= (Hyper-V\Get-VMNetworkAdapter -ComputerName $VM.HostName -VMName $VM.Name).IPv4Addresses[0]
                                $IPAddress4 = "N/A"
                            Write-Verbose "NO IP"
                            $IPAddress4 = "N/A"
                    $Snapshots = "Yes"
                    $Snapshots = "No"

                    $data = [ordered]@{
                    VMName = $VM.Name
                    vCPUs = $VM.CPUCount
                    MemoryAssignedMB = $VM.MemoryAssignedMB
                    Status = $VM.Status
                    OperatingSystem = $VM.OperatingSystem
                    HostName = $VM.HostName
                     TotalSizeGB = $VM.TotalSize/1GB -as [int]
                    vNics = $vNics.Count                                                         
                    VirtualNetwork1 = $vNics[0].VirtualNetwork
                    MacAddressType1 = $vNics[0].MacAddressType
                    MacAddress1 = $vNics[0].MacAddress
                    VirtualNetworkAdapterType1 = $vNics[0].VirtualNetworkAdapterType
                    VLANEnabled1 = $vNics[0].VlanEnabled
                    VLanID1 = $vNics[0].VlanID 
                    IPAddress1 = $IPAddress1

                    VirtualNetwork2 = $vNics[1].VirtualNetwork
                    MacAddressType2 = $vNics[1].MacAddressType
                    MacAddress2 = $vNics[1].MacAddress
                    VirtualNetworkAdapterType2 = $vNics[1].VirtualNetworkAdapterType
                    VLANEnabled2 = $vNics[1].VlanEnabled
                    VLanID2 = $vNics[1].VlanID 
                    IPAddress2 = $IPAddress2

                    VirtualNetwork3 = $vNics[2].VirtualNetwork
                    MacAddressType3 = $vNics[2].MacAddressType
                    MacAddress3 = $vNics[2].MacAddress
                    VirtualNetworkAdapterType3 = $vNics[2].VirtualNetworkAdapterType
                    VLANEnabled3 = $vNics[2].VlanEnabled
                    VLanID3 = $vNics[2].VlanID 
                    IPAddress3 = $IPAddress3

                    VirtualNetwork4 = $vNics[3].VirtualNetwork
                    MacAddressType4 = $vNics[3].MacAddressType
                    MacAddress4 = $vNics[3].MacAddress
                    VirtualNetworkAdapterType4 = $vNics[3].VirtualNetworkAdapterType
                    VLANEnabled4 = $vNics[3].VlanEnabled
                    VLanID4 = $vNics[3].VlanID 
                    IPAddress4 = $IPAddress4

                    NumberofVHD = $VHDConf.Count
                    VHDName = $VHDConf[0].Name
                    VHDFormatType = $VHDconf[0].VHDFormatType
                    VHDType = $VHDconf[0].VHDType
                    VHDSize = $VHDconf[0].MaximumSize/1GB -as [int]
                    VHDCurrentSize = $VHDconf[0].Size/1GB -as [int]
                    VHDBusType = $driveConf[0].BusType
                    VHDBus = $driveConf[0].Bus
                    VHDLUN = $DriveConf[0].Lun
                    VHDDatastore = $VHDconf[0].Directory

                    VHDName2 = $VHDConf[1].Name
                    VHDFormatType2 = $VHDconf[1].VHDFormatType
                    VHDType2 = $VHDconf[1].VHDType
                    VHDSize2 = $VHDconf[1].MaximumSize/1GB -as [int]
                    VHDCurrentSize2 = $VHDconf[1].Size/1GB -as [int]
                    VHDBusType2 = $driveConf[1].BusType
                    VHDBus2 = $driveConf[1].Bus
                    VHDLUN2 = $DriveConf[1].Lun
                    VHDDatastore2 = $VHDconf[1].Directory

                    VHDName3 = $VHDConf[2].Name
                    VHDFormatType3 = $VHDconf[2].VHDFormatType
                    VHDType3 = $VHDconf[2].VHDType
                    VHDSize3 = $VHDconf[2].MaximumSize/1GB -as [int]
                    VHDCurrentSize3 = $VHDconf[2].Size/1GB -as [int]
                    VHDBusType3 = $driveConf[2].BusType
                    VHDBus3 = $driveConf[2].Bus
                    VHDLUN3 = $DriveConf[2].Lun
                    VHDDatastore3 = $VHDconf[2].Directory

                    StartMemoryGB = $VM.Memory/1024
                    DynamicMemory = $VM.DynamicMemoryEnabled
                    DynamicMemoryDemandMB = $VM.DynamicMemoryDemandMB
                    DynamicMemoryStatus = $VM.DynamicMemoryStatus -as [int]
                    DynamicMemoryMinMB = $VM.DynamicMemoryMinimumMB -as [int]
                    DynamicMemoryMaxGB = $VM.DynamicMemoryMaximumMB/1024 -as [int]
                    HasSnaphots = $Snapshots
                    Owner = $VM.Owner
                    Cloud = $VM.Cloud
                    CreationTime = $VM.CreationTime
                    HasVMAdditions = $VM.HasVMAdditions
                    VMAddition = $VM.VMAddition
            $obj= New-Object -TypeName PSObject -property $data
            $reportArray +=$obj 
            Write-Output $obj

                # $reportArray
                $CSVReport = $path + $CSVFile
                $HTMLReport = $path + $HTMLReport
                $reportArray | Export-Csv -Path $CSVReport -NoTypeInformation -UseCulture
                $reportArray | ConvertTo-HTML | Out-File $HTMLReport
        # Should we clean anything?

Compiling QMC2 (Mame)

Ubuntu 17.04

svn co qmc2-svn

cd qmc2-svn/

make os-detect

sudo apt-get install libSDL1.2-dev libsdl2-dev

sudo dpkg-reconfigure dash

Choose No

sudo apt-get install libqtwebkit-dev

sudo apt-get install libphonon-dev


sudo make install

For Arcade


sudo apt-get install libqt4-opengl-dev libqt4-declarative-shaders libqt4-declarative-particles qtmobility-dev
make arcade DISTCFG=1
sudo make arcade-install DISTCFG=1



make qchdman DISTCFG=1

sudo make qchdman-install DISTCFG=1

Optionally convert & install the man-pages:

make man
sudo make man-install

Add AD to Existent Domain – Powershell

To Add a Write Controller to an existing Domain, first add Domain Services

Add-WindowsFeature AD-Domain-Services

Then install Role:

Install-ADDSDomainController -CreateDnsDelegation:$false -DatabasePath 'D:\Windows\NTDS' -DomainName 'MyExistentDomain.local' -InstallDns:$true -LogPath 'D:\Windows\NTDS' -NoGlobalCatalog:$false -SiteName 'MySite' -SysvolPath 'D:\Windows\SYSVOL' -NoRebootOnCompletion:$true -Force:$true -Credential (Get-Credential MyExistentDomain\AdminUser)


Thanks to Mike Robbins

Enable RDP Powershell Windows 2016

Only is needed three comands to enable RDP in powershell

New-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name 'fDenyTSConnections' -Value 0 -PropertyType dword -Force

To Enable RDP


New-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name 'UserAuthentication' -Value 1 -PropertyType dword -Force


To Enable NLA


Enable-NetFirewallRule -DisplayGroup 'Remote Desktop'


To Enable on Firewall





Linux Server Daily Reboot

Schedule a daily reboot with cron


sudo crontab -e
[sudo] password for user:
no crontab for root - using an empty one

Select an editor. To change later, run 'select-editor'.
 1. /bin/nano <---- easiest
 2. /usr/bin/vim.tiny

Choose 1-2 [1]:
crontab: installing new crontab


# m h dom mon dow command
40 1 * * * /sbin/reboot

In this case Every Day at 01:40 AM

Thanks to

Add Tomcat as Service Linux (Systemd)

Create file tomcat-systemd on  /etc/systemd/system/tomcat-systemd.service

nano /etc/systemd/system/tomcat-systemd.servicee


# Systemd unit file for tomcat
Description=Apache Tomcat Web Application Container


Environment='CATALINE_OPTS=-Xms1G -Xmx1G'

#ExecStop=/bin/kill -15 $MAINPID



Enable and start service

systemctl enable tomcat-systemd.service
systemctl start tomcat-systemd.service

We can test OK with:

ps -ef |grep java
systemctl status tomcat-systemd.service

Thanks to for systemd Script.