gpt4 book ai didi

powershell - 使用PowerShell在第一步中重命名计算机并加入域

转载 作者:行者123 更新时间:2023-12-03 08:22:09 26 4
gpt4 key购买 nike

目标:在运行Windows Server 2008 R2的计算机上,使用PowerShell 2.0可以:

  • 重命名计算机
  • 将计算机加入域

  • 条件:步骤1和2必须同时执行,即,步骤1和2之间无需重新启动计算机

    我正在使用的功能

    这些是我为每个步骤创建的PowerShell函数。

    重命名计算机

    根据我对Internet的研究,PowerShell 2.0在发行前的某个时刻具有一个内置的cmdlet,名为 Rename-Computer ,但由于CTP 3中未知的原因而将其删除。我的版本使用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
    }
    }
    }

    将计算机加入域

    如您所见,此功能实际上只是内置cmdlet Add-Computer 的包装程序,该程序收集域名并创建要使用的凭据。
    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
    }
    }
    }

    我尝试过的步骤

    尝试1
  • 调用重命名计算机
  • 调用 Join-ComputerToDomain
  • 重新启动

  • 结果:从重命名计算机的输出表明名称已更改,但是重新启动后,名称 并未更改,但计算机 已加入到域中

    尝试2
  • 调用 Join-ComputerToDomain
  • 调用重命名计算机
  • 重新启动

  • 结果:重命名计算机的返回值为1326(登录失败:未知的用户名或错误的密码)。我认为这是因为一旦重命名加入域,就需要域凭据。我试图在Rename-Computer中的Get-WmiObject调用中使用凭据,但是这引发了关于无法在本地系统上使用其他凭据的错误。

    尝试3
  • 调用重命名计算机
  • 重新启动
  • 调用 Join-ComputerToDomain
  • 重新启动

  • 结果:一切正常,但需要重新启动。可以,但是我想消除步骤2的重启。

    最佳答案

    您可以只使用Add-Computer,“-NewName”有一个参数

    示例:Add-Computer -DomainName MYLAB.Local -ComputerName TARGETCOMPUTER -newname NewTARGETCOMPUTER
    您可能还需要检查参数“-OPTIONS”

    http://technet.microsoft.com/en-us/library/hh849798.aspx

    关于powershell - 使用PowerShell在第一步中重命名计算机并加入域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217799/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com