我有两个用于Windows 7镜像的PowerShell脚本。在图像之前,我运行PRE-IMAGE.ps1,它上面有一行:

$JoinDomainPassword = Read-Host -Prompt "Please enter the password for $joinDomainUser" -AsSecureString
$strPass = $joinDomainPassword | ConvertFrom-SecureString

然后,我将$strPass安全字符串保存到注册表中,并运行sysprep。

使用sysprep重新引导后,POST-IMAGE.ps1然后从注册表中提取$strPass,并显示如下一行:
$strPass = $strPass | ConvertTo-SecureString
$credentials = New-Object System.Management.Automation.PSCredential ($JoinDomainUser, $strPass)

但是,POST-IMAGE.ps1中的这些行会出现“密钥无效”错误,当您以不同的Windows用户身份运行convertto-securestringconvertfrom-securestring时,会看到此错误。 (similiar to this question)-但要注意的是I -AM-使用同一用户在安全字符串之间进行转换。我猜想这与sysprep有关-但是我无法解决这个问题。

很抱歉,以前是否有人问过这个问题,我发现了一些与此问题有关的问题,但是没有描述我的确切问题。

最佳答案

如果未为ConvertFrom-SecureString命令指定密钥,它将使用DPAPI加密字符串。 Sysprep显然会重新初始化DPAPI使用的密钥。从http://www.mombu.com/microsoft/security-crypto/t-local-machine-masterkey-in-dpapi-1053937-print.html

关于powershell - Sysprep之后无法解密安全字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27808392/

10-13 05:12