2017-01-27 35 views
0

新しいVMコマンドを使用してVMware VMを作成し、VM名に従って(Windowsレベルで)VM名を変更します。Invoke-VMScriptコマンドを使用してWindows OSレベルでコンピュータの名前を変更できません。

よう

何か: VM名= 100-SVR01-ジャック のWindowsホスト名=ジャック-100

問題:私は、Invoke-VMScriptコマンドを使用してレベルジャック-100ウィンドウで、コンピュータの名前を変更することはできませんよInvokeコマンドにnewcomputernameを渡すことができないようです。誰かが私にこれを助けることができますか?

$ErrorActionPreference = "Stop" 
Add-PSSnapin VMware.VimAutomation.Core 
Connect-VIserver $vCenterName -user $vCenterUserName -password "Password01" -ErrorAction 'Stop' 

$CID = '100' 
$CName = "Jack" 
$ComputerName1 = $CID + "-SVR01-" + $CName 
$NewComputerName1 = "SVR01-" + $CID 
$sourcetemplate = "BaseWin2012R2" 
$description = "Jack System" 
$OSCustomizationspec = "SVR01" 
$InfraResourcePool = "Infra-ResourcePool" 


Function Create-VM (ComputerName1 , $InfraResourcePool,$description,$sourcetemplate,$OSCustomizationspec){ 


New-VM -Name $ComputerName1 -ResourcePool $InfraResourcePool -Datastore "datastore1" -Description $description -Template $sourcetemplate -OSCustomizationspec $OSCustomizationspec -DiskStorageFormat Thin 

Start-VM -VM $ComputerName1 

} 

Function Set-Computername($ComputerName , $NewComputerName , $HostCredential , $GuestCredential) { 

$RenameComputer = '$hostname = hostname 
       Rename-Computer -computername $hostname -newname  $NewComputerName 
       RESTART-COMPUTER -force 
       ' 
Invoke-VMScript -VM $computername -HostCredential $HostCredential -GuestCredential $GuestCredential -ScriptText $RenameComputer 


} 

$HostCred = $Host.UI.PromptForCredential("Please enter credentials", "Enter Guest credentials for $computername", "root", "") 
$GuestCred = $Host.UI.PromptForCredential("Please enter credentials", "Enter Guest credentials for $computername", "administrator", "") 

Create-VM $Computername1 $InfraResourcePool $description $sourcetemplate $OSCustomizationspec; 

Set-Computername $Computername1 $NewComputerName1 $HostCred $GuestCred 

答えて

関連する問題