Hadoop and MapReduce basics–Udacity online course

Udacity and Cloudera recently partnered to create an online course titled “Introduction to Hadoop and MapReduce”.

I really like the course.  It’s short and to the point.  I think it’s a very good introduction for people new to Hadoop and wanting to get a bit of hands on.

I created a short YouTube video that walks someone through the first question in the final section of the course.  It’s important to understand the concepts thought in the course, because they all need to be applied here.

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.

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…

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.

Using Write-EventLog…

I was trying to use the Write-EventLog cmdlet and was noticing additional annoying text being added to the messages.  For example:

PS> write-eventlog -logname “Windows PowerShell” -source PowerShell –event 999 -message “Hello”

Looking at the resulting event, I would see this added:

“The description for Event ID 999 from source PowerShell cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer….”

I didn’t want this extra text, and couldn’t seem to figure out the problem, then came across something that Stefan Stranger did HERE:

if(![System.Diagnostics.EventLog]::SourceExists($source)) { [System.Diagnostics.EventLog]::CreateEventSource($source,’Application’) }

The trick to getting rid of this extra text was to make my own custom source for my events.  Now, the extra text is gone.  I just made up “PowerShell_script”, and used that in my script.

Microsoft MVP for another year…

Today is my re-award date, and I just received a pleasant surprise.

I have been awarded a Microsoft MVP award (PowerShell of course!) for another year.

Looking back, I’ve eased up on blogging (and haven’t been able to tweet all that much), but I’ve been pretty active in other areas, and am looking to continue that for the foreseeable future.

Microsoft: Thanks for the recognition.