Saturday, April 23, 2011

Virtual session on sysprep and PowerShell

I did a presentation for the virtual PowerShell chapter of SQLPASS (link HERE) last week.

I talked about using sysprep for creating quick OS images and also talked about the new sysprep support now in SQL Server 2008 R2.

My lab environment uses Hyper-V, so I try to practice using PowerShell as much as possible.  One thing I demo’d was a very basic/simple PowerShell script to:

  • Create a new VM
  • Change the default RAM
  • Copy a sysprep’d image to a new name
  • Attach a hard disk
  • Add a DVD drive
  • Attach an ISO to the DVD drive
  • Start the VM

Here’s the script:

import-module hyperv
new-vm -name foo
get-vm foo|set-vmmemory -memory 1024
copy-item "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Server_sysprep_gold.vhd" `
"C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Server_foo.vhd"
get-vm foo|add-vmdisk -controller 0 -lun 0 -path "C:\Users\Public\Documents\Hyper-V\Virtual hard disks\Server_foo.vhd"
get-vm foo|add-vmdrive -dvd -controllerid 1 -lun 0
get-vm foo|add-vmdisk -dvd -controller 1 -lun 0 -path "C:\Users\Administrator\ISOs\sql_server_2008_r2.iso"
get-vm foo|start-vm

(Yes, I could have condensed some stuff, but that’s not the point I was trying to communicate.  I don’t see the point in condensing 10 lines of code to 5-6 at the expense of readability, and prefer to ease the PowerShell learning curve for newcomers.)

A few resources from the session:

Enjoy!  I’m not sure when the recording will be put online, but I’ll put a link to it…  I don’t talk a whole lot about PowerShell though.  Maybe just 10-15 minutes at the end.

Sunday, April 10, 2011

PowerShell: State of the Union

I’m not going to go that far back in history to rehash where PowerShell has come from, but I want to talk about where I think it is going.

I think it took the fact that the PowerShell icon now appears by default in Windows Server 2008 R2 for more people to start taking it more seriously.  PowerShell seemed to be talked about a way lot more last year than before.  More and more are starting to embrace it, and now that there are more Microsoft products that have been released since CEC 2009 (FYI HERE), there’s PowerShell almost everywhere in all the Microsoft (server-based) products.

I will highlight one (or two) disappointment(s) of late: System Center Configuration Manger 2012 (currently at Beta 2).  I can sympathize with some product teams though, especially when they already have an interface to automate just about everything already.  They want to concentrate on the next version of their products, versus PowerShell-izing everything.  I don’t expect to see any Microsoft-provided PowerShell cmdlets in SCCM 2012, but they seem to be working hard on their WMI interface, so at least the community can come to the rescue here (and already have with some PowerShell projects based on SCCM 2007 like Greg Ramsey). 

Now, that being said, the other System Center 2012 product in public beta is Virtual Machine Manager 2012 (currently at Beta 1), and its PowerShell support continues where VMM 2008 was: the GUI is written on top of PowerShell.  That means, there’s a cmdlet for *every* task, just like Exchange 2010 continues the tradition started with Exchange 2007.  I’ve seen public slides from recent events that have highlighted increased PowerShell support in System Center Service Manager 2012 and System Center Data Protection Manager 2012 also (neither being in public beta yet).

I might expect SQL Server to also never have full PowerShell functionality or take a few major releases before that happens.  I think we will see SQL Server Denali in the next 12 months, and it, to my knowledge, still won’t have a Add-Table cmdlet, for example.  Again, the community to the rescue, and there’s a *huge* community project led by the likes of Chad Miller who have brought PowerShell extensions for SQL.

Nonetheless, the “Father of PowerShell”, Jeffrey Snover, is now a major influencer (after a big promotion) in the Windows Server division.  I’m not basing this statement on any secret facts that I’m privied to, but I’m expecting Windows Server v.Next to *explode* in the number of features that have direct PowerShell administration functionality, and I’m hoping to be pleasantly surprised once the information starts to become public.  I’m not talking about having to wrap PowerShell around cmd.exe, Win32 API or P/Invoke, but having native cmdlets that provide all of the base OS tasks…

Saturday, March 26, 2011

Virtual Machine Manager: Changes from 2008 R2 to 2012 Beta 1 (LONG)

Using a script Shay Levy wrote HERE, I have the following list of cmdlet changes that have occurred between Microsoft System Center Virtual Machine Manager 2008 R2 and the very recently released 2012 Beta 1 (see HERE).

So below is a listing of the parameter changes to each of the cmdlets.  There are several changes in the new Beta...  There are a few cmdlets that have parameters that have changed, but along with the new features announced in 2012 Beta 1, there’s a load of new cmdlets covering the features planned for VMM 2012 (due apparently by the end of the 2011 calendar year).

Cmdlets with an “!” have changed, and have a “+” or “-“, depending on whether the parameter was added or removed.  For the new cmdlets, they are just have a “+” and their parameters aren’t listed, while cmdlets removed have a “-“.

The list does have a small surprise: the SCVMM team has renamed some of their cmdlets to have “SC” in the noun.  So, you’ll see “Add-SCVMHost” being added, and “Add-VMHost” being removed, if you look closely.

Add-VMHostCluster (!)
    Certificate (+)
    NonTrustedDomainHost (+)
    SecureMode (+)
    TCPPort (+)
    VirtualizationManager (+)
    XenServerHost (+)

Discover-Cluster (!)
    NonTrustedDomainHost (+)
    TCPPort (+)
    XenServerHost (+)

Get-VMPerformance (!)
    VMMServer (+)RunAsynchronously (-) JobVariable (-) PROTipID (-)

Get-VMwareResourcePool (!)
    ID (+)

Move-VM (!)
    HighlyAvailable (+)

New-GuestOSProfile (!)
    AdminPasswordIsServiceSetting (+)
    AdminPasswordRunAsProfile (+)
    JoinDomainPasswordIsServiceSetting (+)
    JoinDomainRunAsProfile (+)
    UserRole (+)

New-HardwareProfile (!)
    CapabilityProfile (+)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    UserRole (+)
    VirtualVideoAdapterEnabled (+)

New-VirtualDiskDrive (!)
    HostDisk (-)
    StorageClassification (+)
    StorageDisk (+)
    VolumeType (+)

New-VirtualSCSIAdapter (!)
    SCSIControllerType (+)
    Synthetic (+)

Remove-VirtualDVDDrive (!)
    SourceBus (+)
    SourceLun (+)

Set-GuestOSProfile (!)
    AdminPasswordIsServiceSetting (+)
    AdminPasswordRunAsProfile (+)
    JoinDomainPasswordIsServiceSetting (+)
    JoinDomainRunAsProfile (+)
    UserRole (+)

Set-HardwareProfile (!)
    CapabilityProfile (+)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    RemoveCapabilityProfile (+)
    UserRole (+)
    VirtualVideoAdapterEnabled (+)

Set-VirtualDiskDrive (!)
    StorageClassification (+)
    VolumeType (+)

Set-VirtualDVDDrive (!)
    SourceBus (+)
    SourceLun (+)

Set-VirtualSCSIAdapter (!)
    SCSIControllerType (+)

Set-VMHostCluster (!)
    InheritPROSettings (-)
    PROAutomationLevel (-)
    PROMonitoringLevel (-)
    SetQuorumDisk (+)
    SetQuorumNodeMajority (+)

Shutdown-VM (!)
    ComputerTier (+)
    UpgradeDomain (+)

Start-VM (!)
    ComputerTier (+)
    UpgradeDomain (+)

Stop-VM (!)
    ComputerTier (+)
    UpgradeDomain (+)

Add-SCApplicationDeployment (+)

Add-SCApplicationHost (+)

Add-SCApplicationHostTemplate (+)

Add-SCComputerTierTemplate (+)

Add-SCCustomPlacementRule (+)

Add-SCDataDisk (+)

Add-SCLibraryServer (+)

Add-SCLibraryShare (+)

Add-SCLoadBalancer (+)

Add-SCOperatingSystem (+)

Add-SCPatch (+)

Add-SCPowerOptimizationRange (+)

Add-SCPXEServer (+)

Add-SCScriptCommand (+)

Add-SCServerFeature (+)

Add-SCServicingWindowSubscription (+)

Add-SCSQLDeployment (+)

Add-SCSQLScriptCommand (+)

Add-SCStorageProvider (+)

Add-SCUpdateServer (+)

Add-SCVirtualizationManager (+)

Add-SCVMHost (+)

Add-SCVMHostNetworkAdapter (+)

Backup-SCVMMServer (+)

Clear-SCPowerOptimizationSchedule (+)

Clear-SCPROTip (+)

Copy-SCStorageVolume (+)

Copy-SCVirtualHardDisk (+)

Disable-SCLoadBalancerVIPMember (+)

Disable-SCRunAsAccount (+)

Disable-SCVMHost (+)

DiscardSavedState-SCService (+)

Enable-SCLoadBalancerVIPMember (+)

Enable-SCRunAsAccount (+)

Enable-SCVMHost (+)

Export-SCTemplate (+)

Find-SCComputer (+)

Find-SCLibraryShare (+)

Get-SCApplication (+)

Get-SCApplicationDeployment (+)

Get-SCApplicationHost (+)

Get-SCApplicationHostTemplate (+)

Get-SCApplicationPackage (+)

Get-SCApplicationProfile (+)

Get-SCApplicationSetting (+)

Get-SCBaseline (+)

Get-SCCapabilityProfile (+)

Get-SCCloud (+)

Get-SCCloudCapacity (+)

Get-SCCloudUsage (+)

Get-SCClusterVirtualNetwork (+)

Get-SCComplianceStatus (+)

Get-SCComputerConfiguration (+)

Get-SCComputerTier (+)

Get-SCComputerTierConfiguration (+)

Get-SCComputerTierTemplate (+)

Get-SCConfigurationProvider (+)

Get-SCCustomPlacementRule (+)

Get-SCCustomProperty (+)

Get-SCCustomPropertyValue (+)

Get-SCCustomResource (+)

Get-SCDependentLibraryResource (+)

Get-SCDriverPackage (+)

Get-SCDynamicOptimizationConfiguration (+)

Get-SCGlobalSetting (+)

Get-SCHardwareProfile (+)

Get-SCHostReserve (+)

Get-SCIPAddress (+)

Get-SCISO (+)

Get-SCISOConfiguration (+)

Get-SCJob (+)

Get-SCLibraryRating (+)

Get-SCLibraryServer (+)

Get-SCLibraryShare (+)

Get-SCLoadBalancer (+)

Get-SCLoadBalancerConfiguration (+)

Get-SCLoadBalancerTemplate (+)

Get-SCLoadBalancerVIP (+)

Get-SCLoadBalancerVIPMember (+)

Get-SCLoadBalancerVIPTemplate (+)

Get-SCLogicalNetwork (+)

Get-SCLogicalNetworkDefinition (+)

Get-SCMACAddress (+)

Get-SCMACAddressPool (+)

Get-SCOperatingSystem (+)

Get-SCOpsMgrConnection (+)

Get-SCPendingGlobalSetting (+)

Get-SCPerformanceData (+)

Get-SCPlacementConfiguration (+)

Get-SCPowerOptimizationRange (+)

Get-SCPROMonitor (+)

Get-SCPROMonitorConfiguration (+)

Get-SCPROMonitorState (+)

Get-SCPROTip (+)

Get-SCPXEServer (+)

Get-SCRunAsAccount (+)

Get-SCRunAsAccountConsumer (+)

Get-SCRunAsProfile (+)

Get-SCRunAsProfileAssociation (+)

Get-SCRunAsProfileConsumer (+)

Get-SCScript (+)

Get-SCScriptCommand (+)

Get-SCScriptCommandSetting (+)

Get-SCServerFeature (+)

Get-SCService (+)

Get-SCServiceConfiguration (+)

Get-SCServiceTemplate (+)

Get-SCServicingScript (+)

Get-SCServicingWindow (+)

Get-SCServicingWindowSubscription (+)

Get-SCSharedResource (+)

Get-SCSQLASConnection (+)

Get-SCSQLDeployment (+)

Get-SCSQLProfile (+)

Get-SCSQLScriptCommand (+)

Get-SCStaticIPAddressPool (+)

Get-SCStep (+)

Get-SCStorageArray (+)

Get-SCStorageClassification (+)

Get-SCStorageDisk (+)

Get-SCStorageLogicalUnit (+)

Get-SCStoragePool (+)

Get-SCStorageProvider (+)

Get-SCStorageVolume (+)

Get-SCTags (+)

Get-SCTemplate (+)

Get-SCTemplatePackage (+)

Get-SCUpdate (+)

Get-SCUpdateServer (+)

Get-SCUserRole (+)

Get-SCUserRoleMembership (+)

Get-SCUserRoleQuota (+)

Get-SCVirtualFloppyDisk (+)

Get-SCVirtualHardDisk (+)

Get-SCVirtualHardDiskConfiguration (+)

Get-SCVirtualizationManager (+)

Get-SCVirtualMachine (+)

Get-SCVirtualNetwork (+)

Get-SCVirtualNetworkAdapter (+)

Get-SCVirtualNetworkAdapterConfiguration (+)

Get-SCVMConfiguration (+)

Get-SCVMHost (+)

Get-SCVMHostGroup (+)

Get-SCVMHostNetworkAdapter (+)

Get-SCVMHostProfile (+)

Get-SCVMHostRating (+)

Get-SCVMMAccessLicense (+)

Get-SCVMMManagedComputer (+)

Get-SCVMMServer (+)

Get-SCVMXComputerConfiguration (+)

Grant-SCIPAddress (+)

Grant-SCMACAddress (+)

Grant-SCResource (+)

Import-SCTemplate (+)

Install-SCApplication (+)

Install-SCServerFeature (+)

Install-SCSQLServerInstance (+)

Install-SCVMHostCluster (+)

Invoke-SCPROTip (+)

Invoke-SCScriptCommand (+)

Mount-SCDataDisk (+)

Mount-SCStorageDisk (+)

Move-SCVirtualHardDisk (+)

Move-SCVMHost (+)

Move-SCVMHostGroup (+)

New-SCApplicationProfile (+)

New-SCBaseline (+)

New-SCCapabilityProfile (+)

New-SCCloud (+)

New-SCComputerConfiguration (+)

New-SCCustomProperty (+)

New-SCDefaultGateway (+)

New-SCLoadBalancerConnectionPersistence (+)

New-SCLoadBalancerHealthMonitor (+)

New-SCLoadBalancerProtocol (+)

New-SCLoadBalancerTemplate (+)

New-SCLoadBalancerVIP (+)

New-SCLoadBalancerVIPMember (+)

New-SCLoadBalancerVIPTemplate (+)

New-SCLoadBalancingMethod (+)

New-SCLogicalNetwork (+)

New-SCLogicalNetworkDefinition (+)

New-SCMACAddressPool (+)

New-SCOpsMgrConnection (+)

New-SCP2V (+)

New-SCPackageMapping (+)

New-SCResourceGroup (+)

New-SCRunAsAccount (+)

New-SCRunAsProfile (+)

New-SCRunAsProfileAssociation (+)

New-SCScriptCommandSetting (+)

New-SCService (+)

New-SCServiceCheckpoint (+)

New-SCServiceConfiguration (+)

New-SCServiceTemplate (+)

New-SCServicingWindow (+)

New-SCSQLASConnection (+)

New-SCSQLProfile (+)

New-SCStaticIPAddressPool (+)

New-SCStorageClassification (+)

New-SCStorageLogicalUnit (+)

New-SCSubnetVLan (+)

New-SCTemplate (+)

New-SCUserRole (+)

New-SCV2V (+)

New-SCVirtualMachine (+)

New-SCVirtualNetwork (+)

New-SCVirtualNetworkAdapter (+)

New-SCVMConfiguration (+)

New-SCVMHost (+)

New-SCVMHostGroup (+)

New-SCVMHostProfile (+)

New-SCVMXComputerConfiguration (+)

Publish-SCWindowsPE (+)

Read-SCGuestInfo (+)

Read-SCLibraryShare (+)

Read-SCLoadBalancer (+)

Read-SCLoadBalancerVIP (+)

Read-SCService (+)

Read-SCStorageProvider (+)

Read-SCVMHost (+)

Refresh-SCVirtualizationManager (+)

Register-SCStorageLogicalUnit (+)

Register-SCVMHost (+)

Register-SCVMMManagedComputer (+)

Remove-SCApplicationDeployment (+)

Remove-SCApplicationHost (+)

Remove-SCApplicationHostTemplate (+)

Remove-SCApplicationPackage (+)

Remove-SCApplicationProfile (+)

Remove-SCBaseline (+)

Remove-SCCapabilityProfile (+)

Remove-SCCloud (+)

Remove-SCComputerConfiguration (+)

Remove-SCComputerTierTemplate (+)

Remove-SCCustomPlacementRule (+)

Remove-SCCustomProperty (+)

Remove-SCCustomPropertyValue (+)

Remove-SCCustomResource (+)

Remove-SCDataDisk (+)

Remove-SCDriverPackage (+)

Remove-SCISO (+)

Remove-SCLibraryServer (+)

Remove-SCLibraryShare (+)

Remove-SCLoadBalancer (+)

Remove-SCLoadBalancerTemplate (+)

Remove-SCLoadBalancerVIP (+)

Remove-SCLoadBalancerVIPMember (+)

Remove-SCLoadBalancerVIPTemplate (+)

Remove-SCLogicalNetwork (+)

Remove-SCLogicalNetworkDefinition (+)

Remove-SCMACAddressPool (+)

Remove-SCOperatingSystem (+)

Remove-SCOpsMgrConnection (+)

Remove-SCPXEServer (+)

Remove-SCResourceGroup (+)

Remove-SCRunAsAccount (+)

Remove-SCRunAsProfile (+)

Remove-SCRunAsProfileAssociation (+)

Remove-SCScript (+)

Remove-SCScriptCommand (+)

Remove-SCServerFeature (+)

Remove-SCService (+)

Remove-SCServiceConfiguration (+)

Remove-SCServiceTemplate (+)

Remove-SCServicingWindow (+)

Remove-SCServicingWindowSubscription (+)

Remove-SCSQLASConnection (+)

Remove-SCSQLDeployment (+)

Remove-SCSQLProfile (+)

Remove-SCSQLScriptCommand (+)

Remove-SCStaticIPAddressPool (+)

Remove-SCStorageClassification (+)

Remove-SCStorageLogicalUnit (+)

Remove-SCStorageProvider (+)

Remove-SCTemplate (+)

Remove-SCUpdateServer (+)

Remove-SCUserRole (+)

Remove-SCVirtualFloppyDisk (+)

Remove-SCVirtualHardDisk (+)

Remove-SCVirtualizationManager (+)

Remove-SCVirtualMachine (+)

Remove-SCVirtualNetwork (+)

Remove-SCVirtualNetworkAdapter (+)

Remove-SCVMConfiguration (+)

Remove-SCVMHost (+)

Remove-SCVMHostGroup (+)

Remove-SCVMHostNetworkAdapter (+)

Remove-SCVMHostProfile (+)

Remove-SCVMXComputerConfiguration (+)

Repair-SCVMHost (+)

Reset-SCPROMonitorState (+)

Resolve-SCServiceTemplate (+)

Restart-SCJob (+)

Restart-SCVMHost (+)

Restore-SCApplicationState (+)

Resume-SCService (+)

Revoke-SCIPAddress (+)

Revoke-SCMACAddress (+)

Revoke-SCResource (+)

Save-SCApplicationState (+)

SaveState-SCService (+)

Set-SCApplication (+)

Set-SCApplicationDeployment (+)

Set-SCApplicationHostTemplate (+)

Set-SCApplicationPackage (+)

Set-SCApplicationProfile (+)

Set-SCApplicationSetting (+)

Set-SCBaseline (+)

Set-SCCapabilityProfile (+)

Set-SCCloud (+)

Set-SCCloudCapacity (+)

Set-SCComplianceStatus (+)

Set-SCComputerTier (+)

Set-SCComputerTierConfiguration (+)

Set-SCComputerTierTemplate (+)

Set-SCCustomPlacementRule (+)

Set-SCCustomProperty (+)

Set-SCCustomPropertyValue (+)

Set-SCCustomResource (+)

Set-SCDriverPackage (+)

Set-SCDynamicOptimizationConfiguration (+)

Set-SCGlobalSetting (+)

Set-SCGuestInfo (+)

Set-SCHostReserve (+)

Set-SCIPAddress (+)

Set-SCISO (+)

Set-SCISOConfiguration (+)

Set-SCLibraryServer (+)

Set-SCLibraryShare (+)

Set-SCLoadBalancer (+)

Set-SCLoadBalancerConfiguration (+)

Set-SCLoadBalancerTemplate (+)

Set-SCLoadBalancerVIPTemplate (+)

Set-SCLogicalNetwork (+)

Set-SCLogicalNetworkDefinition (+)

Set-SCMACAddressPool (+)

Set-SCOpsMgrConnection (+)

Set-SCPackageMapping (+)

Set-SCPlacementConfiguration (+)

Set-SCPROMonitorConfiguration (+)

Set-SCPROTip (+)

Set-SCResourceGroup (+)

Set-SCRunAsAccount (+)

Set-SCRunAsProfile (+)

Set-SCScript (+)

Set-SCScriptCommand (+)

Set-SCScriptCommandSetting (+)

Set-SCService (+)

Set-SCServiceConfiguration (+)

Set-SCServiceTemplate (+)

Set-SCServicingWindow (+)

Set-SCSQLDeployment (+)

Set-SCSQLProfile (+)

Set-SCSQLScriptCommand (+)

Set-SCStaticIPAddressPool (+)

Set-SCStorageArray (+)

Set-SCStorageClassification (+)

Set-SCStorageLogicalUnit (+)

Set-SCStoragePool (+)

Set-SCStorageProvider (+)

Set-SCStorageVolume (+)

Set-SCTemplate (+)

Set-SCUpdate (+)

Set-SCUpdateServer (+)

Set-SCUserRole (+)

Set-SCUserRoleQuota (+)

Set-SCVirtualFloppyDisk (+)

Set-SCVirtualHardDisk (+)

Set-SCVirtualHardDiskConfiguration (+)

Set-SCVirtualizationManager (+)

Set-SCVirtualMachine (+)

Set-SCVirtualNetwork (+)

Set-SCVirtualNetworkAdapter (+)

Set-SCVirtualNetworkAdapterConfiguration (+)

Set-SCVMConfiguration (+)

Set-SCVMHost (+)

Set-SCVMHostGroup (+)

Set-SCVMHostNetworkAdapter (+)

Set-SCVMHostProfile (+)

Set-SCVMMServer (+)

Shutdown-SCService (+)

Start-SCComplianceScan (+)

Start-SCDynamicOptimization (+)

Start-SCService (+)

Start-SCServicingMode (+)

Start-SCUpdateRemediation (+)

Start-SCUpdateServerSynchronization (+)

Start-SCVMHost (+)

Stop-SCJob (+)

Stop-SCService (+)

Stop-SCServicingMode (+)

Stop-SCVMHost (+)

Suspend-SCService (+)

Test-SCLoadBalancer (+)

Test-SCPROTip (+)

Test-SCServiceTemplate (+)

Test-SCVMHostCluster (+)

Uninstall-SCApplication (+)

Uninstall-SCServerFeature (+)

Uninstall-SCVMHostCluster (+)

Unregister-SCStorageLogicalUnit (+)

Update-SCApplication (+)

Update-SCService (+)

Update-SCServiceConfiguration (+)

Update-SCVirtualHardDisk (+)

Update-SCVMConfiguration (+)

Update-SCVMMManagedComputer (+)

Validate-SCCapabilityProfile (+)

Write-SCOpsMgrConnection (+)

Add-LibraryServer (-)

Add-LibraryShare (-)

Add-Patch (-)

Add-VirtualizationManager (-)

Add-VMHost (-)

Add-VMHostNetworkAdapter (-)

Associate-VMHost (-)

Backup-VMMServer (-)

Copy-HardDisk (-)

Copy-VMDK (-)

Disable-VMHost (-)

Discover-Computer (-)

Discover-LibraryShare (-)

Dismiss-PROTip (-)

Enable-VMHost (-)

Get-DependentLibraryObject (-)

Get-HardwareProfile (-)

Get-ISO (-)

Get-Job (-)

Get-LibraryRating (-)

Get-LibraryServer (-)

Get-LibraryShare (-)

Get-MachineConfig (-)

Get-OperatingSystem (-)

Get-PROTip (-)

Get-Script (-)

Get-SshPublicKey (-)

Get-Step (-)

Get-Template (-)

Get-VirtualFloppyDisk (-)

Get-VirtualHardDisk (-)

Get-VirtualizationManager (-)

Get-VirtualNetwork (-)

Get-VirtualNetworkAdapter (-)

Get-VM (-)

Get-VMHost (-)

Get-VMHostDisk (-)

Get-VMHostGroup (-)

Get-VMHostNetworkAdapter (-)

Get-VMHostRating (-)

Get-VMHostVolume (-)

Get-VMMManagedComputer (-)

Get-VMMServer (-)

Get-VMMUserRole (-)

Get-VMXMachineConfig (-)

Invoke-PROTip (-)

Move-VirtualHardDisk (-)

Move-VMHost (-)

Move-VMHostGroup (-)

New-MachineConfig (-)

New-P2V (-)

New-Template (-)

New-V2V (-)

New-VirtualNetwork (-)

New-VirtualNetworkAdapter (-)

New-VM (-)

New-VMHostGroup (-)

New-VMMUserRole (-)

New-VMRCCertificateRequest (-)

New-VMXMachineConfig (-)

Reassociate-VMMManagedComputer (-)

Refresh-LibraryShare (-)

Refresh-VirtualizationManager (-)

Refresh-VMHost (-)

Remove-ISO (-)

Remove-LibraryServer (-)

Remove-LibraryShare (-)

Remove-MachineConfig (-)

Remove-Script (-)

Remove-Template (-)

Remove-VirtualFloppyDisk (-)

Remove-VirtualHardDisk (-)

Remove-VirtualizationManager (-)

Remove-VirtualNetwork (-)

Remove-VirtualNetworkAdapter (-)

Remove-VM (-)

Remove-VMHost (-)

Remove-VMHostGroup (-)

Remove-VMHostNetworkAdapter (-)

Remove-VMMUserRole (-)

Remove-VMXMachineConfig (-)

Restart-Job (-)

Set-ISO (-)

Set-LibraryServer (-)

Set-LibraryShare (-)

Set-PROTip (-)

Set-Script (-)

Set-Template (-)

Set-VirtualFloppyDisk (-)

Set-VirtualHardDisk (-)

Set-VirtualizationManager (-)

Set-VirtualNetwork (-)

Set-VirtualNetworkAdapter (-)

Set-VM (-)

Set-VMHost (-)

Set-VMHostGroup (-)

Set-VMHostNetworkAdapter (-)

Set-VMHostVolume (-)

Set-VMMServer (-)

Set-VMMUserRole (-)

Stop-Job (-)

Update-VMHost (-)

Update-VMMManagedComputer (-)

VMM 2008 R2: Changes from RTM to SP1

Using a script Shay Levy wrote HERE, I have the following list of cmdlet changes that have occurred between Microsoft System Center Virtual Machine Manager 2008 R2 and SP1.

So below is a listing of the parameter changes to each of the cmdlets.  There aren’t actually any cmdlet changes (like a new or removed cmdlet).  In this case, all of the changes are actually just new parameters that have been added.

All of the changes are around the new SP1 features like Dynamic Memory and RemoteFX (see HERE).

New-HardwareProfile (!)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    VirtualVideoAdapterEnabled (+)

New-Template (!)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    VirtualVideoAdapterEnabled (+)

New-VM (!)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    VirtualVideoAdapterEnabled (+)

Set-HardwareProfile (!)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    VirtualVideoAdapterEnabled (+)

Set-Template (!)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    VirtualVideoAdapterEnabled (+)

Set-VM (!)
    DynamicMemoryBufferPercentage (+)
    DynamicMemoryEnabled (+)
    DynamicMemoryMaximumMB (+)
    MemoryWeight (+)
    MonitorMaximumCount (+)
    MonitorResolutionMaximum (+)
    VirtualVideoAdapterEnabled (+)

Cerebrata.com: A community success story

(I’m several months behind in putting this out!)

A few months ago, Cerebrata had a public beta of their new released Azure cmdlets.  I came across the announcement on Twitter and fired it off to others who checked it out.

I had exchanged a few emails with their support when I discovered that something seemed to be odd/wrong when I tried to install their cmdlets on my 64-bit system.  They were very helpful in trying to determine the problem, and it was on my end.

But that was the thing that least impressed me actually…  They were very receptive of suggestions from Microsoft MVPs around their naming conventions.  There were a few unapproved verbs and also some pluralisms in their naming.  They were very quick to make changes to their code, or provide arguments why they felt their original approach was correct.

Thanks Guarav (from Cerebrata)!  By working together, we can try to make the PowerShell experience an awesome (and consistent) one for everyone.