Powershell 脚本可完全自动化加入域

Powershell 脚本可完全自动化加入域

我正在尝试创建一个脚本,以完全自动化加入域,以便在 wds 映像部署期间使用。我不想使用 WAIK 选项,因为密码以纯文本形式存储在 xml 文件中。所以我在网上找到了一些看起来可以工作的 powershell 脚本。

这是我用来创建包含密码的加密文件的命令。


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

这是我正在使用的脚本。


$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

这是我遇到的错误。


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

答案1

安全字符串仅对创建它们的用户有效。如果您以一个用户的身份创建C:\securestring.txt,然后尝试以其他用户的身份读取它,则不会起作用。尝试以将要读取它的同一用户的身份创建文件。

答案2

为什么不要求用户输入密码,而是使用文本文件来存储密码呢?将域管理员密码存储在文本文件中是不可取的。您甚至可能根本不用 Txt 文件,而直接在脚本中声明密码。

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

相关内容