我正在使用AWS中的黄金映像克隆实例,并且尝试使用IP地址重命名该实例。问题是我可以克隆,变量$ ipaddress包含相应的IP地址,但是我无法获取主机名。
foreach ($key in $SystemTypes.Keys) {
[String]$value = $SystemTypes[$key]
#$value = $($SystemTypes[$key])
$ipaddarray = $value.split('.')
$ipaddress = $ipaddarray[0]+'.'+$ipaddarray[1]+'.'+$ipaddarray[2]+'.'+$ipaddarray[3]
Write-Host "the type is $key"
Write-Host "the ip is $ipaddress"
Write-Host $value
$object = Get-WmiObject -Class win32_operatingsystem -ComputerName $ipaddress -Credential $MylocalCreds
$hostname = $object.__server
答案 0 :(得分:2)
你为什么要这么做...
$ipaddarray = $value.split('.')
$ipaddress = $ipaddarray[0]+'.'+$ipaddarray[1]+'.'+$ipaddarray[2]+'.'+$ipaddarray[3]
..与仅使用内置的NIC /网络cmdlet来获取IPA作为简单字符串一样。
(Get-NetIPAddress).IPv4Address
获取系统主机名是每个Windows主机上的默认系统变量。只需使用:
env:COMPUTERNAME
或
$hostname
您应该能够按照以下文章中的说明进行操作。
Rename-Computer -NewName 'SomeHostname' -Restart
Dynamically rename an AWS Windows host deployed via a syspreped AMI
部署Windows Server 2016 AMI
连接到Windows实例并根据需要对其进行自定义
创建一个启动PowerShell脚本以设置将在无人参与的安装开始之前在启动时调用的主机名
运行InitializeInstance.ps1 -Schedule以注册计划的任务,该任务将在下次启动时初始化实例
修改sysprepInstance.ps1以在sysprep完成之后和关闭之前替换cmdline注册表项
运行SysprepInstance.ps1来对计算机进行sysprep。
#Set my hostname based on my internal IP address
$instanceName = (((Invoke-WebRequest -UseBasicParsing -Uri http://169.254.169.254/latest/meta-data/hostname).Content).split(".")[0]).replace("ip-172-31","TCG")
#Change the hostname in the unattend.xml file
$filePath = "C:\Windows\Panther\Unattend.xml"
$AnswerFile = [xml](Get-Content -Path $filePath)
$ns = New-Object System.Xml.XmlNamespaceManager($answerFile.NameTable)
$ns.AddNamespace("ns", $AnswerFile.DocumentElement.NamespaceURI)
$ComputerName = $AnswerFile.SelectSingleNode('/ns:unattend/ns:settings[@pass="specialize"]/ns:component[@name="Microsoft-Windows-Shell-Setup"]/ns:ComputerName', $ns)
$ComputerName.InnerText = $InstanceName
$AnswerFile.Save($filePath)
#Start the OOBE
Start-Process C:\windows\system32\oobe\windeploy.exe -Wait
How to rename an AWS EC2 instance during provisioning using PowerShell
重命名计算机-NewName'SomeHostname'-重新启动
How to change & verify hostname in windows server 2012 (AWS EC2)
方法1.打开cmd并键入: SCONFIG,您将获得选择菜单,其中#2表示计算机名称:
方法2.从cmd输入:
netdom renamecomputer %computername% /newname:<NewName> /reboot:0
方法3.从PowerShell控制台:
netdom renamecomputer $env:computername /newname:<NewName> /reboot:0
要验证姓名格式,请输入:
nbtstat -A xxx.xxx.xxx.xxx (where x is the ip address)
另一种验证cmd名称形式的方法是,不带任何参数键入“ hostname”:
hostname