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

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

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

Цитата:
Дело было в escape-символе.

ну тогда вполне себе сработало бы и это:

Цитата:
 
б. блок операторов:  

Код:
$getservice = Get-Service -Name wuauserv; If($getservice.Status -eq 'Running') {Start-Sleep -s 10; Start-Process -FilePath D:\Программы\Прочее\1.bat} Else {Start-Process -FilePath D:\1.bat}
сохранить, например в D:\Test\file.ps1,  тогда
 
Код:
$action = New-ScheduledTaskAction -Execute "Powershell.exe" -Argument '-File D:\Test\file.ps1'
...
 
 

К тому же в File.ps1 можно было перенести функционал Прочее\1.bat  и D:\Test\file.ps1. В виде отдельных функций, например.  
P.S. Вы случайно не кумулятивное обновление из локальных источников ваяете?

Всего записей: 3639 | Зарегистр. 09-09-2003 | Отправлено: 04:49 22-09-2017
farag



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

Цитата:
из локальных источников ваяете

http://gallery.ru-board.com/topic.cgi?forum=5&topic=39544&start=981&limit=1&m=1#1

Цитата:
сохранить, например в D:\Test\file.ps1,  тогда  

Ненавижу плодить файлы
Другой вопрос: есть скрипт, который раскрывает окно Диспетчера задач и

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

работает идеально на Win 10, а в Win 8.1 ошибка

Код:
 
+ $preferences.Preferences[28] = 0
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     + CategoryInfo          : InvalidOperation: ( [], RuntimeException
     + FullyQualifiedErrorId : NullArray
 

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 17:45 22-09-2017 | Исправлено: farag, 17:47 22-09-2017
LevT



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

Цитата:
работает идеально на Win 10, а в Win 8.1 ошибка  

 
Ещё бы
Яркий пример безмозглых скриптописателей и такого же гугления!
 

Код:
$preferences.Preferences[28]

почему вы решили, что 29-й параметр в этом ключе реестра навеки прибит гвоздями?
никто не гарантировал даже то, что параметры будут возвращены в одинаковом порядке...
 
 
Добавлено:
ищите, как эта "айтемпропертя" называется - и впредь обращайтесь к ней по имени!

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



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

Цитата:
безмозглых скриптописателей

А как надо? Я сам учу PS. Никто мне не помогает ))

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 19:15 22-09-2017
LevT



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

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



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

Цитата:
Уже одно это за гранью.

Как же тогда сделать так, чтобы автоматически раскрыть окно у Диспетчера задач?

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 19:37 22-09-2017
LevT



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

Всего записей: 17742 | Зарегистр. 14-10-2001 | Отправлено: 19:49 22-09-2017
farag



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

Цитата:
звать пропертю по имени

Можно конкретный код?

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 20:12 22-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну, там где это работает - посмотрите, что такое $preferences.Preferences[28]  
например через  | fl *
найдите, как зверька зовут.

Всего записей: 17742 | Зарегистр. 14-10-2001 | Отправлено: 21:00 22-09-2017
westlife



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Диспетчер задач не принимает параметр "на весь экран" ни из PS ни из CMD

Код:
powershell start-process taskmgr -windowstyle Maximized
cmd /c start /max taskmgr

На блокноте работают эти оба варианта.  
А ваш сценарий у меня на 10 не работает.
 
Но вот через функцию PS можно изменить состояние запущенного окна:
Подробнее
 

Всего записей: 1483 | Зарегистр. 12-12-2006 | Отправлено: 22:22 22-09-2017
2as

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

Цитата:
Ненавижу плодить файлы

Вы невнимательны,  там же далее было предложено:

Цитата:
в File.ps1 можно было перенести функционал Прочее\1.bat  и D:\Test\file.ps1. В виде отдельных функций, например.
,что как раз и уменьшило бы кол-во файлов )))

Всего записей: 3639 | Зарегистр. 09-09-2003 | Отправлено: 23:06 22-09-2017
farag



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

Цитата:
на весь экран

Это не на весь экран, а просто показать больше информации в окне.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 00:08 23-09-2017
westlife



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

Цитата:
Это не на весь экран, а просто показать больше информации в окне.

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

Всего записей: 1483 | Зарегистр. 12-12-2006 | Отправлено: 00:15 23-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Посмотрел я с утра на ваши преференсы.
Оказывается, те ещё укурки сами авторы таскманагера, которые придумали хранить в реестре почти четыре тысячи безымянных настроек. (Молодцы вообще никому ничего не должны, и настройки те могут значить любые разные вещи в разных системах)
За ними следуют те, кто широко публикуют результат тяп-ляп реверсинга где-то кроме "Тестирования", и вселяют пустые надежды в доверчивых граждан  
 
farag
Извиняюсь за вчерашнюю резкость.
 
westlife
у таскманагера окно с нестандартным поведением.
Я когда случайно отключил там "подробный режим"- выпал в осадок и спрашивал на форумах, как избавиться от "улыбки чеширского кота" вместо таскманагера.

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



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

Цитата:
укурки сами авторы таскманагера

Имеем, что имеем
Вот что работает уже, но при выполнении скрипта с запущенным Диспетчером задач

Код:
 
$taskmgrPath = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\TaskManager'
If (!(Test-Path $taskmgrPath))
{
    New-Item -Path $taskmgrPath -Force
}
$taskmgr = Get-Process Taskmgr -ErrorAction SilentlyContinue
If ($taskmgr)
{
    #$taskmgr | Stop-Process -Force
    $taskmgr | Wait-Process
}
$preferences = Get-ItemProperty -Path $taskmgrPath -Name Preferences -ErrorAction SilentlyContinue
If (!($preferences))
{
    Start-Process -FilePath Taskmgr
    $taskmgr = Get-Process Taskmgr -ErrorAction SilentlyContinue
    If ($taskmgr)
    {
       $taskmgr | Wait-Process
    }
    $preferences = Get-ItemProperty -Path $taskmgrPath -Name Preferences -ErrorAction SilentlyContinue
}
$preferences.Preferences[28] = 0
New-ItemProperty -Path $taskmgrPath -Name Preferences -Type Binary -Value $preferences.Preferences -Force
If ($taskmgr)
{
   $taskmgr | Stop-Process -Force
}
Start-Process -FilePath Taskmgr
 

Диспетчер задач не перезапускается, и скрипт просто висит, пытаясь что-то сделать.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 11:53 23-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
PoSH не может заместить problem solving skills  
 
из задачи легко выделяется подзадача: узнать, где и как таскмгр сохраняет флаг "прятать интерфейс". Подзазача эта необходима для решения целиком (т.е. её не объедешь лежит на "критическом пути")  
 
Найденный скрипт - подсказка куда копать, но его авторы явно не были заинтересованы в 8.1.
Вы в отличие от них заинтересованы.  Обычно берут для начала procexp.exe от sysinternals и понеслась...  На руборде мобыть поможет Process Hacker (тут есть его разработчик)  
 
Но пошик-то тут при чём?
 
 

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



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

Цитата:
Но пошик-то тут при чём?  

Ни при чем. Пошел выполнять задание.

Всего записей: 2522 | Зарегистр. 27-07-2009 | Отправлено: 14:14 23-09-2017
LevT



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

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



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

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2as
дочитался - вернее дослушался - до того места, где озвучено утверждение, что после v2 конфигурацию remoting сильно упростили.
Так что извиняйте за то, что не стал вникать в тот затеянный Вами выше разговор: я покамест счастливый человек меня просто не парят проблемы v2.
 
А для v3 + никаких "простыней" ненадоть!
 
 
Добавлено:
В частности, теперь по умолчанию ремотинг включён, но блочится фаером для публичных подключений.

Всего записей: 17742 | Зарегистр. 14-10-2001 | Отправлено: 18:56 23-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