Benennen Sie den Computer um und treten Sie der Domäne in einem Schritt mit PowerShell bei

Ziel: Auf einem computer unter Windows Server 2008 R2 mit PowerShell 2.0:

  1. Benennen Sie den computer
  2. Join the computer to a domain

Zustand: die Schritte 1 und 2 ausgeführt werden müssen, zusammen, d.h., ohne einen Neustart zwischen Ihnen

Funktionen ich bin Mit

Diese sind die PowerShell-Funktionen, die ich erstellt habe, für jeden Schritt.

Umbenennen Der Computer

Laut meiner Internet-recherche, die PowerShell 2.0 auf einem Punkt vor release hatte ein built-in-cmdlet aufgerufen Rename-Computer, aber es entfernt wurde aus unbekannten Gründen in der CTP 3. 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
        }
    }
}

Beitreten, Computer, Domänen

Wie Sie sehen können, diese Funktion ist eigentlich nur ein wrapper für die integrierten Cmdlets Add-Computer, welcher den domain-Namen und schafft einige Anmeldeinformationen zu verwenden.

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 habe Versucht,

Versuch 1

  1. Nennen Rename-Computer
  2. Nennen Join-ComputerToDomain
  3. Neu starten

Ergebnis: Ausgabe von Rename-Computer zeigt an, dass der name geändert wurde, aber nach dem Neustart, name nicht ändern, aber die computer war trat zur domain

Versuch 2

  1. Nennen Join-ComputerToDomain
  2. Nennen Rename-Computer
  3. Neu starten

Ergebnis: Rückgabewert von Rename-Computer ist 1326 (Anmeldung fehlgeschlagen: unbekannter Benutzername oder Falsches Kennwort). Ich nehme an, dies ist, weil die domain-Anmeldeinformationen erforderlich sind, für die Sie umbenennen, sobald es mit der Domäne verbunden. Ich habe versucht, verwenden Sie die Anmeldeinformationen ein, mit der "Get-WmiObject" call-in " Rename-Computer, aber es warf eine Fehlermeldung über nicht in der Lage, andere Anmeldeinformationen verwenden, auf dem lokalen system.

Versuch 3

  1. Nennen Rename-Computer
  2. Neu starten
  3. Nennen Join-ComputerToDomain
  4. Neu starten

Ergebnis: Alles funktioniert wie erwartet, sondern extra-Neustart erforderlich. Funktioniert, aber ich will zu beseitigen, die wieder bei Schritt 2.

Kommentar zu dem Problem
Ich glaube nicht, dass Sie dies tun können. Diese sind sowohl technisch umbenennen von Operationen, und da weder kann man eigentlich komplett ohne einen Neustart, die Letzte operation Vorrang. Leider glaube ich nicht, dass es einen Weg gibt, um diese Arbeit zu machen mit nur einem Neustart. Sie könnte verwenden Sie den Registrierungsschlüssel RunOnce (msdn.microsoft.com/en-us/library/aa376977%28v=vs.85%29.aspx), um den Domänenbeitritt automatisch beim Neustart, aber du bist immer noch gehen zu müssen, um neu zu starten für beide Operationen. Kommentarautor: JoeG
Ich glaube, du hast Recht, Joe. Das ist im Grunde die gleiche Antwort, die ich bekam, als ich diese Frage stellte auf der Microsoft TechNet-Website. Wenn Sie möchten, um Fleisch, das ein wenig und lassen es als eine Antwort auf diese Frage kann ich daneben, als die Antwort. Kommentarautor: brett rogers
In meinen Gedanken war es möglich, tun Sie es Händisch ... Auf XP umbenennen des Computers, stecken Sie es in eine Domäne und dem Neustart einmal. Bin ich falsch ? Kommentarautor: JPBlanc
JPBlanc - ich bin mir nicht sicher. Ich habe nicht versucht, es vor kurzem auf XP - ich arbeite mit Server 2008 in dem moment, und es scheint, dass 2-Neustart ist die einzige Möglichkeit. Kommentarautor: brett rogers
Durchführen einer Maschine benennen und domain-join über die GUI auf Server 2008 und Server 2012 RC ist möglich mit nur einem einzigen neu starten, da der Letzte Schritt. Die PowerShell-äquivalent erscheint zwei Neustarts erfordern obwohl. Kommentarautor: Jason Stangroome

InformationsquelleAutor der Frage brett rogers | 2011-06-02

Schreibe einen Kommentar