【问题标题】:PowerShell script that Changes a computer name based on the current IP address and lookup from a CSV file根据当前 IP 地址更改计算机名称并从 CSV 文件查找的 PowerShell 脚本
【发布时间】:2020-05-17 11:19:53
【问题描述】:

我们正在为需要重命名的特定 PC(大约 10,000 台)进行大量工作。他们处于工作组模式(未加入域)。显然,如果我们可以编写脚本并远程执行,我们应该这样做。我一直在努力更好地理解 PowerShell,并认为如果我能正确编写代码,它实际上可以很容易地完成。我需要一个非常简单的脚本:

  • 获取机器的当前IP地址。
  • 将该 IP 地址与 CSV 格式的列表进行比较。
  • 从列表中,使用基于 IP 地址的新计算机名称并重命名计算机。

CSV 会非常简单:

IPADDRESS,NEWCOMPNAME
192.168.0.1,NewPC1
192.168.0.2,NEWPC2
192.168.0.3,NEWPC3

这是我到目前为止的脚本,但无法正常工作:

$currentIpAddress = Test-Connection $env:COMPUTERNAME -count 1 | select Address, Ipv4Address
$csv = Import-Csv C:\test.csv
$newComputerName = $csv | where {$_.IPADDRESS -eq $currentIpAddress} | % NEWCOMPNAME
Rename-Computer -newname $newComputerName -Force -Restart 

【问题讨论】:

  • 我认为您需要检查计算机是否已经具有正确的名称(因为它之前已重命名),并且您应该跟踪所有正常的计算机,这样您就知道您已完成重命名... ????
  • 究竟是什么不工作?你得到什么错误?您如何在远程计算机上运行它以及使用什么凭据?
  • @Sceptalist 提出了所有正确的问题;另外,我想问一下您运行的是什么版本的 PowerShell 和 Windows,请注意Microsoft documentation for Rename-Computer

标签: powershell computer-name


【解决方案1】:

感谢大家的 cmets 和问题。我想到了。只是为了回答问题并为其他人发布正确的代码,在这里。我正在使用 Windows 8.1 x64 和 Windows 10 x64。 Powershell 4 和 5。如果计算机名称不在列表中,则脚本将失败(这很好)并且什么也不做。此外,我们以本地管理员帐户运行它,因此到目前为止测试已证明是成功的。

更新的脚本是:

我们正在使用的 CMD: 如果不存在 C:\Temp MD C:\Temp 复制 /Y "%~dp0RenameComputerBasedOnIPList.csv" C:\temp\RenameComputerBasedOnIPList.csv powershell -ExecutionPolicy ByPass -File "%~dp0RenameComputerBasedOnIPList.ps1"

正在运行的 PowerShell 脚本: Set-ExecutionPolicy -ExecutionPolicy Unrestricted $currentIpAddress = 测试连接 $env:COMPUTERNAME -count 1 |选择地址,Ipv4Address $csv = Import-Csv C:\Temp\RenameComputerBasedOnIPList.csv $newComputerName = $csv |其中 {$_.IPADDRESS -eq $currentIpAddress.IPV4Address} | % 新公司名称 写主机 $currentIpAddress 写主机 $csv 写主机 $newComputerName Rename-Computer -NewName $newComputerName -Force -Restart

格式化列表就像这样命名为 RenameComputerBasedOnIPList.csv。 IPADDRESS,NEWCOMPNAME 10.96.21.121,BADCOMPNAME 10.96.21.158,WIN10改名 192.168.0.2,BADCOMPNAME1 10.96.21.52,WIN81改名

再次感谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-16
    • 2011-06-14
    • 2019-03-16
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    相关资源
    最近更新 更多