В настоящее время я пытаюсь улучшить текущую установку WDS Windows 10, которую мы используем практически во всех школах, в которых работает системный администратор.

Установка должна содержать некоторые приложения и некоторые базовые изменения здесь и там. Мне также нужно, чтобы присоединиться к домену и переименовать компьютер, независимо от имени домена и без ввода учетных данных. Я использую сценарии PowerShell для этого. Я использовал для этого один сценарий: он будет использовать команду PowerShell add-computer, переименовать компьютер с помощью -NewName и перезагрузить его. Это прекрасно работает, просто время от времени ему нравится выдавать ошибки, поэтому решение для этого - разделить переименование и объединение.

Теперь у меня проблема в том, что он либо просто присоединится к домену (или изменит имя в зависимости от порядка), но не запустит скрипт переименования после перезагрузки.

Он не выдает ошибки и ничего не видно в бортовом журнале, он просто не запускает скрипт ...

Я работал над этим в течение некоторого времени, и теперь я честно не знаю, где искать или что попробовать ...

Я использую Windows 10 Enterprise LTSB x64

<SynchronousCommand wcm:action="
<CommandLine>Powershell.exe -ExecutionPolicy unrestricted -File c:\System\RenameComputer.ps1 </CommandLine>
<Description>Change computername</Description>
<Order>10</Order>
<RequiresUserInput>true</RequiresUserInput>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>Powershell.exe -ExecutionPolicy unrestricted -File c:\System\JoinDomain.ps1 </CommandLine>
<Description>Join computer into domain</Description>
<Order>9</Order>
<RequiresUserInput>true</RequiresUserInput>
</SynchronousCommand>
</FirstLogonCommands>

Скрипты я бегу

Get-WmiObject Win32_NetworkAdapterConfiguration | ForEach-Object { IF($_.IPEnabled -eq "True" -and $_.DNSDomain.Length  -gt  1)  { 
 $Domain = $_.DNSDomain } }
$DomainPass = ConvertTo-SecureString “nope” -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ("$Domain\nope" , $DomainPass) 
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null
$name = [Microsoft.VisualBasic.Interaction]::InputBox("Enter Desired Computer Name ")
$name = $name.ToUpper()
Write-Output $name $Domain $Cred
Rename-Computer -NewName $name -DomainCredential $Cred
Read-Host  "press enter to continue"
Restart-Computer -Force


Get-WmiObject Win32_NetworkAdapterConfiguration | ForEach-Object { IF($_.IPEnabled -eq "True" -and $_.DNSDomain.Length  -gt  1)  { 
$Domain = $_.DNSDomain } }
$DomainPass = ConvertTo-SecureString “nope” -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential ("$Domain\nope" , $DomainPass) 
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') |  Out-Null
Add-Computer -DomainName $Domain -Credential $Cred 
Read-Host  "press enter to continue"
Restart-Computer -Force

0