Александр Кандалов, Отметьте решением :)
А вообще вся проблема получается как раз в непонимании какие куда порты открывать
кстати, снаружи 80 не надо точно. и 717
а 443 - только если планируете ActiveSync для мобильников и мобильных юзеров с ноутами для Autodiscover, причём вторые могут и обойтись
110/143/993/995 - только если pop3/imap снаружи планируется
Сергей, Признаком удаления PSReadline является отсутствие раскраски.
PSReadline - это именно надстройка, которая занимается раскраской, автодополнением и перехватывает клавиши для своих функций.
Но да, и без него (как было до PSv5, когда этот модуль появился "в комплекте") Powershell сам является терминалом и умеет автодополнение и историю, только раскраски не умеет.
В числе дефолтных команд PSReadline (Get-PSReadLineKeyHandler) нет перехвата влево-вправо потому, что ему это функционально не нужно.
Но, например, shift+left/right у него есть -
Shift+LeftArrow SelectBackwardChar Adjust the current selection to include the previous character
И вы всегда можете добавить свои перехватчики и навесить на них как свои, так и встроенные функции PSReadline, только вот к ANSI sequences это не имеет прямого отношения.
В код Powershell не заглядывал, но подозреваю, что они обрабатываются только из потока вывода, но не ввода
Сергей, Вы вот проигнорировали мой ответ о том, что терминал - это не просто потоки ввода/вывода в одном окне, и комментарий про PSReadline проигнорировали, а ведь он у вас включен и под виндой перехватывает все нажатия именно кнопок, а не ANSI последовательностей.
("$_ bad \\$_\c$\Program Files (x86)\1cv8\", "$_ good")[(Test-Path "\\$_\c$\Program Files (x86)\1cv8\8.3.22.1750")]
который, вы наверняка не понимаете, переделаете на просто if () {} else {}
тогда сможете вставить куда надо проверку на доступность через Test-NetConnection
И вот эти исходники посмотрите https://github.com/PowerShell/PSReadLine
По-умолчанию PSReadline входит в комплект и автозапускается на любом PS v5.1+ и наверняка он перехватывает все ваши "кнопки"
Отдельно обратите внимание на MockPSConsole/ и PSReadLine/Movement.cs, PSReadLine/PlatformWindows.cs
mcs - это просто описатель того, какие окошки создать, с какими размерами, какие менюшки сделать и к каким окошкам какую dll привязать.
А как эти dll заставить работать, зависит уже от них самих.
никаких "результатов в файл" там быть не может. это чисто гуй.
Разве что, если среди Actions там есть "экспортировать", можно предположить, что через вызовы dll можно как-то до них добраться.
Вот тут есть про api https://learn.microsoft.com/en-us/previous-version...
Но, по моему, это тупиковый путь, через COM будет проще
Egor Irvin, Ну а на файл сам посмотреть CSP40R2Setup.exe ?
может там действительно текст вместо exe - скорее всего там html с сообщением об ошибке скачивания или необходимости логина
Сергей, Ну если вы вообще не очень понимаете откуда берётся цвет, оно у вас наверняка заработает и через runspace, возможно с добавкой format/out-string
Сергей, в PSv7 цвета рисует консоль на основе всяких esc последовательностей (ANSI, тот самый код 27) если вы их видите в выводе после ToString() - значит они никуда не делись
Информация о раскраске-то где-то берётся. надо API посмотреть как реализовано, я не вчитывался
Вы вообще с консольного вывода как цвета берёте себе ?
Но раз уж вы настаиваете, сделаю это "при вас"