问题标签 [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 投票
3 回答
2234 浏览

powershell - PowerShell 有时无法执行 .exe

我正在尝试编写脚本以使用 MSdeploy 同步 IIS 服务器。

我尝试了所有可能的方式来运行 .exe,但有时我会收到此错误:

当我第一次运行后再次执行相同的脚本时,它工作正常。这就是我最终称呼它的方式:

任何想法如何防止它第一次失败?

0 投票
2 回答
3432 浏览

c# - 使用 C# 中的调用命令引发异常

我从 powershell 终端尝试了以下案例:

这工作正常。但是,当我通过 C# 的调用命令尝试相同的事情时,它会引发以下异常:

我正在尝试使用以下代码:

0 投票
1 回答
1795 浏览

powershell - 从 powershell 脚本中运行 powershell 脚本

我有一个 perl 脚本 perl1.pl。在 perl 脚本中,我调用了一个 powershell 脚本 script1.ps1。在 script.ps1 中,我使用局部变量作为参数调用其他脚本,例如 script2.ps1。我准备了一个powershell脚本script3.ps1。我想从 script1.ps1 与 script2.ps1 并行运行 script3.ps1。我需要传递 sample_script2.ps1 运行的相同参数(局部变量作为参数)。首先需要调用 script3,然后调用 script2。

我试过 powershel.exe 如下

C:..\powershell.exe -FilePath script3.ps1 $a,$b,$c

我已经包含了绕过,执行策略。$a $b $c 是局部变量。但似乎发生的是命令行打开(因为它是我们的脚本被调用的方式)并开始执行 script1.ps1 以及何时上面提到的命令它会停止。我在上面的命令行中输入“exit”,然后 script2 启动。

我怎样才能实现相同的效果,即 script3.ps1 与 script2.ps1 的并行运行。

0 投票
2 回答
3913 浏览

powershell - 我的本地 PowerShell 脚本如何调用远程 PowerShell 脚本?

本地和远程计算机都启用了 PSSession。

我认为我的问题是我不知道如何将传入的字符串转换为 ScriptBlock 以供 Invoke-Command 使用。我可以使用 Enter-PSSession 通过交互式会话调用所有这些命令。

我的本地脚本在脚本块中调用远程脚本。我在本地通过命令行传递文件名和路径

& '.\CallRemote.ps1' -p "E:\DeployFolder\Scripts\" -f "hello.ps1"

本地脚本如下所示

如果我在“&”前面硬编码路径和文件名,它就可以工作。如果没有硬编码,我没有办法让它工作。

这种特殊的硬编码有效 Invoke-Command -Session $session -ScriptBlock { & "E:\DeployFolder\Scripts\hello.ps1"}

这些尝试更改文件和路径的传入字符串的尝试使用 Invoke-Command -Session $session -ScriptBlock {$ScriptBlock} 悄然失败

  1. $ScriptBlock = " &' " + $ScriptPath + '\' + $Scriptfile + "`'"
  2. $ScriptBlock = "& ' " + $ScriptPath + '\' + $Scriptfile + "'"
  3. $ScriptBlock = "$ScriptPath + '\' + $Scriptfile

这只是失败 Invoke-Command -Session $session -ScriptBlock { & $ScriptBlock} 并显示错误消息:

管道元素中“&”之后的表达式产生了无效对象。它必须产生一个命令名称、脚本块或 CommandInfo 对象。+ CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : BadExpression

0 投票
3 回答
13830 浏览

java - 从远程服务器的 PowerShell 获取 Java 版本

我正在尝试在PowerShell中编写一个脚本,该脚本将在远程机器上使用带有凭据的调用命令来执行代码,该代码将返回包含该机器上 Java 版本的字符串。Java 没有安装,有时它只是作为JDK文件夹放在服务器中,并且应用程序指向该位置,所以很遗憾我无法使用注册表找到 Java 版本。我想出的唯一想法是从调用命令中调用类似以下内容的内容:

甚至更复杂的东西,然后使用正则表达式来查找版本:

但是,在某些服务器上,我一直遇到一个问题,它抱怨没有足够的堆空间来运行该 Java 版本命令(通过该远程服务器上的调用命令)。

根据我的研究,它与为远程 PowerShell 会话设置的 MaxMemoryPerShellMB 有关。在某些服务器上,它设置为 150,在某些服务器上设置为 1024。所以有时我可以成功地java -version从 PowerShell 远程会话运行,有时我不能,因为内存太少。如果我通过登录并手动将其设置在远程计算机上:

它开始工作。但是我不能每次都去每台服务器手动设置。如果我尝试通过调用命令设置 MaxMemoryPerShellMB,它会说我无权访问,即使我可以使用相同的帐户在服务器上更改 MaxMemoryPerShellMB,如果我登录并直接执行。

我觉得我已经用完了解决方案,并希望在这里找到一些帮助。抱歉,如果有这个话题,我只找到了三个,没有一个回答我的问题。有兴趣的朋友可以参考以下。我真的找不到任何东西:P

0 投票
1 回答
5884 浏览

function - 使用invoke-command Powershell在函数内调用函数

我希望在调用命令中调用函数内的函数。看来我没有正确执行此操作。我收到“get-group_users”无法识别错误。一切都在一个 ps1 脚本中。

截断的脚本:

所以,我忽略了这个get-groups_users功能。如果有人认为这将有助于解释一切,我可以发布它。这是一个很长的。我也省略了$xmlwriter定义。

get-groups_users当它在 COMP1 上运行时可以工作,但是一旦我进入PSSession并尝试在调用命令中为子组合使用它,它就无法识别它。

我忘记了什么?

0 投票
2 回答
1164 浏览

powershell - pssession功能不工作

我有一个特殊的用例,它需要我的大量 powershell 脚本来更改它们运行的​​用户上下文。我有可靠工作的代码,但我试图将它放入一个函数中,而不是在每个脚本中重复它。

单独地,此函数中的行有效,但是当作为函数运行时,脚本不会遇到错误,但我没有得到任何结果。

如果有人能发现我在这方面缺少的东西,我将不胜感激。

0 投票
2 回答
6316 浏览

powershell - 调用命令和 msiexec

我正在尝试使用Invoke-Commandcmdlet 删除远程计算机上的应用程序,但它不起作用。

这是我的脚本:

在这种情况下是否有任何可靠、可行的替代方案?

0 投票
4 回答
3714 浏览

json - 从 Invoke-Command 返回的无关数据

我正在使用 PowerShell 从远程服务器列表中收集数据,然后将其转换为 JSON 对象。一切正常,但我得到了一些我似乎无法排除的非常奇怪的输出。

我试过管道Invoke-Command结果并排除属性。我也尝试过从返回的哈希文件中手动删除这些项目,但我似乎无法让它们消失。

我错过了什么?

编辑:

为了弄清楚这里出了什么问题,这是一个简化但仍然损坏的脚本:

哪个输出:

0 投票
1 回答
195 浏览

windows - 如何传递数组参数和其他东西?

错误:

Invoke-Command:找不到接受参数“True”的位置参数。

我搜索了高低,找不到如何将数组与参数列表中的内容一起传递。我试过了:(,$files,$copyxml)、、(,$files),$copyxml(,$files) $copyxml

有没有办法做到这一点?