Checking if credential was provided

Tagged: 

This topic contains 2 replies, has 2 voices, and was last updated by Profile photo of Frank Tucker Frank Tucker 2 weeks ago.

  • Author
    Posts
  • #72661
    Profile photo of Frank Tucker
    Frank Tucker
    Participant

    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)       
                } 
        }
    
  • #72662
    Profile photo of Don Jones
    Don Jones
    Keymaster

    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.

  • #72664
    Profile photo of Frank Tucker
    Frank Tucker
    Participant

    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.

You must be logged in to reply to this topic.