Das Ziel: Verwenden Sie PowerShell 2.0 auf einem Computer mit Windows Server 2008 R2, um:
- Den Computer umbenennen
- Beitritt des Computers zu einer Domäne
Zustand: Die Schritte 1 und 2 müssen zusammen durchgeführt werden, d. h. ohne einen Neustart des Computers dazwischen.
Funktionen, die ich benutze
Dies sind die PowerShell-Funktionen, die ich für jeden Schritt erstellt habe.
Computer umbenennen
Meinen Internetrecherchen zufolge hatte PowerShell 2.0 zu einem Zeitpunkt vor der Veröffentlichung ein integriertes Cmdlet namens Umbenennen-Computer aber es wurde aus unbekannten Gründen in CTP 3 entfernt. Meine Version verwendet WMI.
function Rename-Computer
{
param ( [Parameter(Mandatory=$true)][string]$name )
process
{
try
{
$computer = Get-WmiObject -Class Win32_ComputerSystem
$result = $computer.Rename($name)
switch($result.ReturnValue)
{
0 { Write-Host "Success" }
5
{
Write-Error "You need administrative rights to execute this cmdlet"
exit
}
default
{
Write-Host "Error - return value of " $result.ReturnValue
exit
}
}
}
catch
{
Write-Host "Exception occurred in Rename-Computer " $Error
}
}
}
Computer an Domäne anschließen
Wie Sie sehen können, ist diese Funktion eigentlich nur ein Wrapper für das integrierte Cmdlet Computer hinzufügen die den Domänennamen erfasst und einige zu verwendende Anmeldedaten erstellt.
function Join-ComputerToDomain
{
param ( [Parameter(Mandatory=$true)][string]$domain )
process
{
try
{
$_domainCredential = $Host.UI.PromptForCredential("Enter domain credentials", "Enter domain credentials to be used when joining computer to the domain", "", "NetBiosUserName")
Add-Computer -DomainName $_domain -cred $_domainCredential
}
catch
{
Write-Error "Exception occurred in Join-ComputerToDomain " $Error
}
}
}
Schritte, die ich ausprobiert habe
Versuch 1
- Rufen Sie an. Umbenennen-Computer
- Rufen Sie an. Join-ComputerToDomain
- Neustart
Ergebnis: Die Ausgabe von Rename-Computer zeigt an, dass der Name geändert wurde, aber nach dem Neustart ist der Name hat nicht ändern, aber Computer war verbunden mit der Domäne
Versuch 2
- Rufen Sie an. Join-ComputerToDomain
- Rufen Sie an. Umbenennen-Computer
- Neustart
Ergebnis: Der Rückgabewert von Rename-Computer ist 1326 (Anmeldefehler: unbekannter Benutzername oder falsches Kennwort). Ich nehme an, dass dies darauf zurückzuführen ist, dass für die Umbenennung Anmeldeinformationen für die Domäne erforderlich sind, sobald sie mit der Domäne verbunden ist. Ich habe versucht, die Anmeldeinformationen mit dem Get-WmiObject-Aufruf in Rename-Computer zu verwenden, aber es wurde eine Fehlermeldung ausgegeben, dass auf dem lokalen System keine anderen Anmeldeinformationen verwendet werden können.
Versuch 3
- Rufen Sie an. Umbenennungs-Computer
- Neustart
- Rufen Sie an. Join-ComputerToDomain
- Neustart
Ergebnis: Alles funktioniert wie erwartet, aber ein zusätzlicher Neustart ist erforderlich. Funktioniert, aber ich möchte den Neustart bei Schritt 2 vermeiden.