程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使 powershell 中的每个循环在不同的服务器上并行运行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使 powershell 中的每个循环在不同的服务器上并行运行?

开发过程中遇到使 powershell 中的每个循环在不同的服务器上并行运行的问题如何解决?下面主要结合日常开发的经验,给出你关于使 powershell 中的每个循环在不同的服务器上并行运行的解决方法建议,希望对你解决使 powershell 中的每个循环在不同的服务器上并行运行有所启发或帮助;

我想使用下面的脚本对 500 个 VDI 执行磁盘清理,并使用下面的脚本创建一个包含 VDI 状态和磁盘空间详细信息的正确报告。但我想在所有 VDI 上并行运行清理,而不是一个接一个地运行每个循环..因此我尝试过 foreach -parallel 但它不起作用。请建议我如何修改此脚本以在所有 VDI 上并行执行清理

$inputfile="H:\Ignio\Lastlogon\vdi List 3.csv"
$AllVDI = Get-Content $inputfile
$collection = @()
$file = "C:\report.csv"
$starters = (Get-Date)

ForEach-Object -parallel ($VDI in $AllVDI){

 if((Test-Connection -Computername $VDI -count 1 -ErrorAction 0)) {
     $Isonline = "Online"
 if((Test-WSMan -Computername $VDI -ErrorAction 0)){
     $Remoting = "Enabled"
Invoke-Command -Computername $VDI -Credential $cred -ScriptBlock {

                             Stop-Service -name wuauserv -Force -Confirm:$false -ErrorAction Ignore -WarningAction Ignore
                             Remove-Item -Path "C:\windows\Temp\*" -Recurse -Force -ErrorAction Ignore
                             Remove-Item -Path "C:\windows\Softwaredistribution\download\*" -Recurse -Force -ErrorAction Ignore
                                   Start-Service -name wuauserv -Confirm:$false -ErrorAction Ignore    }
    $Space = Invoke-Command -Computername $VDI -Credential $cred  -ScriptBlock {Get-WmiObject Win32_Logicaldisk -Filter "deviceid='C:'"}|Select-Object Systemname,@{ name = "Drive" ; Expression = { ( $_.deviceid ) } },@{ name = "Size (GB)" ; Expression = {"{0:N1}" -f ( $_.Size / 1gb)}},@{ name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f ( $_.Freespace / 1gb ) } },$free = $Space.'FreeSpace (GB)'
     $Size = $Space.'Size (GB)'
     $Drive=$Space.Drive
     $Action="     Yes"
                                     
 }
    
 else {$Remoting = "Disabled";}
 }
    
 else {$Isonline = "Offline";}
 $object = [PSCustomObject]@{
                
             'VDI' = $VDI
             'Status'="$Isonline"
             'WinRM'="$Remoting" 
             'CleanUp Performed'=$Action
             'Drive'=$Drive
             'Size (GB)'=$Size
             'FreeSpace (GB)'= $free
             }
 $collection += $object
                 
 }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的使 powershell 中的每个循环在不同的服务器上并行运行全部内容,希望文章能够帮你解决使 powershell 中的每个循环在不同的服务器上并行运行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: