powershell - 根据当前 IP 地址更改计算机名称并从 CSV 文件查找的 PowerShell 脚本
问题描述
对于需要重命名的特定 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
解决方案
感谢大家的意见和问题。我想到了。只是为了回答问题并为其他人发布正确的代码,在这里。我正在使用 Windows 8.1 x64 和 Windows 10 x64。Powershell 4 和 5。如果计算机名称不在列表中,则脚本将失败(这很好)并且什么也不做。此外,我们以本地管理员帐户运行它,因此到目前为止测试已证明是成功的。
更新的脚本是:
我们使用的 CMD: If Not Exist C:\Temp MD C:\Temp Copy /Y "%~dp0RenameComputerBasedOnIPList.csv" C:\temp\RenameComputerBasedOnIPList.csv powershell -ExecutionPolicy ByPass -File "%~dp0RenameComputerBasedOnIPList.ps1"
正在运行的 PowerShell 脚本: Set-ExecutionPolicy -ExecutionPolicy Unrestricted $currentIpAddress = Test-Connection $env:COMPUTERNAME -count 1 | 选择地址,Ipv4Address $csv = Import-Csv C:\Temp\RenameComputerBasedOnIPList.csv $newComputerName = $csv | 其中 {$_.IPADDRESS -eq $currentIpAddress.IPV4Address} | % NEWCOMPNAME 写入主机 $currentIpAddress 写入主机 $csv 写入主机 $newComputerName 重命名计算机 -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
再次感谢。
推荐阅读
- python-3.x - 如何连接序列 LSTM Keras 网络的两个输入?
- c# - 用户第一次没有更改注册表(Shell 值),但在第二次尝试远程更改时进行了更改
- swift - 如何动画显示以表格形式呈现的 NSViewController 的大小变化?
- javascript - jQuery-UI:即使鼠标在放置区域内,拖放有时也不起作用
- java-native-interface - 使用 jni 将字符串参数从 c 传递给 java
- html - 当我将鼠标悬停在下拉菜单上时它消失了
- react-native - 为什么以两种不同的方式调用样式属性会产生不同的结果?
- windows - MAMP Pro (Windows):无法在系统启动时启动
- angular - 需要在角度模式确认框中单击“是”时上传所选文件
- python - 限制 re.findall 引用中的单词数