簡體   English   中英

如何使用Powershell從主機設置虛擬機名稱?

[英]How to set vm computer's name from host machine using powershell?

我找到了一篇有關重命名來賓操作系統以與Hyper-V上的虛擬機名稱相匹配以重命名計算機名稱以與虛擬機名稱相匹配的文章。 問題是該腳本必須附加在虛擬機上,如果要更改它,將非常困難。

是否可以從主機重命名虛擬機的名稱?

試試看,您可以在主機上運行它。 目前,它僅顯示一條有關舊虛擬機名稱和新虛擬機名稱的消息。 我在代碼中留下了兩個選項(注釋掉了)來重命名機器。 請記住,這些計算機應該是可解析的,並且最好是您域的一部分(您可能需要從vm名稱中刪除域擴展名)。

Get-WmiObject -Namespace root\virtualization\v2 -Class Msvm_ComputerSystem | Where-Object {$_.ElementName -ne $env:COMPUTERNAME} | ForEach-Object { 

    $newName = $_.ElementName

    $_.GetRelated('Msvm_KvpExchangeComponent').GuestIntrinsicExchangeItems | ForEach-Object {  

        if($_ -as [xml])
        {    
            $GuestExchangeItemXml = ([XML]$_).SelectSingleNode("/INSTANCE/PROPERTY[@NAME='Name']/VALUE[child::text()='FullyQualifiedDomainName']") 

            if ($GuestExchangeItemXml -ne $null) 
            {
                $vmName = $GuestExchangeItemXml.SelectSingleNode("/INSTANCE/PROPERTY[@NAME='Data']/VALUE/child::text()").Value -replace '\W','_'
                $vmName = $vmName.Substring(0,[System.Math]::Min(15,$vmName.Length))

                #(Get-WmiObject Win32_Computersystem -ComputerName $vmName).Rename($newName); shutdown -r -t 0 
                #Rename-Computer -ComputerName $vmName -NewName $newName -Restart -Force -WhatIf 

                Write-Host "Renaming $vmName to $newName"           
            }  
        } 
    }
}

使用Rename-Computer cmdlet:

Rename-Computer -ComputerName OldServerName -NewName NewServerName -Restart -Force

Rename-Computer不使用Powershell遠程處理,因此即使不啟用遠程命令也可以運行。 請參閱文檔

如果能夠通過網絡連接到遠程主機,則可以在來賓中更改主機名。

$oldname = 'foo'
$newname = 'bar'

(Get-WMIObject Win32_ComputerSystem -Computer $oldname).Rename($newname)

Restart-Computer $oldname

這是通過Power Shell執行它的簡單命令

(gwmi win32_computersystem).Rename(“ NewName”); 關機-r -t 0

這是一個簡短的

調用命令-VMName“此處的虛擬機名稱” -ScriptBlock {重命名計算機-NewName“此處的新名稱”}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM