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