powershell - 如何使用Invoke-WmiMethod重命名计算机

标签 powershell powershell-2.0

我正在尝试使用Invoke-WMI方法在Win32_ComputerSytem类上调用Rename方法。使用此语法可以正常工作

(gwmi win32_ComputerSystem).Rename("NEWNAME")

这也可以用于演示
Invoke-WmiMethod -path win32_process -Name create -ArgumentList notepad

但是,当我尝试以下操作时,出现错误
11 >  Invoke-WmiMethod -path win32_computersystem -Name Rename -ArgumentList IwasRenamed
Invoke-WmiMethod : Invalid method Parameter(s) 
At line:1 char:17
+ Invoke-WmiMethod <<<<  -path win32_computersystem -Name Rename -ArgumentList IwasRenamed
    + CategoryInfo          : InvalidOperation: (:) [Invoke-WmiMethod], ManagementExcepti 
   on
    + FullyQualifiedErrorId : InvokeWMIManagementException,Microsoft.PowerShell.Commands. 
   InvokeWmiMethod

我想念什么?

最佳答案

您需要使用Path参数指定Win32_ComputerSystem类的实例:

PS C:\Users\ben> $path = "Win32_ComputerSystem.Name='OLDNAME'"
PS C:\Users\ben> Invoke-WmiMethod -Name Rename -Path $path -ArgumentList "NEWNAME"

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

在功能上等效于您所引用的gwmi Rename语法。此语法隐式检索Win32_ComputerSystem类的实例,以在以下位置调用该方法:
PS C:\Users\ben> (gwmi win32_computersystem).rename("NEWNAME")

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

这是另一个很酷的语法:
PS C:\Users\ben> ([wmi]"Win32_ComputerSystem.Name='OLDNAME'").Rename("NEWNAME")

__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

关于powershell - 如何使用Invoke-WmiMethod重命名计算机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112968/

相关文章:

xml - 当我尝试将值设置为 xml 属性时,powershell 奇怪地编码了符号

powershell - 测试连接内解析 DnsName

powershell - GetDate 为负 30 分钟并以 UTC 格式显示

powershell - 使用Powershell和Diskpart使用可用空间扩展卷

powershell - 无法在计算机上启动服务 '.'

visual-studio - 为什么 Visual Studio 中的所有预生成或生成后事件都失败并显示退出代码 1?

json - 如何使用 Powershell 遍历 JSON 属性

Powershell:按版本号选择文件夹

powershell - 如何删除文件夹中除只读文件外的所有文件?

powershell - 如何在PowerShell中查看 “alternatives”的属性?