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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2as
Отличия в ремотинге v3 от v2:
сессии живут на сервере и могут быть disconnected (раньше на жили клиенте и рвались)
порты стандартные для WS-Man 5985 и 5986  (раньше 80 и 443)

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

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

Цитата:
Отличия в ремотинге

1. пока по функционалу и надежности устраивает - если расширится круг задач - тогда буду посмотреть.
2. По умолчанию и был порт 5985. Перенастроил на 80 чтобы в дальнейшем не париться с файерволами. Перенастраивал скриптом и утилитой от Русиновича.
...
Задачи решает и славно. Как говориться, если солнце всходит и заходит - нефиг лезть в настройки.

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 19:40 24-09-2017 | Исправлено: 2as, 19:41 24-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2as
Мелкие и мягкие "отказываются от ответственности", если вы включаете ремотинг на публичных подключениях.
(по крайней мере так было два года назад)
 
А внутри защищенного периметра порты WS-Man перекрывать фаером не меньший бред, чем в паблике перекрывать HTTP(S)
 
 
Добавлено:
2as
Дослушался в курсе на плюралсайт до того места, где J.Hicks прямо внушает не менять порт до тех пор, пока собаку на скушаешь с дефолтным.  
Потом менять - при крайней необходимости - и опять кушать собаку )

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 20:39 24-09-2017
2as

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

Цитата:
Мелкие и мягкие "отказываются от ответственности", если вы включаете ремотинг на публичных подключениях.

Это без комментариев, так как всё ясно и без слов )))
 

Цитата:
пока собаку на скушаешь

Гурман, что сказать ... К корейцам его на поруки. )))
... к северным
просто нет времени (и желания) следовать его кулинарным рецептам...
 
К тому же, есть сертификация скриптов, если говорить о профилактике. Более эффективно в плане безопасности на мой взгляд.

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 07:07 25-09-2017 | Исправлено: 2as, 07:14 25-09-2017
LevT



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

Цитата:
есть сертификация скриптов

 
что такое?
Упд.
Если Вы имеете в виду подпись, то это не поможет, пока в интернет торчит полноценный эндпойнт (с полным языком)
 
 
 
Добавлено:
 

Цитата:
просто нет времени (и желания) следовать его кулинарным рецептам...  

 
на вкус и цвет товарищей нет.
Сам Хикс ругается на некоторые недокументированные отличия v4 от v3, именно в ремотинге.
"Всё тестируйте, и никогда не полагайтесь на assumptions"
 
Чтобы пошик использовать на полную (включая ремотинг), надо подружить его с конкретным окружением.  
Для этого необходимо мастерство: работягам будет облом.
 
Способ уменьшить облом - выровнять версию WMF по максимуму.

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



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

Код:
 
$taskmgr = Get-Process Taskmgr -ErrorAction SilentlyContinue
If ($taskmgr)
{
   $taskmgr.CloseMainWindow()
}
Start-Process -FilePath Taskmgr
Start-Sleep -Seconds 1
$taskmgr = Get-Process Taskmgr -ErrorAction SilentlyContinue
If ($taskmgr)
{
   $taskmgr.CloseMainWindow()
}
Start-Sleep -Seconds 1
$preferences = Get-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager -Name Preferences
$preferences.Preferences[28] = 0
New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager -Name Preferences -Type Binary -Value $preferences.Preferences -Force
Start-Process -FilePath Taskmgr
 

Очень хочется улучшить ЭТО.

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



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

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



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

Цитата:
меняется от версии к версии винды

Да это же и для 10 можно использовать: меньше сравнений, лишь паузы необходимы, чтобы значение записалось.

Цитата:
ваша 8.1 просто тормозная

Оригинальный образ на виртулке и соседнем ПК.

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



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

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



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

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 11:06 25-09-2017
2as

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

Цитата:
это не поможет, пока в интернет торчит полноценный эндпойнт (с полным языком)  

Ну, следует отметить, что в этом случае ничего не поможет. )
И как бэ разговор о PS, каких-то портах, становится несколько отвлеченно-теоретическим, не находите?
Другими словами, в этом случае, говорить о портах PS, это всё равно что рассуждать, стоит ли полечить насморк человеку, сидящему на электрическом стуле в ожидании команды: "Ключ на старт, поехали!" )))

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 13:17 25-09-2017 | Исправлено: 2as, 13:31 25-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2as
кому как. Как я уже писал выше,

Цитата:
Я русский бы выучил только за то...

Так что везде начинаю с наката последней версии WMF.
 
Хинт: 1) https://chocolatey.org/install
2) choco install powershell -y
3) ребут
 
Добавлено:

Цитата:
Другими словами, говорить о портах PS,  

 
о каких вы портах, кстати?
Для линя релизится последний v6
беткой все того желающие пользуются уже года полтора (я не из их числа)

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 13:31 25-09-2017 | Исправлено: LevT, 13:35 25-09-2017
2as

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

Цитата:
Chocolatey is a package manager for Windows (like apt-get or yum but for Windows)

Ну вот, осталось совсем немного подождать, пока Win не станет полноценным Linux )))
 

Цитата:
о каких вы портах, кстати?

если мне не изменяет память, речь шла о 5985 и 80

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 13:45 25-09-2017 | Исправлено: 2as, 13:52 25-09-2017
iNNOKENTIY21



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

Цитата:
Очень хочется улучшить ЭТО.

а если так:

Код:
$path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager'
$name = 'Preferences'
 
$preferences = Get-ItemProperty -Path $path -Name $name
 
if ($preferences.Preferences[28] -eq 1)
{
    $taskmgr = Get-Process Taskmgr -ErrorAction SilentlyContinue
 
    If ($taskmgr)
    {
        $taskmgr.CloseMainWindow()
        $taskmgr.WaitForExit()
    }
 
    $preferences.Preferences[28] = 0
    New-ItemProperty -Path $path -Name $name -Type Binary -Value $preferences.Preferences -Force
}
 
Start-Process -FilePath Taskmgr


Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 13:53 25-09-2017 | Исправлено: iNNOKENTIY21, 15:26 25-09-2017
LevT



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


Цитата:
осталось совсем немного подождать, пока Win не станет полноценным Linux )))  

 
Дык уже догнал и перегнал ))
По крайней мере в части PS: сидеть на баше и текстовых юникс утилях продолжат лишь самые упёртые гномы.
 
Изобретатель пошика Сновер ("technology fellow" M$) хотел даже развести мелкомягких на то, чтобы они выкатывали NanoServer с ядром, обновляемым из пакетного менеджера - в качестве основного продукта.
Но вот с этим его обломали (
 
 
Добавлено:
Кстати не факт, что обломали до конца.
NanoServer теперь только для виртуальных платформ: такое ядро проще обновлять.

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



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

Код:
 
$getservice = Get-Service -Name wuauserv
while($getservice.State -eq 'Running')
{
    Start-Sleep -Seconds 10
    $getservice = Get-Service wuauserv
}
Write-Host 111
 

По идеи только при статусе Stopped должно выводиться "111", но оно выводится почему-то всегда. Где ошибка?
Цитата:
а если так:  

Э, совсем не так, как было задумано: $taskmgr.WaitForExit() мне не нужен ))

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 13:31 26-09-2017
KapralBel



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

Цитата:
По идеи только при статусе Stopped должно выводиться "111",

Тут 111 выводится всегда, т.к. эта строка не входит в блок выполняемый по какому-то условию
 
Добавлено:
Кстати свойстсво должно быть не .state а .status - это во первых
во вторых опять допускаете ошибку в однос случае присваиваете именованное - Name (2я строка) а в 5 не именовано )))

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:43 26-09-2017
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Спасибо. Тогда надо write-host в скобки взять или как? Как сделать, чтобы только в случае stopped выполнялось действие, а в остальных — шла опять проверка на службу?

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 14:23 26-09-2017 | Исправлено: farag, 14:25 26-09-2017
KapralBel



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

Цитата:
 Как сделать, чтобы только в случае stopped выполнялось действие, а в остальных — шла опять проверка на службу?

Для этого условия - вот так:
 

Код:
 
$getservice = Get-Service -Name wuauserv  
while($getservice.Status -eq 'Running')
{
    Start-Sleep -Seconds 10
    $getservice = Get-Service -Name wuauserv  
}
Write-Host 111  

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



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

Цитата:
Э, совсем не так, как было задумано: $taskmgr.WaitForExit() мне не нужен ))

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

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 14:36 26-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