Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » PowerShell

Модерирует : KLASS, IFkO

KLASS (06-03-2018 00:43): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

   

Uriu

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Версии

PowerShell 1.0 -  На текущий момент совершенно неактуальная версия, интересная только для истории. /Прямые ссылки/
PowerShell 2.0 и WinRM 2.0 - Последняя версия, работающая на Windows XP и Windows 2003 (Ещё) /Прямые ссылки/
PowerShell 3.0 (Windows Management Framework 3.0)
PowerShell 4.0 (Windows Management Framework 4.0)
PowerShell 5.0 (Windows Management Framework 5.0)
PowerShell 5.1 (Windows Management Framework 5.1)
PowerShell Core 6.0 (не заменяет PowerShell 5.1)



Ассоциация

Что бы ассоциировать скрипты с PowerShell, аналогично выполнению .bat/.cmd-файлов
нужно в командной строке набрать следующую команду(ы)
Версии 1.0-5.1 для 32-битных ОС: ftype microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.exe -file "%1"  
%*
 
Версии 1.0-5.1 для 32-битных ОС: ftype microsoft.powershellscript.1=%windir%\sysWOW64\windowspowershell\v1.0\powershell.exe -file "%1"  
%*
 
Версия 6.0 дя 32-битной ОС: ftype microsoft.powershellscript.1="C:\Program Files (86)\PowerShell\6.0.0\pwsh.exe"  -file "%1" %*
Версия 6.0 дя 64-битной ОС: ftype microsoft.powershellscript.1="C:\Program Files\PowerShell\6.0.0\pwsh.exe"  -file "%1" %*



вопрос о подписи скриптов

Что бы PowerShell не задавал вопрос о том, что скрипты не подписаны, ввести в нем команду
set-executionpolicy unrestricted
или в командной строке
powershell Set-ExecutionPolicy Unrestricted -force
(для этих 2-х действий требуются административные права)



Прочее


  • Если используете "белый список" в брандмауэре Windows, то для работы сценариев в сети необходимо создать 2 исходящих правила для svchost.exe и PowerShell.exe.
  • В отличие от батников кодировка скриптов на PowerShell должна быть 1251 (ANSI)




Расширение возможностей PowerShell
Функции
* Write-Color
* PowerTab --- Расширение функций клавиши Tab
Провайдеры
Готовые скрипты
* Ошибки и предупреждения в журнале событий по электронной почте (в4.0)
 


Работа со сценариями в Windows PowerShell
Раздел в MSDN
Краткие справочники по Windows PowerShell 3.0 (english)
Windows PowerShell Франк Кох (БЕРН)  Разработчик и пропагандист платформы. На русском языке в формате pdf и doc

Всего записей: 340 | Зарегистр. 25-11-2004 | Отправлено: 07:13 23-03-2006 | Исправлено: KapralBel, 09:31 29-01-2018
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
 везде, куда накатывается (на наш старый Exchange, увы, нельзя)  

вот видишь, не всё так просто. У нас некоторые системы, с которых мигрировать надо, ещё на 2008 RTM. Там даже модуля ActiveDirectory нет... Приходится ADSI использовать.

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 17:21 13-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот так правильно разобраться с раскрашенной выдачей.
Раскраска увы пропала, кому не лень могут самостоятельно раскрасить заново  
 

Код:
 
function Get-Invalid {    
  [CmdletBinding()]    
  [OutputType([System.Security.Cryptography.X509Certificates.X509Certificate2])]    
  param(    
      [Parameter(ValueFromPipeline)]    
      [System.Security.Cryptography.X509Certificates.X509Certificate2[]]$certs    
  )    
  process {    
      foreach ($cert in $certs) {    
           try {  
               $cert | Test-Certificate -ErrorAction Stop -WarningVariable warn | Out-Null  
           } catch {
               Write-Information  -MessageData ($warn | foreach {write-output $_}) -Tag WarningsByLine
               Write-Information  -MessageData $Error[0] -Tag ErrMsgAggregated
               $cert | Write-Output
           }    
      }    
  }
}  
 
Get-ChildItem -Path "Cert:\LocalMachine\Root\" | Get-Invalid  -InformationVariable badcert | Remove-Item -WhatIf  
 
$badcert | where {($_.Tags -contains  'ErrMsgAggregated') -or ($_.Tags -contains 'WarningsByLine')}  
 
 
 
 
Разумеется, никто не мешает вовремя расковырять Error[0] и достать из его структуры любую важную инфу.
 
 
 
 
 
УПДАТЕ
https://blogs.technet.microsoft.com/heyscriptingguy/2015/07/04/weekend-scripter-welcome-to-the-powershell-information-stream/

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 17:24 13-09-2017 | Исправлено: LevT, 18:39 13-09-2017
RemikR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
>>
sorry за

Всего записей: 931 | Зарегистр. 16-10-2008 | Отправлено: 17:36 13-09-2017 | Исправлено: RemikR, 17:51 13-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RemikR
 
Для меня PS v.NEW ценен тем, что  
1) присутствует в новой винде изкаробки
2) его можно научить коллективному знанию - которое будет применяться в т.ч. потребителями,  
     
для которых, которым и которыми
1) самостоятельно найти "что именно работает" нереально
2) отдельные скрипты, которые хаотически перепадают от "самоделкиных" - наводят ступор и всё равно не могут быть самостоятельно воспроизведены.
 
А если могут, то ещё хуже - потому что учёбу "самоделкинству" я считаю конкретно вредным занятием, заводящим в тупик
(не несущим пользы для любого сообщества)
 
При этом действительно сложные вещи "самоделкиным" в принципе не по зубам, а по зубам [само]организованной инженерии.
Инструмент которой есть у всех в новой винде.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 18:14 13-09-2017 | Исправлено: LevT, 20:44 13-09-2017
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кто-нибудь знает, как установить модуль Storage для работы с разделами? (Win7 sp1 x64 + PS 5.1).
Везде пишут, что доступен с версии PS 3. При попытке установить через install-module предложил обновить nuget. Ок, обновил, модуль всё равно не ставиться. "Совпадения для указанных условий поиска и имени пакета "storage" не найдены. Чтобы просмотреть все доступные зарегистрированные источники пакетов, и спользуйте командлет Get-PSRepository". Что за хрень?

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 11:16 14-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
При попытке установить через install-module предложил обновить nuget.  

 
Это всегда так при первом обращении к модулю PackageManagement, и в десятке тоже.
 
Нужного модуля нет в дефолтном репозитории https://www.powershellgallery.com
проверить это из PS: Find-Module *stor*
 
А так у меня плохие новости.
ЕМНИП, этот модуль идёт с виндою и навёрнут поверх реализованных в системе WMI классов.
В 8.1 с PSv4 где я временно сейчас сижу - он есть
 

Код:
 
PS C:\Windows\system32> gmo -li *stor*
 
 
    Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules
 
 
ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   2.0.0.0    Storage                             {Add-InitiatorIdToMaskingSet, Add-PartitionAccessPath,
 

 
 
Можно попробовать  
1) скопировать модуль из восьмёрки-десятки  (шансы невысоки)
 
2) самостоятельно обернуть в командлеты те WMI вызовы, которые умеет семёрка.
https://blogs.technet.microsoft.com/heyscriptingguy/2015/02/05/registry-cmdlets-complete-the-registry-cdxml-module/ - вот по этому образцу.  
Судя по тому, что независимого модуля Storage так и не появилось, умеет она мало.
 
3) Можно посмотреть DSC модуль xStorage. А вдруг он поддерживает семёрку?
 
4) Ещй до появления галереи мне попадались модули, написанные вокруг diskpart  
Ну и просто вручную его можно подёргать.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 11:55 14-09-2017 | Исправлено: LevT, 12:01 14-09-2017
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LevT
Спасибо, попробую скопировать с сервера (Win 2012), когда время будет.
 
П.С.
Вот она какая совместимость, оказывается. Без танцев с бубном хрен заработает.
Всё-таки я был прав. PS заболел болезнью частой смены версий.

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 12:36 14-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Валите с больной головы на здоровую.  
При чем тут PS?
Модули типа "манифест" это просто обёртка над WMI/CIM классами: именно их дёргает PS согласно декларации cdxml
 
У MS дошли руки нужные классы предоставить только в 8 или скорее 8.1 винде.
Или я допускаю, что поменялся их интерфейс - и MS поленилась написать обёртку над старой версией.
 
Никакого вендора нельзя заставить бэкпортировать удобства, появившиеся в новых версиях.
Спасение утопающих в руках сообщества: думаю, что несколько мотивированных "некрофилов" могли бы решить эту проблему.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:53 14-09-2017
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
что несколько мотивированных "некрофилов"

Бггг, сразу вспоминается анекдот "И тебя Петька мативировал и меня тоже" )))

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:04 14-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я к тому, что.. выражусь на сей раз политкорректно... дауншифтеры как уже обычно жалуются на обстоятельства, вместо того чтобы качать СВОИ мотивацию и скиллы.
 
Написать модуль Storage для старой винды одиночному самоделкину не по зубам: его мотивация испарится раньше результата
Повторюсь, что присутствующий у всех одинаковый PS - как раз инструмент для организации совместной работы мотивированных мастеров и подмастерий.
 
Подмастерьем я здесь называю вежливого и образованного заказчика.
В частности, готового тестить недоделки и давать обратную связь  
А то чаще встречаются заказчики-потребители: не о них речь.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 16:20 14-09-2017 | Исправлено: LevT, 17:23 14-09-2017
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LevT

Цитата:
Валите с больной головы на здоровую.  

Да? Storage должен быть доступен начиная с PS3. А когда вышел PS3?
 

Цитата:
Повторюсь, что присутствующий у всех одинаковый PS - как раз инструмент для организации совместной работы мотивированных мастеров и подмастерий.  

У меня PS5.1, но, оказывается, этого не достаточно. Что бы все имели одинаковы инструмент, все, по версии M$ должны посвятить свою жизнь вечному апдейту и, заодно, бета-тестированию их продуктов. Зарплату вот только платить они мне не будут.
 
   
 
 
 
Добавлено:
 

Цитата:
Модули типа "манифест" это просто обёртка над WMI/CIM классами: именно их дёргает PS согласно декларации cdxml

WMI можно дёргать даже из WSH, который не развивается уже хрен знает сколько лет. Даже странно, что там такого сваяли индусские программеры, что приходится ускоренно штамповать всё новые версии PS.
Всё больше убеждаюсь, что PS малопригоден для "строительства храмов". Его удел - поделки на скорую руку. Конечно, найдутся задроты, которые будут его везде продвигать и рекламировать, создавать даже репозитории, никому не нужные, кроме них и которые (репозитории) умрут при выходе очередного несовместимого обновления.

----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 23:26 14-09-2017 | Исправлено: Smitis, 23:27 14-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis

Цитата:
 Storage должен быть доступен начиная с PS3.  

 
Откуда такие сведения?  
 
По-моему, Вы путаете версию PS (которая может быть проапгрейжена)  
и набор встроенных модулей, который расширялся с каждой виндой.
 
Проапгрейдите свою семёрку хотя бы до 8.1 - будет вам Storage (насчет 8 я не уверен).
Если же не хотите обновлять - пишите такой модуль для 7 самостоятельно. Или закажите разработку  
 
 
А вместе с последним WMF (т.е версией PS) идут PackageManagement, DSC,  Pester и ещё кой-чего - несколько важных "экосистемных" модулей.  
Вот они на семёрке доступны так же, как и на десятке.

 
Насколько мне известно некоторые DSC ресурсы пишутся с учётом интересов дауншифтеров.
 
 
Добавлено:
Забавная потребительская истерика.
 
Междупрочим, я тоже проходил через все эти обломайсы - и никто мне тогда на форуме не раскладывал все по полочкам по первому моему требованию.
Изучал и сопоставлял самостоятельно.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 00:09 15-09-2017 | Исправлено: LevT, 00:39 15-09-2017
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT

Цитата:
дауншифтеры как уже обычно жалуются на обстоятельства, вместо того чтобы качать СВОИ мотивацию и скиллы

Жаловаться могут и на стандартные командлеты, например Test-NetConnection, а когда скиллы до net-классов прокачают, дело идёт лучше...

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 00:40 15-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PhoenixUA
 
О! тот самый кейс для Proxy функции.
Сам привёл )))
 
 
Добавлено:
 
Test-Netconnection - удобная абстракция для пишущего свою хотелкину трубу "подмастерья"-заказчика.  
А нюансы реализовать дело мастера.  
Буквально перекрываем свой функцией стандартную и вперёд.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 00:46 15-09-2017 | Исправлено: LevT, 00:51 15-09-2017
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И приходим к тому, что истинные мастера должны писать командлеты на дотнете...

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 00:54 15-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
внутри командлета может быть что угодно.
Например у нетапп это емнип вызовы какой-то CLI-нашлёпки над питоном (если не успели переписать)
 
важно, чтобы заказчик мыслил "трубой"  
и давал обратную связь мастеру
 
Добавлено:
PhoenixUA
кстати у команды powershell уже пару лет есть голосовалка за фичи
ну допустим облажались они, не так сдизайнили командлет, когда ещё той голосовалки не было
 
но теперь-то народ не допустит, я надеюсь
Если за фичу не проголосуют, значит она не так уж и нужна

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 01:00 15-09-2017 | Исправлено: LevT, 01:01 15-09-2017
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis

Цитата:
Без танцев с бубном хрен заработает.

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

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 07:50 15-09-2017
2as

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PhoenixUA

Цитата:
И приходим к тому, что истинные мастера должны писать командлеты на дотнете...

ну дык, идеологически правильные командлеты от MS  и идут в виде dll )))
...
Об чем ранее и говорилось:
скрипты из командлетов для применения на практике ваяем на PS
а  
командлеты логичнее делать применяя ООП, классы, наследование, инкапсуляцию (C#, например)
...
тогда сразу всё становиться на место.
 
Добавлено:
LevT

Цитата:
По-моему, Вы путаете версию PS (которая может быть проапгрейжена)  
и набор встроенных модулей, который расширялся с каждой виндой.
 
Проапгрейдите свою семёрку хотя бы до 8.1 - будет вам Storage (насчет 8 я не уверен).
Если же не хотите обновлять - пишите такой модуль для 7 самостоятельно. Или закажите разработку

...
Ну да, конечно, надо авто- авиа- и прочим строителям этот принцип на заметку взять )))
А что, лейбу поменял на более свежую, предусмотрел габаритами, посадочным местом и крепежом ....а вот "внутренности" привести в соответствие - это или за отдельную плату заказать, или самому допилить.
Супер! )))
 
Или в Jave - интерфейсы прописал, а алгоритмы пусть программер под себя ваяет - а то мало ли чего - под каждого не подстроешься... )

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 08:38 15-09-2017 | Исправлено: 2as, 08:51 15-09-2017
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LevT
Не работает Ваша теория. Могу объяснить почему.


----------
Разум когда-нибудь победит

Всего записей: 3179 | Зарегистр. 09-02-2003 | Отправлено: 09:43 15-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
ну дык, идеологически правильные командлеты от MS  и идут в виде dll )))  

 
Вмваре PowerCLI тоже изначально было из PSSnapin-ов, наконец в этом году они его переписали модулями и распространяют через ту же галерею. Колоссальная работа, между прочем.
 
Другое дело что сами модули могут зависеть от dll или просто быть ими.
Но модули бывают ещё типов Script и Msnifest.
Вот 8.1 с PSv4

Код:
 
PS C:\Windows\system32> gmo -li | group moduletype
 
Count Name                      Group
----- ----                      -----
   52 Manifest                  {AppBackgroundTask, AppLoc..
    6 Script                    {AssignedAccess, Dism, ISE..
    2 Binary                    {Hyper-V, PSScheduledJob}
 

 
Итак, там бОльшая часть модулей платформозависимая. Storage как раз из таких.
 
Вот-вот выйдет кроссплатформенный v6 Core.  
Насколько я понимаю, там не будет платформозависимых модулей
 
 

Цитата:
командлеты логичнее делать применяя ООП, классы, наследование, инкапсуляцию (C#, например)  

 
командлет автоматически является классом с кучей унаследованных интерфейсов, а какой именно реализацией - зависит от атрибутов в скрипте.
(вот тут я мог высказаться некорректно - но за смысл отвечаю)
 
таким классом является например мой командлет выше на этой странице. Никакого ООП для его написания не потребовалось.
Честно говоря, и мозгов-то почти не потребовалось.
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:14 15-09-2017 | Исправлено: LevT, 10:18 15-09-2017
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » PowerShell
KLASS (06-03-2018 00:43): Объединение тем по сценариям: Сценарии Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru