问题标签 [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.
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。
powershell - 如何在 Powershell 运行空间中定义函数并执行它
我想在 powershell 中定义一个函数并在不同的运行空间中执行它。我试过这个:
文件 test.log 中没有出现“新运行空间”消息有什么建议做这样的事情吗?谢谢
winforms - 检查表单是否已打开 Winform / Powershell
我正在搜索如何检查是否使用 Powershell 打开了 winform 表单,例如VB.net 的响应。我正在使用两个运行空间,当我的表单打开时,我需要启动第二个。
我的第一个运行空间用于 GUI。UI创建完成后,我打开了它
然后,我正在尝试测试是否从 PowerShell 主线程打开此表单(来自 VB.net 的片段):
powershell - New-PSSession 并行执行
在我们的脚本可以继续之前,我们有两个 PSSession 需要建立并导入到当前会话中。两个步骤都需要大约 10 - 15 秒,串联运行时总共需要 20 - 30 秒。
是否可以在单独的运行空间中运行 New-PSSession,然后以某种方式将该已建立的会话导入父进程?
例如从此改变:
可能是这样的(警告这不起作用):
最终目标是让这花费更少的时间,如果我们并行使用 New-PSSession,它会在 10 - 15 秒内完成,而不是串联的 20 - 30 秒。我会对任何可以实现这一点的答案感到满意,它不需要使用运行空间。
编辑:添加目标
powershell-4.0 - 将数组散列到 RunSpace
将数组对象从我的 Main 脚本传递到 RunSpace 代码块时,我遇到了奇怪的行为。我正在尝试使用Where-Object
RunSpace 代码块中的语句检索值。但会产生与 null 方法相关的错误。
如果我在传递给运行空间之前对数组执行相同的Where-Object
语句,那么它可以工作吗?
例如,如果我在将数组传递给 RunSpace 之前对数组执行以下操作,则它可以正常工作:
如果我将此数组传递给运行空间并执行相同的操作,则会失败:
我已经比较了两个数组对象并且它们具有完全相同的属性?检查时ARRAY和ARRAY1没有区别Get-Member
吗?到底是怎么回事?
c# - .net (C#) 中的持久运行空间
我想在一些网页代码中创建一个运行空间,Power shell 会话将在其中运行。我希望在用户打开页面时创建这个运行空间,并保持打开状态直到它关闭。因此,例如下面的代码是一键单击。但每次我运行 power shell 命令时,我都需要运行
这需要几秒钟,并且只是设置会话,我在哪里可以创建运行空间和 powershell 对象,以便我可以从代码中的任何位置调用它,而不必在每次我想使用它时重新创建它。在控制台应用程序中,我会在“主”类中噘嘴,但似乎网页/应用程序具有不同的结构
我提出的解决方案
所以我想我会尝试制作一个静态的对象,我可以调用它。我认为通过创建我第一次调用它的静态调用将运行“静态 powers()”构造,但任何进一步的调用只会调用方法中的代码部分。但是不确定我是否完全正确。
powershell - 启动 PowerShell 时出错 - 无法执行操作,因为对象“运行空间”已被释放
尝试启动 powershell 时,我收到以下消息:
外壳无法启动。初始化期间发生故障:无法执行操作,因为对象“运行空间”已被释放。对象名称:“运行空间”。
我似乎无法通过谷歌找到任何解决方案。有谁知道是否可以从头开始卸载/重新安装 powershell?
最好的,乔恩
powershell - 检查机器上是否已经打开了 RunspacePool
我有一个在 VM 上运行 Powersell 脚本的进程。此脚本在 VM 上定义了一个 RunspacePool,并根据该 VM 的资源能力设置阈值(运行空间数)。这个过程是重复的,所以我不希望它在该 VM 上已经定义和打开一个 RunspacePools 时继续定义和打开
在 Powershell 脚本的开头,我尝试通过调用 RunspacePoolStateInfo 或 RunspacePoolAvailability 属性来检查是否已经定义了 Runspacepool。但是这些没有被标识为 Runspacepool 对象本身在进程打开以运行脚本的新窗口中不可用
我基本上是在寻找一种方法来通过使用 Powershell 脚本来识别在 VM 上打开了 RunspacePool
powershell - Scope vs Runspace vs Session vs AppDomain
我正在努力为 PowerShell 划定界限。我非常有限的理解是这样的:
- 作用域包含用户/脚本定义的变量和函数,并且可以存在具有 PS 调用堆栈的作用域层次结构。
- 运行空间规定了给定 PS 实例可以访问的内置功能。运行空间可以跨越网络边界。
- 会话是 Powershell 的特定实例。这些也可以跨越网络边界。
- 应用程序域(或 AppDomain)包含已加载的程序集。在许多情况下,一旦数据被加载到 AppDomain 中,就无法卸载。必须将 AppDomain 弃置以换取新的。如果 PS 脚本通过另一个应用程序调用,则创建的 PS 实例会继承调用应用程序的 AppDomain。
谁能更好地解释这些概念?是否有某种维恩图或某种可以充实这些信息的东西?在线文档并不是很有帮助。
powershell - 使用 PowerShell 运行空间并行创建多个 VM
我在单个 VIServer 中从模板创建多个 VMWARE VM 时遇到问题。在以下代码中,当在节流脚本中放置大于 1 的任何内容时,仅执行一个虚拟机并且不创建任何其他虚拟机(并行),保持会话似乎有问题,很可能只是重置它或在 $global:DefaultVIServer 中修改它.
下面的代码基于此线程中的问题: 线程不创建多个虚拟机(会话问题) 答案是始终保持相同的会话,但我无法让它工作
我还假设这篇文章与我遇到的问题相同: https ://communities.vmware.com/thread/463060?start=0&tstart=0
我想知道是否有人在使用 powershell 中的运行空间在 vmware 中创建多个虚拟机方面有有效的解决方案?