问题标签 [invoke-command]

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 投票
1 回答
789 浏览

invoke-command - PowerShell Invoke-Command 无法加载 dll

我看到了其他帖子,但没有一个对我有帮助。请帮忙。

我从我的本地 Win7 桌面上运行了以下 cmdlet,上面有 PowerShell4。

我收到了这个错误:

我的设置如下:

远程计算机 COMPUTER123 和我的桌面在同一个 AD 域中。

该命令是从我的帐户 mycomany\Sam 下的 Win7 计算机发出的。此帐户也是远程 COMPUTER123 上的本地管理员。

COMPUTER123 上的 PowerShell 配置文件在 CONFIGURATION 下确实有此条目,以允许从 NAS 加载程序集。

RDPing 到 COMPUTER123 并在其上本地调用以下 PowerShell 命令运行没有任何错误。

0 投票
0 回答
1772 浏览

arrays - 返回远程 PowerShell 对象

我在 PoSh 方面相当缺乏经验,但我认为我可以在菜鸟赛道上保持自己的水平。我正在尝试研究一种机制,以通过 PowerShell 从 SQL 表中的服务器列表中检索直接附加存储 (DAS)。获取 DAS 的命令必须从它所连接的服务器本地运行。因为每台服务器都可以连接多个 DAS 设备,所以我选择为每台服务器创建一个阵列,并使用每个 DAS 单元的对象填充该阵列。我已经确定了该过程,并且能够遍历每台服务器并在每台服务器上远程运行命令并捕获我想要的数据(在远程会话中),但是我无法恢复对象数组远程会话,以便我们可以将此数据写入数据库表。如果我在调用命令脚本块中调用数组,一切都很好,我得到了我需要的数据——只有当我之后尝试调用它时。我不打算在这些服务器(数百个)上建立 SQL 会话来写入数据,所以我更愿意在运行它的机器上进行。

因为这些数据将直接写入数据库,所以我也更愿意在同一脚本中的 PowerShell 中本地利用它,而不是与导出/导入文件、csv 等混淆。

我意识到 PowerShell 会在网络上序列化对象,但我的理解是,一旦它回到本地机器,它就会对其进行再水化。我正在努力完成的事情是可能的,还是我只是失去了理智?

相关代码为:

从脚本块中调用时的一些示例输出:

有什么想法吗?

0 投票
1 回答
870 浏览

powershell - 在函数中使用 Invoke-Command

我有这个代码片段。这个想法是在远程 pc 上调用调用命令,但如果命令失败,那么它应该重试。

代码如下所示:

然后我应该能够像这样调用该函数:

但由于某种原因,它并没有像我想象的那样工作。

提前致谢

问候马格努斯

0 投票
1 回答
2022 浏览

powershell - Scriptblock 可用作 Invoke-Command,但不能用作 Start-Job

我编写了一个 ScriptBlock,它将文件上传到自定义 http 服务器并将响应保存到磁盘。它旨在用于测试所述服务器,除了检查正确的响应之外,我还想并行运行它以加载服务器。

ScriptBlock 中的代码是作为单独的 ps1 脚本构建的并且可以工作。然后我将它移植到一个框架脚本中Start-Job,用于管理工作并最终呈现整体结果。

不幸的是,移植后它不起作用。

症状是使用Start-Job作业永远不会完成。为了进行测试,我已切换到Invoke-Command. 一个简单的Invoke-Command作品,InvokeCommand -AsJob没有。

作品:

不工作:

正在使用的 ScriptBlock 相当长。它从声明参数开始:

再往下使用 HttpWebRequest 和其他一些 .NET 类:

如使用Start-Job或子作业开始时所述,永远Invoke-Command -AsJob保持状态。Running

什么会导致这种行为?可以用什么来调试它?如果有一些错误,我可以强制子作业终止并告诉我它不喜欢什么吗?

我在 Windows XP 上使用 PowerShell 2.0。

在我提出的框架中,我做了Start-Job(目前只是其中之一,但我计划增加这个数字以进行压力测试)。然后我有一个循环等待它们全部终止:

这会产生以下形式的输出:

永远。

一个完整的最小测试用例是:

这对我来说很重要。如果我注释掉创建 WebRequest 对象的行,它就可以工作。

谢谢你。

0 投票
2 回答
1477 浏览

powershell - 如何使用 winrm 将命令从域发送到工作组(混合域)而不使用凭据

我正在尝试在我拥有的 vmware 映像上运行 powershell 调用命令:invoke-command -computer [vmware host] -scriptBlock { commands }

这不起作用,因为我运行命令的客户端位于域上,而 vm 映像位于工作组(混合域)中

经过一番研究,我已将 vmware 主机添加到受信任的主机(Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value [vmware host]),如果我提供凭据(管理员/密码),则该命令有效。

我的问题是:有没有办法让它在不显式提供凭据的情况下工作,例如打开 vmware 主机以进行各种访问,或者然后以某种方式将凭据永久保存在我的客户端计算机上,这样我就不需要提供它们在使用“invoke-command -credential 参数”的调用中。我没有添加“-credential”参数的灵活性,因为此代码由其他团队维护。

我知道我可以在域之间添加信任(以使用 kerberos),但我无法使用该选项。

0 投票
1 回答
1308 浏览

powershell - Powershell Invoke-Command 使用 -AsJob 远程启动远程程序失败

我想启动一个长时间运行的远程程序,但不想等待。所以我在 PS 脚本文件中放入一行命令并运行“Powershell -file xxx.ps1”

但是脚本运行后远程程序没有运行,但是如果我在 PS 控制台交互运行上述命令,远程程序运行正常。似乎程序在脚本终止时被杀死。

为什么是这样?

更新

如果我在脚本结束时睡 1 秒,远程应用程序运行良好。

0 投票
2 回答
10013 浏览

powershell - 如何将字符串变量传递给调用表达式?

我正在运行以下 powershell 命令:

但是我得到了错误:

0 投票
1 回答
316 浏览

powershell - Invoke-Command 是否需要返回码

Powershell 脚本

  1. 在远程计算机上启用 PSRemoting
  2. 在远程计算机上执行 setup.exe
  3. 在远程计算机上禁用 PSRemoting

在远程计算机能够执行 setup.exe 后,如何确定我正在禁用 PSRemoting?

我是否在远程计算机能够执行 setup.exe 之前禁用 PSRemoting?

0 投票
1 回答
1141 浏览

windows - 无法从 EC2 Windows 机器中的 powershell 获取实例 ID

我可以使用 URL 从 AWS EC2 windows 机器的 IE 浏览器获取实例 IDhttp://169.254.169.254/latest/meta-data/instance-id

当我使用 Powershell 命令时在同一台机器上

然后我得到以下错误

注意:Invoke-WebRequest http://google.com正在工作并从 PowerShell cmd 给出响应。

请任何人澄清这个错误是什么。

0 投票
1 回答
280 浏览

powershell - Powershell 调用命令查询

我正在编写一个任务来定期远程重启一些服务器应用程序池。我正在使用 Invoke-Command 如下:

这很好用;但是,如果我将应用程序池参数化如下

它失败了

我认为这只是一个语法问题,但我不知道是什么。