Ensuring that parameter values are passed to your function

Uncategorized

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

Comments are closed.