寻找一种方法,在PowerShell& WMI,用于重命名之前使用过的名称的计算机。此外,通过Windows属性执行时,此过程也是成功的。
$computerSystem = Get-WmiObject -Class Win32_ComputerSystem
#### Rename-Host ####
Function Rename-Host {
Param($computerSystem,
$newComputerName,
$username = $null,
$password = $null)
Write-Host "RenameHost: Attempting to change from $($computerSystem.DNSHostName) to $newComputerName"
Write-Host "RenameHost: Pinging for Host-Name $newComputerName to ensure it does not already exist."
$pingReturn = Ping-Addresses $newComputerName
if($pingReturn.Reachable -eq 'true'){
Write-StdErr "RenameComputer: Failed $newComputerName already exists on Network."
return
}
$oldComputerName = $computerSystem.DNSHostName
$renameResult = $computerSystem.Rename($newComputerName,$password,$username).ReturnValue
switch($renameResult){
0 { Write-Host "RenameHost: Successfully renamed $oldComputerName to $newComputerName" }
default { Write-StdErr "RenameHost: Failed with Error = $renameResult" }
}
}