Powershell 更改计算机名 14


通过WMIObject对象的rename方法,重命名计算机。重启计算机生效,也可以选择手动重启。

Function Rename-Computer( $NewName,$AutoRestart=$false )
{
	$computer=Get-WMIObject  Win32_ComputerSystem
	$computer.Rename( $NewName ) | out-null
	if($AutoRestart) { Restart-Computer -Force }
}
×用微信扫描并分享
本文链接: https://www.pstips.net/powershell-rename-computer.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

14 条评论 “Powershell 更改计算机名

      • ruslie

        可是为什么我的powershell里面没有rename-computer这个命令呢,我在官网也查到过这个命令,可是我试的时候就是没有。请问还和powershell版本有关吗?

      • boiiob

        Function Rename-Computer( $NewName,$AutoRestart=$false )
        {
        $computer=Get-WMIObject Win32_ComputerSystem
        $computer.Rename( $NewName ) | out-null
        if($AutoRestart) { Restart-Computer -Force }
        }

        你写的这个函数是不是有问题?
        变量 computer 赋值了
        那么 变量 newname 是谁赋值?

        计算机重命名的参数 也就是 计算机的名字是由谁来赋值?

  • boiiob

    变量
    SerialNumber
    变量值
    SELECT SerialNumber FROM Win32_BIOS

    SerialNumber=SELECT SerialNumber FROM Win32_BIOS

    计算机命名格式 NB-SerialNumber值

    这个脚本如何修改 读取序列号,以一定格式命名计算机 这个脚本如何修改。谢谢

      • boiiob

        Function Rename-Computer( $NewName,$AutoRestart=$false )
        {
        $SerialNumber=(Get-WmiObject win32_bios).SerialNumber
        $NewName=”NB-“+$SerialNumber
        备注 计算机名的格式 NB-序列号 如 NB-R303QNZP 我这样写不知道对不对 不变量+变量 就是计算机名

        $computer.Rename( $NewName ) | out-nul
        if($AutoRestart) { Restart-Computer -Force }

        }

        我在执行这个命令时 提示 请为以下参数提供值
        NerName: 提问 我都赋值了,怎么没有值呢?

        请问 我如何把 读取到的变量 $SerialNumber 以这种格式赋值呢 NB-$SerialNumber (NB- 计算机名前缀)

        • Mooser Lee 文章作者

          你这段脚本之所以错误,不是因为$NewName没赋值,应对是Rename没赋值。因为在你的函数中$computer对象没有赋值,所以为空,引用一个空对象,并且尝试访问它的属性,肯定报错,就像.
          鉴于的需求是固定的,直接执行下面脚本即可。

          $computer = Get-WMIObject  Win32_ComputerSystem
          $SerialNumber = (Get-WmiObject win32_bios).SerialNumber
          $NewName="NB-"+$SerialNumber
          $computer.Rename($NewName)