2010-07-28

Social Media Users List at VMworld 2010

John Troyer published a document on the VMworld site

VMworld 2010 is going to be a whirlwind of technological and social activity. Let's keep in touch! If you are going to VMworld 2010 in San Francisco and use social media - like blogs or Twitter -- please add yourself to the list below. We're going to use this in a few ways at the event.

  • We'll pull blog and Twitter feeds from this list to aggregate and feature on VMworld.com
  • If you do have a blog, you'll qualify to be an 'official blogger' at VMworld 2010, with access to the blogger lounge and blogger and press briefings
  • Other people will know to expect you and to watch out for you at the lounge

If you are a blogger and will be at VMworld in San Francisco - go and add yourself to the list.

There will be a separate list for Copenhagen released soon.

T minus 31 days till it starts.

And no I did not look at my calendar - I used Powershell to give me the answer.

(Get-Date -Date 29/08/2010) - (Get-Date -Date 29/07/2010) | Select-Object Days | Format-List

Days:  31

2010-07-20

Where to Place your VM Swap?

This one has been bothering me lately. Where do you place your Virtual Machine Swap files?

There are two options:

  1. In the Same Directory  as the VM
  2. In the Datastore specified by the host.

As you can see below.

image[3]

If you choose the second option then you can configure the swap location per host

image

Here comes my question.

Duncan Epping posted about the Impact of decisions… - for those that wanted to keep the vswp files on local VMFS datastores on their Hosts. Frank Denneman also wrote a post regarding this subject as well- Impact of host local VM swap on HA and DRS.

My question is as follows. When changing this you see (in both screenshots) a nice warning from VMware that this could degrade vMotion performance.

I take this to be true if you were moving the swapfile location to a local VMFS volume located on the ESX host. When initiating a vMotion - the vswp file will have to be copied to the other host's vswp location for the migration to complete.

But what about a different Datastore that is shared storage - but not the location of the virtual machine files?

This is actually specified as a one of NetApp's best practices (NetApp and VMware vSphere Storage Best Practices TR-3749) pg. 80.

image

Now why would you do this? If you look on the right - you will see one reason - no snapshots, which will save precious disk space. Second reason  - no replication is needed (unless of course this is a requirement)

Some say this is a risk - because if your datastore with the vswp files goes down then all your VM's go down, which in essence is true - but… Since in most cases the datastore is just another volume on the same storage array from which the VM's are running from - the chance of the vswp datastore failing is equal to that of the chance that VM's datastore will fail.

So my question at the end of the day. Is the warning still valid when you define a shared datastore - one which all the ESX hosts in that cluster can access?

There is of course a certain overhead needed to set this option on each ESX host in the cluster - but that is not (IMHO) so much of an issue.

Looking forward to your comments.

Changes in PowerCLI 4.1

July 14, 2010 Kirk Munro posted last week about the PowerCLI 4.1: A fork in the road regarding changes in namespaces that were introduced in the new version of PowerCLI 4.1. Scott Herold of Vizioncore also posted an article regarding these Changes - vEcoShell 1.2.6 and PowerCLI 4.1.

First and foremost - I would like to commend the PowerCLI team for becoming active again and since my post PowerCLI - What Will the Future Hold? - I have noticed that they returned to Twitter and the Blogosphere - so this make me very happy!

I do want to point out though. Until now we did not have a full list of what exactly had changed regarding the namespaces.

Today the PowerCLI Team posted Output type changes in PowerCLI 4.1.

Below is the full list from the blog with the mappings of the Namespaces Old -> New

VMware.VimAutomation.Types.Annotation -> VMware.VimAutomation.ViCore.Types.V1.AnnotationManagement.Annotation
VMware.VimAutomation.Types.CDDrive -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.CDDrive
VMware.VimAutomation.Types.Host.Storage.ChapType -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.ChapType
VMware.VimAutomation.Types.Cluster -> VMware.VimAutomation.ViCore.Types.V1.Inventory.Cluster
VMware.VimAutomation.Types.ConnectInfo -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.ConnectInfo
VMware.VimAutomation.Types.CpuAffinity -> VMware.VimAutomation.ViCore.Types.V1.VM.CpuAffinity
VMware.VimAutomation.Types.CustomAttribute -> VMware.VimAutomation.ViCore.Types.V1.AnnotationManagement.CustomAttribute
VMware.VimAutomation.Types.CustomAttributeTargetType -> VMware.VimAutomation.ViCore.Types.V1.AnnotationManagement.CustomAttributeTargetType
VMware.VimAutomation.Types.Datacenter -> VMware.VimAutomation.ViCore.Types.V1.Inventory.Datacenter
Datastore -> VMware.VimAutomation.ViCore.Types.V1.DatastoreManagement.Datastore
VMware.VimAutomation.Types.DatastoreManagement.DatastoreFile -> VMware.VimAutomation.ViCore.Types.V1.DatastoreManagement.DatastoreFile
VMware.VimAutomation.Types.DatastoreManagement.DatastoreFolder -> VMware.VimAutomation.ViCore.Types.V1.DatastoreManagement.DatastoreFolder
VMware.VimAutomation.Types.DatastoreManagement.DatastoreItem -> VMware.VimAutomation.ViCore.Types.V1.DatastoreManagement.DatastoreItem
VMware.VimAutomation.Types.DatastoreManagement.DatastoreItemType -> VMware.VimAutomation.ViCore.Types.V1.DatastoreManagement.DatastoreItemType
VMware.VimAutomation.Types.DatastoreUser -> VMware.VimAutomation.ViCore.Types.V1.DatastoreManagement.DatastoreUser
VMware.VimAutomation.Types.DefaultVIServerMode -> VMware.VimAutomation.ViCore.Types.V1.DefaultVIServerMode
VMware.VimAutomation.Types.Description -> VMware.VimAutomation.ViCore.Types.V1.Description
VMware.VimAutomation.Types.DhcpPolicy -> VMware.VimAutomation.ViCore.Types.V1.DhcpPolicy
VMware.VimAutomation.Types.DiagnosticBundle -> VMware.VimAutomation.ViCore.Types.V1.DiagnosticBundle
VMware.VimAutomation.Types.DiskInfo -> VMware.VimAutomation.ViCore.Types.V1.VM.Guest.DiskInfo
VMware.VimAutomation.Types.DiskType -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.DiskType
VMware.VimAutomation.Types.DrsAutomationLevel -> VMware.VimAutomation.ViCore.Types.V1.Cluster.DrsAutomationLevel
VMware.VimAutomation.Types.DrsMode -> VMware.VimAutomation.ViCore.Types.V1.Cluster.DrsMode
VMware.VimAutomation.Types.DrsRecommendation -> VMware.VimAutomation.ViCore.Types.V1.Cluster.DrsRecommendation
VMware.VimAutomation.Types.DrsVMAffinityRule -> VMware.VimAutomation.ViCore.Types.V1.Cluster.DrsVMAffinityRule
VMware.VimAutomation.Types.ErrorCategory -> VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ErrorCategory
VMware.VimAutomation.Types.EventCategory -> VMware.VimAutomation.ViCore.Types.V1.EventCategory
VMware.VimAutomation.Types.Host.Storage.FibreChannelHba -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.FibreChannelHba
VMware.VimAutomation.Types.Host.Storage.FibreChannelPortType -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.FibreChannelPortType
VMware.VimAutomation.Types.FlatHardDisk -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.FlatHardDisk
VMware.VimAutomation.Types.FloatSample -> VMware.VimAutomation.ViCore.Types.V1.Stat.FloatSample
VMware.VimAutomation.Types.FloppyDrive -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.FloppyDrive
VMware.VimAutomation.Types.Folder -> VMware.VimAutomation.ViCore.Types.V1.Inventory.Folder
VMware.VimAutomation.Types.GuestState -> VMware.VimAutomation.ViCore.Types.V1.VM.Guest.GuestState
VMware.VimAutomation.Types.HAIsolationResponse -> VMware.VimAutomation.ViCore.Types.V1.Cluster.HAIsolationResponse
VMware.VimAutomation.Types.HardDisk -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.HardDisk
VMware.VimAutomation.Types.HARestartPriority -> VMware.VimAutomation.ViCore.Types.V1.Cluster.HARestartPriority
VMware.VimAutomation.Types.Host.Storage.Hba -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.Hba
VMware.VimAutomation.Types.Host.Storage.HbaStatus -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.HbaStatus
VMware.VimAutomation.Types.Host.Storage.HbaType -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.HbaType
VMware.VimAutomation.Types.Host.HostAccount -> VMware.VimAutomation.ViCore.Types.V1.Host.Account.HostAccount
VMware.VimAutomation.Types.Host.NIC.HostConsoleVirtualNic -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.Nic.HostConsoleVirtualNic
VMware.VimAutomation.Types.Host.HostFileSystemVolumeInfo -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.HostFileSystemVolumeInfo
VMware.VimAutomation.Types.Host.HostFirmware -> VMware.VimAutomation.ViCore.Types.V1.Host.HostFirmware
VMware.VimAutomation.Types.Host.HostFirmwareBundle -> VMware.VimAutomation.ViCore.Types.V1.Host.HostFirmwareBundle
VMware.VimAutomation.Types.Host.HostGroupAccount -> VMware.VimAutomation.ViCore.Types.V1.Host.Account.HostGroupAccount
VMware.VimAutomation.Types.Host.NIC.HostNic -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.Nic.HostNic
VMware.VimAutomation.Types.Host.HostService -> VMware.VimAutomation.ViCore.Types.V1.Host.HostService
VMware.VimAutomation.Types.HostServicePolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.HostServicePolicy
VMware.VimAutomation.Types.Host.HostUserAccount -> VMware.VimAutomation.ViCore.Types.V1.Host.Account.HostUserAccount
VMware.VimAutomation.Types.Host.NIC.HostVirtualNic -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.Nic.HostVirtualNic
VMware.VimAutomation.Types.HostVirtualNicType -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.Nic.HostVirtualNicType
VMware.VimAutomation.Types.Host.NIC.HostVMKernelVirtualNic -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.Nic.HostVMKernelVirtualNic
VMware.VimAutomation.Types.HTCoreSharing -> VMware.VimAutomation.ViCore.Types.V1.VM.HTCoreSharing
VMware.VimAutomation.Types.InventoryItem -> VMware.VimAutomation.ViCore.Types.V1.Inventory.InventoryItem
VMware.VimAutomation.Types.IPv6Address -> VMware.VimAutomation.ViCore.Types.V1.IPv6Address
VMware.VimAutomation.Types.Host.Storage.IScsiHba -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHba
VMware.VimAutomation.Types.Host.Storage.IScsiHbaAuthenticationCapability -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHbaAuthenticationCapability
VMware.VimAutomation.Types.Host.Storage.IScsiHbaAuthenticationProperties -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHbaAuthenticationProperties
VMware.VimAutomation.Types.Host.Storage.IScsiHbaSendTarget -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHbaSendTarget
VMware.VimAutomation.Types.Host.Storage.IScsiHbaStaticTarget -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHbaStaticTarget
VMware.VimAutomation.Types.Host.Storage.IScsiHbaTarget -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHbaTarget
VMware.VimAutomation.Types.Host.Storage.IScsiHbaTargetType -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.IScsiHbaTargetType
VMware.VimAutomation.Types.LicenseMode -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.LicenseMode
VMware.VimAutomation.Types.Host.LoadBalancingPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.LoadBalancingPolicy
VMware.VimAutomation.Types.Log -> VMware.VimAutomation.ViCore.Types.V1.Log
VMware.VimAutomation.Types.LogDescriptor -> VMware.VimAutomation.ViCore.Types.V1.LogDescriptor
VMware.VimAutomation.Types.LongSample -> VMware.VimAutomation.ViCore.Types.V1.Stat.LongSample
VMware.VimAutomation.Types.NamedIPEndPoint -> VMware.VimAutomation.ViCore.Types.V1.NamedIPEndPoint
VMware.VimAutomation.Types.NamedObject -> VMware.VimAutomation.Sdk.Types.V1.NamedObject
VMware.VimAutomation.Types.NamingScheme -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.NamingScheme
VMware.VimAutomation.Types.NetworkAdapter -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.NetworkAdapter
VMware.VimAutomation.Types.Host.NetworkFailoverDetectionPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.NetworkFailoverDetectionPolicy
VMware.VimAutomation.Types.NicInfo -> VMware.VimAutomation.ViCore.Types.V1.VM.Guest.NicInfo
VMware.VimAutomation.Types.Host.NicTeamingPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.NicTeamingPolicy
VMware.VimAutomation.Types.Host.NicTeamingVirtualPortGroupPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.NicTeamingVirtualPortGroupPolicy
VMware.VimAutomation.Types.Host.NicTeamingVirtualSwitchPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.NicTeamingVirtualSwitchPolicy
VMware.VimAutomation.Types.OSCustomizationIPMode -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.OSCustomizationIPMode
VMware.VimAutomation.Types.OSCustomizationNicMapping -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.OSCustomizationNicMapping
VMware.VimAutomation.Types.OSCustomizationSpec -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.OSCustomizationSpec
VMware.VimAutomation.Types.OSCustomizationSpecType -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.OSCustomizationSpecType
VMware.VimAutomation.Types.OSType -> VMware.VimAutomation.ViCore.Types.V1.OSCustomization.OSType
VMware.VimAutomation.Types.PassThroughDevice -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.PassThroughDevice
VMware.VimAutomation.Types.PassthroughDeviceType -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.PassthroughDeviceType
VMware.VimAutomation.Types.PciPassthroughDevice -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.PciPassthroughDevice
VMware.VimAutomation.Types.PciPassthroughDeviceState -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.PciPassthroughDeviceState
VMware.VimAutomation.Types.PermissionManagement.Permission -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.Permission
VMware.VimAutomation.Types.PersistencePolicy -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.PersistencePolicy
VMware.VimAutomation.Types.Host.NIC.PhysicalNic -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.Nic.PhysicalNic
VMware.VimAutomation.Types.Host.PortGroupPort -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.PortGroupPort
VMware.VimAutomation.Types.PowerCLIConfiguration -> VMware.VimAutomation.ViCore.Types.V1.PowerCLIConfiguration
VMware.VimAutomation.Types.PowerCLIVersion -> VMware.VimAutomation.ViCore.Types.V1.PowerCLIVersion
VMware.VimAutomation.Types.PowerState -> VMware.VimAutomation.ViCore.Types.V1.Inventory.PowerState
VMware.VimAutomation.Types.PermissionManagement.Privilege -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.Privilege
VMware.VimAutomation.Types.PermissionManagement.PrivilegeGroup -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.PrivilegeGroup
VMware.VimAutomation.Types.PermissionManagement.PrivilegeItem -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.PrivilegeItem
VMware.VimAutomation.Types.ProxyPolicy -> VMware.VimAutomation.ViCore.Types.V1.ProxyPolicy
VMware.VimAutomation.Types.RawHardDisk -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.RawHardDisk
VMware.VimAutomation.Types.ResourcePool -> VMware.VimAutomation.ViCore.Types.V1.Inventory.ResourcePool
VMware.VimAutomation.Types.PermissionManagement.Role -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.Role
VMware.VimAutomation.Types.Sample -> VMware.VimAutomation.ViCore.Types.V1.Stat.Sample
VMware.VimAutomation.Types.ScriptType -> VMware.VimAutomation.ViCore.Types.V1.ScriptType
VMware.VimAutomation.Types.Host.ScsiLun -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.Scsi.ScsiLun
VMware.VimAutomation.Types.Host.ScsiLunMultipathPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.Scsi.ScsiLunMultipathPolicy
VMware.VimAutomation.Types.Host.ScsiLunPath -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.Scsi.ScsiLunPath
VMware.VimAutomation.Types.Host.ScsiLunPathState -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.Scsi.ScsiLunPathState
VMware.VimAutomation.Types.ScsiPassthroughDevice -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.ScsiPassthroughDevice
VMware.VimAutomation.Types.SharesLevel -> VMware.VimAutomation.ViCore.Types.V1.SharesLevel
VMware.VimAutomation.Types.Snapshot -> VMware.VimAutomation.ViCore.Types.V1.VM.Snapshot
VMware.VimAutomation.Types.Host.StartPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.VMStartPolicy.StartPolicy
VMware.VimAutomation.Types.StatInterval -> VMware.VimAutomation.ViCore.Types.V1.Stat.StatInterval
VMware.VimAutomation.Types.Task -> VMware.VimAutomation.ViCore.Types.V1.Task
VMware.VimAutomation.Types.TaskState -> VMware.VimAutomation.Sdk.Types.V1.TaskState
VMware.VimAutomation.Types.Template -> VMware.VimAutomation.ViCore.Types.V1.Inventory.Template
VMware.VimAutomation.Types.Host.TrapTarget -> VMware.VimAutomation.ViCore.Types.V1.Host.TrapTarget
VMware.VimAutomation.Types.UsbDevice -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.UsbDevice
VMware.VimAutomation.Types.VApp -> VMware.VimAutomation.ViCore.Types.V1.Inventory.VApp
VMware.VimAutomation.Types.VAppStatus -> VMware.VimAutomation.ViCore.Types.V1.Inventory.VAppStatus
VMware.VimAutomation.Types.PermissionManagement.VCAccount -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.VCAccount
VMware.VimAutomation.Types.PermissionManagement.VCGroupAccount -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.VCGroupAccount
VMware.VimAutomation.Types.PermissionManagement.VCUserAccount -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.VCUserAccount
VMware.VimAutomation.Types.PermissionManagement.VIAccount -> VMware.VimAutomation.ViCore.Types.V1.PermissionManagement.VIAccount
VMware.VimAutomation.Types.VIContainer -> VMware.VimAutomation.ViCore.Types.V1.Inventory.VIContainer
VMware.VimAutomation.Types.VICredentialStoreItem -> VMware.VimAutomation.ViCore.Types.V1.VICredentialStoreItem
VMware.VimAutomation.Types.VIObject -> VMware.VimAutomation.Sdk.Types.V1.VIObject
VMware.VimAutomation.Types.VIObjectCore -> VMware.VimAutomation.Sdk.Types.V1.VIObjectCore
VMware.VimAutomation.Types.VirtualDevice -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.VirtualDevice
VMware.VimAutomation.Types.VirtualDiskStorageFormat -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.VirtualDiskStorageFormat
VMware.VimAutomation.Types.VirtualMachine -> VMware.VimAutomation.ViCore.Types.V1.Inventory.VirtualMachine
VMware.VimAutomation.Types.VirtualNetworkAdapterType -> VMware.VimAutomation.ViCore.Types.V1.VirtualDevice.VirtualNetworkAdapterType
VMware.VimAutomation.Types.Host.VirtualPortGroup -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.VirtualPortGroup
VMware.VimAutomation.Types.Host.VirtualSwitch -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.VirtualSwitch
VMware.VimAutomation.Types.VIServer -> VMware.VimAutomation.ViCore.Types.V1.VIServer
VMware.VimAutomation.Types.VMDiskResourceConfiguration -> VMware.VimAutomation.ViCore.Types.V1.VM.VMDiskResourceConfiguration
VMware.VimAutomation.Types.VMGuest -> VMware.VimAutomation.ViCore.Types.V1.VM.Guest.VMGuest
VMware.VimAutomation.Types.VMGuestNetworkInterface -> VMware.VimAutomation.ViCore.Types.V1.VM.Guest.VMGuestNetworkInterface
VMware.VimAutomation.Types.VMGuestRoute -> VMware.VimAutomation.ViCore.Types.V1.VM.Guest.VMGuestRoute
VMware.VimAutomation.Types.VMHost -> VMware.VimAutomation.ViCore.Types.V1.Inventory.VMHost
VMware.VimAutomation.Types.Host.VMHostDiagnosticPartition -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostDiagnosticPartition
VMware.VimAutomation.Types.Host.VMHostFirewallDefaultPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostFirewallDefaultPolicy
VMware.VimAutomation.Types.Host.VMHostFirewallException -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostFirewallException
VMware.VimAutomation.Types.Host.VmHostModule -> VMware.VimAutomation.ViCore.Types.V1.Host.VmHostModule
VMware.VimAutomation.Types.Host.VMHostNetworkInfo -> VMware.VimAutomation.ViCore.Types.V1.Host.Networking.VMHostNetworkInfo
VMware.VimAutomation.Types.Host.VMHostPatch -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostPatch
VMware.VimAutomation.Types.VMHostPowerState -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostPowerState
VMware.VimAutomation.Types.Host.VMHostProfile -> VMware.VimAutomation.ViCore.Types.V1.Host.Profile.VMHostProfile
VMware.VimAutomation.Types.Host.VMHostProfileComplianceStatus -> VMware.VimAutomation.ViCore.Types.V1.Host.Profile.VMHostProfileComplianceStatus
VMware.VimAutomation.Types.Host.VMHostProfileIncompliance -> VMware.VimAutomation.ViCore.Types.V1.Host.Profile.VMHostProfileIncompliance
VMware.VimAutomation.Types.Host.VMHostProfileIncomplianceElement -> VMware.VimAutomation.ViCore.Types.V1.Host.Profile.VMHostProfileIncomplianceElement
VMware.VimAutomation.Types.Host.VmHostSnmp -> VMware.VimAutomation.ViCore.Types.V1.Host.VmHostSnmp
VMware.VimAutomation.Types.Host.VMHostStartPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.VMStartPolicy.VMHostStartPolicy
VMware.VimAutomation.Types.VMHostState -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostState
VMware.VimAutomation.Types.Host.VMHostStorageInfo -> VMware.VimAutomation.ViCore.Types.V1.Host.Storage.VMHostStorageInfo
VMware.VimAutomation.Types.Host.VMHostTimeZone -> VMware.VimAutomation.ViCore.Types.V1.Host.VMHostTimeZone
VMware.VimAutomation.Types.VMQuestion -> VMware.VimAutomation.ViCore.Types.V1.VM.VMQuestion
VMware.VimAutomation.Types.VMQuestionOption -> VMware.VimAutomation.ViCore.Types.V1.VM.VMQuestionOption
VMware.VimAutomation.Types.VMResourceConfiguration -> VMware.VimAutomation.ViCore.Types.V1.VM.VMResourceConfiguration
VMware.VimAutomation.Types.Host.VmStartAction -> VMware.VimAutomation.ViCore.Types.V1.Host.VMStartPolicy.VmStartAction
VMware.VimAutomation.Types.Host.VMStartPolicy -> VMware.VimAutomation.ViCore.Types.V1.Host.VMStartPolicy.VMStartPolicy
VMware.VimAutomation.Types.Host.VmStopAction -> VMware.VimAutomation.ViCore.Types.V1.Host.VMStartPolicy.VmStopAction
VMware.VimAutomation.Types.VMSwapfilePolicy -> VMware.VimAutomation.ViCore.Types.V1.VMSwapfilePolicy
VMware.VimAutomation.Types.VmVirtualHardware -> VMware.VimAutomation.ViCore.Types.V1.VM.VmVirtualHardware
VMware.VimAutomation.Client20.AnnotationImpl -> VMware.VimAutomation.ViCore.Impl.V1.AnnotationManagement.AnnotationImpl
VMware.VimAutomation.Client20.CDDriveImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.CDDriveImpl
VMware.VimAutomation.Client20.ClusterImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.ClusterImpl
VMware.VimAutomation.Client20.ComputeResourceImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.ComputeResourceImpl
VMware.VimAutomation.Client20.CustomFieldDefinition -> VMware.VimAutomation.ViCore.Impl.V1.AnnotationManagement.CustomFieldDefinition
VMware.VimAutomation.Client20.DatacenterImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.DatacenterImpl
VMware.VimAutomation.Client20.DatastoreManagement.DatastoreFileImpl -> VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreFileImpl
VMware.VimAutomation.Client20.DatastoreManagement.DatastoreFolderImpl -> VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreFolderImpl
VMware.VimAutomation.Client20.DatastoreImpl -> VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreImpl
VMware.VimAutomation.Client20.DatastoreManagement.DatastoreItemImpl -> VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreItemImpl
VMware.VimAutomation.Client20.DatastoreManagement.DatastoreRootFolderImpl -> VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreRootFolderImpl
VMware.VimAutomation.Client20.DatastoreManagement.DatastoreVMDiskFileImpl -> VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.DatastoreVMDiskFileImpl
VMware.VimAutomation.Client20.DescriptionImpl -> VMware.VimAutomation.ViCore.Impl.V1.DescriptionImpl
VMware.VimAutomation.Client20.DiagnosticBundleImpl -> VMware.VimAutomation.ViCore.Impl.V1.DiagnosticBundleImpl
VMware.VimAutomation.Client20.DiskInfoImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.Guest.DiskInfoImpl
VMware.VimAutomation.Client20.DrsRecommendationImpl -> VMware.VimAutomation.ViCore.Impl.V1.Cluster.DrsRecommendationImpl
VMware.VimAutomation.Client20.DrsVMAffinityRuleImpl -> VMware.VimAutomation.ViCore.Impl.V1.Cluster.DrsVMAffinityRuleImpl
VMware.VimAutomation.Client20.Host.Storage.FibreChannelHbaImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.FibreChannelHbaImpl
VMware.VimAutomation.Client20.FlatHardDiskImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.FlatHardDiskImpl
VMware.VimAutomation.Client20.FloatSampleImpl -> VMware.VimAutomation.ViCore.Impl.V1.Stat.FloatSampleImpl
VMware.VimAutomation.Client20.FloppyDriveImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.FloppyDriveImpl
VMware.VimAutomation.Client20.FolderImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.FolderImpl
VMware.VimAutomation.Client20.HardDiskImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.HardDiskImpl
VMware.VimAutomation.Client20.Host.Storage.HbaImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.HbaImpl
VMware.VimAutomation.Client20.Host.NIC.HostConsoleVirtualNicImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.Nic.HostConsoleVirtualNicImpl
VMware.VimAutomation.Client20.Host.HostFileSystemVolumeInfoImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.HostFileSystemVolumeInfoImpl
VMware.VimAutomation.Client20.Host.HostFirmwareBundleImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.HostFirmwareBundleImpl
VMware.VimAutomation.Client20.Host.HostFirmwareImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.HostFirmwareImpl
VMware.VimAutomation.Client20.Host.HostGroupAccountImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Account.HostGroupAccountImpl
VMware.VimAutomation.Client20.Host.NIC.HostNicImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.Nic.HostNicImpl
VMware.VimAutomation.Client20.HostPatchFileInfoImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.HostPatchFileInfoImpl
VMware.VimAutomation.Client20.Host.HostServiceImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.HostServiceImpl
VMware.VimAutomation.Client20.Host.HostUserAccountImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Account.HostUserAccountImpl
VMware.VimAutomation.Client20.Host.NIC.HostVirtualNicImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.Nic.HostVirtualNicImpl
VMware.VimAutomation.Client20.Host.NIC.HostVMKernelVirtualNicImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.Nic.HostVMKernelVirtualNicImpl
VMware.VimAutomation.Client20.InventoryItemImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.InventoryItemImpl
VMware.VimAutomation.Client20.InventoryPathItem -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.InventoryPathItem
VMware.VimAutomation.Client20.IPv6AddressImpl -> VMware.VimAutomation.ViCore.Impl.V1.IPv6AddressImpl
VMware.VimAutomation.Client20.Host.Storage.IScsiHbaAuthenticationCapabilityImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.IScsiHbaAuthenticationCapabilityImpl
VMware.VimAutomation.Client20.Host.Storage.IScsiHbaAuthenticationPropertiesImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.IScsiHbaAuthenticationPropertiesImpl
VMware.VimAutomation.Client20.Host.Storage.IScsiHbaImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.IScsiHbaImpl
VMware.VimAutomation.Client20.Host.Storage.IScsiHbaSendTargetImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.IScsiHbaSendTargetImpl
VMware.VimAutomation.Client20.Host.Storage.IScsiHbaStaticTargetImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.IScsiHbaStaticTargetImpl
VMware.VimAutomation.Client20.Host.Storage.IScsiHbaTargetImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.IScsiHbaTargetImpl
VMware.VimAutomation.Client20.LogDescriptorImpl -> VMware.VimAutomation.ViCore.Impl.V1.LogDescriptorImpl
VMware.VimAutomation.Client20.LogImpl -> VMware.VimAutomation.ViCore.Impl.V1.LogImpl
VMware.VimAutomation.Client20.LongSampleImpl -> VMware.VimAutomation.ViCore.Impl.V1.Stat.LongSampleImpl
VMware.VimAutomation.Client20.MoReference -> VMware.VimAutomation.ViCore.Impl.V1.MoReference
VMware.VimAutomation.Client20.NetworkAdapterImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.NetworkAdapterImpl
VMware.VimAutomation.Client20.NfcLease -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.NfcLease
VMware.VimAutomation.Client20.NfcLeaseTask -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.NfcLeaseTask
VMware.VimAutomation.Client20.NicInfoImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.Guest.NicInfoImpl
VMware.VimAutomation.Client20.Host.NicTeamingVirtualPortGroupPolicyImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.NicTeamingVirtualPortGroupPolicyImpl
VMware.VimAutomation.Client20.Host.NicTeamingVirtualSwitchPolicyImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.NicTeamingVirtualSwitchPolicyImpl
VMware.VimAutomation.Client20.OSCustomizationNicMappingImpl -> VMware.VimAutomation.ViCore.Impl.V1.OSCustomization.OSCustomizationNicMappingImpl
VMware.VimAutomation.Client20.OSCustomizationSpecImpl -> VMware.VimAutomation.ViCore.Impl.V1.OSCustomization.OSCustomizationSpecImpl
VMware.VimAutomation.Client20.PassThroughDeviceImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.PassThroughDeviceImpl
VMware.VimAutomation.Types.PciPassthroughDeviceImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.PciPassthroughDeviceImpl
VMware.VimAutomation.Client20.PermissionManagement.PermissionImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.PermissionImpl
VMware.VimAutomation.Client20.Host.NIC.PhysicalNicImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.Nic.PhysicalNicImpl
VMware.VimAutomation.Client20.Host.PortGroupPortImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.PortGroupPortImpl
VMware.VimAutomation.Client20.PermissionManagement.PrivilegeGroupImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.PrivilegeGroupImpl
VMware.VimAutomation.Client20.PermissionManagement.PrivilegeImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.PrivilegeImpl
VMware.VimAutomation.Client20.PermissionManagement.PrivilegeItemImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.PrivilegeItemImpl
VMware.VimAutomation.Client20.RawHardDiskImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.RawHardDiskImpl
VMware.VimAutomation.Client20.ResourcePoolImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.ResourcePoolImpl
VMware.VimAutomation.Client20.PermissionManagement.RoleImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.RoleImpl
VMware.VimAutomation.Client20.SampleImpl -> VMware.VimAutomation.ViCore.Impl.V1.Stat.SampleImpl
VMware.VimAutomation.Client20.Host.ScsiLunImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.Scsi.ScsiLunImpl
VMware.VimAutomation.Client20.Host.ScsiLunPathImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.Scsi.ScsiLunPathImpl
VMware.VimAutomation.Types.ScsiPassthroughDeviceImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.ScsiPassthroughDeviceImpl
VMware.VimAutomation.Client20.SnapshotImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.SnapshotImpl
VMware.VimAutomation.Client20.StatIntervalImpl -> VMware.VimAutomation.ViCore.Impl.V1.Stat.StatIntervalImpl
VMware.VimAutomation.Client20.StatMetricInfo -> VMware.VimAutomation.ViCore.Impl.V1.Stat.StatMetricInfo
VMware.VimAutomation.Client20.TaskImpl -> VMware.VimAutomation.ViCore.Impl.V1.Task.TaskImpl
VMware.VimAutomation.Client20.TemplateImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.TemplateImpl
VMware.VimAutomation.Client20.Host.TrapTargetImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.TrapTargetImpl
VMware.VimAutomation.Client20.UsbDeviceImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.UsbDeviceImpl
VMware.VimAutomation.Client20.VAppImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.VAppImpl
VMware.VimAutomation.Client20.PermissionManagement.VCGroupAccountImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.VCGroupAccountImpl
VMware.VimAutomation.Client20.PermissionManagement.VCUserAccountImpl -> VMware.VimAutomation.ViCore.Impl.V1.PermissionManagement.VCUserAccountImpl
VMware.VimAutomation.Client20.VirtualDeviceImpl -> VMware.VimAutomation.ViCore.Impl.V1.VirtualDevice.VirtualDeviceImpl
VMware.VimAutomation.Client20.VirtualMachineImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.VirtualMachineImpl
VMware.VimAutomation.Client20.Host.VirtualPortGroupImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.VirtualPortGroupImpl
VMware.VimAutomation.Client20.Host.VirtualSwitchImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.VirtualSwitchImpl
VMware.VimAutomation.Client20.VMDiskResourceConfigurationImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.VMDiskResourceConfigurationImpl
VMware.VimAutomation.Client20.VMGuestImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.Guest.VMGuestImpl
VMware.VimAutomation.Client20.VMGuestNetworkInterfaceImpl -> VMware.VimAutomation.ViCore.Impl.V1.VMGuestNetworkInterfaceImpl
VMware.VimAutomation.Client20.VMGuestRouteImpl -> VMware.VimAutomation.ViCore.Impl.V1.VMGuestRouteImpl
VMware.VimAutomation.Client20.Host.VMHostDiagnosticPartitionImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMHostDiagnosticPartitionImpl
VMware.VimAutomation.Client20.Host.VMHostFirewallDefaultPolicyImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMHostFirewallDefaultPolicyImpl
VMware.VimAutomation.Client20.Host.VMHostFirewallExceptionImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMHostFirewallExceptionImpl
VMware.VimAutomation.Client20.VMHostImpl -> VMware.VimAutomation.ViCore.Impl.V1.Inventory.VMHostImpl
VMware.VimAutomation.Client20.Host.VmHostModuleImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VmHostModuleImpl
VMware.VimAutomation.Client20.Host.VMHostNetworkInfoImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Networking.VMHostNetworkInfoImpl
VMware.VimAutomation.Client20.Host.VMHostPatchImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMHostPatchImpl
VMware.VimAutomation.Client20.Host.VMHostProfileImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Profile.VMHostProfileImpl
VMware.VimAutomation.Client20.Host.VMHostProfileIncomplianceElementImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Profile.VMHostProfileIncomplianceElementImpl
VMware.VimAutomation.Client20.Host.VMHostProfileIncomplianceImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Profile.VMHostProfileIncomplianceImpl
VMware.VimAutomation.Client20.Host.VmHostSnmpImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VmHostSnmpImpl
VMware.VimAutomation.Client20.Host.VMHostStartPolicyImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMStartPolicy.VMHostStartPolicyImpl
VMware.VimAutomation.Client20.Host.VMHostStorageInfoImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.Storage.VMHostStorageInfoImpl
VMware.VimAutomation.Client20.Host.VMHostTimeZoneImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMHostTimeZoneImpl
VMware.VimAutomation.Client20.VMQuestionImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.VMQuestionImpl
VMware.VimAutomation.Client20.VMQuestionOptionImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.VMQuestionOptionImpl
VMware.VimAutomation.Client20.VMResourceConfigurationImpl -> VMware.VimAutomation.ViCore.Impl.V1.VM.VMResourceConfigurationImpl
VMware.VimAutomation.Client20.Host.VMStartPolicyImpl -> VMware.VimAutomation.ViCore.Impl.V1.Host.VMStartPolicy.VMStartPolicyImpl


If you have a script that specifically uses these namespaces - you will have to take this into account.

Happy Scripting!!

2010-07-16

Quest ActiveRoles Management Shell for AD-1.4

Quest just released a new version of there amazing Active Directory Module - Version 1.4

Here is Dmitry’s Post about the release:

There are many new Cmdlets available here are some of the details from the release notes

1.1. New cmdlets

• Get-QADLocalCertificateStore
• New-QADLocalCertificateStore
• Remove-QADLocalCertificateStore
• Get-QADCertificate
• Where-QADCertificate
• Add-QADCertificate
• Import-QADCertificate
• Show-QADCertificate
• Edit-QADCertificate
• Export-QADCertificate
• Remove-QADCertificate
• Remove-QADPrivateKey
• Get-QADCertificateRevocationList
• Add-QADCertificateRevocationList
• Import-QADCertificateRevocationList
• Export-QADCertificateRevocationList
• Remove-QADCertificateRevocationList
• Get-QADPKIObject
• Publish-QADCertificate
• Unpublish-QADCertificate
• Publish-QADCertificateRevocationList
• Unpublish-QADCertificateRevocationList
• Add-QADProxyAddress
• Set-QADProxyAddress
• Remove-QADProxyAddress
• Clear-QADProxyAddress
• Enable-QADEmailAddressPolicy
• Disable-QADEmailAddressPolicy
• Set-QADProgressPolicy
• Get-QADProgressPolicy
• Set-QADInactiveAccountsPolicy
• Get-QADInactiveAccountsPolicy

1.2. New parameters

1.3. Multi-value SearchRoot Parameter

The data type of the SearchRoot parameter has been changed to support a search within two or more containers at a time. This parameter now accepts an array of objects rather than a single object as it was with earlier versions. This makes it possible for the cmdlet to search multiple containers identified by the SearchRoot parameter value. For example, you can supply an array of strings each of which
represents the canonical name of a certain container, to retrieve objects from all of the containers specified.

2. Bugs fixed

[48939] Cannot work with object that contain round brackets in their names in Proxy mode.
[48941] Command 'Get-QADRootDSE | Format-List *' fails in Proxy mode.
[112742] Command 'Get-QADGroup -ContainsMember <member id>' doesn't work in Proxy mode.
[112870] Command 'Get-QADGroupMember 'Domain Users' | Get-QADUser' renders significant memory leak in Direct mode.
[113168] Set-QADUser can't work with input object of type 'inetOrgPerson'.
[115955] New-QADObject can't create objects with special symbols in name in Proxy mode.
[117478] Cannot set AD LDS user as owner for another AD LDS user.
[114381] ObjectAttributes parameter in New-QAD* cannot be passed by pipeline.
[116033] Get-QARSApprovalTask throws exception if task with status ‘Canceled’ present in result.
[115106] Add-QADGroupMember throws error when trying to add user to it's primary group.
[116484] New-QADObject should continue its execution with -ErrorAction:Continue if the object already exists.
[104161] 'Remove-QADObject -DeleteTree' should work properly for objects in Win 2008 R2 Recycle Bin.
[121356] Set-QADUser works incorrectly with import of multivalued attributes.

As you can see from the release notes there a multitude of new features released.

I find these Cmdlets a necessity in my day to day work in Management of Active Directory.

Download Links Below

ActiveRoles Management Shell for Active Directory 32-bit

ActiveRoles Management Shell for Active Directory 32-bit - Zip

ActiveRoles Management Shell for Active Directory 64-bit

ActiveRoles Management Shell for Active Directory 64-bit - Zip

ActiveRoles Management Shell for Active Directory - Administrator's Guide (PDF)

ActiveRoles Management Shell for Active Directory - User Help Guide

The Zip files include the Build History (Release Notes) Administrator's Guide and the Help Guide.

I am personally looking forward to kicking the tires on this one!

2010-07-15

Updating VMware vSphere Hypervisor

So first post about the free Hypervisor under its new name.

I wrote an article regarding the process of upgrading from ESXi 3.5 to ESXi 4.0.

Well I am happy to announce that this has changed - again! Have you tried to find the VMware vSphere Host Update Utility? It was never downloadable - it was part of the vSphere Client which was bundled with your ESXi Installation.(by the way that has also been removed from the installation and is not a separate download as well.

What once was

image

Is now..

image

The reason that the download is actually almost 160MB larger with less inside is a mystery to me (I guess the multiple languages now built in - make it a lot larger). But there is no Host Update utility any more.

The general consensus is that that VMware are pushing for Central Management - which means you need to use Update Manager - which is only part of the vCenter Package.

If you still want to update your hosts you will have to revert to a bit of command-line work.

The solution to this in the Upgrade Guide.

What you will need is:

  1. A Scratch Partition on your ESXi host

    You must configure a scratch partition and reboot the host before proceeding with the upgrade.
    You can configure a scratch partition for a host under the Software Advanced Settings in the Configuration tab of the vSphere Client.

    What is the Scratch Partition?

    During the autoconfiguration phase in the Host installation process, a 4GB VFAT scratch partition is created if the partition is not present on another disk. When ESXi boots, the system tries to find a suitable partition on a local disk to create a scratch partition. The scratch partition is not required. It is used to store vm-support output, which you need when you create a support bundle. If the scratch partition is not present, vm-support output is stored in a ramdisk. This might be problematic in low-memory situations, but is not critical.

    For ESXi Installable, the partition is created during installation and is thus selected. VMware recommends that you leave it unchanged.
  2. vSphere CLI - Download Here

    Download the tool - For Windows or Linux and install on your workstation.
  3. Download the Upgrade Package for 4.0 to 4.1 or the Upgrade Package from 3.5 to 4.1 
  4. Power off your VM's and put the host into maintenance mode
  5. Change your current directory to C:\Program Files\VMware\VMware vSphere CLI\bin
  6. From the vSphere CLI prompt

vihostupdate.pl --server host name or IP address -i -b location of the ESXi upgrade ZIP bundle -B ESXi410-GA

So in my case

vihostupdate.pl --server msaidelk-esx -i -b c:\temp\upgrade-from-ESXi4.0-to-4.1.0-0.0.260247-release.zip -B ESXi410-GA

image

You can of course do the same thing with ESX Updates as well

vihostupdate.pl --server host name or IP address -i -b location of the ESXi upgrade ZIP bundle -B ESXi410-GA-esxupdate

A reboot of the host is necessary thereafter.

Happy Upgrading!!

**Update 28-08-2010**

Updated the syntax to include the .pl extension to the command and added Step 5.

ESXi 4.1 Active Directory Integration

The previous post about what was new in vSphere 4.1 was a general overview with some slide shots. For all ye of little faith thinking that I was only going to post those screenshots with no details Nuh-Uh! 
I prefer to lay down the basics with screen shots - and then go into the details. I mean you do have to cater for all spectrums of the public from basic to advanced.

So without further a due - let's go into how you can add you ESX/i server into the domain.

But why would you?

Well actually there is a very simple reason - Security. One of the biggest problems it providing a single mechanism to authenticate yourself with the same credentials to all components of your infrastructure. With vCenter it is easy - since it is a Domain Member - all authentication is done through active directory. But going directly into the ESXi host - that is a different story all together you will have either authenticate with Linux credentials - or configure the authentication to be done by active directory - but for that you need a valid Linux user on the ESXi box.

(** Small note - since the future version of ESX will only be ESXi I have decided - that I will be using ESXi exclusively in my posts - unless the issue is directly related to the full ESX version)

There are 4 ways of doing this

  1. ESXi Host directly
  2. Host Profiles
  3. CLI
  4. Script

Before starting you need to make sure of a few things

You have correct time synchronization with between your ESX host and the Domain controllers - this is a must. Kerberos is extremely picky when time difference off.

You have proper DNS resolution from the ESX Host, and that the name servers are correct.

Also your ESX host has to have a FQDN - for example:

Hostname: esx1
Domain: maishsk.local
FQDN: esx1.maishsk.local

On the ESXi Host


Log into your host directly - NOT through the vCenter. The documentation says

image

I have found that if you do this on the vCenter server - the Properties option is grayed out. and you cannot make the change.

2010-07-15_0923

Configuration Tab -> Authentication Services-> Properties

2010-07-15_0924[3]

Enter domain name (in one of two ways) maishsk.local (Default computer location) or maishsk.local/Computers/ESX (for putting the computer account in the ESXi OU under the computers container)

2010-07-15_0933

Click Join Domain - and you will be asked for domain credentials - this user has to have permissions to add computers to the domain. Format is either administrator@maishsk.local or MAISHSK\administrator or just plain administrator

Once that is done - you can see on the Active Directory Users and Computer Console that you now have a new computer account.

2010-07-15_0933_001

To allow the the user/group access to the ESXi host your will have to define the permissions.at the appropriate level.

In the case I gave the Domain Admins full access to the Host

Permissions -> Add Permission -> Administrators ->Add

2010-07-15_0934

From the Server field choose your domain and search for your user/group (reminds anyone of vCenter?)

2010-07-15_0935

2010-07-15_0936

The user can now login with their domain credentials

2010-07-15_0941[3]

2010-07-15_1006

*** Update ***

I would like to also point out the what Raphael Schitz posted on his blog regarding the ESX Admins group and how this group automatically has access to the host just added to the domain. Thanks for pointing this out

By default, the ESX host assigns the Administrator role to the “ ESX Admins ” group. By default, the ESX host assigns the Administrator role to the "ESX Admins" group. If the group does not exist when the host joins the domain, the host will not assign the role. If the group does not exist When the host joins the domain, the host Will not assign the role. In this case, you must create the “ESX Admins” group in the Active Directory. The host will periodically check the domain controller for the group and will assign the role when the group exists . In this box, you must create the "ESX Admins" group in the Active Directory. The host Will periodically check the domain controller for the group and Will assign the role When the group exists.

2010-07-14

The VMware Tools Icon has Changed

I posted in a previous post about the VMware Tools Icon in VMware Workstation.

After updating the tools this evening on a VM running on a ESXi 4.1 Host - this is confirmed

image

Personally - I like the new icons much better…

2010-07-13

vMotion or VMotion?

Now that vSphere 4.1 is now released one of the new not so exciting features or developments that have emerged but are definitely worth mentioning.
VMware has finally made the change.
Up until this release - the live migration of virtual machines between hosts was known as

VMotion (with a capital V)
image
From here on it will now be know as
vMotion (with a small v)
image image image
This moves everything into synch with all the other VMware branding
I hope this finally puts this long lasting debate to rest.

What's New in vSphere 4.1 - Network I/O Control

Network Traffic Management. A great new feature allowing you to define shares on the Network traffic of your ESX servers.

slide1

The diagram at left should be familiar to most. When using 1GigE NICs, ESX hosts are typically deployed with NICs dedicated to particular traffic types. For example you may dedicate 4x 1GigE NICs for VM traffic; one NIC to iSCSI, another NIC to vMotion, and another to the service console. Each traffic type gets a dedicated bandwidth by virtue of the physical NIC allocation.

Moving to the diagram at right … ESX hosts deployed with 10GigE NICs are likely to be deployed (for the time being) with only two 10GigE interfaces. Multiple traffic types will be converged over the two interfaces. So long as the load offered to the 10GE interfaces is less than 10GE, everything is ok—the NIC can service the offered load. But what happens when the offered load from the various traffic types exceeds the capacity of the interface? What happens when you offer say 11Gbps to a 10GigE interface? Something has to suffer. This is where Network IO Control steps in. It addresses the issue of oversubscription by allowing you to set the relative importance of predetermined traffic types.

slide2

Network IO Control isolates the traffic types and ensures one traffic type is not dominated by others. It ensures or guarantees a minimum level of service for each traffic type when those traffic types (or flows) compete for a vmnic (physical NIC)

Note that NetIOC is available only with the vDS. It is not available on the standard switch (vSS).

slide3

NetIOC is controlled with two parameters—Limits and Shares.

Limits, as the name suggests, sets a limit for that traffic type (e.g VM traffic) across the NIC team. The value is specified in absolute terms in Mbps. When set, that traffic type will not exceed that limit *outbound* (or egress) of the host

Shares specify the relative importance of that traffic type when those traffic types compete for a particular vmnic (physical NIC). Shares are specified in abstract units numbered between 1 and 100 and indicate the relative importance of that traffic type. For example, if iSCSI has a shares value of 50, and FT logging has a shares value of 100, then FT traffic will get 2x the bandwidth of iSCSI when they compete. If they were both set at 50, or both set at 100, then they would both get the same level of service (bandwidth).

There are a number of preset values for shares ranging from low to high. You can also set custom values. Note that the limits and shares apply to output or egress from the ESX host, not input.

Remember that shares apply to the vmnics; limits apply across a team.

slide4

This slide shows how NetIOC is configured through the vSphere Client to vCenter Server. Select the networking inventory panels; click on the vDS switch and then select the “Resource Allocation” tab. Here you will see the various traffic types supported or identified. NetIOC currently categorizes the traffic types as follows:

- FT

- iSCSI

- vMotion

- Management

- NFS

- VM traffic

For each traffic type you can specify a limit in Mbps and a share value. Right clicking on the traffic type brings up the configuration panel.

In this example, if *every* traffic type tried to send unlimited traffic, VM traffic would get 50/400ths or one-eighth of the bandwidth of the physical interface as a minimum.

slide6

What's New in vSphere 4.1 - Storage I/O Control

After all the videos and Posts published regarding the new Feature of SIOC, here are some of the new features and solutions that SIOC addresses.

slide1

The problem Storage I/O control is addressing is the situation where some less important workloads are taking the majority of I/O bandwidth from more important applications. In the case of the three applications shown here, the data mining is hogging a majority of the storage I/O resource. And the two more important to the business operations are getting less performance than needed.

What a Virtualization Admin wants to see is a distribution of I/O that is aligned with the importance of each virtual machine. Where the most important business critical applications are getting the I/O bandwidth needed for them to be responsive and the less critical data mining application is taking less I/O bandwidth.

slide2

I/O shares can be set at the Virtual Machine level and although this capability has been there for a few previous releases, it was not enforced on a VMware cluster wide level until release 4.1.
Prior to 4.1 the I/O shares and limits were enforced for a VM with more than one virtual disk or a number of VMs on a single ESX server. But with 4.1 these I/O shares are now used to distribute I/O bandwidth across all the ESX servers which have access to that shared datastore.

slide3

The ability to set shares for I/O is done via edit properties on the virtual machine. This screen shows two virtual disks and the ability to set priority and limits on the I/Os per second.

slide4

Once the shares are set on the virtual machines in a VMware cluster, one needs to also enable the “Storage I/O Control” option on the properties screen for that datastores on which you want to have Storage I/O control working. The other thing that is needed for Storage I/O to kick in is that congestion measured in the form of latency must exist for a period of time on the datastore before the I/O control kicks in.

The example which comes to mind is a car pool lane is not typically enforced when there is not a lot of traffic on the highway. It would be of limited value if you could travel at the same speed in the non car pool lane as well as the car pool lane. In much the same way, Storage I/O control will not be put into action when there is latency below a sustained value of 30 ms.

slide5

One can then observe which VMs have what shares and limits set via the virtual machine tab for the datastore. As datastores are now objects managed by vCenter, there are several new views in vSphere that enable you see which ESX Servers are connected to a datastore and which VMs are sharing that datastore. Many of these views also allow one to customize which columns are displayed and create specific views to report on usage.

slide6

The way in which these I/O shares are used to effect performance is that queue depth for each ESX server can be assigned and throttled to align the specific shares assigned for each VM running on the collective pool of storage. In the case of our 3 VMs displayed earlier, we have the data mining vm getting the least number of queues assigned while the other two VMs are getting many more queuing slots enabled for their I/O.

slide7

slide8

slide9

What's New in vSphere 4.1 - ESXi

Here are some of the New features and enhancements for ESXi 4.1 and the vCLI

Get ready - THERE WILL BE NO MORE FULL ESX!! (or so VMware promises…)

image

image

image

Boot From SAN will be fully supported in ESXi 4.1. It was as only experimentally supported in ESXi 4.0. Boot from SAN will be supported for  FC, iSCSI, and FCoE – for the latter two, it will depend upon hardware qualification, so please check the HCL and Release Notes for vSphere 4.1.

image

Scripted Installation, the equivalent of Kickstart, will be supported on ESXi 4.1. The installer can boot over the network, and at that point you can also do an interactive installation, or else set it up to do a scripted installation. Both the installed image and the config file (called “ks.cfg”) can be obtained over the network using a variety of protocols. There is also an ability to specify preinstall, postinstall, and first-boot scripts. For example, the postinstall script can configure all the host settings, and the first boot script could join the host to vCenter. These three types of scripts run either in the context of the Tech Support Mode shell (which is a highly stripped down version of bash) or in Python.

image

In ESXi 4.0, Tech Support Mode usage was ambiguous. We stated that you should only use it with guidance from VMware Support, but VMware also issued several KBs telling customers how to use it. Getting into Tech Support Mode was also not very user-friendly.

In ESXi 4.1, Tech Support Mode (TSM) will be fully supported. You can enable and disable it either in the DCUI or in vCenter. TSM over SSH, aka Remote TSM, is also fully supported, and can enabled and disabled independently of local TSM.

image

The warning not to use TSM will be removed from the login screen However, anytime TSM is enabled (either local or remote), a warning banner will appear in vSphere Client for that host. This is meant to reinforce the recommendation that TSM only be used for fixing problems, not on a routine basis.

image

By default, after you enable TSM (both local and remote), they will automatically become disabled after 10 minutes. This time is configurable, and the timeout can also be disabled entirely. When TSM times out, running sessions are not terminated, allowing you to continue a debugging session. All commands issued in TSM are logged by hostd and sent to syslog, allowing for an incontrovertible audit trail.

image

image

image

image

Other new vCLI commands include network troubleshooting and new information exposed in resxtop. Finally, the ability to forcibly kill a VM has been added to vCLI, thus eliminating one of the most common reasons for wanting to use TSM.

image

image

There is now an ability to totally lock down a host. Lockdown mode in ESXi 4.1 forces all remote access to go through vCenter. The only local access is for root to access the DCUI – this could be used, for example, to turn off lockdown mode in case vCenter is down. However, there is an option to disable DCUI in vCenter. In this case, with Lockdown mode turned on, there is no possible way to manage the host directly – everything must be done through vCenter. If vCenter is down, the only recourse in this case is to reimage the box.

Of course, Lockdown Mode can be selectively disable for a host if there is a need to troubleshoot or fix it via TSM, and then enabled again.

image

image

http://www.vmware.com/products/vsphere/esxi-upgrade/