问题标签 [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# - 使用 C# 在运行空间中创建远程 Powershell 会话并加载模块
我想连接到远程 powershell 会话并在运行空间中加载模块。
我使用此链接获得了连接部分:- 在 c# 中创建远程 powershell 会话?
如何在运行空间中加载模块并调用该模块中的其他命令?
谢谢你。
c# - 无法在 C# 中使用不同帐户同时执行两个 Office 365 命令
我正在尝试使用 C# 同时查询两个不同 Office 365 帐户的用户。从两个 Powershell Windows 尝试或通过代码连接并获取一个又一个帐户时,它工作正常。但是在同时使用代码时不起作用。
在检查时我发现从 C# 尝试时只生成一个日志文件。但是从 PowerShell 窗口尝试时会生成两个不同的日志文件。
日志文件夹位置:%userprofile%\appdata\Local\Microsoft\Office365\Powershell
这意味着从代码运行时,即使有两个运行空间,它也像使用单个 PowerShell 窗口运行一样工作。
主要方法代码:
连接并获取用户的方法:
c# - PowerShell 通过 C# - 异步 RunspacePool - 已添加密钥
长期潜伏者(尤其是在这个问题上)。我一直在研究这个网站上与我的问题直接相关的异步帖子,但我没有找到解决方案。我还尝试了以下代码的许多不同变体,但均无济于事。
发生的事情是我ps.BeginInvoke()
在加载命令后异步执行,使用某种方法异步启动调用,它确实总是异步运行!但问题是(例如),执行的命令有时只会返回结果 10 次中的 2 次,有时 10 次中的 8 次。这是我正在执行的当前代码的示例:
我已经多次尝试不同的组合IASyncResult result = ps.BeginInvoke()
并等待该命令,但它的结果与上面的代码相同。还尝试将其放入var task = Task.Factory.FromAsync(ps.beginInvoke(), p => ps.EndInvoke(p));
样式块并添加到任务列表中,然后再次等待它们的所有执行.ConfigureAwait(false);
......结果相同!
那么结果如何呢?命令全部执行,但在尝试不成功时,将引发以下异常:
否则,它会很快返回结果。
我认为问题在于 PowerShell 会话正在尝试写入相同的内部输出对象,尽管它正在执行为
1.) 它是自己的新 PowerShell 实例
2.) 在由 RunSpace 池管理的不同运行空间中。
每次运行脚本时,此错误至少发生一次。有时它实际上会吐出 10 个组结果中的 8 个,有时它只对 1 个有效。
我怎样才能阻止这种碰撞的发生?我怀疑 PowerShell 内部发生了一些事情导致这种情况发生。
c# - 在 C# WPF 中保持 powershell 运行空间处于活动状态?
我正计划使用与 Exchange 服务器进行对话来构建Active Directory/Exchange
管理控制台。C#
powershell
DC
我想在应用程序启动时建立powershell
与这些服务器的连接,然后让它们保持活动状态,这样我就可以继续运行查询或脚本或其他任何东西,因为建立远程连接需要几秒钟的时间,而且这种情况根本行不通延迟你所做的一切。
我目前只是在测试一个本地powershell
运行空间,但是每次我向它发送命令时它都会关闭,并且在初始命令之后我无法重用它。
如何防止runspace
关闭,以便我可以一遍又一遍地使用它?
编辑:代码非常基本,只是创建一个运行空间,计划稍后在我完成基本功能时能够包含模块。这个想法是创建一个运行空间,并在调用执行 powershell 代码的函数时将该运行空间分配给另一个变量,以便我可以重用它,但我可能很愚蠢。目前我只有一个虚拟的“Get-Process”,当点击一个按钮和一个显示输出的文本框时发送。
powershell - 将 GUI 命令导出到 PowerShell 运行空间?
在托管 PowerShell 运行空间的 .NET 应用程序中,是否可以将主机应用程序功能导出到该运行空间,以便我拥有对我的 UI 产生影响的 PowerShell cmdlet?
我的目标只是能够从长时间运行的 PowerShell 脚本将进度消息报告回我的主机应用程序 UI(因为通过托管 PowerShell,我没有控制台窗口。)我想象的是:
C#:
电源外壳:
这可能吗?如果我做错了,很高兴听到不同的解决方案(事件?)
c# - C# start.process powershell 比原生 ps1 运行时间更长
我正在使用以下 C# 代码运行 PowerShell 脚本,该脚本在 C# 之外运行时会在一秒钟内运行,但在以下 C# 代码块中运行时间超过 9 秒。C# 代码在同一用户帐户下编译并作为 Windows 服务运行(通过whoami
在 PowerShell 脚本中输出进行测试。)
PowerShell 脚本从如下文件夹加载函数:
任何人都可以指出为什么从 C# 中执行脚本时脚本如此缓慢的方向吗?
结果:(首先从 c# 运行本机第二个)
使用时性能得到了更好的分配:
我注意到生成的 powershell.exe 首先尝试了 *32 C:\Windows\SysWOW64\WindowsPowerShell\v1.0 但实际上是 32 位,而 system32 中的 powershell.exe 是 64 位?
现在的区别是:0.5 秒 vs 1.1 秒
任何进一步的性能提升器都非常感谢
powershell - Powershell 'runspace' 不会从 Powershell 控制台运行
我试图了解为什么此代码将在 Powershell ISE 中运行,而不是在 Powershell 控制台中运行
从 ISE 运行它,您将获得 XAML 窗口出现的预期结果。保存文件并从控制台运行它,它会静默失败 将其复制并粘贴到控制台中,它会静默失败。
它包含一个带有同步哈希表的运行空间 因为它是 XAML,所以我将运行空间作为单线程单元启动。从控制台运行时尝试过 MTA 和 STA
目的是将这段代码用作启动屏幕的一部分。
c# - Get-MailboxPermission 异常调用“GetSteppablePipeline”
运行以下 PoweShell 命令时出现异常:
例外:
使用“1”参数调用“GetSteppablePipeline”的异常:“找不到自定义属性“参数”的类型。
确保已加载包含此类型的程序集。”
紧随其后的是
这让我ParameterBindingException
找不到与参数名称“CommandName”匹配的参数。
这是我的代码的一部分:
我将把上面的命令executeRemoteCommand
一一发送给所有用户。
powershell - 如何在主机控制台上显示运行空间子 powershell 对象流?
我有一些Powershell 对象(使用 创建[PowerShell]::Create()
)在我的 powershell 应用程序中充当线程。
如何在调用者的控制台上显示流数据(详细和错误流),在运行本身期间,而不仅仅是在线程终止之后?
c# - 从模块导入特定 cmdlet 以在 Runspacepool 中使用
在 C# 中,InitialSessionState 类提供了一种导入特定模块并使用“ImportPSModule”方法使其可用于运行空间池中的所有运行空间的方法。(但这会导入正在导入的模块中的所有 cmdlet)
要从模块中导入特定的 cmdlet,“Import-Module”命令接受参数“Cmdlet”,我们可以使用该参数仅从该模块导入特定的 cmdlet。如何在 Runspacepool 中实现此行为(仅从模块导入特定的 cmdlet)