Сравните элемент массива с предыдущим элементом в PowerShell

Как был сказан, легкая часть ответа является вторичным указателем MX. Твердые части обычно, сколько (это зависит), и где разместить любые вторичные серверы SMTP.

Если Вы расположены в области, которая подвержена интернет-отключениям электричества, или Ваш поставщик услуг хостинга подвержен отключениям электричества (все еще происходит), то принятие мер к вторичному хостингу SMTP в стабильном местоположении является "Хорошей вещью сделать" TM.

Если у Вас только есть одна интернет-ссылка, то продвижение Вашей цепочки поставщика самому стабильному поставщику (обычно Ваш поставщик услуг) было бы лучшим действием. Это также допускает почтовую промежуточную буферизацию, когда Ваш сайт происходит офлайн из-за проблем вне Вашего управления, (Природа, утилиты, конструкция, и т.д.). Доступность и стоимость варьируются поставщиком, но сервис обычно является договорным объектом.

Если вторичный хост SMTP настроен, чтобы принять весь почтовый и только передать Вам, то проблема СПАМА и Вирусной проверки становится единственной точкой, но это редко имеет место, и у Вас должно было бы быть это как часть Вашего вторичного соглашения, таким образом, Ваш домен не отмечается как продвижение из-за бездействия.

Несколько Интернет-провайдеров позволяют намного более интересный набор решений этого вопроса.

0
задан 16 September 2009 в 15:30
4 ответа

Сравнить текущую запись в предыдущую:

$preventry = ""
$newarray = $()
foreach ($entry in $entries) {
    if ($entry -ne $preventry) { $newarray += @($entry) }
    $preventry = $entry
}

Полученный массив $newarray содержит все содержание $entries но со смежными удаленными дубликатами.

2
ответ дан 4 December 2019 в 13:13

Избранный объект является Вашим другом для этого вида задачи.

Вот то, как можно устранить любые дубликаты из набора строк:

[123] PS↑ C:\> 'a','b','b','c','d','e','e','f','g' | Select-Object -Unique
a
b
c
d
e
f
g

Если Вы работаете с объектами с несколькими свойствами, хотя, который не будет очень полезен, если строковое представление объекта будет тем же для каждого объекта (например, Получать-сервис | Избранный Объект - Уникальные возвраты один объект, потому что все объекты службы преобразовывают в Систему. ServiceProcess. ServiceController при преобразовании в строку, которая не может использоваться для однозначного определения сервиса). В случаях как этот необходимо указать, какое свойство Вы хотите проверить на уникальность.

Вот другой пример, который показывает Вам, как получить список уникальных добавочных номеров файлов в текущем каталоге:

Get-ChildItem | Select-Object -Property Extension -Unique

Один из этих двух методов должен помочь Вам получить уникальный набор, который Вы ищете.

1
ответ дан 4 December 2019 в 13:13
  • 1
    $entries = $entries | избранный объект - уникальный –  Paused until further notice. 16 September 2009 в 18:26
  • 2
    Между прочим, я получаю " позиционный parameter" ошибка из-за последовательности букв в конце Вашей команды. –  Paused until further notice. 16 September 2009 в 18:29
  • 3
    Сценарий isn' t обнаруживающийся правильно здесь. Что-то, чтобы сделать с символом новой строки, который используется. Последовательность букв после - Уникальный должна быть каждым на их собственной строке сразу ниже команды (они - вывод команды). –  Poshoholic 15 October 2009 в 22:19
  • 4
    Там, зафиксированный вывод теперь путем перемещения команды и вывода в блок кода. Спасибо за указание, что это didn' t вставляют правильно. –  Poshoholic 15 October 2009 в 22:31

Вы могли бы попробовать:

$entry | sort-object -unique
$entry | sort-object -property TimeWritten

(если это - соответствующее поле).

Идея состоит в том, чтобы избавиться от дубликатов, затем откладывает его в первоначальном заказе.

0
ответ дан 4 December 2019 в 13:13

Справка для Group-Object в Poweshell имеет очень похожий пример:

get-eventlog -logname system -newest 1000 | group-object -property {$_.TimeWritten - $_.TimeGenerated}

вы можете легко поменять местами некоторые параметры:

Get-EventLog system -after (Get-Date).adddays(-2) | ?{($_.EntryType -like "Error") -or ($_.EntryType -like "Warning")} | group -property index | ?{$_.count -gt 1}

Это получит все записи системного журнала за последние 48 часов, которые являются ошибками или предупреждениями, и сгруппируйте их по индексу. Это уникально присвоенный номер для каждой записи журнала, который вы можете использовать для идентификации дубликатов. Последняя часть просто отфильтровывает все уникальные записи и оставляет повторяющиеся.

Если вы хотите проверить уникальность сообщений, используйте это:

Get-EventLog system -after (Get-Date).adddays(-2) | ?{($_.EntryType -like "Error") -or ($_.EntryType -like "Warning")} | group -property messages -noelement

Это показывает количество уникальных сообщений в данном интервал журнала.

0
ответ дан 4 December 2019 в 13:13

Теги

Похожие вопросы