How to get detailed info about all VMs

Get-VMHost | Get-VM | Select-Object  Name, PowerState, NumCpu, MemoryMB, VMhost, @{N="Datastore";E={Get-Datastore -vm $_}}, UsedSpaceGB, ProvisionedSpaceGB, @{Name='ToolsVersion';Expression={$_.Guest.ToolsVersion}}, @{Name=’VMHostVersion’;Expression={$_.VMHost.Version}},Version, @{N="IP Address";E={@($_.guest.IPAddress[0])}}  |  Export-Csv -notypeinformation -path c:\temp\vms.csv

Read the rest

How to get CDP information for all esxi network adapters

It could be very handy to know to what switch, what switch port your esxi network adapters are connected.

There is no standard method in PowerCLI with name “Get-VMHostNetworkAdapterCDP”.
To make it available you need in Powershell ISE
import all powerCLI modules and press enter
or use below script (replace vcsa by your own server fqdn):


.'C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1'

connect-viserver vcsa.itforce.local
function Get-VMHostNetworkAdapterCDP { <# .SYNOPSIS Function to retrieve the Network Adapter CDP info of a vSphere host. .DESCRIPTION Function to retrieve the Network Adapter CDP info of a vSphere host. .PARAMETER VMHost A vSphere ESXi Host object .INPUTS
Read the rest

How to import powerCLI modules into standard Powershell ISE

Sometimes it’s useful to have opportunity to run and debug powerCLI scripts/functions from standard Powershell ISE

  1. install on AdminPC powerCLI
  2. open Powershell ISE
  3. copy and paste into command line below:
    Import-Module VMware.DeployAutomation
    Import-Module VMware.ImageBuilder
    Import-Module VMware.VimAutomation.Cis.Core
    Import-Module VMware.VimAutomation.Common
    Import-Module VMware.VimAutomation.Core
    Import-Module VMware.VimAutomation.HA
    Import-Module VMware.VimAutomation.License
    Import-Module VMware.VimAutomation.Sdk
    Import-Module VMware.VimAutomation.Storage
    Import-Module VMware.VimAutomation.vds

if you need to have powerCLI modules in Powershell ISE always, then create under your user account powershell profile:

    1. new-item -path $profile -itemtype file -force
    2. powershell_ise $profile
    3. and add into your profile above commands, or just one line
      .’C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1′
    4. save your powershell profile.
Read the rest

How to know what VMs have snapshot.

If you use Veeam Backup and Replication or Veritas Netbackup non-authorized snapshot can prevent backup/replica tasks (long term snapshots as backups is one of the most common mistakes, as cause of poor performance and as Vmware datastore low free space reason and so on ). So it’s important to know quickly what VMs have snapshot and delete/merge them.

Set-ExecutionPolicy RemoteSigned
get-vm | get-snapshot | fl Description, Created, VM

if you want to delete/merge existing snapshots for all VMs:

Get-VM | Get-Snapshot | Remove-Snapshot -confirm:$false
Read the rest


The common mistake is to configure snmpd for v3 and forget to disable snmp v1/v2.

go to /etc/snmp/snmpd.conf and comment line with

“com2sec notConfigUser  default       public”

So full net-snmp installation and configuration should be something like:

  1. yum install -y net-snmp-utils net-snmp net-snmp-libs
  2. service snmpd status
  3. service snmpd stop
  4. net-snmp-create-v3-user -ro -A [password] -a MD5 -X snmpv3encPass -x DES snmpv3user
  5. comment line with “com2sec notConfigUser  default       public”
  6. service snmpd start
  7. configure PRTG or other monitoring tool
  8. chkconfig snmpd on
  9. snmptable -v 3 -u snmpv3user -l auth  -a MD5 -A [password] localhost usmUsertable
  10. snmpwalk -u snmpv3user -A [password] -a MD5 -l authnoPriv
Read the rest

Windows useful commands to troubleshoot time issues

  • w32tm /query /status (see source and ReferenceId, in AD output should NOT be “Source: Local CMOS Clock” or “VM IC Time Synchronization Provider”, nor “Free-running System Clock” – maybe need to run below two commands)
  • net time /set
  • net stop/start w32time
  • to compare time on DCs for small companies with only several AD DCs – for example from powershell: “net time \\dc00″,”net time \\dc01″,”net time \\dc02″,”net time \\dc03″,”net time \\dc04” | ForEach-Object {cmd.exe /c $_}
  • for PDC emulator role:       
  • w32tm /config / /syncfromflags:manual /reliable:yes /update
  • to reset computer time settings in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters:
  • net stop w32time
Read the rest