LINUX.ORG.RU
Ответ на: комментарий от Deleted

Нормальными инструментами надо пользоваться, и главное - по назначению, а не пытаться молотком пилить или домкратом бурить.

Дело в том, что PS - вообще ни разу не нормальный инструмент, даже для того, для чего он якобы предназначен. На нём даже в венде чисто вендовые задачи скриптования решать почти невозможно, а в тех редких случаях когда всё-же возможно, то делается это только через глубочайшую и темнейшую задницу с вот этими самыми объектами и сопутствуюзей бредовой нежизнеспособной парадигмой.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Дело в том, что PS - вообще ни разу не нормальный инструмент, даже для того, для чего он якобы предназначен

4.2

На нём даже в венде чисто вендовые задачи скриптования решать почти невозможно

Потому что ты скозал?

а в тех редких случаях когда всё-же возможно, то делается это только через глубочайшую и темнейшую задницу с вот этими самыми объектами и сопутствуюзей бредовой нежизнеспособной парадигмой.

Опять ты скозал?

Начнём с того, что всё, что ты можешь сделать в bash с помощью обычных GNU‐утилит и грепанья их вывода, ты можешь сделать точно так же в PowerShell. Но для многих случаев PowerShell предоставляет более удобную объектную модель и даёт тебе возможность предоставлять её для других случаев.

Поэтому твои «аргументы» просто неуместны.

IchBinFertig
()

Так вот ты какой, линуксокапец.

ass ★★★★
()
Ответ на: комментарий от IchBinFertig

bash это не столько даже скриптовый язык, сколько UI. Про это почему-то забывают. И тот же grep — не тулза программирования, а обычный пользовательский фильтр строк. В текстовом редакторе точно такой же, только в GUI.

Но для многих случаев PowerShell предоставляет более удобную объектную модель и даёт тебе возможность предоставлять её для других случаев.

А нахрен она нужна-то, если скриптовых языков с объектами и так уже мульён.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

bash это не столько даже скриптовый язык, сколько UI

В рамках такой логики, PowerShell — тоже UI. Но не только для обычных GNU‐утилит (но они не пропали), а ещё для .NET‐функций и специальных классов‐командлетов.

И тот же grep — не тулза программирования, а обычный пользовательский фильтр строк.

Тебе им не запретили в PowerShell пользоваться.

А нахрен она нужна-то, если скриптовых языков с объектами и так уже мульён.

Они не являются удобными для обработки файлов. Если мы в bash можем сделать просто echo fuck you > /dev/zero, то в питоне нам придётся расчехлять open, вызывать write, не забыть про close или засунуть всё в with‐конструкцию. А в PowerShell мы не теряем удобных средств для работы с файлами и процессами (пайпы), но ещё и получаем объекты.

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

В рамках такой логики, PowerShell — тоже UI. Но не только для обычных GNU‐утилит (но они не пропали), а ещё для .NET‐функций и специальных классов‐командлетов.

Не знаю, насколько оно там UI, глубоко не копал. В bash натолкано очень много настроек, крутилок и свистелок, связанных с UI — сразу видно, на что был акцент при разработке. А язык не от хорошей жизни такой хреновый — тащат совместимость.

Тебе им не запретили в PowerShell пользоваться.

Тогда и весь пафос «не надо грепать строки» не имеет смысла. Программы, которые выводят данные в «странных» форматах никуда не денутся-то. Грепать тоже не от хорошей жизни приходится.

Они не являются удобными для обработки файлов. Если мы в bash можем сделать просто echo fuck you > /dev/zero, то в питоне нам придётся расчехлять open, вызывать write, не забыть про close или засунуть всё в with‐конструкцию. А в PowerShell мы не теряем удобных средств для работы с файлами и процессами (пайпы), но ещё и получаем объекты.

Например, в Руби можно так и писать: `ls / >/tmp/1.txt`.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Не знаю, насколько оно там UI, глубоко не копал. В bash натолкано очень много настроек, крутилок и свистелок, связанных с UI — сразу видно, на что был акцент при разработке. А язык не от хорошей жизни такой хреновый — тащат совместимость.

Ты про всякие автодополнения и подсветку синтаксиса?

Тогда PowerShell тоже накрутили, ничего удивительного — это же шелл.

Тогда и весь пафос «не надо грепать строки» не имеет смысла.

Как не имеет смысла, если есть нормальные командлеты?

Грепать тоже не от хорошей жизни приходится.

Конечно же.

Например, в Руби можно так и писать: `ls / >/tmp/1.txt`.

Это ли не просто обращение к bash?

Так и в питоне можно:

>>> import os
>>> os.system("echo bash is here")
bash is here
0
>>> os.system("echo $SHELL")
/usr/bin/pwsh
0
IchBinFertig
()
Ответ на: комментарий от IchBinFertig

Это ли не просто обращение к bash?

К sh, если быть точным. Как legacy-костыль, почему бы и нет.

Насчёт перенаправлений. В sh все эти >, <, | заменяют более вменяемые средства комбинирования алгоритмов. Когда приходится вызывать sed или awk только для того, чтобы несколько строк распарсить и потом обратно скомбинировать, понятно, что это нездоровая ситуация. А sed или awk это, на миточку, тоже скриптовые языки. И тоже неполноценные, в результате чего толком ни sh на awk не заменить, ни awk на sh.

Когда в языке есть нормальный процессинг файлов, строк, списков и т.п., то вопрос «как удобно перенаправить поток данных в очередную обёртку» отходит на второй план. Тем более, что можно на коллбеках мелко нашинковать, так что в IO не упирается:

require 'find'
Find.find("/").lazy.select {|p| p.match(/\.txt$/)}.each {|p| puts p}

Выводит *.txt в реальном времени по мере просмотра каталогов.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

Почему старые треды не улетают в архив?
А то на лоре просто куча красноглазых некромантов, которые не видят ни дату последнего поста, ни дату оп-поста.

ritsufag ★★★★★
()
Ответ на: комментарий от ritsufag

Бгг, так это IchBinFertig оказывается некромант.

Я на дату не смотрел.

Почему старые треды не улетают в архив?

Вообще да, странно, что сюда еще постить можно.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от IchBinFertig

Но для многих случаев PowerShell предоставляет более удобную объектную модель и даёт тебе возможность предоставлять её для других случаев.

Ну так продемонстрируйте же уже как удобно этим PS брать объекты из вендового EventLog обрабатывать их и выводить на экран. Тупейшая же задача - дата, ИП, логин, результат для RDP.

Можете сколько угодно петь военные песни про «удобство объектной модели» и замечательность PS, но пока не будут продемонстрированы реальные жизненные примеры использования. всё это ввше бла-бла-бла не будет стоить ни копейки и никто никогда вам не поверит.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Ну так продемонстрируйте же уже как удобно этим PS брать объекты из вендового EventLog обрабатывать их и выводить на экран. Тупейшая же задача - дата, ИП, логин, результат для RDP.

Собственно документация: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.manag....

Или вот: https://en.wikiversity.org/wiki/PowerShell/Event_Logs.

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

Ну и что в итоге получается?

Ну и где же удобный и простой юзкейс этого всего замечательного объектного подхода?

Сцуко, ежедневная же задача для вендоадмина - посмотреть кто, когда и с каким результатом пользовался каким-нибудь вендовым сервисом, при том что в гуе EventLog это делать абсолютно неудобно из-за того, что за ИП и результатом логина надо ручками залезать в каждое событие и совершать 100500 лишних кликов мышью, но все топящие за ублюдочный PS никак не могут привести пример её решения, чтобы продемонстрировать как же на нём всё просто и удобно делается? Это натуральный цирк господа, лишь доказывающий, что PS вообще ни на что не годен.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от Stanson

То есть ты ссылки даже не открывал?

Это — натуральный цирк, господа, лишь доказывающий, что Stanson вообще ни на что не годен.

fixed

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

То есть ты ссылки даже не открывал?

А мне-то нафига их открывать? Это вы топите за удобство и продвинутость поверщели, а не я. Я-то в курсе, что поверщель - говно, объектная модель в шелле сильно усложняет жизнь и об однострочниках можно навсегда забыть, а решение простейшей и насущнейшей задачи выливается в сотню строк совершенно нечитаемого звездеца включающего в себя даже magic numbers (сцуко, да, всякие невменяемые 1306, 4624, 4647 и прочие циферки придётся пользовать), что для нормального человека, привыкшего к bash и coreutils выглядит смешно и дебильно.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

А мне-то нафига их открывать?

Ты поехавший что ли?

Не желаешь читать то, что тебе нужно, но при этом кукарекаешь, что это невозможно?

Под шконку!

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

Не желаешь читать то, что тебе нужно, но при этом кукарекаешь, что это невозможно?

Мне это уже 100 лет не нужно. Я это всё прочитал ещё когда некоторые под стол пешком ходили.

Это некоторые говноеды, кукарекающие про замечательность поверщели никак не могут тут выложить пример решения типичной элементарной объектной практической вендовой задачи при помощи такой удобной поверщели. :)

Кукарекают про какое-то там удобство и продвинутость, а на деле - обсираются по полной программе, потому что даже им стыдно продемонстрировать, какой кромешный звездец получается, если поверщель попытаться для чего-нибудь применить.

Stanson ★★★★★
()
Ответ на: комментарий от IchBinFertig

Я всё‐таки добрался до шиндуса из вроде бы как уютной бубунты путём перезагрузки и желаю рассказать Stanson, как всё‐таки пользоваться этим EventLog.

Ну во‐первых, я не шиндусоадмин, поэтому не знаю, какой именно EventLog нужен ему и что происходит в нужном ему, но он должен знать это, раз спрашивает.

Поэтому для получения объектов из нужного EventLog нужно сделать get-eventlog -logname ИмяЛогаТут.

Теперь их нужно обработать. Чтобы получить нужные параметры, мы их выбираем с помощью select: get-eventlog -logname ИмяЛогаТут | select параметр1, параметр2. Дополнительные ограничения накладываем между пайпами. Это может выглядить, например, так:

get-eventlog -logname system -newest 20 |? { $_.EntryType -eq [System.Diagnostics.EventLogEntryType]::Information } | select machinename, username, message

Все параметры можно получить с помощью get-eventlog -logname ИмяЛогаТут | get-member.

Теперь Stanson определяет параметры и имя лога, и сам вставляет их в нужные места.

А если он продолжит кукарекать, что ему всё ещё неудобно и непонятно, то он безнадежён.

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

Если не обращать внимания на типичную энтэрпрайзную многословность в духе «[System.Diagnostics.EventLogEntryType]::Information», то код как код.

Deleted
()
Ответ на: комментарий от IchBinFertig

в питоне нам придётся расчехлять open, вызывать write, не забыть про close или засунуть всё в with‐конструкцию.

import sh
sh.echo('fuck you', _out='/dev/null')
rupert ★★★★★
()
Ответ на: комментарий от Deleted

А если у тебя весь скрипт завален этим многословным говном? Не зря для powershell сделали ISE - Integrated Scripting Environment. Без него такие многословные скрипты писать практически невозможно.

rupert ★★★★★
()
Ответ на: комментарий от IchBinFertig

Для начала, тебе стоит знать, что факт коннекта, факт логина, факт облома, факт успеха и т.д. хранятся в EventLog под разными id. Тебе нужны магические циферки - 582, 682, 683, 1306, 4624, 4625 и т.д. По ним, из EventLog тебе понадобится удобно и объектно вытащить нужную информацию, а потом умудриться удобно и объектно сопоставить, что к какому событию логина (в человеческом понимании, а не вендовом) относится. :)

В общем, гугль в зуббы и искать Tracking RDP connects Windows Server PowerShell. Готового решения не найдёшь, но зато станет понятно, сколко всякого говнища придётся понаписать на этом сраном убогом повершелле, чтобы выполнить, сцуко, ЭЛЕМЕНТАРНЕЙШУЮ, едрить, задачу - вывести на экран строчки с датой, ИП, логином и результатом.

А то, что ты высрал в качестве «примера» - полнейшая херня и никогда в реальности работать не будет. Да и даже твой абсолютно нерабочий высер выглядит в 100500 раз ублюдочнее дебильнее и корявее обычного для пользователя юниксов grep 'паттерн' /var/log/куда_там_оно_пишет.log. А уж о том, чтобы набрать его по памяти и речи быть не может.

Объектные поверщелисты такие смешные. :) Типа хаскелистов, только в отличии от них - полнейшие ламеры.

Stanson ★★★★★
()
Последнее исправление: Stanson (всего исправлений: 1)
Ответ на: комментарий от IchBinFertig

Ты уже совсем какую‐то херню написал.

А в венде всё вот такая вот херня, чтоб ты знал. И если эту херню пытаться разруливать говном типа поверщели с попутным дрочением вприсядку на объектность и прочую модную срань, то получится только задроченная говняная херня и ничего больше.

Я вижу, что ты рукожоп, но я не виноват в этом.

А я вижу, что ты мамкин теоретик, вообще никогда ничего практического не делавший, но топящий за какие-то дебильные выдуманные и абсолютно неюзабельные концепции. Ламер, в общем.

В итоге, рабочего скрипта для решения элементарной задачи на поверщели от адептов оного говна мы так и не увидели. А как дышали, как хвалили - и просто всё, и понятно, и замечательно, и объектно, а как до элементарнейшей задачи дошло, типа тех, решения которых на лоре по 10 раз на дню в 10 разных вариантах разными лоровцами без всяких там «тебе надо, ты и пиши» постятся, так сразу бомбануло у адепта. :)

Ты хоть усрись теперь, а лучшего доказательства того, что поверщель - полнейшее говно, и со всей её объектностью не годна даже для решения элементарнейших задач, а башу даже в подмётки не годится, не сыщешь.

Stanson ★★★★★
()

Прелесть какая

https://github.com/PowerShell/PowerShell

Telemetry

By default, PowerShell collects the OS description and the version of PowerShell (equivalent to $PSVersionTable.OS and $PSVersionTable.GitCommitId) using Application Insights. To opt-out of sending telemetry, create an environment variable called POWERSHELL_TELEMETRY_OPTOUT set to a value of 1 before starting PowerShell from the installed location. The telemetry we collect fall under the Microsoft Privacy Statement.

HeipaVai1o
()
Ответ на: комментарий от Stanson

То есть ты всё так же будешь упираться в то, что ты ничего не можешь, и тебе сразу нужна готовая строка?

Я же писал, что не вендоадмин и готовую строку выдать не могу.

Это твои проблемы, а не проблемы PowerShell.

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

То есть ты всё так же будешь упираться в то, что ты ничего не можешь, и тебе сразу нужна готовая строка?

Ещё раз. Решения подобных элементарных ежедневных задач при помощи нормальных инструментов десятками публикуются на лоре без вот этого вот сраного позорного «ТС, ты ничего не можешь, и тебе нужна готовая строка». Люди просто пишут решения и всё. Потому что сходу написать готовое рабочее решение простой задачи для нормального инструмента легко и просто. Поверщель же - негодный, ублюдочный инструмент. Он не позволяет решать даже такие элементарные задачи. Поэтому никто из адептов поверщели так ничего и не высрал.

Я же писал, что не вендоадмин и готовую строку выдать не могу.

Ты не можешь выдать строку потому что поверщель - говно. Ибо решение даже такой элементарной задачи, как вывод даты, ИП, логина и результата в поверщели занимает нихрена не строку, а сотню строк безумного объектного бреда.

Это твои проблемы, а не проблемы PowerShell.

Это проблемы именно поверщели, и только поверщели, потому что этот уродский инструмент не годен ни для чего. Абсолютно любую задачу удобнее и проще решать используя другие инструменты вместо поверщели.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Ты не можешь выдать строку потому что поверщель - говно.

Не надо думать за меня.

Я не могу выдать готовую строку потому, что я не вендоадмин.

И повторюсь: то, что ты криворукий, — твои проблемы, а не проблемы PowerShell.

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

Я не могу выдать готовую строку потому, что я не вендоадмин.

Видимо это не лечится....

НИКТО не сможет выдать готовую строку, потому что из-за ублюдочности поверщели это не одна простая строка, а сотня длиннющих строк, да ещё и состоящих из объектной бредятины.

И повторюсь: то, что ты криворукий, — твои проблемы, а не проблемы PowerShell.

Вот ведь как интересно получается - с любыми нормальными инструментами я почему-то не криворукий, а, внезапно, с поверщелью - раз, и по мнению какого-то ламера-теоретика, сразу криворукий. :) Любому идиоту понятно, что даже при таком раскладе, основанном на фантазиях непонятно кого, проблема может быть только и исключительно в поверщели.

Ты не переживай, поверщель всё равно скоро сдохнет, как сдохли все ублюдочные мелкософтовские велосипеды типа сервелата, asp или там ActiveX. Потому что другие инструменты предназначенные для тех же самых целей на порядки лучше, проще и удобнее этой запредельной дряни.

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

НИКТО не сможет выдать готовую строку, потому что из-за ублюдочности поверщели это не одна простая строка, а сотня длиннющих строк, да ещё и состоящих из объектной бредятины.

Так только в твоих маня‐фантазиях.

Вот ведь как интересно получается - с любыми нормальными инструментами я почему-то не криворукий…

У меня для тебя плохие новости.

IchBinFertig
()
Ответ на: комментарий от IchBinFertig

Так только в твоих маня‐фантазиях.

Ну так продемонстрируй же уже, как удобно и просто на поверщели работать с объектами EventLog. Это же так просто и удобно объектно делать на поверщели, наверно 100500 раз уже можно было написать рабочий пример, вместо того, чтобы жопой тут крутить неделями. :)

У меня для тебя плохие новости.

У тебя для меня не может быть новостей. Ни плохих, ни хороших, никаких. Я забыл уже больше, чем ты будешь когда-ниубдь знать. :)

Stanson ★★★★★
()
Ответ на: комментарий от Stanson

Ну так продемонстрируй же уже, как удобно и просто на поверщели работать с объектами EventLog. Это же так просто и удобно объектно делать на поверщели, наверно 100500 раз уже можно было написать рабочий пример, вместо того, чтобы жопой тут крутить неделями. :)

Мы по кругу пошли (из‐за тебя).

«Я не вендоадмин, не могу написать полностью» → «Да это померщель виноват!» → «Нет, это я не вендоадмин — померщель не виноват» → «Продемонстрируй удобство!» → [вернуться в начало]

Я забыл уже больше, чем ты будешь когда-ниубдь знать. :)

Ого‐го! Какое ЧСВ у этого пациента!

IchBinFertig
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.