如何暂停Foreach PowerShell循环 [英] How to pause a foreach PowerShell loop

查看:11
本文介绍了如何暂停Foreach PowerShell循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在下面创建了这个简单的脚本,用于遍历包含用户列表的文件,并为文件中的每个用户应用配额规则。

它可以工作,但在处理过程中有时会失败,因为我认为文本文件中的大量用户有时会阻止访问。有没有办法让循环在Foreach循环的每次迭代后或在Foreach循环的五次迭代之后暂停5-10秒,直到文件服务器完全更新了这些配额,然后转到文件中的下一个用户?

ForEach ($adname in Get-Content "C:UsersmickDesktopscriptsstaff.txt")
{
    Invoke-NcSsh -Command "volume quota policy rule create -vserver FS-ONE -policy-name default -volume data -type user -target $adname -qtree """" -user-mapping off -disk-limit 3GB -soft-disk-limit 2GB -threshold 3GB"
}

Start-NcQuotaResize -vserver FS-ONE -volume data

推荐答案

使用计数器Start-Sleep

$UserCount = 0
foreach($adname in Get-Content "C:UsersmickDesktopscriptsstaff.txt")
{
    # Sleep 3 seconds every 5 runs
    if(++$UserCount % 5 -eq 0) 
    {
        Start-Sleep -Seconds 3
    }

    Invoke-NcSsh -Command "volume quota policy rule create -vserver FS-ONE -policy-name default -volume data -type user -target $adname -qtree """" -user-mapping off -disk-limit 3GB -soft-disk-limit 2GB -threshold 3GB"
}

这篇关于如何暂停Foreach PowerShell循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆