Advanced Windows PowerShell Scripting Video Training

Advanced Windows PowerShell Scripting Video Training
Advanced Windows PowerShell Scripting Video Training

Thursday, January 7, 2016

Reading and Resolving PowerShell Errors - Part 4

This is part 4 of my series of the most common PowerShell errors that are made in my PowerShell classes.  I will be posting one a day to help you understand why an error occurred and what the error’s meaning is.
Today’s error: Missing an argument for parameter

Here is our starting code:
Get-Date -Year -Month 9 -day 23

And here is the full error:
Get-Date : Missing an argument for parameter 'Year'. Specify a parameter of type 'System.Int32' and try again.
At line:1 char:10
+ Get-Date -Year -Month 9 -day 23
+          ~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-Date], ParameterBindingException
    + FullyQualifiedErrorId : MissingArgument,Microsoft.PowerShell.Commands.GetDateCommand

Many PowerShell cmdlets require some type of argument.  An argument is information.  I know, odd name.  The parameter in quest is –Year. Let’s take a look at its help file.
PS C:\> Get-Help Get-Date -Parameter Year

-Year []
    Specifies the year that is displayed. Enter a value from 1 to 9999. The default is the current year.
   
    Required?                    false
    Position?                    named
    Default value                none
    Accept pipeline input?       false
    Accept wildcard characters?  false

According to the help file, we need to provide an integer value between 1 to 9999.  Also in the error message, we were told to provide a System.Int32 object.  In other words, an integer.  That is just the .NET object name for an integer.
Resolution: Give it a number
PS C:\> Get-Date -Year 2018 -Month 9 -day 23

Sunday, September 23, 2018 2:55:59 PM




No comments: