Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 重命名/取消计算机与域的连接,该域不是';域上的t_Powershell_Workflow - Fatal编程技术网

Powershell 重命名/取消计算机与域的连接,该域不是';域上的t

Powershell 重命名/取消计算机与域的连接,该域不是';域上的t,powershell,workflow,Powershell,Workflow,正在处理将在VM克隆上运行的脚本。克隆出后,IP设置从静态切换到DHCP,并且名称/域与源保持相同。我的脚本的一部分要求VM在域上运行,但是,我不能只在NIC上设置一个开放的IP,因为它会用新的IP更新DNS,禁用AD中的计算机对象并破坏信任关系 通常,通过windows,我加入了一个工作组[从域中删除],操作系统很高兴,只想重新启动。然后,我可以在NIC上设置IP,更改名称,并将其设置为在再次重新启动之前加入域。然后我有两个相同的机器,不同的名称和IP地址没有任何冲突 不过,我在使用Power

正在处理将在VM克隆上运行的脚本。克隆出后,IP设置从静态切换到DHCP,并且名称/域与源保持相同。我的脚本的一部分要求VM在域上运行,但是,我不能只在NIC上设置一个开放的IP,因为它会用新的IP更新DNS,禁用AD中的计算机对象并破坏信任关系

通常,通过windows,我加入了一个工作组[从域中删除],操作系统很高兴,只想重新启动。然后,我可以在NIC上设置IP,更改名称,并将其设置为在再次重新启动之前加入域。然后我有两个相同的机器,不同的名称和IP地址没有任何冲突

不过,我在使用PowerShell实现这一目标方面陷入了僵局。除非我在域中,否则无法重命名或加入工作组。我原以为工作流就是答案,但读了一点之后,我就不再那么确定了


因此,这更像是一个工作流程,而不是实际的代码,任何反馈都是值得赞赏的。

wmi命令行可以工作,并为我提供了一个起点

@echo off
start /B /W wmic.exe /interactive:off ComputerSystem Where "Name='%computername%'" Call UnJoinDomainOrWorkgroup FUnjoinOptions=0
start /B /W wmic.exe /interactive:off ComputerSystem Where "Name='%computername%'" Call JoinDomainOrWorkgroup name="WORKGROUP"
start /B /W wmic.exe /interactive:off ComputerSystem Where "Name='%computername%'" Call Rename name="standaloneComputer"
shutdown.exe /r /t 0 /f

在处理克隆的Windows VM时,我使用以下过程:

  • 使用断开连接的网络接口启动克隆
  • 连接到其余的网络适配器

  • 并将其从域中删除
  • 重新启动
  • 重新连接接口
  • 将重命名的计算机重新加入域

  • 注意:确保克隆具有本地管理员帐户,您可以在无法访问域时使用该帐户登录。

    谢谢。问题是,我克隆到与源相同的域中,然后它将具有源的IP/名称。NIC将被启用,但vSphere会自动将其设置为DHCP,这很好。如果我将其分配给一个新的IP,它基本上将使源服务器脱离域。因此,我必须取消连接域,但我不能这样做,除非我连接到域[不像你可以使用windows GUI时那样]。调用WMIC允许我取消连接域并重命名计算机,而无需访问域/计算机对象。
    $wmi = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled='true'"
    $wmi.EnableStatic('192.168.23.42', '255.255.255.0')
    $wmi.SetGateways('192.168.23.1', 1)
    $wmi.SetDNSServerSearchOrder(('192.168.23.13', '192.168.23.14'))