Compartilhar via


Autenticação via Powershell utilizando Get-Credential e PSCredential

Introdução

Muitos cmdlets podem receber o parâmetro -Credential , que é utilizado para passar uma credencial seja para criação ou autenticação, podemos utilizar o cmdlet Get-Credential para solicitar que o usuário digite uma credencial ou criar um objeto do tipo System.Management.Automation.PSCredential para automatizar o processo.

Um dos exemplos é o Enter-PSSession que pode receber o parâmetro -Credential para determinar as credenciais utilizadas na conexão.

Utilizando o cmdlet Get-Credential

O cmdlet Get-Credential é utilizado quando queremos que haja interação do usuário para digitar as credenciais, ele não possui somente um parâmetro o -Credential que serve para predeterminarmos o nome do usuário que ira aparecer na textbox.

Get-Credential

Get-Credentia -Credential “matheus@howtoserver.local”

Nesses dois exemplos é necessário que o usuário insira uma senha.

Bem mas não basta utilizar o Get-Credential sozinho temos que utilizar ele junto com algum outro cmdlet um exemplo pode ser o Enter-PSSession.

Enter-PSSession Server01 -Credential (Get-Credential)

Nesse caso as credenciais inseridas serão utilizadas para estabelecer a conexão com o Server01, também podemos armazenar a saída.

Utilizando o Objeto Automation.PSCredential

Nós podemos utilizar o objeto System.Management.Automation.PSCredential para automatizarmos o processo de autenticação ou criação de credenciais, isso torna as coisas um pouco mais complexas e entramos em questões de segurança também pois a senha estará em texto plano no script.

*Começando com o básico, *antes de criarmos o objeto PSCredential precisamos ter as informações de logon que ele ira utilizar, criamos então uma variavel contendo o nome do usuário.

$Usuario = “howtoserver\matheus”

Agora precisamos de uma variável contendo a senha, porém essa variável precisa ser do tipo Securie String, para isso utilizamos o cmdlet ConvertTo-SecureString.

$Senha = ConvertTo-SecureString –String “P@sSwOrd” –AsPlainText -Force

Ok, agora temos nossas variáveis prontas para criação do objeto PSCredential, vamos utilizar o cmdlet New-Object para criar o objeto.

$Credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $Usuario, $Senha

Agora é só passarmos a variável $Credential para o parâmetro -Credential de qualquer cmdlet! Por exemplo no Enter-PSSession

Enter-PSSession Server01 -Credential $Credential

Referencias

Esse artigo foi escrito com base no conhecimento adquirido na pratica de automatização de processos porém você pode encontrar mais informações sobre os assuntos abordados aqui nos links abaixo ou em meu blog.

*Este artigo foi originalmente escrito por:
***Matheus Kamphorst | **blog: http://howtoserver.com