如何使用密码提示或加密密码自动加入域?

时间:2015-10-24 15:11:26

标签: xml powershell batch-file encryption

我知道这是可能的,但我不知道语法。

我想创建一个自动加入域的脚本,即创建机器帐户并加入域。

安全性是一个问题,因此我希望提示您输入凭据,或者在脚本中以某种方式加密它们。

非常感谢所有帮助。

2 个答案:

答案 0 :(得分:4)

在PowerShell中,您还可以使用Add-Computer命令,例如:

Add-Computer -DomainName Acme -Credential (Get-Credential domain\username)

这将提示您输入指定用户的密码。此命令可用于将本地计算机添加到域或工作组。正如文档所述:

  

如果将计算机添加到域帐户,它还会创建域帐户   没有帐户的域名。

     

您可以使用此cmdlet的参数指定组织单位   (OU)和域控制器或执行不安全的连接。

如果您想以加密形式保存密码,那么在安全性成为真正关注的问题时,这会变得更加棘手。

加密的一种方法&保存密码是使用Read-Host -AsSecureString并将其导出为二进制文件,例如:

# Prepare the encrypted password:
30> $ss = Read-Host -AsSecureString
***********
33> $key = [byte[]](0..15)
34> $encpasswd = ConvertFrom-SecureString -Key $key -SecureString $ss
35> $encpasswd
76492d1116743f0423413b16050a5345MgB8AEMAbQBSAEIAMwA4AG4AMABKAHEAMAAvACsAUgAzACsAWQBNADgAZwBiAHcAPQA9AHwAOABkAGYAMAA4AGY
AMQA5ADQAYQA5ADAAMQAzADAANwBlADUANwBiADcANwBmADEAOABkAGMAZgA2AGYANgBiAGUAZQBlAGIANgA1AGUAZABmADIAOABhADkAZQA4AGUAMgBkAG
YAOAAwAGMAOQAwAGEAZAAzAGQAYQBjAGMAZQA=

36> $encpasswd > encp.txt

现在你在文件中有一个加密的密码,但是这就是摩擦,你将共享密钥从密码本身推送到密钥。所以密钥应该像密码一样受到保护,但不幸的是你必须有密钥才能解密,例如:

39> $encpasswd = Get-Content encp.txt
40> $ss = ConvertTo-SecureString -String $encpasswd -Key $key
41> $cred = new-object System.Management.Automation.PSCredential 'Acme\Joe',$ss
42> Add-Computer -DomainName Acme -Credential $cred

请注意,Key可以是任何16,24或32字节数组。

答案 1 :(得分:2)

我记得在管理Windows域时我曾经这样做了一段时间,但是我现在管理的只是Unix网络,但是你应该只需要以下内容。

netdom join {Workstation Name} /domain:{Windows Domain} /userd:{Domain Admin} /password:*

就密码而言,我不知道在脚本中加密密码的方法。但是将通配符指定为密码会指示命令提示输入密码。

以下是NetDom的文档:https://technet.microsoft.com/en-us/library/cc788049.aspx