Powershell WMI Win32_process 远程命令问题

Powershell WMI Win32_process remote command issues

下面的命令使用 WMI 和 Win32_process 到 运行 远程 computer.The 计算机上的命令在下面的示例中称为 7-df-1。

我的引号有问题 我试过单引号和双引号,但命令仍然无效。它应该将 Surface 固件安装程序下载到远程计算机上的 C 盘。

我做错了什么?感谢您查看此内容

([WMICLASS]"\7-df-1\Root\CIMV2:Win32_Process").create(“ (new-object system.net.webclient).downloadfile('https://download.microsoft.com/download/6/A/C/6ACB37C4-E4C1-4E0E-BBAE-AC7A0C303593/SurfacePro4_Win10_15063_1701801_0.msi', 'c:\save.msi')”)

回答错误。见评论区。

我同意@NullUserException,Invoke-Command 是为此使用的cmdlet。我建议你试试。

话虽如此,我无法在我的环境中测试您的命令,但看起来您正在尝试将文字命令作为字符串传递给远程机器。在这种情况下,您要使用 HereStrings。它们是单引号上方的步骤。试试这个:

([WMICLASS]"\7-df-1\Root\CIMV2:Win32_Process").create(@' (new-object system.net.webclient).downloadfile('https://download.microsoft.com/download/6/A/C/6ACB37C4-E4C1-4E0E-BBAE-AC7A0C303593/SurfacePro4_Win10_15063_1701801_0.msi', 'c:\save.msi') '@)

Create() 方法接受命令行作为字符串,因此如果您只是提供一个 PowerShell cmdlets/expression 它不会识别。

因此您必须提及您提供的特定命令行的处理程序。

([WMICLASS]"\localhost\Root\CIMV2:Win32_Process").create(“Powershell.exe -c &{ (new-object system.net.webclient).downloadfile('https://download.microsoft.com/download/6/A/C/6ACB37C4-E4C1-4E0E-BBAE-AC7A0C303593/SurfacePro4_Win10_15063_1701801_0.msi', 'c:\save.msi')}”)

您可以获得 Win32_Process here

的 Create() 方法的帮助信息