我不明白出了什么问题。如果我在命令提示符下运行此命令
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")
请帮助,谢谢。
答案 0 :(得分:0)
您可以在计算机上启用Psremoting,然后使用Invoke-Command
cmdlet运行远程命令。我认为这更像是POSH的做法。
您也可以使用组策略在域中的许多计算机上启用它:http://blog.powershell.no/2010/03/04/enable-and-configure-windows-powershell-remoting-using-group-policy/
答案 1 :(得分:0)
在Powershell中,你应该在“”之间使用反引号`来转义“-character”。
以下命令适用于我的系统:
([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr `"test`" > \\192.168.1.100\c$\results.txt")
答案 2 :(得分:0)
我认为我要做的就是,在命令完成后将文件从计算机移动到服务器。
if(Test-path \\computer\c$\results.txt){
move-item -path \\computer\c$\results.txt \\server-name\c$ -force | out-host
}