Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Командлет Get-Content непонятно работает

Ответить
Настройки темы
PowerShell - [решено] Командлет Get-Content непонятно работает

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет, пытаюсь вытащить в телегу данные журнала событий через планировщик чтобы быть в курсе входов на удаленку, но текст событий слишком громоздкий.
Скрытый текст
Код: Выделить весь код
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

wevtutil qe Security /q:"* [System[(EventID=4625)]]" /f:text /rd:true /c:1 > C:\test.txt

$botToken = ""
$chatID = ""
$messageText = Get-Content -Path C:\test.txt -TotalCount 48 -Delimiter %0A
$url = "https://api.telegram.org/bot$botToken/sendMessage?chat_id=$chatID&text=$messageText"

Invoke-RestMethod -Uri $url -Method Post

Вся проблема в Get-Content. Изначально я ограничил кол-во строк -TotalCount, но была проблема с тем что в телегу текст прилетал в одну строчку.
Для телеги знак переноса строки это %0A, по этому я использовал -Delimiter, нооо теперь -TotalCount просто перестал работать.

Как их подружить?

Отправлено: 21:57, 20-06-2024

 

Deadooshka


Сообщения: 2490
Благодарности: 678

Профиль | Отправить PM | Цитировать


%0A - это \n (урл-кодированный). Поэтому никаких Delimiter не надо. Нужно урл-кодировать $messageText перед вставкой в строку. $messageText - массив строк без знака перевода строки, поэтому его нужно ещё и join'ить через \n.
Наверное так
Код: Выделить весь код
$messageText = [uri]::EscapeDataString($messageText -join "`n")

Последний раз редактировалось Sham, 21-06-2024 в 05:00.

Это сообщение посчитали полезным следующие участники:

Отправлено: 04:52, 21-06-2024 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Благодарю за помощь, теперь работает как надо)

Отправлено: 07:20, 21-06-2024 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Командлет Get-Content непонятно работает

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Непонятно работает память klesk Материнские платы и память 11 29-09-2023 10:16
PowerShell - [решено] Regex работает непонятно DJ Mogarych Скриптовые языки администрирования Windows 6 02-09-2023 20:46
Службы - [решено] Не работает intel r content protection heci service Murman Microsoft Windows 7 1 11-06-2015 19:16
PowerShell - [решено] Командлет в качестве значения переменной maslinaV Скриптовые языки администрирования Windows 8 25-05-2015 13:05
V. 2010 - Отсутствует командлет Get-RecipientPermissions DJ Mogarych Microsoft Exchange Server 6 19-07-2011 10:57




 
Переход