Unbeaufsichtigtes Windows 10 PowerShell-Skript wird nicht ausgeführt

1188
legopc

Ich versuche derzeit, die derzeitige WDS-Installation von Windows 10 zu verbessern, die wir grundsätzlich für alle Schulen verwenden, für die sys admin arbeitet.

Die Installation muss hier und dort einige Apps und grundlegende Änderungen enthalten. Ich brauche es auch, um einer Domäne beizutreten und den Computer umzubenennen, unabhängig vom Domänennamen und ohne Eingabe von Anmeldeinformationen. Ich verwende dazu PowerShell-Skripts. Ich verwendete dazu ein Skript. Er verwendete den PowerShell-Befehl add-computer und benannte den Computer mit -NewName um, und es wurde neu gestartet. Dies funktioniert gut, es ist nur so, dass es gelegentlich Fehler macht. Die Lösung dafür ist, das Umbenennen und das Verbinden voneinander zu trennen.

Jetzt ist das Problem, das ich habe, dass es entweder der Domäne gut beitreten wird (oder den Namen je nach Reihenfolge ändert), aber das Umbenennungsskript nach dem Neustart nicht ausführt.

Es werden keine Fehler geworfen und im Logbuch ist nichts zu sehen, es läuft einfach nicht das Skript ...

Ich arbeite seit einiger Zeit daran und jetzt weiß ich ehrlich nicht, wo ich suchen muss oder was ich versuchen sollte ...

Ich verwende 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> 

Skripte laufen

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
Die erste Zeile dieses XML-Fragments hat ein unübertroffenes Zitat. Könnte das das Problem verursachen? Versuchen Sie auch "Bypass" anstelle von "unbeschränkt" für die Ausführungsrichtlinie. Ben N vor 7 Jahren 0
Das unvergleichliche Zitat ging in der Nudelkopie verloren. Ich habe es in Bypass geändert und es hat sich nichts geändert. Ich denke, ich werde den letzten Befehl entfernen und mit Powershell entweder die Umbenennung oder den Domänenbeitritt als Runonce-Registrierungsschlüssel hinzufügen. legopc vor 7 Jahren 0

0 Antworten auf die Frage