Script Powershell para automatizar totalmente a união do domínio

2

Estou tentando criar um script para automatizar completamente a associação ao domínio a ser usado durante uma implantação de imagem wds. Eu não quero usar a opção WAIK porque a senha é armazenada em texto simples no arquivo xml. Então eu encontrei alguns scripts de powershell online que parecem funcionar.

Este é o comando que usei para criar meu arquivo criptografado que contém a senha.

read-host -assecurestring | convertfrom-securestring | out-file C:\securestring.txt

Aqui está o script que estou usando.

$domain = "MYDOMAIN.COM"
$password = cat C:\securestring.txt | ConvertTo-SecureString -Force
$username = "$domain\MYUSERNAME"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential

Aqui está o erro que estou recebendo.

C:\>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\> $domain = "MYDOMAIN.COM"
PS C:\> $password = cat C:\securestring.txt | ConvertTo-Secure
String -Force
ConvertTo-SecureString : Cannot process argument because the value of argument
"input" is invalid. Change the value of the "input" argument and run the operat
ion again.
At line:1 char:66
+ $password = cat C:\securestring.txt | ConvertTo-SecureString <<<<  -Force
+ CategoryInfo          : InvalidArgument: (:) [ConvertTo-SecureString], P
SArgumentException
+ FullyQualifiedErrorId : ImportSecureString_InvalidArgument,Microsoft.Pow
erShell.Commands.ConvertToSecureStringCommand
por Brum 03.06.2013 / 18:49

2 respostas

1

As sequências seguras só funcionam para o usuário que as criou. Se você estiver criando C:\securestring.txt como um usuário e, em seguida, tentar lê-lo com um usuário diferente, ele não funcionará. Tente criar o arquivo com o mesmo usuário que vai lê-lo.

    
por 03.06.2013 / 20:57
1

Em vez de usar um arquivo de texto para armazenar sua senha, por que você não pede uma entrada do usuário? Nunca é aconselhável armazenar as senhas do administrador de domínio em arquivos de texto. Você pode muito bem, nem se preocupar com o arquivo Txt e apenas declarar a senha diretamente no script.

Example 1: Requesting user to input the password

$domain = "MYDOMAIN.COM" 
$password = Read-Host -Prompt "Enter password for $user" -AsSecureString
$username = "$domain\MYUSERNAME"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential




Example 2: Declare the password instead of point to a text file

$domain = "myDomain"
$password = "Pa$$w0rd123" | ConvertTo-SecureString -asPlainText -Force
$username = "$domain\myUserAccount" 
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential
    
por 06.08.2015 / 01:49

Tags