Powershell 远程 DIR 命令输出到远程服务器

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")

请帮忙,谢谢。

你得到了哪些错误信息或其他提示? - manojlds
我没有收到任何错误信息,这就是问题所在。 - Me Myself
3个回答

0

我正在整个域上运行此程序(在每台计算机上都要运行)。而且我无法打开或关闭任何东西。 - Me Myself

0
在Powershell中,如果在""之间使用"-"字符,应该使用反单引号`进行转义。
下面的命令在我的系统上运行成功:
([WmiClass]"\\$s\ROOT\CIMV2:Win32_Process").create("cmd /c dir /S/B | findstr `"test`" > \\192.168.1.100\c$\results.txt")

你是否无法写入C盘根目录?你可以尝试使用> \\192.168.1.100\c$\windows\temp\results.txt - jon Z
我正在以DA身份运行,所以我应该拥有权限。但是我尝试了temp,也没有成功。这一定是GPO的问题吧? - Me Myself
尝试在普通的cmd框中运行cmd /c dir /S/B | findstr "test" > \\192.168.1.100\c$\results.txt,以排除权限问题。 - jon Z
我使用相同的账户登录到远程机器,然后以管理员身份打开命令行窗口并输入了上述命令。结果它起作用了。 你能理解我的困境和沮丧吗? - Me Myself
这可能是双跳问题。你能否检查一下,如果s =“.”(这是我在测试中使用的)是否有效。 - jon Z

0

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

    if(Test-path \\computer\c$\results.txt){
move-item -path \\computer\c$\results.txt \\server-name\c$ -force | out-host
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接