Задать вопрос
@Artem_H

Как сделать массовую рассылку пользователям на удаленные компьютеры?

Добрый день, нужно написать скрипт, чтобы отправлять сообщения пользователям на их компьютеры. Поискав в интернете, нашел команду msg, но она не подходит, потому что там ограничение на символы есть. Нашел команду без ограничений, но не могу заставить отправлять на компьютер, ниже приведен сам код, может кто сталкивался с таким?
$Computer = "PC01"
$text = "Тест"
$title = "Admin"

Invoke-Command -ComputerName $Computer -ScriptBlock {
    param($text, $title)
    
    [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null 
    Add-Type -Assembly 'System.Windows.Forms'
    [System.Windows.Forms.MessageBox]::Show($text, $title, [Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Stop, [System.Windows.Forms.MessageBoxDefaultButton]::Button1, [System.Windows.Forms.MessageBoxOptions]::DefaultDesktopOnly)
} -ArgumentList $title, $text
  • Вопрос задан
  • 164 просмотра
Подписаться 1 Средний 11 комментариев
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Используйте msg правильно :)

Ограничение в 256 символов существует только для отправки сообщения из командной строки.

А сообщение можно отправлять и из файла

пример: send.cmd
type d:\long_message.txt | msg username

при этом long_message.txt должен быть в 1251 кодировке для русских буковок
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Если кратко - для простой отправки отправки сообщений пользователям надо использовать msg ( тут я согласен с комментарием, который MaxKozlov оставил под вопросом ). Не усложняйте себе жизнь

Однако если хотите усложнять - надо отправлять сообщение в пользовательскую сессию, из вашей (которую вы создали подключившись удаленно) или из системной сессии
Есть два способа: используя psexec (или другой инструмент позволяющий переключаться на сессию) или используя запланированную задачу, запускаемую от имени залогиненного пользователя
Решая подобную задачу, я доставлял сообщение в специальный файл на пк, который раз в 5 минут проверялся простенькой таской (созданной автоматически на всех ПК моего домена) и, если файл был не пустой - сообщение из текстового файла выводилось и файл очищался.
Для использования psexec и прочих ухищрений с переключением сессий - изучите вот этот ответ stackoverflow
https://stackoverflow.com/questions/61971517/power...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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