问题标签 [powershell-remoting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
11757 浏览

powershell - Powershell 远程配置文件

在本地计算机上使用我的配置文件中的函数Enter-PSSession打开远程 PowerShell 会话时,如何在远程计算机上使用函数。

0 投票
10 回答
50780 浏览

powershell - 如何在 powershell 远程会话(powershell)中编辑文件

我正在使用 powershell 远程连接到另一台计算机,非常好。可以做很多事情,但是如何编辑文件?

PS C:\Users\guutlee> Enter-PSSession -ComputerName appprod

[appprod]: PS C:\Users\guutlee\Documents> cd \myapp

[appprod]: PS C:\myapp>

我该怎么做才能在远程机器上的文件上打开文件编辑器?

[appprod]: PS C:\myapp> 编辑 app.config

所以编辑“文件名”似乎挂了,从 powershell.exe 或从 powershell_ise.exe

我唯一能想到的就是退出 pssession 并“启动 \webprod\c$\inetpub\myapp\web.config”,这将打开 Visual Studio。

[appprod]: PS C:\myapp> 退出

PS C:\Users\guutlee>开始 \agobuild\c$\myapp\app.config

PS C:\Users\guutlee> Enter-PSSession -ComputerName appprod

[appprod]: PS C:\Users\guutlee\Documents> cd \myapp

[appprod]: PS C:\myapp> myapp.exe

当然,我必须重新找到该文件,希望 c$ 共享可用且可访问,并在我想继续时重新连接我的 pssession 并重新找到我的工作目录。看起来不是很优雅。

我也许可以包装这是一个功能,但是很难把我的头包起来..

那么如何使用远程 pssession 方便地编辑文件呢?

编辑

kbrimington 的帖子让我想到了 ssh 的 -X 选项。对于 powershell 会话来说,能够将窗口应用程序转发回原始窗口环境可能是一件很棒的事情......

但我仍然很乐意编辑文件。

编辑

使用 vi、emacs、cmd 和编辑进行测试

PS C:\Users\Meredith> Enter-PSSession -ComputerName appprod

[appprod]: PS C:\Users\guutlee\Documents> C:\vim\vim72\vim filename.txt

[appprod]: PS C:\Users\guutlee\Documents> C:\emacs-23.2\bin\emacs.exe -nw 文件名.txt

emacs.exe : emacs: 标准输入不是 tty

[appprod]: PS C:\Users\guutlee\Documents> cmd

Microsoft Windows [版本 6.1.7600]

版权所有 (c) 2009 Microsoft Corporation。版权所有。

C:\用户\guutlee\文档>

[appprod]: PS C:\Users\guutlee\Documents>编辑文件名.txt

vi 和编辑挂起(Control-C 得到提示)

cmd 运行,产生一个提示,但立即退出到 powershell 提示

emacs 产生错误(标准输入不是 tty)

编辑

Jered 建议将文件拉回本地进行编辑。我用 pssessions 而不是 UNCs 修饰了他对复制的回答(也许这就是他的意图)

PS C:\Users\Meredith> Invoke-Command -Session $ps -ScriptBlock {get-content c:/inetpub/myapp/web.config} > web.config

编辑网页配置

PS C:\Users\Meredith>获取内容 web.config | 调用命令 -Session $ps -ScriptBlock {set-content c:/inetpub/myapp/web.config}

潜在地,我们可以在任一方向运行调用命令,本地到远程或远程返回到本地。

0 投票
1 回答
4245 浏览

powershell - 使用 Invoke-Command 处理远程机器上的命令列表

我正在尝试编写一个 powershell 脚本,该脚本将获取命令列表,然后在远程计算机上运行它们,我有以下代码:

这不会引发任何错误,但也不会实际运行命令(例如 stop-service servicename)。$commands 是在调用脚本时从作为参数传递的文本文件中读取的,我知道这个脚本的其余部分可以工作,因为我已经使用它来执行 Invoke-Expression 的本地命令一段时间了。

任何帮助都会很棒。

0 投票
2 回答
26067 浏览

powershell - 在 Powershell 中运行远程 GUI 应用程序

我们有一个自定义组件,它封装了 powershell 的一些功能,因此它可以在 BizTalk 2006 中使用。对于大多数操作(检查文件路径、复制或移动文件),这都可以正常工作。然而,我们需要远程启动一个 GUI 应用程序来进行一些处理。组件本身处理与远程盒子的连接,我们所要做的就是设置一些参数,然后告诉它执行命令

问题是这样的:如果我们从盒子本身的 powershell 命令行运行它,这工作正常。但是,当我们远程启动它时(从 BizTalk、从测试工具,甚至使用远程 Powershell 命令行和通过 Start-PSSession 连接),此应用程序将短暂运行然后退出,而无需实际执行任何操作。我的怀疑是,因为有问题的 exe 需要加载 GUI 才能运行该进程,所以这就是导致问题的原因。我已经尝试了所有我能想到的方法,包括 -NoNewWindow 和 -WindowStyle 但无济于事。非常感谢任何帮助使这项工作正常进行。

注意:我们无法访问我们尝试运行的应用程序的源代码,因为它是较旧的 win32 应用程序,并且没有提供此应用程序的批处理或命令行版本。

0 投票
1 回答
59261 浏览

powershell - Enter-PSSession 在我的 Powershell 脚本中不起作用

当我从脚本运行以下行时,文件最终会在我的本地计算机上创建。

当我从 powershell 控制台单独运行每一行时,会正确创建远程会话并在远程计算机上创建文件。关于为什么的任何想法?可能是脚本的时间问题吗?

0 投票
1 回答
1597 浏览

windows - 使用 powershell 远程处理在远程服务器上运行 sysocmgr.exe

我无法使用 sysocmgr.exe 在远程服务器上运行 Windows 组件的远程安装。它正在使用,psexec.exe \\ServerName -i sysocmgr.exe /i:%wnidir%\inf\sysoc.inf /u:\\path\to\components.txt但我想使用 powershell 远程处理来获得相同的结果。

我的 Powershell 远程处理与 WinRM 工作正常,但我无法使用 PowerShell 远程运行 sysocmgr.exe。

我在两台服务器(本地和远程)上做了什么:

  1. Set-ExecutionPolicy unrestricted
  2. Enable-PSRemoting- 好的
  3. Set-Item WSMan:\localhost\Client\TrustedHosts *
  4. 我已经重新启动了 WinRM 服务,它正在工作

在两台服务器上完成所有这些工作后,我使用 New-PSSession 设置了一个持久远程会话:

然后我尝试启动 powershell 脚本(script.ps1),该脚本保存在所有服务器的可访问共享上,并包含:

我使用了调用命令:

启动上述调用命令后,我可以在任务管理器的远程服务器 (server1) 上看到 sysocmgr.exe 正在运行,但它什么也没做。windows组件安装未启动...

我尝试使用:

enter-pssession -computername Server1- 工作正常我尝试启动 script1.ps1 并且它做了同样的事情,我可以在任务管理器中看到 sysocmgr.exe,但它什么也没做......

我想我缺少一些与桌面交互的参数,比如在 psexec 中的“-i”参数,我在 powershell 中找不到它......

谢谢您的帮助。

0 投票
1 回答
1317 浏览

powershell - push-runspace 发生了什么,替代品是什么?

至少在某些 PowerShell v2 CTP 中,有一个称为“push-runspace”的 cmdlet(我听说)允许您获得本质上是运行远程 PowerShell 的本地窗口。但是,此 cmdlet 以及所有 *-runspace cmdlet 都不存在于 PowerShell v2 中。我唯一能看到的这种功能是:

注意IsRunspacePushed属性。由此我认为这种事情仍然是可能的,但我将如何去做呢?

0 投票
2 回答
4471 浏览

powershell - 如何让 7za.exe 通过 Powershell Remoting 运行?

我尝试了许多不同的方法来做到这一点,它们都会导致相同的错误。这是一组命令:


我得到的输出是这样的:

我怎样才能克服那个错误???

我应该指出,如果我直接在 ServerA 上运行 Scriptblock 而不进行远程处理,它就可以工作。谢谢你的帮助!

0 投票
3 回答
4935 浏览

powershell - 位于网络共享上的导入模块

我有一个位于网络共享的模块,我希望在远程会话期间加载到我网络上的其他服务器。

这是我的命令:

这是错误:

模块无法从网络共享加载还是我做错了什么?

谢谢

0 投票
2 回答
4598 浏览

powershell - Powershell - 运行位于远程机器上的脚本,该脚本反过来从网络共享访问文件

我正在尝试使用以下命令执行位于远程计算机上的 powershell 脚本,并且效果很好

调用命令 (powershell c:\install\install.ps1) -computername box1 -credential (get-credential)

上面的脚本依次从网络共享中复制文件(使用 robocopy)——它无法抱怨该位置不存在。发现这是由于权限问题。当我在脚本中明确提到使用以下凭据进行共享时,它会起作用

网络使用 \share1\files 密码 /user:username

有没有办法传递用于运行脚本的相同凭据,以供脚本访问远程计算机中的其他资源?

谢谢!桑吉夫