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



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

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

安全性是一个问题,所以我希望提示凭证或在脚本中以某种方式加密它们。

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

Add-Computer -DomainName Acme -Credential (Get-Credential domainusername)

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

如果计算机被添加到没有帐户的域。

您可以使用该命令的参数来指定组织单位(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 'AcmeJoe',$ss
42> Add-Computer -DomainName Acme -Credential $cred

注意Key可以是任意16、24或32字节的数组

我记得在我管理Windows域时曾经这样做过,但现在我只管理Unix网络,我有点生疏了,但您应该只需要以下内容。

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

至于密码,我不知道有什么方法可以在脚本中加密密码。但是指定一个通配符作为密码会指示命令提示输入密码。

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

最新更新