2016-09-16 111 views
1

当我运行下面的代码记事本我的本地计算机上打开的,因为它应该:执行和远程计算机上运行记事本

Invoke-Command {Invoke-Expression '&"C:\windows\system32\notepad.exe"'} 

当我添加-computername的代码,并提供我的本地计算机名称我获取访问被拒绝的消息。

Invoke-Command -ComputerName computername {Invoke-Expression '&"C:\windows\system32\notepad.exe"'} 

不知道该从哪里出发。我所看到的网站提供了本地计算机的示例。

我想在远程计算机上打开记事本。

Regards,

+0

即使您登录到远程PC,它不会在您的会话中运行,它将运行在远程命令的特定会话中。您究竟在实现什么功能? – BugFinder

回答

2

远程计算机需要凭证。您必须通过-Credential参数。除此之外,结果将会与您预期的不同。记事本过程将开始,但你不会看到应用程序本身。原因是可能没有人在远程计算机上登录,或者多人登录,谁将显示应用程序?

如果您想在用户会话中实际显示应用程序,您首先需要获取会话Id,然后使用像PSexec或PAexec这样的工具来完成,但这是非常糟糕的做法。

+0

同一用户始终以24/7全天候登录到计算机。是的,我希望在执行PowerShell代码时打开记事本。不想用户PSexece。谢谢。 – lmalave

+0

@lmalave:任何你不想使用'psexec'的原因?您也可以使用[WMI](http://www.codeproject.com/Articles/31113/Create-a-Remote-Process-using-WMI-in-C)。 –

+0

这是灰色的窗户,所以不要指望它很容易或可靠。这里有一些更多的信息:http://serverfault.com/questions/690852/use-powershell-to-start-a-gui-program-on-a-remote-machine –

相关问题