Ensuring that parameter values are passed to your function

Richard Siddaway
1 min read
Share:

A question on the forum about a function had me thinking. The user had defined two parameters for the function and then used Read-Host to get the values.

NO

Much better way is to use an advanced function and make the parameters mandatory

`function

Getuserdetails

{

[

CmdletBinding

(

)

]

param

(

[

parameter

(

Mandatory

=

$true

)

]

[string]

$Givenname

,

[

parameter

(

Mandatory

=

$true

)

]

[string]

$Surname

)

Get-ADUser

-properties

telephonenumber

,

office

-Filter

{

(

GivenName

-eq

$Givenname

)

-and

(

Surname

-eq

$Surname

)

}

}

`If you call the function and don"™t give values for the parameters you will be prompted for them

The other point is the ““Filter property on get-aduser. Don"™t put quotes round the variable