Извлечение слова или цифры из команды или вывода PowerShell - PullRequest
0 голосов
/ 17 декабря 2018

В процессе создания большого количества скриптов для сбора данных с ПК.Мне нужна помощь в извлечении соответствующих данных, используя «самый простой» метод.Мне просто нужен метод / концепция / идея, и мы применим остальные.Вот 3 примера

  1. Ping Avg MS response: на выходе команды ping будут отображаться такие результаты: «Минимум = 3 мс, Максимум = 8 мс, Среднее = 4 Миз".Мне нужно было бы извлечь номер Avg без «ms» и перенаправить вывод в файл (> PingAvg.txt).Конечный результат заключается в том, что выходной файл имеет только « 4 » в этом файле.

  2. WMI AV-выход: при запуске «Get-WmiObject»PowerShell, как показано ниже.Мне нужно было бы извлечь только имя (displayName) или просто состояние, и перенаправить вывод в файл (> AvStats.txt).Конечные результаты для выходного файла должны содержать только название продукта AV « Защитник Windows » или только состояние « 393472 »

PS C:\> Get-WmiObject -Namespace ROOT\SecurityCenter2 -Query "SELECT * FROM AntiVirusProduct" | Select-Object * -ExcludeProperty PSComputerName, Scope, Path, Options, ClassPath, Properties, SystemProperties, QualifiersSite, Container | Format-List -Property [a-z]

displayName              : Windows Defender
instanceGuid             : {D68DDC3A-831F-4fae-9E44-DA132C1ACF46}
pathToSignedProductExe   : %ProgramFiles%\Windows Defender\MSASCui.exe
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState             : 393472
timestamp                : Mon, 23 Oct 2017 14:12:56 GMT
Get Last date of patch: команда и вывод powershell будут выглядеть так, как показано ниже.Я хотел бы получить только данные и перенаправить вывод в файл (> LastPatch.txt).Выходной файл должен содержать только дату « 9/25/2018 »

PS C:> (get-hotfix | sort selectedon) [- 1] |Выбор объекта установлен на

Установлен на

9/25/2018 12:00:00

1 Ответ

0 голосов
/ 17 декабря 2018

Попробуйте это для шага 1:

(((ping localhost | Select-String "Average") -split "Average = ")[1] -split "ms")[0] | out-file PingAvg.txt

Шаг 2:

(Get-WmiObject -Namespace ROOT\SecurityCenter2 -Query "SELECT * FROM AntiVirusProduct" | Select-Object displayName | ft -HideTableHeaders | out-string).trim() | out-file AvStats.txt

ИЛИ для состояния продукта

(Get-WmiObject -Namespace ROOT\SecurityCenter2 -Query "SELECT * FROM AntiVirusProduct" | Select-Object productState | ft -HideTableHeaders | out-string).trim() | out-file AvStats.txt

Шаг 3:

((get-hotfix | sort installedon)[-1] | Select-Object InstalledOn | ft -HideTableHeaders | out-string).trim() | out-file LastPatch.txt

Пожалуйста, поделитесь своим мнением.Если это поможет, обязательно отметьте его как ответ.

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