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

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



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

Цитата:
прочитал о нем там, где вы не советовали, в гугле ))Там же и пример живой был.  

 
там целая машинерия.
 
Нет смысла дёргать кусками, тут имеют смысл крайности:  
- либо осилить книжку того же Siddaway
- либо просто юзать там, где он подворачивается.
 
Например, в соседней теме от меня хотели скрипт на тему правил фаера
(Get-NetFirewallRule).GetType().Name - сюрприз, как раз CimInstance
 
слабо понимая я его потрохах, я просто имею в виду этот факт и могу передавать объекты этого типа между командлетами.
 
 
ЗЫ. А насчёт гугля осторожнее!
 
Чтобы отделить полезное от устаревшего и откровенно вредного и невежественного, надо знать минимум половину того, что вы только собираетесь там найти  


Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 14:04 30-03-2017 | Исправлено: LevT, 14:26 30-03-2017
YuS_2



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

Цитата:
Пошел штудировать функции.

Кстати, о функциях... можно немного прибавить производительности скрипту, где-то процентов на 25-30.
Надо добавить вот такую функцию в начало скрипта:

Код:
#Функции:
function useinc ($x){
    process{if($_ -match $x){$_}}
}

 
и заменить вот эти строки:

Код:
$arr2 = $arr1|%{if($_ -match $finc1){$_}}
$arr3 = $arr1|%{if($_ -match $finc2){$_}}
$arr4 = $arr1|%{if($_ -match $finc3){$_}}

 
такими:

Код:
$arr2 = $arr1|useinc $finc1
$arr3 = $arr1|useinc $finc2
$arr4 = $arr1|useinc $finc3


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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Richard_Nixon
Вообще-то CIM - кросплатформенный стандарт управления осями и фирмварями. Ему подвержено всё, где есть реализация.
 
В винде раньше был самопальный стандарт - WMI: оттуда можно достать и порулить очень глубокими потрохами винды
Все нарытые скрипты с WMI можно смело переписывать под CIM.
 
Но для простых вещей это оверкилл.
 
 
Добавлено:
В пошике в каждой новой версии всё больше оттуда вытаскивалось в командлеты.
В старых версиях иногда просто не было другого выхода, кроме лазанья в WMI
 
Кстати сами пошиковские командлеты внутрях своих часто именно это и делают )

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 14:07 30-03-2017 | Исправлено: LevT, 14:22 30-03-2017
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу включить через скрипт поиск обновлений не только для Windows, но и для всех продуктов Microsoft. Давно был найден скрипт для включения: https://morgansimonsen.com/2013/01/15/how-to-opt-in-to-microsoft-update-with-powershell/.
Я запускал его через батник:

Код:
 
echo $mu = New-Object -ComObject Microsoft.Update.ServiceManager -Strict>1.ps1
echo $mu.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")>>1.ps1
powershell -ExecutionPolicy Unrestricted -File 1.ps1
del 1.ps1
 

Теперь хочу немного упростить и записать в строчку, но не работает почему-то:

Код:
 
powershell -command '$mu = New-Object -ComObject Microsoft.Update.ServiceManager -Strict; $mu.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"";'
 

Делал по инструкции отсюда: https://dmitrysotnikov.wordpress.com/2008/06/27/powershell-script-in-a-bat-file/

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 12:19 19-04-2017 | Исправлено: farag, 13:09 19-04-2017
PhoenixUA



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

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 14:18 19-04-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Очень древнее изобретение колеса. С тех пор придумали зимнюю резину и даже датчики давления.
 
Попробуйте  
Install-Module PSWindowsUpdate

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:27 19-04-2017
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не в скобке дело (((
Просветите, какие датчики давления лучше использовать?

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 21:31 19-04-2017 | Исправлено: farag, 21:31 19-04-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
а чего непонятно? Ставите модуль и смотрите, что он умеет
Все команды и ключи
 
get-command -module pswindowsupdate
 
 
 
 
Добавлено:
я обычно запускаю по очереди все get- команды - и получаю общее представление о возможностях модуля
поскоку тоже не любитель читать справку (потом все равно приходится ))

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 22:11 19-04-2017 | Исправлено: LevT, 22:14 19-04-2017
PhoenixUA



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

Цитата:
Не в скобке дело (((  

 
Точнее не только в скобке:

Код:
 
powershell -command "& { $mu = New-Object -ComObject Microsoft.Update.ServiceManager -Strict; $mu.AddService2('7971f918-a847-4430-9279-4a52d1efe18d',7,'')}"
 

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 22:40 19-04-2017
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насчет модуля я в курсе, но мне надо именно так, как я описал. Кстати, все работает. Низкий поклон.

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 08:23 20-04-2017
farag



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

Код:
 
New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name AdvertisingInfo -Force
New-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo -Name Enabled -Value 0 -Force
 

Можно как-то объединить команды в одну?

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 13:19 25-04-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Предлагаю в одну функцию, с двумя и более параметрами.
Либо второй пример из хелпа: там всё равно две команды, но без дублирования, через пайп.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:00 25-04-2017
farag



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

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 10:50 26-04-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Дык он написан в хелпе к New-ItemProperty. Хелп у всех одинаковый.
Примеры там внизу.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 11:45 26-04-2017
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Clear-RecycleBin -force
Clear-RecycleBin : Не удается найти указанный файл
строка:1 знак:1
+ Clear-RecycleBin -force
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (RecycleBin:String) [Clear-RecycleBin], Win32Exception
    + FullyQualifiedErrorId : FailedToClearRecycleBin,Microsoft.PowerShell.Commands.ClearRecycleBinCommand

 
при повторном вызове этой же команды ошибки уже нет.. только при первом вызове в сеансе. что за? как то лечится?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 02:21 30-04-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
файл найти не получается не по вине пошика: если не очень не лень, можно подебажить системную первопричину.
А чтобы скрипт не прерывался на этом месте, есть ключ -ea
-ErrorAction '[Silently]Continue'

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:27 30-04-2017
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
без скрипта, просто в консоли набираю. ну и в фар в пользовательское меню засунул.
это сразу так было, после апдэйта вин10 на 1607 - было пропало, но буквально пару дней.
какой файл? как поискать?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 10:36 30-04-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Рекомендую вот эту книжку  
https://leanpub.com/powershell-scripting-toolmaking
 
а также эту
https://leanpub.com/the-dsc-book
 
и эту
https://leanpub.com/pesterbook
 
 
кто не знает: это самые крутые эксперты по актуальному пошику
https://donjones.com/2017/02/17/serious-question-what-would-stop-you-from/#more-2364
 
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 21:12 10-05-2017 | Исправлено: LevT, 11:29 12-05-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Ты никак тут коммерцию затеял... купил и читай молча.
Обмениваться иди в ПМ тут не барахолка.
Зарабатывать, твои авторы, пусть зарабатывают, но
никаким боком не оповещая здесь участников форума.
Пост сотри сам. Не сотрешь-отправлю до конца лета в баню.
Обсуждать здесь, что либо не собираюсь.

Всего записей: 11058 | Зарегистр. 12-10-2001 | Отправлено: 00:24 12-05-2017
LevT



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

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 11:46 12-05-2017 | Исправлено: LevT, 11:47 12-05-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