Проверка: http://soreddymanjunath.blogspot.in/2014/07/collection-was-modified-enumeration.html
Вот еще один пример для той же проблемы
if($web.IsMultilingual -eq $true )
{
foreach($cul in $web.SupportedUICultures)
{
if($cul.LCID -ne $webCul.LCID -and $cul.LCID -ne "1033")
{
$web.RemoveSupportedUICulture($cul)
}
}
$web.Update()
}
в первый раз, когда он пройдет через цикл, foreach удалит поддерживаемую культуру для первого времени, когдаон зацикливается на второй итерации, затем выдает исключение «Коллекция была изменена;Операция перечисления может не выполняться »,
Решение вышеуказанной проблемы - сохранить значения, измененные в Arraylist, и попытаться изменить их, что решит проблему. Здесь я храню Arraylist с именем enumcul и вставляю в него значения имодифицируя его ...
$enumcul=New-Object Collections.ArrayList
$i=0
if($web.IsMultilingual -eq $true )
{
foreach($cul in $web.SupportedUICultures)
{
if($cul.LCID -ne $webCul.LCID -and $cul.LCID -ne "1033")
{
$enumcul.Insert($i, $cul)
$i=$i+1
}
}
foreach( $k in $enumcul)
{
$web.RemoveSupportedUICulture($k)
$web.Update()
}