[Ответить в тред] Ответить в тред

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 20 | 1 | 11
Назад Вниз Каталог Обновить

Официальный™ PowerShell тред Аноним 13/05/16 Птн 20:42:07  742679  
14631613276460.png (357Кб, 1972x1475)
Это тред про лучший Shell, и лучший ScriptingEnvironment в мире - PowerShell.

$httpHost = 'api.github.com'
$path = '/search/repositories?'
$params = 'sort=stars&order=desc&q=language:powershell'
$url = "https://$httpHost$path$params"
(Invoke-RestMethod $url ).items | foreach { $_.full_name }

Q: Что это
A: Это скриптовый язык на платформе .NET, обладающий всей силой .NET, WMI и прочего.

Q: Чем он лучше Bash?
A: Это полноценный объектно-ориентированный язык программирования, с объектными пайпами

Q: Чем лучше Python?
A: На Windows Python работает через задницу, а еще в нем нет пайпов и других скриптовых конструкций, дотнета, и прочего.

Q: Только на Windows?
A: Пока да. Причем как сам PowerShell, так и его IDE(PS ISE) встроены в винду. Возможно, порт на не такие популярные системы все же случится: http://www.forbes.com/sites/justinwarren/2016/03/08/is-microsoft-about-to-bring-powershell-to-linux

Q: Что почитать?
A: На StackOverflow есть ответы на любой вопрос. Еще можно посмотреть тут: http://powershell.org/wp/ebooks/
Аноним 13/05/16 Птн 21:05:55  742699
Вот это охуенный тред, давно мечтаю обмазаться им. Благословляю.
Алсо, поясните сразу кто-нибудь за хуйню с необходимостью явно разрешить выполнение скриптов, зачем это нужно с точки зрения безопасности? Чем его скрипты опаснее обычных бинарников, которые подчиняются правам пользователя? Можно ли организовать подписание собственных скриптов без ебли с консольными параметрами каждый раз?
Аноним 13/05/16 Птн 21:18:51  742715
>>742699
Скрипты можно генерировать на лету, это первое.

Второе - для бинарников в винде вполне себе можно выставить ACL на выполнение для конкретного пользователя/группы. Для рандомного скрипта разве что чтение можно убрать/выставить.

Третье - для бинарников на винде тоже можно выставить правило, согласно которому можно выполнять только подписанные.
https://technet.microsoft.com/en-us/library/dd723683(v=ws.10).aspx

Почему по дефолту стоит запрет выполнения скриптов? Least privilege principle. Кому надо - выставляет разрешение.

Рекомендовано делать AllSigned или RemoteSigned execution policy. В таком случае, если денег на сертификат подписей нет, то создается свое CA и свой сертификат для подписи кода(через makecert, очень просто), и на серверах/машинах сертификаты CA и подписи импортируются в хранилище сертификатов. Скрипты перед деплоем подписываются однострочником.

Для разработки, чтобы не ебаться, можно выставить самое слабое ExecutionPolicy, впрочем, которое разрешает выполнение всех скриптов.
Аноним 13/05/16 Птн 21:26:18  742721
>>742679 (OP)
САЖА, УБОГОМУ ПОДЕЛИЮ КРИВОРУКИХ ИНДУСО-КИТАЙЦЕВ!!!
Аноним 13/05/16 Птн 21:38:24  742737
А что делает эта свинная блевота в моем /pr/? Идите хуя лэкните, недоноски.
Аноним 13/05/16 Птн 23:16:03  742833
>>742737
>>742721
Уебывайте в говнотреды про пайтон, не мешайте белым людям общаться
Аноним 13/05/16 Птн 23:52:31  742859
>>742715
От души расписал все, спасибо, няш.
Аноним 14/05/16 Суб 10:50:43  743031
Побампаю пока всякими административными тасками

Q: Как узнать количество свободной памяти?
A: gwmi Win32_OperatingSystem | foreach { "{0:N2} MB free" -f ($_.FreePhysicalMemory / 1024) }

Q: Как узнать загрузку процессора?
A: gwmi Win32_Processor | measure -property LoadPercentage -Average | foreach { "{0}% CPU in use" -f $_.Average}

Q: Как узнать количество свободного места на дисках?
A: gwmi Win32_Volume | where { $_.Capacity -and $_.DriveLetter } | foreach { "{0} {1:N0}%({2:N2} GB) free" -f $_.DriveLetter, ($_.FreeSpace / $_.Capacity * 100), ($_.FreeSpace/1024/1024/1024) }
Аноним 14/05/16 Суб 11:09:53  743042
Q: Как подключиться к удаленному компьютеру типа как через SSH?
A: Enter-PSSession -ComputerName $IpOrComputerName
Если credentials не сохранены в системе, нужно ввести дополнительный параметр -Credential

Q: Как скопировать файл на удаленный хост типа как через scp?
A: 1. Надо смонтироват PSDrive: New-PSDrive -Name Z -PSProvider FileSystem -Root \\$Host\MyShare
2. Скопировать cp $pathToMyFile Z:\

Q: Remoting не работает, что делать?
A: Включить. http://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/
Аноним 14/05/16 Суб 12:15:20  743063
В PowerShell доступен весь дотнет. Можно вызывать любые методы, загружать любые ассембли.
Сами объекты PowerShell являются .NET объектами.
Вот пример:
[DateTime]::Now.ToString("D", [CultureInfo]::GetCultureInfo("uk"))
Выдаст "14 травня 2016 р."
Аноним 14/05/16 Суб 12:32:05  743072
Одна из самых интересный и полезных фич PowerShell это так называемые ScriptBlock'и.
По сути это блоки кода. Что-то вроде лямбд.
Любой код ограниченный { и } является ScriptBlock.
Фишка в том, что эта фича похожа на макросы Lisp, на Perl, а более всего - на Tcl. С помощью нее можно писать свои управляющие конструкции. В следующей ссылке один парень написал аналог C#-овского using:
https://davewyatt.wordpress.com/2014/04/11/using-object-powershell-version-of-cs-using-statement/
Аноним 14/05/16 Суб 12:51:04  743083
>>742679 (OP)
Тонкота!
Аноним 14/05/16 Суб 14:50:42  743197
ИТТ любители словить ртом струю - люди, посланные нахуй, которые упорно возвращаются.
Аноним 14/05/16 Суб 17:27:49  743431
>>743197
пшел под шконку
Аноним 14/05/16 Суб 17:58:34  743472
Это же сраный Перл!
Аноним 15/05/16 Вск 19:32:53  744408
Есть что-то под линупс? Чтоб пайпать не последовательности байт, списки объектов/структур?
Аноним 17/05/16 Втр 00:53:52  745459
>>744408
Pash посмотри
Аноним 20/05/16 Птн 21:06:53  748698
>>743472
Чего в Перле сраного?
Аноним 21/05/16 Суб 18:59:30  749564
>>743031
ВыГлЯдИт -КаК гОвНо
Аноним 21/05/16 Суб 19:05:11  749574
>>743072
Кек, нашел чем удивить. Этак и в баше можно.
Аноним 21/05/16 Суб 19:40:33  749631
>>742679 (OP)
>Это полноценный объектно-ориентированный язык программирования, с объектными пайпами
Проблема в том, что это не "полноценный ОО язык", а неидиоматичная мешалда из визуалвасика и баша, что отлично было продемонстрировано ИТТ:
>[DateTime]::Now.ToString("D", [CultureInfo]::GetCultureInfo("uk"))
сравни с
>clock format $time %D -locale uk

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 20 | 1 | 11
Назад Вверх Каталог Обновить

Топ тредов