Спасибо всем за ваши комментарии и вопросы. Я понял. Просто чтобы ответить на вопросы и опубликовать правильный код для других, здесь идет. Я бью Windows 8,1 x64 и Windows 10 x64. Powershell 4 и 5. Если имя компьютера отсутствует в списке, сценарий завершается ошибкой (что хорошо) и ничего не делает. Кроме того, мы используем эту учетную запись как локальную учетную запись администратора, поэтому до сих пор тесты оказались успешными.
Обновлены следующие сценарии:
CMD, который мы используем: Если не существует C : \ Temp MD C: \ Temp Copy / Y "% ~ dp0RenameComputerBasedOnIPList.csv" C: \ temp \ RenameComputerBasedOnIPList.csv powershell -ExecutionPolicy ByPass -File "% ~ dp0RenameComputerBasedOnIP6ist 100" 1001ps 1005ps Работающий скрипт PowerShell: Set-ExecutionPolicy -ExecutionPolicy Неограниченный $ currentIpAddress = Test-Connection $ env: COMPUTERNAME -count 1 | выберите адрес, Ipv4Address $ csv = Import-Csv C: \ Temp \ RenameComputerBasedOnIPList.csv $ newComputerName = $ csv | где {$ _. IPADDRESS -eq $ currentIpAddress.IPV4Address} | % NEWCOMPNAME Write-Host $ currentIpAddress Write-Host $ csv Write-Host $ newComputerName Rename-Computer -NewName $ newComputerName -Force -Restart
Форматированный список похож на этот файл с именем RenameComputerBasedOnIPList.csv. IPADDRESS, NEWCOMPNAME 10.96.21.121, BADCOMPNAME 10.96.21.158, WIN10NAMECHANGE 192.168.0.2, BADCOMPNAME1 10.96.21.52, WIN81NAMECHANGE
Еще раз спасибо.