Exchange Powershell 脚本占用本地 pc 上的所有系统资源
Exchange Powershell Script consumes all system resources on local pc
我回来了!
无论如何,我是 运行 一个交换脚本,用于查找包含一组特定用户的特定关键字列表的电子邮件,这些用户在下面的脚本中定义为用户和术语,并且它有效。然而,在 运行 大约一个小时后,它消耗了令人讨厌的内存量,12 - 14 GB。 运行 非常慢。
它确实在 3 GB 和 14 GB 之间变化,所以我不知道这是正常的预期行为还是我的脚本有问题。我知道我在搜索邮箱功能中使用了一个排序(?)折旧的命令行开关,但我只搜索了大约 300 个用户和 21 个术语,所以我认为我不需要使用 new-mailboxsearch 命令行开关.
参考脚本
$users = Get-Content x:\xxx\xxx\users.txt
$terms = Get-Content x:\xxx\xxx\Terms.txt
ForEach ($term in $Terms) {
ForEach ($line in $users) {
$Results = Search-Mailbox -Identity $line -SearchQuery $term -TargetMailbox SearchResults2 -TargetFolder $term -LogLevel Full | Select Identity,TargetFolder,ResultItemsCount
Add-Content -Path x:\xxx\xxx\outputfile.txt -Value "$($term);$($line);$($Results.TargetFolder);$($Results.ResultItemsCount)"
}
}
无论如何,我们一如既往地非常感谢您的帮助。
谢谢!
foreach-object 更公平吗?
$terms | ForEach { $term = $_
$users | ForEach { $line = $_
..
}
}
问题不在于脚本本身,而是我们所在的环境运行。
出于某种原因 运行 集成脚本环境 Powershell ISE 中的脚本导致脚本疯狂吸食大量内存,最终导致系统停止运行。通过简单地在 ISE 之外启动它,我们能够让脚本正常运行:
感谢大家的回复!
我回来了!
无论如何,我是 运行 一个交换脚本,用于查找包含一组特定用户的特定关键字列表的电子邮件,这些用户在下面的脚本中定义为用户和术语,并且它有效。然而,在 运行 大约一个小时后,它消耗了令人讨厌的内存量,12 - 14 GB。 运行 非常慢。
它确实在 3 GB 和 14 GB 之间变化,所以我不知道这是正常的预期行为还是我的脚本有问题。我知道我在搜索邮箱功能中使用了一个排序(?)折旧的命令行开关,但我只搜索了大约 300 个用户和 21 个术语,所以我认为我不需要使用 new-mailboxsearch 命令行开关.
参考脚本
$users = Get-Content x:\xxx\xxx\users.txt
$terms = Get-Content x:\xxx\xxx\Terms.txt
ForEach ($term in $Terms) {
ForEach ($line in $users) {
$Results = Search-Mailbox -Identity $line -SearchQuery $term -TargetMailbox SearchResults2 -TargetFolder $term -LogLevel Full | Select Identity,TargetFolder,ResultItemsCount
Add-Content -Path x:\xxx\xxx\outputfile.txt -Value "$($term);$($line);$($Results.TargetFolder);$($Results.ResultItemsCount)"
}
}
无论如何,我们一如既往地非常感谢您的帮助。
谢谢!
foreach-object 更公平吗?
$terms | ForEach { $term = $_
$users | ForEach { $line = $_
..
}
}
问题不在于脚本本身,而是我们所在的环境运行。
出于某种原因 运行 集成脚本环境 Powershell ISE 中的脚本导致脚本疯狂吸食大量内存,最终导致系统停止运行。通过简单地在 ISE 之外启动它,我们能够让脚本正常运行:
感谢大家的回复!