Powershell WMI Win32_process远程命令问题

时间:2017-04-26 22:38:17

标签: powershell win32-process

我在下面有这个命令,它使用WMI和Win32_process在远程计算机上运行命令。在下面的例子中,计算机被称为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')”)

2 个答案:

答案 0 :(得分:1)

Create()方法接受命令行作为字符串,因此如果您只是提供PowerShell cmdlet /表达式,它将无法识别。

所以你必须提到你给出的特定指挥官的处理程序。

([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()方法的帮助信息

答案 1 :(得分:0)

答案不好。请参阅评论部分。

我同意@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') '@)