Author Posts

June 12, 2017 at 5:05 pm

The following code checks if someone using a function; has entered a saved PScredential, if the function needs to prompt the user for a password, or just uses the users current account. Is there an easier way?

    Write-Verbose "Checking Credential Param"
    if ($Credential.Count -ne 0)
    {       
        if ($Credential.ToString() -contains 'System.Management.Automation.PSCredential')
        {
            $PSCredential = $Credential           
        }
            else
            {
                Write-Verbose "Getting Credential"
                $PSCredential = (Get-Credential -Credential $Credential)       
            } 
    }

June 12, 2017 at 5:13 pm

You could check $PSBoundParameters.ContainsKey('parameterName') to see if the parameter was specified. You could also code the parameter definition to accept objects of the type [PSCredential], and mark it as mandatory. That way if a credential isn't specified, the shell will prompt for one.

June 12, 2017 at 5:30 pm

Thank You... the solution I had took hours to figure out. Seeing other solutions then your own really helps. This forum is great for learning! Never ending unique practice questions.