Я пытаюсь вызвать метод Rename в классе Win32_ComputerSytem с использованием метода Invoke-WMI. Используя этот синтаксис работает отличноКак я могу использовать Invoke-WmiMethod для переименования компьютера
(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
Что я упускаю?
Оказывается, для неопытного глаза, что в первом вызове вы переименовываете экземпляр класса. Во втором вызове (Invoke-WMIMethod) нет объекта. «Win32_ComputerSystem» - это тип, а не объект. Нет? – xcud
Верно, но я подумал, что Командлет создаст экземпляр и вызовет метод «под обложками». Использование этого метода для создания процесса (notepad.exe) отлично работает. –
Я подтвердил свое подозрение и представил ответ с рабочим примером синтаксиса. – xcud