[玩转系统] Windows PowerShell02 示例
作者:精品下载站 日期:2024-12-14 02:45:59 浏览:14 分类:玩电脑
Windows PowerShell02 示例
此示例演示如何使用运行空间池的运行空间异步运行命令。该示例生成命令列表,然后运行这些命令,同时 Windows PowerShell 引擎在需要时从池中打开运行空间。
要求
- 此示例需要 Windows PowerShell 2.0。
示范
该示例演示了以下内容:
- 创建一个 RunspacePool 对象,该对象具有允许同时打开的最小和最大运行空间数。
- 创建命令列表。
- 异步运行命令。
- 调用 System.Management.Automation.Runspaces.Runspacepool.Getavailablerunspaces* 方法来查看有多少运行空间是空闲的。
- 使用 System.Management.Automation.Powershell.Endinvoke* 方法捕获命令输出。
例子
此示例演示如何打开运行空间池的运行空间,以及如何在这些运行空间中异步运行命令。
namespace Sample
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
/// <summary>
/// This class contains the Main entry point for the application.
/// </summary>
internal class PowerShell02
{
/// <summary>
/// Runs many commands with the help of a RunspacePool.
/// </summary>
/// <param name="args">This parameter is unused.</param>
private static void Main(string[] args)
{
// Creating and opening runspace pool. Use a minimum of 1 runspace and a maximum of
// 5 runspaces can be opened at the same time.
RunspacePool runspacePool = RunspaceFactory.CreateRunspacePool(1, 5);
runspacePool.Open();
using (runspacePool)
{
// Define the commands to be run.
List<PowerShell> powerShellCommands = new List<PowerShell>();
// The command results.
List<IAsyncResult> powerShellCommandResults = new List<IAsyncResult>();
// The maximum number of runspaces that can be opened at one time is
// 5, but we can queue up many more commands that will use the
// runspace pool.
for (int i = 0; i < 100; i++)
{
// Using a PowerShell object, run the commands.
PowerShell powershell = PowerShell.Create();
// Instead of setting the Runspace property of powershell,
// the RunspacePool property is used. That is the only difference
// between running commands with a runspace and running commands
// with a runspace pool.
powershell.RunspacePool = runspacePool;
// The script to be run outputs a sequence number and the number of available runspaces
// in the pool.
string script = String.Format(
"write-output ' Command: {0}, Available Runspaces: {1}'",
i,
runspacePool.GetAvailableRunspaces());
// The three lines below look the same running with a runspace or
// with a runspace pool.
powershell.AddScript(script);
powerShellCommands.Add(powershell);
powerShellCommandResults.Add(powershell.BeginInvoke());
}
// Collect the results.
for (int i = 0; i < 100; i++)
{
// EndInvoke will wait for each command to finish, so we will be getting the commands
// in the same 0 to 99 order that they have been invoked withy BeginInvoke.
PSDataCollection<PSObject> results = powerShellCommands[i].EndInvoke(powerShellCommandResults[i]);
// Print all the results. One PSObject with a plain string is the expected result.
PowerShell02.PrintCollection(results);
}
}
}
/// <summary>
/// Iterates through a collection printing all items.
/// </summary>
/// <param name="collection">collection to be printed</param>
private static void PrintCollection(IList collection)
{
foreach (object obj in collection)
{
Console.WriteLine("PowerShell Result: {0}", obj);
}
}
}
}
参见
编写 Windows PowerShell 主机应用程序
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag