【发布时间】:2023-02-06 06:07:06
【问题描述】:
您好,我有一个脚本可以从一组办公室位置获取所有用户。然后我运行一个脚本来获取用户登录的所有服务器,并获取 Windows 事件以检查用户是否已登录到计算机。这工作正常,该脚本有时需要很长时间才能让 800 多个用户检查 100 多台服务器。所以脚本将停止。我需要一种重新启动脚本的方法,但不是从我的 $USERS 变量的顶部重新开始。我将登录 inn 的用户的值导出到一个 csv 文件中。我导入此文件并读取最后一个条目用户。然后我希望脚本从该用户条目索引继续。
所以我想有一种方法来检查用户,然后将索引设置为从用户号 3 开始,然后处理其余的 4 - 结束。
$lastuser = (import-csv -path "Path to csv file").UserName[-1]
Ray
Tod
Burt # Lets say the script terminates here, I want it to continue from here and then procsess the rest
Ali
Mohamed
Annie.....
【问题讨论】:
-
我不会那样做的。要么收集用户列表并处理它们,要么开始工作
Start-Job执行您的操作并继续循环。 -
您有一个数组,可以使用 SKIP(integer) 忽略已处理的项目。所以通常你会将跳过设置为零来完成整个列表。当您恢复时,您可以将跳过值设置为更大的数字
-
你能分享你目前使用的代码吗?如上所述,可能有更好的方法来实现这一点。
-
为什么会停止?您可以尝试工作流程。
-
感谢您提供的所有答案 :) 正如 cmets 中提到的那样,是的,我尝试使用 start-job witch 效果更好。 js2010 很好,因为我在活动的 RDP 会话中运行它,会话断开连接..当我回来时,Powershell 脚本没有继续并且没有 CPU 负载.. ???服务器在 knight 重启,这样就发生了 :P
标签: powershell loops variables