Скрипт Powershell: список файлов с определенной датой изменения (сумма, если возможно) - PullRequest
0 голосов
/ 26 сентября 2018

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

Хочу я 'Я стремлюсь: запускать скрипт powershell каждый месяц, который рекурсивно проверяет каталог «C: \ Users» на наличие файла «Outlook.pst».И затем фильтрует результат по дате изменения (один месяц или новее).Затем упаковываю это в электронное письмо для отправки в мой почтовый ящик.

Я не уверен, если это возможно, потому что я довольно новичок в powershell.Буду признателен за вашу помощь!

1 Ответ

0 голосов
/ 26 сентября 2018

Это возможно.

Я не знаю, как запустить сеанс ps на удаленном компьютере, но я думаю, что командлет Enter-PSSession сработает.Или, по крайней мере, это был первый результат при поиске «открытого удаленного сеанса PowerShell».Если это не работает, используйте Invoke-Command, как предложено lit, чтобы получить $ outlookFiles, как предложено ниже.

Для остальных используйте это.

$outlookFiles = Get-ChildItem -Path "C:\Users" -Recurse | Where-Object { $_.Name -eq "Outlook.pst" }

Теперь у вас есть все файлы, которые имеютэто имя.Если вы не знакомы с каналом в powershell, он перенаправляет все найденные объекты с помощью Get-ChildItem в следующий раздел канала, и здесь Where-Object будет фильтровать полученные объекты.Если текущий объект ($ _) пройдет условие, то он будет возвращен всей командой.

Теперь вы можете снова отфильтровать эти объекты, чтобы включить только последние из них с.

$latestDate = (Get-Date).AddMonths(-1)
$newFiles = $outlookFiles | Where-Object { $_.LastAccessTime -gt $latestDate }

Теперь у вас есть все данные, которые вы хотите в одном объекте.Теперь вам нужно только отформатировать это так, как вам нравится, например, вы можете использовать $mailBody = $newFiles | Out-String, а затем использовать Send-MailMessage -To x@y.z -From r@g.b -Body $mailBody для отправки почты.

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