Зачем ты это делаешь ...
$ipaddarray = $value.split('.')
$ipaddress = $ipaddarray[0]+'.'+$ipaddarray[1]+'.'+$ipaddarray[2]+'.'+$ipaddarray[3]
.. против использования встроенных команд NIC / сети для получения IPA в виде простой строки.
(Get-NetIPAddress).IPv4Address
Получение имени системного хоста является системной переменной по умолчанию на каждом хосте Windows. Просто используйте:
env:COMPUTERNAME
или
$hostname
Вы должны уметь делать только то, что описано в статьях ниже.
Rename-Computer -NewName 'SomeHostname' -Restart
Динамическое переименование хоста AWS Windows, развернутого через AMI syspreped
Развертывание Windows Server 2016 AMI
Подключиться к экземпляру Windows и настроить его по необходимости
Создайте сценарий запуска PowerShell для установки имени хоста, которое будет вызываться при загрузке до начала автоматической установки
Запустите InitializeInstance.ps1 -Schedule для регистрации запланированного задания, которое инициализирует экземпляр при следующей загрузке
Измените файл SysprepInstance.ps1, чтобы заменить раздел реестра cmdline после завершения sysprep и до завершения работы
Запустите 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
Как переименовать экземпляр AWS EC2 во время подготовки с использованием PowerShell
Rename-Computer -NewName 'SomeHostname' -Restart
Как изменить и проверить имя хоста в 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
Чтобы проверить форму имени, введите cmd:
nbtstat -A xxx.xxx.xxx.xxx (where x is the ip address)
Еще один способ проверить форму имени cmd, просто набрать «hostname» без параметров:
hostname