问题标签 [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 回答
516 浏览

c# - 从 C#.net 代码调用 Powershell 脚本两次

我有以下从 C#.net 服务调用的代码,导致两次调用 powershell 脚本。

我的代码有什么问题吗?

0 投票
0 回答
453 浏览

wpf - 为什么从 powershell.exe -file 运行时我的 GUI 不出现?

我正在使用 WPF 使用此处显示的方法编写 Powershell 脚本:http: //learn-powershell.net/2012/10/14/powershell-and-wpf-writing-data-to-a-ui-from-a-不同的运行空间/

当我从 Powershell 命令行中以“.\Test.ps1”执行它时,我的脚本运行完美。例如,如果我尝试从像这样的批处理文件启动相同的脚本:

Powershell 启动后不久退出,不显示 GUI。我猜这与运行空间有关,但任何建议将不胜感激。

谢谢!

0 投票
0 回答
95 浏览

c# - Management.Automation 要求作为计划任务运行

我使用 System.Management.Automation.Runspaces.Runspace 在 C# 中编写了一个应用程序,以使用 Exchange Cmdlet 自动执行任务。该应用程序使用为打开运行空间提供的 PSCredential 集配置的用户名和密码,并以交互方式使用它。运行空间正在 Exchange CAS 阵列上启动远程 PS 会话。

我已将凭据集包含在“本地管理员”和“批量登录”角色中,但无法使用计划任务运行应用程序。服务帐户凭据可以访问 Exchange cmdlet。

计划任务按应有的方式“触发”,但应用程序无法初始化运行空间。

有谁知道服务帐户凭据需要什么才能将其作为计划任务运行?

0 投票
2 回答
3565 浏览

c# - C# PowerShell 与 RunspacePool - 如何导入 Exchange Cmdlet,如 Get-Mailbox?

我目前正在构建一个 Windows 服务,它将在一些请求进入时执行 PowerShell 命令。将会有很多请求进来,所以我采用了以下代码:Using Powershell RunspacePool multithreaded to remote server from C#

我没有使用 WSManConnectionInfo,而只是使用 New-PSSession。请参阅此问题末尾的我的代码。

这似乎适用于所有常规命令,但之前使用 Exhange Cmdlet 并执行 Import-PSSession 的命令。我不想在每次脚本运行时都导入 Cmdlet,但我没有从 C# 获得导入权。调用后,PowerShell ErrorStream 还指出术语“Get-Mailbox”是未知的。我不明白为什么导入不起作用以及我需要做什么。

我曾经工作过一次,但只有一个运行空间。移动到 RunspacePool 后,我无法让它再次工作。

任何帮助将不胜感激。

编码:

简短的脚本:

脚本就是这样工作的,但是当我尝试注释掉 Import-PSSession 部分时,我得到了未知术语 Get-Mailbox 错误。

在此先感谢和最好的问候 Gope

0 投票
3 回答
13308 浏览

c# - C# Runspace Powershell(交互式)

我正在尝试使用 C# 在运行空间中执行带有参数的 Powershell 文件。不幸的是,我得到以下输出:

提示用户的命令失败,因为主机程序或命令类型不支持用户交互。尝试支持用户交互的主机程序,例如 Windows PowerShell 控制台或 Windows PowerShell ISE,并从不支持用户交互的命令类型(例如 Windows PowerShell 工作流)中删除与提示相关的命令。

我能做什么?

当前的 c# 代码。这需要执行将在 PS 文件中的命令,并且需要返回一个 json 字符串。

PS代码:

0 投票
1 回答
3289 浏览

multithreading - 利用同步哈希表的结果(Runspacepool 6000+ 客户端)

改编一个脚本来执行多种功能,从测试连接开始收集数据,将达到 6000 多台机器,所以我使用的是从以下站点改编的 RunspacePools;

http://learn-powershell.net/2013/04/19/sharing-variables-and-live-objects-between-powershell-runspaces/

数据出来如下,我想把它排序成一个数组(我认为这是术语),所以我可以通过结果对数据进行排序。这将适用于从序列号到 IAVM 数据的多个其他功能。

有什么办法可以使用逗号分隔的数据并将下面的值吐到列中?IE

附加值目前并不那么重要,只是添加和提取值的能力。

感谢您的帮助!

当前代码

0 投票
1 回答
1227 浏览

c# - 为什么无法为远程 RunspacePool 传递 InitialSessionState?

为什么以下方法没有接受RunspaceConnectionInfo(以指定远程服务器信息)以及InitialSessionState的重载?

http://msdn.microsoft.com/en-us/library/system.management.automation.runspaces.runspacefactory.createrunspacepool(v=vs.85).aspx

完整的上下文:

我正在构建一个 RunspacePoolCache,它将缓存使用 RunspaceFactory 创建的远程 RunspacePools。缓存以远程服务器信息为键。直到池的 RunspacePoolStateInfo.State 为 Open,相同的 RunspacePool 将用于在同一远程服务器上执行 Powershell 脚本。(无耻的插头:这行得通吗?)

现在,我想添加一组对创建的 RunspacePool 通用的 Powershell 管理单元。在执行的脚本中添加管理单元有时会导致以下异常:

即使我在 Powershell 脚本中执行以下操作(但不经常),也会发生这种情况:

这就是我试图通过InitialSessionState加载管理单元的地方。但是从提供的一组方法来看,似乎 InitialSessionState 只能在创建本地 RunspacePools 时指定。

0 投票
1 回答
594 浏览

c# - 运行空间 New-MsolLicenseOptions 命令参数

我正在尝试编写一个控制台应用程序来管理 Office 365 中的用户许可证选项。我将运行空间与 MSOL powershell 模块结合使用。基本上,当我在命令参数中传递禁用计划列表时,我能够管理除 -DisabledPlans 之外的所有用户许可要求。

以下是 PowerShell 命令,它可以正常工作并按预期禁用所有计划

我构建这个运行空间命令参数如下

当我在运行空间中构建上面的命令参数并执行时,我收到以下{“无法分配此许可证,因为许可证选项无效。”}

但是,当我使用以下命令参数时,它成功禁用了服务计划

我一直在调试,我可以看到禁用列表对象中只存在一项,其值为 OFFICESUBSCRIPTION,SHAREPOINTWAC,EXCHANGE_S_ENTERPRISE,SHAREPOINTENTERPRISE,YAMMER_ENTERPRISE

我希望每个条目都有一个项目。我认为这可能是运行空间命令参数如何解释分隔符。

提前喝彩

0 投票
0 回答
342 浏览

c# - RunspacePool PowerShell not responding

I created a little WindowsService that uses a RunspacePool and executes PowerShell scripts with the associated Runspaces on request. This works great, but when the service doesn't get any requests for about 4.5 hours the scripts are not running anymore. The PowerShell shows that it has an error, but the Error-Stream is empty. Even building up a new RunspacePool after 3 hours did not work. I have no idea what the problem might be. Any help would be highly appreciated.

That's the code to create the runspacepool:

0 投票
3 回答
1957 浏览

powershell - 为什么我不能从 PowerShell.Streams.Error.add_DataAdded 写入错误?

我正在研究使用 Runspaces 进行并行运行。目前,我正在尝试从我可能运行的任何脚本中取回消息,以帮助我诊断问题,在它们起源的同一流类型中:详细流中的详细消息等。到目前为止,我可以获得警告和详细消息,但每当我尝试使用 Write-Error (甚至只是访问 ErrorRecord 对象属性)时,控制台都会锁定。

最后有一个示例,它将展示我所看到的。目前,该脚本产生四条消息:

如果您取消注释$ps1.Streams.Error.add_DataAdded({})scriptBlock 中的任何评论,它会在此时锁定。谁能解释为什么和/或给我一个解决方法/修复?

我追求的是这样的:

这是脚本:

如果还有其他方法可以做到这一点,我愿意接受!