当前位置: 首页 > news >正文

多线程异步执行脚本

 

获取远程计算机信息:

 1 $d=get-date
 2 $servers="10.4.34.41","10.4.34.40","10.4.34.36","10.4.34.37","10.4.34.39"
 3 $serverpass="Dell1950"
 4 $UserName="Administrator"
 5 
 6 #定义线程数量
 7 $throttleLimit = 5
 8 $SessionState = [system.management.automation.runspaces.initialsessionstate]::CreateDefault()
 9 $Pool = [runspacefactory]::CreateRunspacePool(1, $throttleLimit, $SessionState, $Host)
10 $Pool.Open()
11 
12 #脚本块 
13 $ScriptBlock = {
14 param($server,$serverpass,$username)
15 $Password = ConvertTo-SecureString $serverpass -AsPlainText –Force
16 $cred = New-Object System.Management.Automation.PSCredential($UserName,$Password)
17 $cs = gwmi win32_computersystem -computer $server -Credential $cred
18 $cs.Name
19 }
20 
21 
22 $threads = @()
23 $handles = foreach ($server in $servers) {
24 $powershell = [powershell]::Create().AddScript($ScriptBlock).AddArgument($server).AddArgument($serverpass).AddArgument($username)
25 $powershell.RunspacePool = $Pool
26 $powershell.BeginInvoke()
27 $threads += $powershell
28 }
29 
30 
31 do {
32 $i = 0
33 $done = $true
34 foreach ($handle in $handles) 
35 {
36 if ($handle -ne $null) 
37 {
38 if ($handle.IsCompleted) 
39 {
40 $threads[$i].EndInvoke($handle)
41 $threads[$i].Dispose()
42 $handles[$i] = $null
43 } 
44 else {$done = $false}
45 }
46 $i++
47 }
48 if (-not $done) { Start-Sleep -Milliseconds 500 }
49 } until ($done)
50 
51 New-TimeSpan $d

==============================

进度提示:异步线程

 1 function Start-Progress {
 2   param(
 3     [ScriptBlock]
 4     $code
 5   )
 6    
 7   $newPowerShell = [PowerShell]::Create().AddScript($code)
 8   $handle = $newPowerShell.BeginInvoke()
 9    
10   while ($handle.IsCompleted -eq $false) {
11     Write-Host '.' -NoNewline
12     Start-Sleep -Milliseconds 500
13   }
14    
15   Write-Host ''
16    
17   $newPowerShell.EndInvoke($handle)
18    
19   $newPowerShell.Runspace.Close()
20   $newPowerShell.Dispose()
21 }

 

From:http://www.pstips.net/speeding-up-powershell-multithreading.html

转载于:https://www.cnblogs.com/dreamer-fish/p/3799242.html

相关文章:

  • QQ浏览器--x5内核定制meta标签说明
  • 【闲聊产品】之五:谁来背黑锅?
  • js 数组排除重复值(string)
  • 最简单的兼容firefox和ie的锚点方法
  • ENTBOOST 2014.180L发布,开源企业IM免费企业即时通讯
  • EXTJS项目实战经验总结一:日期组件的change事件:
  • [DevEpxress]GridControl 显示Gif动画
  • [逆向基础] 浮​点​数​到​二​进​制​的​转​换
  • 多线程:volatile
  • android网络编程——http post
  • linux文件和目录权限的设置
  • c/c++面试题(5)(c++重要的概念详解)
  • 执行计划基础 动态采样
  • 浅谈UML的概念和模型之UML九种图
  • iOS开发百问(4)
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 230. Kth Smallest Element in a BST
  • gcc介绍及安装
  • Javascript 原型链
  • js 实现textarea输入字数提示
  • python_bomb----数据类型总结
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vuex 学习笔记 01
  • 番外篇1:在Windows环境下安装JDK
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 聊聊flink的BlobWriter
  • 每天10道Java面试题,跟我走,offer有!
  • 强力优化Rancher k8s中国区的使用体验
  • 如何解决微信端直接跳WAP端
  • 深度学习入门:10门免费线上课程推荐
  • 使用Gradle第一次构建Java程序
  • 使用SAX解析XML
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​【已解决】npm install​卡主不动的情况
  • #pragma 指令
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (70min)字节暑假实习二面(已挂)
  • (补)B+树一些思想
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (译)2019年前端性能优化清单 — 下篇
  • (转)Unity3DUnity3D在android下调试
  • (转)德国人的记事本
  • (转)为C# Windows服务添加安装程序
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net下的富文本编辑器FCKeditor的配置方法
  • .Net小白的大学四年,内含面经
  • @Autowired和@Resource的区别
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [20181219]script使用小技巧.txt
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [Angular] 笔记 8:list/detail 页面以及@Input