- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在我的应用程序中添加一些相当有限的PowerShell支持:我希望能够定期运行用户定义的PowerShell脚本并显示任何输出,并且(最终)能够处理进度通知和用户提示请求。我不需要命令行式的交互式支持,也不需要远程访问或运行多个同时运行的脚本的功能,除非用户脚本本身是在我托管的 shell 中执行的。我最终将要异步地或在后台线程上运行脚本,并可能用一些初始变量和cmdlet来为shell播种,但这很可能会获得“幻想”。
我一直在阅读MSDN documentation about writing host application code,但是虽然它愉快地说明了如何创建PowerShell
对象,Runspace
,RunspacePool
或Pipeline
,但是没有迹象表明为什么有人会选择这些方法中的任何一种来代替另一种方法。
我认为我只能采用这两种方法中的一种,但是我希望获得一些反馈,以了解哪种方法更合适:
PowerShell shell = PowerShell.Create();
shell.AddCommand(/* set initial state here? */);
shell.AddStatement();
shell.AddScript(myScript);
shell.Invoke(/* can set host! */);
Runspace runspace = RunspaceFactory.CreateRunspace(/* can set host and initial state! */);
PowerShell shell = PowerShell.Create();
shell.Runspace = runspace;
shell.AddScript(myScript);
shell.Invoke(/* can set host here, too! */);
PSHost
是必需的
EnterNestedPrompt()
派生的类方法之一,我不知道我运行的用户定义脚本是否可能导致调用该脚本。如果可以,那么我将负责“启动一个新的嵌套输入循环”(
as per here)...如果这影响到上方的路径,那么也很高兴知道。)
最佳答案
这些是什么?
Get-ChildeItem
将输出从
Where-Object
“管道”到
|
进行过滤:
Get-ChildItem | Where-Object {$_}
Get-Runspace
获取输出)。它定义了powershell session 的状态。因此,运行空间的
InitialSessionState
对象/属性。您可能决定在Powershell中使用其自己的运行空间创建一个新的Powershell session ,以启用一种多线程。
关于powershell - 托管PowerShell:PowerShell与Runspace与RunspacePool与管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329448/
[Powershell]::create()-方法在“当前或新运行空间”中创建一个新的PowerShell-“Instance”。 有人可以解释一下进程,实例,运行空间和(可能是线程)在这方面如何相互
我试图理解为什么此代码将在Powershell ISE中运行,而不是在Powershell控制台中运行 function close-window (){ # close $hash.
我正在运行以下代码: RunspaceConfiguration config = RunspaceConfiguration.Create(); PSSnapInException warning;
我正在编写一个程序,它将在远程机器上运行一个程序。我已经安装了 windows sdk 并成功上传了我的文件现在我想远程运行更改目录并使用执行命令电源外壳。 程序编译并运行,但在答案变量中显示:“方法
我正在尝试使用 C# 在运行空间中执行带有参数的 Powershell 文件。不幸的是我得到以下输出: A command that prompts the user failed because t
我使用 WPF 和 Runspaces 编写了一个小应用程序,但遇到了一些困难。 $Runspace = [runspacefactory]::CreateRunspace() $Runspace.A
控制台应用程序: class Program { static void Main() { using (var runSpace = RunspaceFactory.
运行作业时,我正在寻找等效的PowerShell管道重定向*>&1。 我大致像这样运行作业: $Instance = [PowerShell]::Create() $Instance.
我正在尝试编写一个控制台应用程序来管理 Office 365 中的用户许可选项。我将运行空间与 MSOL powershell 模块结合使用。基本上,当我在命令参数中传递禁用计划列表时,我能够管理除
我正在尝试将我为通过远程 Powershell 以编程方式与 Exchange 2010 交互而编写的一些新代码集成到现有的 WinForms 应用程序中。我的代码在一个独立的测试应用程序中工作,但是
尝试启动Powershell时,出现以下消息: The shell cannot be started. A failure occurred during initialization: Canno
我有一个 MVC 网络应用程序,它显示了我们 AD 中用户的一些信息。 AD 与 Office 365 同步,因此使用 UPN 我可以使用 Windows PowerShell cmdlets for
背景 我正在编写一个以编程方式执行 PowerShell 脚本的应用程序。此应用程序具有自定义 PSHost 实现,以允许脚本输出日志记录语句。目前,我看到的行为是 一些 请求被正确转发到我的自定义
我是 StackOverflow 的活跃读者,因为它通常可以帮助我解决所有问题。 但是对于我的第一个问题,我将向您寻求有关 Powershell 中运行空间的帮助,特别是针对内存管理。 我创建了一些带
我正在尝试在运行某些脚本之前设置环境。这个环境由两部分组成。 一些我想预先加载的模块 一个充满特定模块的目录,可以通过简单的“导入模块” 加载 我可以为正在“预加载”的模块指定绝对路径。 我正在创建一
我需要一个调用内部Web服务的高性能脚本。因此,我编写了一个powershell脚本来创建运行空间线程,每个运行空间线程都向一个通用Web服务代理对象(New-WebServiceProxy)发出请求
在自定义 c# cmdlet 中创建新的 RunSpace 是否被认为是不好的做法(或者是否有特定的理由不这样做)?例如,我有一个自定义 Cmdlet,如下所示,需要调用现有的 cmdlet,我想知道
尝试在 C# 中使用 Azure cmdlet,除了特定的“Get-RoleInstanceCount”(Azure)之外,一切正常。 Azure cmdlet 启动时会运行以下命令: C:\Wind
我需要使用 powershell 将文件从 Azure VM 上的某个位置复制到我的本地计算机。例如,虚拟机上的 C:\tmp 到本地计算机上的 C:\tmp 该应用程序是使用系统自动化的 C#。目前
我当时在 ASP.NET MVC 中开发一个简单的记录管理 Web 应用程序。构建成功。但是,当我转到程序包管理器控制台时,我总是会收到此错误。 The type initializer for 'S
我是一名优秀的程序员,十分优秀!