问题标签 [runspace]

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 回答
198 浏览

c# - 使用 system.managment.automation 的 Powershell 脚本在其 C# 主机死后是否仍会运行?

我想将 PowerShell 功能添加到 C# 程序中,并且我已将程序system.managment.automation.dll集嵌入作为参考。我在 StackOverflow 上发现了两种从 C# 调用 PowerShell 脚本的方法:

  • 使用运行空间:

  • 使用运行空间:

    /li>

根据这个网站,Powershell 实例似乎与其 C# 主机相关联。

Powershell 运行时作为运行空间调用,默认情况下,将同步处理命令并将处理结果传递给主机应用程序,以便它们可以返回给用户。

此外,PowerShell 脚本使用嵌入式system.managment.automation.dll程序集而不是系统范围的程序集,因此该脚本将在逻辑上停止其 C# 主机。

用户关闭我的程序后,Powershell 脚本是否仍会运行?那两种方法呢?

PS:我想支持 PowerShell v2。

0 投票
1 回答
3440 浏览

powershell - 如何在 Powershell 运行空间中定义函数并执行它

我想在 powershell 中定义一个函数并在不同的运行空间中执行它。我试过这个:

文件 test.log 中没有出现“新运行空间”消息有什么建议做这样的事情吗?谢谢

0 投票
2 回答
756 浏览

winforms - 检查表单是否已打开 Winform / Powershell

我正在搜索如何检查是否使用 Powershell 打开了 winform 表单,例如VB.net 的响应。我正在使用两个运行空间,当我的表单打开时,我需要启动第二个。

我的第一个运行空间用于 GUI。UI创建完成后,我打开了它

然后,我正在尝试测试是否从 PowerShell 主线程打开此表单(来自 VB.net 的片段):

0 投票
1 回答
1246 浏览

powershell - New-PSSession 并行执行

在我们的脚本可以继续之前,我们有两个 PSSession 需要建立并导入到当前会话中。两个步骤都需要大约 10 - 15 秒,串联运行时总共需要 20 - 30 秒。

是否可以在单独的运行空间中运行 New-PSSession,然后以某种方式将该已建立的会话导入父进程?

例如从此改变:

可能是这样的(警告这不起作用):

最终目标是让这花费更少的时间,如果我们并行使用 New-PSSession,它会在 10 - 15 秒内完成,而不是串联的 20 - 30 秒。我会对任何可以实现这一点的答案感到满意,它不需要使用运行空间。

编辑:添加目标

0 投票
2 回答
51 浏览

powershell-4.0 - 将数组散列到 RunSpace

将数组对象从我的 Main 脚本传递到 RunSpace 代码块时,我遇到了奇怪的行为。我正在尝试使用Where-ObjectRunSpace 代码块中的语句检索值。但会产生与 null 方法相关的错误。

如果我在传递给运行空间之前对数组执行相同的Where-Object语句,那么它可以工作吗?

例如,如果我在将数组传递给 RunSpace 之前对数组执行以下操作,则它可以正常工作:

如果我将此数组传递给运行空间并执行相同的操作,则会失败:

我已经比较了两个数组对象并且它们具有完全相同的属性?检查时ARRAY和ARRAY1没有区别Get-Member吗?到底是怎么回事?

0 投票
1 回答
570 浏览

c# - .net (C#) 中的持久运行空间

我想在一些网页代码中创建一个运行空间,Power shell 会话将在其中运行。我希望在用户打开页面时创建这个运行空间,并保持打开状态直到它关闭。因此,例如下面的代码是一键单击。但每次我运行 power shell 命令时,我都需要运行

这需要几秒钟,并且只是设置会话,我在哪里可以创建运行空间和 powershell 对象,以便我可以从代码中的任何位置调用它,而不必在每次我想使用它时重新创建它。在控制台应用程序中,我会在“主”类中噘嘴,但似乎网页/应用程序具有不同的结构

我提出的解决方案

所以我想我会尝试制作一个静态的对象,我可以调用它。我认为通过创建我第一次调用它的静态调用将运行“静态 powers()”构造,但任何进一步的调用只会调用方法中的代码部分。但是不确定我是否完全正确。

0 投票
1 回答
1017 浏览

powershell - 启动 PowerShell 时出错 - 无法执行操作,因为对象“运行空间”已被释放

尝试启动 powershell 时,我收到以下消息:

外壳无法启动。初始化期间发生故障:无法执行操作,因为对象“运行空间”已被释放。对象名称:“运行空间”。

我似乎无法通过谷歌找到任何解决方案。有谁知道是否可以从头开始卸载/重新安装 powershell?

最好的,乔恩

0 投票
1 回答
277 浏览

powershell - 检查机器上是否已经打开了 RunspacePool

我有一个在 VM 上运行 Powersell 脚本的进程。此脚本在 VM 上定义了一个 RunspacePool,并根据该 VM 的资源能力设置阈值(运行空间数)。这个过程是重复的,所以我不希望它在该 VM 上已经定义和打开一个 RunspacePools 时继续定义和打开

在 Powershell 脚本的开头,我尝试通过调用 RunspacePoolStateInfo 或 RunspacePoolAvailability 属性来检查是否已经定义了 Runspacepool。但是这些没有被标识为 Runspacepool 对象本身在进程打开以运行脚本的新窗口中不可用

我基本上是在寻找一种方法来通过使用 Powershell 脚本来识别在 VM 上打开了 RunspacePool

0 投票
1 回答
1069 浏览

powershell - Scope vs Runspace vs Session vs AppDomain

我正在努力为 PowerShell 划定界限。我非常有限的理解是这样的:

  • 作用域包含用户/脚本定义的变量和函数,并且可以存在具有 PS 调用堆栈的作用域层次结构。
  • 运行空间规定了给定 PS 实例可以访问的内置功能。运行空间可以跨越网络边界。
  • 会话是 Powershell 的特定实例。这些也可以跨越网络边界。
  • 应用程序域(或 AppDomain)包含已加载的程序集。在许多情况下,一旦数据被加载到 AppDomain 中,就无法卸载。必须将 AppDomain 弃置以换取新的。如果 PS 脚本通过另一个应用程序调用,则创建的 PS 实例会继承调用应用程序的 AppDomain。

谁能更好地解释这些概念?是否有某种维恩图或某种可以充实这些信息的东西?在线文档并不是很有帮助。

0 投票
0 回答
792 浏览

powershell - 使用 PowerShell 运行空间并行创建多个 VM

我在单个 VIServer 中从模板创建多个 VMWARE VM 时遇到问题。在以下代码中,当在节流脚本中放置大于 1 的任何内容时,仅执行一个虚拟机并且不创建任何其他虚拟机(并行),保持会话似乎有问题,很可能只是重置它或在 $global:DefaultVIServer 中修改它.

下面的代码基于此线程中的问题: 线程不创建多个虚拟机(会话问题) 答案是始终保持相同的会话,但我无法让它工作

我还假设这篇文章与我遇到的问题相同: https ://communities.vmware.com/thread/463060?start=0&tstart=0

我想知道是否有人在使用 powershell 中的运行空间在 vmware 中创建多个虚拟机方面有有效的解决方案?