使用 Powershell 中指定的路径远程启动 explorer.exe

Posted

技术标签:

【中文标题】使用 Powershell 中指定的路径远程启动 explorer.exe【英文标题】:Start explorer.exe remotely with a path specified in Powershell 【发布时间】:2017-02-09 16:08:42 【问题描述】:

我的问题是我可以在远程机器上调用命令 explorer.exe 而不给它任何路径参数,但是当我输入时:

Invoke-Command -ComputerName PC01 -Credential $cred -ScriptBlock  explorer.exe "C:\Foldername" 

什么都没有发生,除了我在日志中收到一条错误条目:

服务器 75DFF2B7-6936-4C06-A8BB-676A7B00B24B 未在要求的超时时间内向 DCOM 注册。

【问题讨论】:

你为什么要这样做? 您最终要以什么身份运行此过程? ... 【参考方案1】:

首先,如果您直接在本地系统上尝试此操作,GUI 将正确弹出。

Invoke-Command  -ScriptBlock  C:\Windows\explorer.exe "C:\folder"

但问题在于,powershell 如何打开从远程系统调用的 GUI 控制台。基本上,它没有要举行的会话。 您需要一个桌面会话来做到这一点

在这种情况下,您应该使用 PSEXEC-i

psexec -i -d -s c:\windows\explorer.exe C:\folder

从这里下载它:PSExec-v2.11。此链接包含所有说明以及如何使用每个实用程序的示例。

希望对你有帮助。

【讨论】:

嗨,谁(哪个用户帐户)会在目标计算机上看到这个? 在目标系统中,必须有人登录。桌面会话应该存在。 @RanadipDutta;谢谢你的回答。但是,我遇到的问题是,只有手动输入命令时,才能以这种方式执行命令。如果我尝试将其放入已保存的脚本中 - 它会尝试在本地执行所有内容。我的代码的目的是超越所有密码提示,在远程 PC 上创建一个文件夹并以交互方式打开它。 @RanadipDutta;当手动输入控制台时,这工作得很好:$username = "PC01\User"; $password = "Password01"; $secstr = New-Object -TypeName System.Security.SecureString; $password.ToCharArray() | ForEach-Object $secstr.AppendChar($_); $cred = new-object -typename; System.Management.Automation.PSCredential -argumentlist $username, $secstr; Enter-PSSession -ComputerName PC01 -Credential $cred; $path = "PC01\C:\testfolder"; New-Item -Path $path -ItemType directory; psexec.exe -i -s C:\windows\explorer.exe "C:\testfolder"; Exit-PSSession;

以上是关于使用 Powershell 中指定的路径远程启动 explorer.exe的主要内容,如果未能解决你的问题,请参考以下文章

“LIB 环境变量”中指定的搜索路径 *** 无效 --“系统找不到指定的路径。”

系统找不到anaconda命令提示符中指定的路径

React Router 未路由到 Route 元素中指定的路径

Mac Eclipse GCC 4.9.0“启动配置中指定的程序文件不存在”

按打印后弹出找不到映像文件中指定的资源类型

为啥在定义为宏值的路径中指定的反斜杠会被删除?有没有办法避免这种情况?