Size: a a a

PowerShellRus - о Powershell (и не только) на русском

2020 March 03

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Вот вечером скину.
Там тоже add-command, но проще
Си-шарповый аналог

Invoke-ModuleCommand -Operation "InitModule"

Invoke-ModuleCommand -Operation "GrantAccess" -ArgumentList @('username', 'userRole')
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
У меня меня зубодерня, так что извиняйте...
источник

Х

Хоттабыч 🐈 in PowerShellRus - о Powershell (и не только) на русском
Alexey D. Filimonov 🎠
Ну вот с адд-коммандами задолбаешься. Если нужно для определенной задачи, то проще модуль написать на поше.
И его прикрутить.
Кстати, Я тут недавно письмо писал через system.string.builder, так что не так страшно:)
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
Хоттабыч 🐈
Кстати, Я тут недавно письмо писал через system.string.builder, так что не так страшно:)
это же нормально! Лучше, чем через конкатенацию))
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
ПРАВИЛЬНЕЕ
источник

Х

Хоттабыч 🐈 in PowerShellRus - о Powershell (и не только) на русском
Вообще чем больше лезешь в Пош, тем больше хочется учить с#
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Ну вопрос в том что если у тебя есть скрипт на повершелл на 500 строк, то переделывать его в Шарп на 1500 строк это пиздец. Проще завернуть в модуль
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Roman Volodin
ПРАВИЛЬНЕЕ
Это в зависимости от частоты )

Вероятно проще было через string.format
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
Alexey D. Filimonov 🎠
Это в зависимости от частоты )

Вероятно проще было через string.format
Смотря что там в письме. Может, туда части динамически добавляются в зависимости от
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
длинная форматная строка это тоже такое себе
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Хоттабыч 🐈
Вообще чем больше лезешь в Пош, тем больше хочется учить с#
Лучше в обратную сторону как по мне ) но потом будет не хватать фишек Шарпа..а в шапке фишек поша.

Тот же божественный универсальный Get-ChildItem

А в поше не хватает расширения классов
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Roman Volodin
длинная форматная строка это тоже такое себе
А ее правильнее в файл выгрузить или в конфиг как минимум и оставить возможность менять.
Ещё добавить multilanguage поддержку )
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
Alexey D. Filimonov 🎠
А ее правильнее в файл выгрузить или в конфиг как минимум и оставить возможность менять.
Ещё добавить multilanguage поддержку )
начинается блять)
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Roman Volodin
начинается блять)
И mustache.js прикрутить да :)
источник

RV

Roman Volodin in PowerShellRus - о Powershell (и не только) на русском
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Хоттабыч 🐈
Вот тоже интересно, пример есть?
Короче после обрезания что то такое вот осталось https://pastebin.com/GaWyMYeV . Может где ошибся, т.к. чутка перерисовал

Суть - есть 1 модуль с 1 командой, которой передается 2 параметра - обязательный Command (что делаем) и опциональный Data (с чем делаем)
Создаем  сколько-там-нужно инстансов PSInstance с одинаковыми параметрами ( на вход передается папка с файлом-модулем и обьект для синхронизации инстансов )

Для модуля есть некоторая переменная $MCD ( Module Concurrent Dictionary ), которая экспортированна из c# в PowerShell и является общей для обеих сред и общей для всех PSInstance И всех PowerShell-ов в ней
Нужно для синхронизации внутренних данных модуля если он работает в нескольких инстансах.  В PowerShell она Constant AllScope, это значит что ее нельзя удалить ( но добавлять элементы и удалять элементы можно )

Секция // Override ExecutionPolicy работает как то странно, по другому не получилось. Такое чувство, что параметр ExecutionPolicy что-то вроде динамического и стандартно не существует (vscode про него не знает и в Assembly он судя по всему не описан), потому так странно сделано. Вероятно от версии PowerShell наличие зависит\
источник

A

Aleksandr in PowerShellRus - о Powershell (и не только) на русском
Можно ради интереса, зачем оно нужно?
источник

A

Aleksandr in PowerShellRus - о Powershell (и не только) на русском
И момент "стандартно не существует" можно расписать?
PS > $is = [InitialSessionState]::CreateDefault()
PS > $is.ExecutionPolicy
Restricted
PS > $is.ExecutionPolicy = 4
PS > $is.ExecutionPolicy
Bypass
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Aleksandr
Можно ради интереса, зачем оно нужно?
Ну например на asp.net крутится вебсервис как прокси между кадровой хренью и регистрацией пользователя в ad и lync
источник

AF

Alexey D. Filimonov 🎠 in PowerShellRus - о Powershell (и не только) на русском
Aleksandr
И момент "стандартно не существует" можно расписать?
PS > $is = [InitialSessionState]::CreateDefault()
PS > $is.ExecutionPolicy
Restricted
PS > $is.ExecutionPolicy = 4
PS > $is.ExecutionPolicy
Bypass
Да, в поше это есть. А в c# этого атрибута не видно. Видимо он создаётся динамически после создания обьекта
источник