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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ага. Вот и юноксоидов подтягивают. Видимо, сейчас начнётся та самая эпическая битва между "средствами управления конфигурациями" за роль "Верховного Оркестратора"

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

Всего записей: 3452 | Зарегистр. 09-02-2003 | Отправлено: 16:58 18-09-2017 | Исправлено: Smitis, 16:59 18-09-2017
LevT



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

Цитата:
Ни слов, ни увещеваний человек не понимает... в голове одни трубы, мастера, самоделкины и заказчики,

 
В отличие от вас-флеймеров, я тут недавно привёл несколько примеров "мастер-классов"  
  того, как решать возникающие задачи с минимумом вовлечения и вообще затрат
именно, с использованием социальной/оранизационной структуры и PS трубы

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



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

Цитата:
Ладно пошел я отсель, надеюсь что это не заразно

Поздно. Верховный Оркестратор всё равно найдёт Вас.


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





Обратите внимание: с этого фашего сообщения НЕ ПО ТЕМЕ дальше пошло сплошное обсуждение друг друга. Выходит, что провокатор именно вы.

Всего записей: 3452 | Зарегистр. 09-02-2003 | Отправлено: 17:03 18-09-2017 | Исправлено: IFkO, 18:47 18-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
PS назван скриптовым языком только для адаптации башеводов и батниководов.
Да, на нём можно решать сиюминутные задачки, посильные одиночке.
 
Но это лишь малая доля его возможностей.
 
 
Добавлено:
Smitis

Цитата:
Верховный Оркестратор всё равно найдёт Вас.  

 
Зачем ему социальные идиоты?
DevOps-ориентированным организациям хватает вменяемых людей.
 
Но то конторы с баблом... а хотелось бы применить лучшие практики для целей руборда.





Лучшей практикой для целей руборда было бы не переходить на личности форумчан. Рекомендую!

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 17:07 18-09-2017 | Исправлено: IFkO, 18:40 18-09-2017
Smitis



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

Цитата:
Зачем ему социальные идиоты?  

Хмм... Прямое оскорбление. Похоже, Вы совсем берега потеряли. Я бы на месте коллеги KapralBel подал жалобу модератору.


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





Вам тоже никто не мешает подать на это жалобу модератору. А вот обсуждать оскорбления в этой теме не следует.

Всего записей: 3452 | Зарегистр. 09-02-2003 | Отправлено: 17:58 18-09-2017 | Исправлено: IFkO, 18:42 18-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
https://ru.wikipedia.org/wiki/Идиот





Оффтопик.

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 18:19 18-09-2017 | Исправлено: IFkO, 18:43 18-09-2017
KapralBel



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

Цитата:
Я бы на месте коллеги KapralBel подал жалобу модератору.  

Я так и сделаю
причем и на второй пост тоже





Всё это пишите в личку. Не превращайте тему в свалку взаимных оскорблений и разборок.

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:24 18-09-2017 | Исправлено: IFkO, 18:45 18-09-2017
YuS_2



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

Цитата:
В отличие от вас-флеймеров, я тут недавно привёл несколько примеров "мастер-классов"

Отличие от нас... хмм... флеймеров... Верховный мастер не удосуживается довести до законченного состояния код, мотивируя это тем, что:
1. Все делается по памяти, без привлечения сторонних источников информации.
2. Мозги не включаются.
3. ... (мне лично лень листать форум для поиска других причин)
и т.д.
 
Кроме того, Верховный мастер, недавно сознался, что регэкспы ему неподвластны... теперь возникает закономерный вопрос: о каких тут "мастер-классах" можно говорить? Не комильфо, однако.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:26 18-09-2017
LevT



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

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

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



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Господа специалисты!
Мне право неудобно учить вас манерам, но поскольку однажды вся ваша компания уже была замечена в переходе на личности с последующими взаимными оскорблениями, считаю своим долгом предупредить, что мой следующий выстрел будет уже не в воздух.

Всего записей: 7045 | Зарегистр. 22-09-2005 | Отправлено: 18:50 18-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот ещё про трубу хорошо пожёвано
https://www.red-gate.com/simple-talk/sysadmin/powershell/ins-and-outs-of-the-powershell-pipeline/

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 18:59 18-09-2017
YuS_2



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

Цитата:
регэкспы это не PS, а "программирование для продвинутых чайников".

Да ладно?! а дотнет - это PS?
а  

Код:
man about_Regular_Expressions

не PS?
Программирование для чайников - это как раз для тех, кто не совсем понимает (именно так: "не совсем", т.е. имеет представление о предмете, но не знает всех тонкостей и способов применения) предмет обсуждения.  
Можете, конечно, считать себя таковым - это ваше право, но имхо, лучше подтянуть свои знания до уровня мастера, чтобы, действительно, относиться к таковым, а не причислять себя к сонму профессионалов, через строчку и в потоке сознания... к месту и не к месту...
 

Цитата:
Я например люблю их в PS конструкции switch  
Но такое должно быть спрятано внутри кода инструмента и ни в коем случае не попадаться на глаза подмастерьям-заказчикам.

Это называется личными предпочтениями, но никак не руководством к действию. И что должно, а что нет - не вам решать, всё же.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:11 18-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Дотнет, PS и регэкспы это три разные вещи, извините за банальность.
В моих постах моё понимание структуры их взаимосвязей.
(которое, не скрою, я хочу сделать здесь общим)
 
А в ваших хаос.
Притом - агрессивный.

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



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

Цитата:
моё понимание структуры их взаимосвязей.

И Вы уверены, что оно кому-то интересно? Ваше понимание...
Вам ведь никто не навязывает своего мнения? Так у кого тут агрессия с периодическими оскорблениями? Может быть в одиночестве тебе тут будет жить лучше и спокойнее?
Боюсь, что только вот свою миссионерскую деятельность тебе не перед кем будет проводить... случайные посетители будут просто покидать этот топик и достаточно быстро.  
А впрочем так ведь и происходило до сих пор, увы и ах. Мир широк, как говорится...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:30 18-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Движки регэкспов есть во всех языках, PS пользуется дотнетовским, но часто может обойтись "глОбами" (wildcards),  
https://www.red-gate.com/simple-talk/wp-content/uploads/imported/1304-PS_Strings_chart_1.htm
 
а вот труба, которую вы не устаёте обстёбывать - это самая суть PS
 
https://www.red-gate.com/simple-talk/dotnet/.net-tools/down-the-rabbit-hole--a-study-in-powershell-pipelines,-functions,-and-parameters/
 
 
Добавлено:

Цитата:
И Вы уверены, что оно кому-то интересно? Ваше понимание...  

 
Меня в достаточной мере мотивирует моё собственное желание сделать его общим. )
 
 
 
Добавлено:

Цитата:
Это называется личными предпочтениями, но никак не руководством к действию. И что должно, а что нет - не вам решать, всё же.

 
Это называется лучшими практиками профессиональных сообществ, наработанными вокруг  powershell.org и официальных репозиториев на гитхабе
 
И чем агрессивнее здесь Ваше невежество, тем настойчивее буду я.




Найдите своей настойчивости правильное применение. А то пока бы настойчивы в намерении обсуждать оппонентов, а это - нарушение правил форума.

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 19:34 18-09-2017 | Исправлено: IFkO, 20:34 18-09-2017
YuS_2



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

Цитата:
Движки регэкспов есть во всех языках

Не стану даже переубеждать вас в этом, оставайтесь в счастливом неведении...
 

Цитата:
а вот труба, которую вы не устаёте обстёбывать - это самая суть PS

"Обстебывается" не сама труба, а ваше неустанное её упоминание, кэп.  
И да, по-русски, серию команд правильнее называть более общепринятым термином "конвейер", а не "труба" ... ну, так уж сложилось в русском языке.
 

Цитата:
Меня в достаточной мере мотивирует моё собственное желание сделать его общим.

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

Цитата:
Ваше невежество

Невежда и невежа, здесь пока наблюдается только один, причем с весьма раздутым ЧСВ.
За сим откланиваюсь, ибо если не бан, то запрет на пост далее обеспечен будет, если не прерву столь "интересную" беседу.




Насчет запрета на пост - это вы верно подметили. По грани уже ходите.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:53 18-09-2017 | Исправлено: IFkO, 20:29 18-09-2017
LevT



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

Цитата:
Не стану даже переубеждать вас в этом, оставайтесь в счастливом неведении...  

 
алгол, паскаль и 1С не в счёт )
Но в ворде и экселе регэкспы тоже есть (например в окошечках поиска-замены)
 
А также во всех актуальных языках, по кр. мере мейнстримных
Но (почти?) везде это пришлёпка сбоку, со своим отдельным движком.
По сути отдельный язык со своим диалектами.
 
Выучить их невозможно - по признанию множества людей, профессионально их применяющих по мере необходимости.
Каждый раз приходится учиться заново.
 
Напротив, шаблону продвинутой PS функции-командлета научиться можно - и продуктивность этой науки я тут продемонстрировал несколько страниц назад.
 
 

Цитата:
И да, по-русски, серию команд правильнее называть более общепринятым термином "конвейер", а не "труба" ... ну, так уж сложилось в русском языке.  

 
Русскаязыкая переводчика знаменита своим качеством  

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить одну задачку!
 
 
Имея выгруженный файл задачи, я хочу не импортировать файл, а написать код скрипта непосредственно в PowerShell. Должно получиться что-то такое:
 

Код:
 
$XML = @"
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <URI>\Office</URI>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2017-09-18T09:00:00+03:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>63</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <Duration>PT10M</Duration>
      <WaitTimeout>PT1H</WaitTimeout>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>D:\Программы\Прочее\Office_task.bat</Command>
    </Exec>
  </Actions>
</Task>
"@
Register-ScheduledTask -Xml (Get-Content $XML | Out-String) -TaskName Office -Force
 

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

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 10:03 19-09-2017 | Исправлено: farag, 10:04 19-09-2017
2as

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag, как вариант:
 а. Сформировать стоку:  
"<StartBoundary>время начала выполнения задачи</StartBoundary>"

Цитата:
Имея выгруженный файл задачи

 1. Найти в этом файле строку, начинающуюся с "<StartBoundary>"
 2. Заменить эту строку, на созданную вами.
 3. Импортировать задачу в планировщик.
 
* Готовый сценарий для поиска-замены строки в файле с подробным описанием работы и примерами использования здесь :
 
** для работы скриптов под Win7 без необходимости обновления версии PS (со всеми сопутствующими плясками), для экспорта-импорта заданий планировщика пользоваться утилитой schtasks.exe  
Про запуск программ с помощью PS здесь :

Всего записей: 3638 | Зарегистр. 09-09-2003 | Отправлено: 10:57 19-09-2017 | Исправлено: 2as, 11:36 19-09-2017
farag



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

Цитата:
время начала выполнения задачи

А можно указать конкретную дату каждого месяца для отрабатывания задачи?

Код:
 
# Включение в Планировщике задач очистки папки %SYSTEMROOT%\SoftwareDistribution\Download
$action1 = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument 'Get-ChildItem -Path $env:SystemRoot\SoftwareDistribution\Download -Force -Recurse | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue'
$action2 = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument 'Get-ChildItem -Path ''\\localhost\c$\Windows\Installer\$PatchCache$\Managed'' -Recurse -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue'
$trigger =  New-ScheduledTaskTrigger -Daily -DaysInterval 62 -At 9am
$settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable
$principal = New-ScheduledTaskPrincipal -UserID System -RunLevel Highest
$params = @{
"TaskName"    = "SoftwareDistribution"
"Action"    = $action1, $action2
"Trigger"    = $trigger
"Settings"    = $settings
"Principal"    = $principal
}
Register-ScheduledTask @Params -Force
 

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 11:07 19-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