Я работаю в корпоративной среде, где я управляю лабораторией из 75 компьютеров. Я использую Ghost для создания образа, а затем обхожу компьютеры, чтобы изменить имена ПК и SID.
Я реализую скрипт для автоматического добавления компьютеров в домен, но я новичок в PowerShell и буду очень признателен за помощь. Вот скрипт, который я использую, 1.ps1:
Param (
[String]$User = $(Throw "MYDOMAINUSERINFO"),
[String]$Domain = "MYDOMAININFO",
[String]$PathToCred = "C:\OMC\AutoPost"
)
#Make sure our path string has a trailing backslash
If ($PathToCred[$PathToCred.Length - 1] -ne "\")
{ $PathToCred += "\"
}
#Now create file string
$File = $PathToCred + "JoinDomain-$User.crd"
#And find out if it's there, if not create it
If (-not (Test-Path $File))
{ (Get-Credential).Password | ConvertFrom-SecureString | Set-Content $File
}
#Load the credential file
$Password = Get-Content $File | ConvertTo-SecureString
$Credential = New-Object System.Management.Automation.PsCredential($User,$Password)
#Add the computer to the domain
Add-Computer -DomainName $Domain -Credential $Credential
Я запускаю этот скрипт, используя командный файл, который я помещаю в папку автозагрузки.
Powershell.exe -ExecutionPolicy Bypass C:\OMC\AutoPost\1.ps1 -User MYDOMAINUSERINFO -Domain MYDOMAININFO -PathToCred C:\OMC\AutoPost\
Запуск этого сценария работает нормально, он создает файл учетных данных, читает файл учетных данных и присоединяется к домену. Запуск этого скрипта после призраков и прогулок не работает, я получаю сообщение об ошибке:
Key not valid for use in specified state.
Я думаю, это потому, что компьютер знает, что что-то изменилось. Я использую ту же учетную запись пользователя для добавления в домен, с которой изначально создавал учетные данные, поэтому я считаю, что компьютер отклоняет эти учетные данные, поскольку SID изменился.
В Интернете я прочитал, что могу использовать [-key Byte []] для установки стандартного ключа шифрования, что позволит мне обойти эту ошибку. Я слишком новичок в PowerShell, чтобы знать, как это использовать, кто-нибудь может мне помочь?
More info:
https://technet.microsoft.com/en-us/library/hh849814.aspx
http://ss64.com/ps/convertfrom-securestring.html
Вопрос переполнения стека - https://stackoverflow.com/questions/32258829/powershell-secure-string-encryption-key-usage-join-domain-script