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