Skip to main content

Posts

Showing posts from November, 2013

Windows 8 Keyboard Layout is Wrong in Virtual Lab

This one popped up in a class this morning using virtual labs.  While attempting to hit the “\” key, the “#” character was being displayed.  In the lower right hand corner, take a look and the language. It says English, but what about the keyboard layout. Click on ENG to see what it is actually set to: In this case, the keyboard layout is English (United Kingdom).  Click on the US keyboard layout to fix this problem.

How do I ask a user to re-enter information?

Today in my PowerShell class, the question came up of how to ask a user for valid information if what they provided is not correct.  I did not want to go into parameter validation just yet so I did it in code.  This allowed me to demonstration a looping construct and how to use functions inside of your code. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 7 72 73 74 75 76 Function Get-MyEvents {     [ cmdletBinding () ]     Param (            [ parameter (Mandatory = $true ) ]            [ String ] $Logname ,            [ Int ] $Newest = 5 )       # -- Test-Log ----------------------------------------------------------------     # Test to determine if the log file is valid.     # Return code 0 for yes and 1 for no.     Function Test-Log

Watch those Verbs!

A good question came up in class today.  We were working with the registry and a student needed to know how to change the value of a registry property using New-PropertyItem.  Well, we can’t exactly do that.  Remember that PowerShell has different verbs that describe the intent of the cmdlet.  The Approved Verbs for Windows PowerShell list these verbs. New creates Set changes Remove destroys The verbs are there to help us find what we need.  For example, what if I need to change an IP address, but I do not know the cmdlet?   Try this: Get-Command Set-*ip*.  From experience, I knew that there is a good chance that IP would be in the noun.  From the verb list, I know to look for “Set” verbs.  Here is the difference.  PS C:\> Get-Command set-*ip* | Measure-Object | Select -ExpandProperty Count 20   PS C:\> Get-Command *ip* | Measure-Object | Select -ExpandProperty Count 187 The first number, 20, shows how many possible cmdlets returned when you know to use the “Set” ver

What time is it???

Today I’m virtually delivering a class to IT pros in India, The United Kingdom, and the United States.  Time difference can be a bit of an issue.  I’m directing time based for the class in GMT (Greenwich Mean Time).  Of course since this is a PowerShell course, I’m doing this in PowerShell. Two of the methods provided to us from the .NET framework System.DateTime is ToLocalTime and ToUniversalTime So let’s say that I need everyone to be back in the virtual classroom in an hour and a half.  I can run this command to get the equivalent time in GMT. ((Get.Date).AddHours(1.5)).ToUniversalTime() Let’s say that the GMT time will be 18:30. For the class to convert the GMT time to their local time: (Get-Date –Date “18:30Z”).ToLocalTime() Problem solved!