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


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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

Uriu

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 PowerShell 1.0 На текущий момент совершенно неактуальная версия, интересная только для истории.
Ссылки
 
PowerShell 2.0 и WinRM 2.0 (Последняя версия, работающая на Windows XP и Windows 2003) (Ещё)
Прямые ссылки:
* Windows XP и Windows Embedded x86 ENG
* Windows XP и Windows Embedded x86 RUS
* Windows 2003 Server x86 ENG
* Windows 2003 Server x86 RUS
* Windows 2003 Server x64 ENG
* Windows 2003 Server x64 RUS
 
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, аналогично выполнению .bat/.cmd-файлов
нужно в командной строке набрать следующую команду  
ftype microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.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 | Исправлено: KLASS, 16:48 30-08-2017
LevT



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2as
Отличия в ремотинге v3 от v2:
сессии живут на сервере и могут быть disconnected (раньше на жили клиенте и рвались)
порты стандартные для WS-Man 5985 и 5986  (раньше 80 и 443)

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

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

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

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

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



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

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

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

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

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

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

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

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



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

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

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

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

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

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



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
 

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

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



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

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



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

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

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

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

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

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



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

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



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

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

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

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

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

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



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

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

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

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

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

Всего записей: 9874 | Зарегистр. 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

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

Advanced 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


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



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


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

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

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



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() мне не нужен ))

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



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

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

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

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



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

Всего записей: 323 | Зарегистр. 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  

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

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

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

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

Всего записей: 706 | Зарегистр. 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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » PowerShell

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2017

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru