3

我不明白出了什么问题。如果我在命令提示符下运行此命令

dir /S/B | findstr "test" > \\server-name\c$\results.txt

它工作正常。但是如果我尝试在远程计算机上通过 powershell 运行它

$result = ([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr ""test"" > \\server-name\c$\results.txt")

我也试过

$result = ([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr ""test"" > \\192.168.1.100\c$\results.txt")

我已经尝试创建一个日志文件夹并在完全控制的情况下共享给每个人

$result = ([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr ""test"" > \\192.168.1.100\log\results.txt")

这些似乎都不起作用,但是如果我将其更改为本地路径,它会起作用

$result = ([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr ""test"" > C:\results.txt")

请帮忙,谢谢。

4

3 回答 3

0

您可以在机器上启用 Psremoting,然后使用Invoke-Commandcmdlet 运行远程命令。我认为这是更POSH的方式。

您也可以使用组策略在域中的许多计算机上打开它:http: //blog.powershell.no/2010/03/04/enable-and-configure-windows-powershell-remoting-using-group-policy /

于 2011-11-14T19:12:18.703 回答
0

在 Powershell 中,当在“”之间使用时,您应该使用反引号 ` 转义“-字符”。

以下命令适用于我的系统:

([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr `"test`" > \\192.168.1.100\c$\results.txt")
于 2011-11-15T09:53:27.670 回答
0

我想我要做的就是在命令完成后将文件从计算机移动到服务器。

    if(Test-path \\computer\c$\results.txt){
move-item -path \\computer\c$\results.txt \\server-name\c$ -force | out-host
}
于 2011-11-15T13:21:33.453 回答