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


Система 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

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

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
farag



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

Цитата:
его может и не быть

Для этого просто запускаю taskmgr.
 
Добавлено:

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

Низкий поклон до земли.

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я тут беседовал с товарищем в скайпе, внезапно вышел поучительный диалог
 

Цитата:
В моём представлении алгоритм нужен такой:
1. Проверка, что к Y: ничего не подключено
2.Если нет (не подключено) - переход к 3;  если да - переход к 5
3. Найти и подключить на Y: первый файл PR.VHD
4. Возврат к 1
5. Проверка, что к W: ничего не подключено
6. Если нет (не подключено) - переход к 7;  если да - переход к end
7. Найти и подключить на W: первый файл PROG.VHD
8. Возврат к 5
9. end (закончить работу)

 
 

Цитата:
 
Имей в виду, что сначала придумывать алгоритм в таком виде, а потом ещё и переводить его - несуразный оверхед
Алгоритмы для павершела придумываются иначе:
 
$data=@(
    @{letter='Y';file='pr.vhd'}
    @{letter='W';file='prog.vhd'}
)  
 
из исходных данных взять множество букв |
   выделить из него те буквы, которые не содержатся в массиве
(Get-Volume).DriveLetter |
         XОЧУ для каждой из них найти в корне томов первый файл VHD с нужным именем  |
             смонтировать каждый найденный файл с нужной буквой

 

 
Кстати, алгоритм оказался не совсем точен - именно из-за излишней детализации (основанной на неверном допущении).
Созданный Primo RAM Disk SE том не представлен в результатах Get-Volume
 
Принимаются подсказки, как добавить к массиву букву рамдиска (и найти все прочие подобные "левые" буквы)  ))

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



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

Код:
 
Function PendingReboot
{
    If (Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending" -ErrorAction Ignore)
    {
        return $true
    }
    If (Get-Item "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" -ErrorAction Ignore)
    {
        return $true
    }
    If (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -ErrorAction Ignore)
    {
        return $true
    }
    try
    {  
        $util = [wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities"
        $status = $util.DetermineIfRebootPending()
        If(($status -ne $null) -and $status.RebootPending)
        {
            return $true
        }
    } catch{}  
    return $false
}
Function Wuauserv-Status
{
    $getservice = Get-Service -Name wuauserv
    $getservice.WaitForStatus('Stopped', '00:30:00')
    return $true
}
If ((PendingReboot -eq $true) -and (Wuauserv-Status -eq $true))
{
    <# Get-ChildItem -Path $env:SystemRoot\SoftwareDistribution\Download -Force -Recurse | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue #>
    write-host 111
}
Else
{
    write-host 222
}
 

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

Всего записей: 270 | Зарегистр. 27-07-2009 | Отправлено: 10:06 03-10-2017 | Исправлено: farag, 14:08 03-10-2017
YuS_2



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В шедулер его запихать и пусть загружается так, как требуется...

Всего записей: 1669 | Зарегистр. 03-02-2009 | Отправлено: 15:11 03-10-2017
farag



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

Всего записей: 270 | Зарегистр. 27-07-2009 | Отправлено: 16:27 03-10-2017
LevT



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
нагуглилось (не тестил)
C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup  - сюда положить
 
Если сходу не сработает, то можно обложить строчками.
Start-Transcript -Path c:\ps.log
....
Stop-Transcript
 
Возможно, что скрипт требует элевации, тогда есть реализация 'sudo' (тестил, работает)
Надо будет воспользоваться функцией Start-Elevated, которую положить в профиль.
 
 
Добавлено:
farag
ну и через планировщик если срабатывает вручную - что мешает триггер сделать нужный?

Всего записей: 9689 | Зарегистр. 14-10-2001 | Отправлено: 16:40 03-10-2017
2as

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

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

через реестр, например:
 
1. Постоянный автозапуск программы при входе в систему:  
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run]  
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе.  
 
2. Из этого раздела запуск программы однократный при входе пользователя. После запуска ключ из данного раздела автоматически удаляется.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunOnce]
 
подробнее, например, здесь >>

Всего записей: 3203 | Зарегистр. 09-09-2003 | Отправлено: 17:40 03-10-2017
farag



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

Цитата:
шедулер

Он через "ск' читается. Там нет "sh".

Всего записей: 270 | Зарегистр. 27-07-2009 | Отправлено: 18:01 03-10-2017
YuS_2



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

Цитата:
Он через "ск' читается. Там нет "sh".

Это смотря где... в каком-нибудь Брауновском университете, возможно и через "ск" лопочуть, а вот в Оксфорде (вот же невежи, английского не знают совсем!), говорят через "ш" (ну, это в нашем понимании...), а вообще, можно и проще сказать - планировщик, чтобы не спорить на ровном месте. Если это, конечно, имеет такое огромное значение в Вашем вопросе...
 
Добавлено:
farag

Цитата:
А надо теперь, чтобы после перезагрузки опять отрабатывался.

А чем шедулер не устраивает? Он может и после перезагрузки запускать программы - что не так?

Всего записей: 1669 | Зарегистр. 03-02-2009 | Отправлено: 18:57 03-10-2017 | Исправлено: YuS_2, 18:58 03-10-2017
farag



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

Цитата:
А чем шедулер не устраивает?

Если с самого начала: есть папка, куда скачиваются обновления и лежат мертвым грузом (если речь о 8.1 все-таки). Надо это дело очищать раз в месяц. Устанавливаю дату на второй четверг каждого месяца. Но нужна проверка на то, чтобы во время удаления содержимого, обновления не ставились, иначе все похерится, и ОС не ожидала перезагрузку, чтобы опять же не поставить обновления. Все проверки делаю, но что делать, если ОС ожидает перезагрузки? Получается, мне надо дать ОС все поставить, чтобы пользователь перезагрузился, и только тогда можно папку очищать. Тут я уже сломался, как такое наваять.

Всего записей: 270 | Зарегистр. 27-07-2009 | Отправлено: 22:54 03-10-2017
PhoenixUA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Вы пытаетесь заново изобрести WSUS?
 
По поводу перезагрузки:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

Всего записей: 2102 | Зарегистр. 17-11-2005 | Отправлено: 23:15 03-10-2017
LevT



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PhoenixUA
 
а чо ))
на одной из моих прежних работ предшественник-юниксоид изобрёл перемещаемые профили на логон-батниках  

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

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

Цитата:
Тут я уже сломался, как такое наваять.
 

Элементарно, Ватсон.
Что мешает клиенту перед началом обновления, на сервере (в каталоге/реестре), создавать файл/переменную, по окончании обновления - удалять.
Перед удалением папки с обновлениями проверять наличие файла-ключа. Ключ есть - кто-то обновляется (или попытка обновления не завершена), значит удалять обновы нельзя.
Если клиентов много - пусть каждый создает файл со своим именем - тогда будет точно известно, какой комп  еще не закончил цикл обновлений.
В этом случае проверка на возможность удаления каталога с удалениями будет заключаться в проверке наличия/отсутствия файлов в каталоге-ключе.
 
Добавлено:
Ах, да, забыл, что вы не любите плодить файлы ... )

Всего записей: 3203 | Зарегистр. 09-09-2003 | Отправлено: 03:57 04-10-2017 | Исправлено: 2as, 04:01 04-10-2017
farag



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

Цитата:
Вы пытаетесь заново изобрести WSUS?

Откуда он возьмётся касательно домашних пользователей? А на работе его не будет, так как второй админ ничего не хочет делать, чтобы улучшить жизнь людей. Не будь меня, до сих пор стояли бы XP с 6 IE и Core 2 Duo. Оттого и по сути ухожу из отдела уже на управленческую должность.
2as
Хорошо, пкумекаю.
 
Добавлено:

Цитата:
Что мешает клиенту перед началом обновления, на сервере (в каталоге/реестре), создавать файл/переменную, по окончании обновления - удалять

Ну, создам я ключ в реестре. Я не очень понимаю, как это поможет делу. Лучше пример кода дать.

Цитата:
перемещаемые профили на логон-батниках

А как, кстати, надо?

Всего записей: 270 | Зарегистр. 27-07-2009 | Отправлено: 08:25 04-10-2017 | Исправлено: farag, 10:04 04-10-2017
KapralBel



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

Цитата:
Ну, создам я ключ в реестре. Я не очень понимаю, как это поможет делу.

Есть семафор, метка в реестре или файл в папке - значит кто-то выполняет обновление, не удаяем файлы
а у пользователей скрипт начинается с создания этого семаформа, и заканчивается увалением
 

Цитата:
А как, кстати, надо?

Свойства пользователя, там есть такая опция, но к сожалению я в отпуске и показать где в АД она есть пока не могу

Всего записей: 11004 | Зарегистр. 16-02-2005 | Отправлено: 10:30 04-10-2017
2as

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

Цитата:
А как, кстати, надо?
 

Если речь идет о Линуксе, в Linux-Calculate перемащаемые профили реализованы "из коробки" и нечего мудрить не нужно.
Если речь идет о Windows, то это подробнейшим образом документировано.
например, здесь >>
 

Цитата:
второй админ ничего не хочет делать,

наверное, не мотивирован

Цитата:
ухожу из отдела уже на управленческую должность

Теперь вам лишь остается правильно подобрать мотивацию второму админу )))

Всего записей: 3203 | Зарегистр. 09-09-2003 | Отправлено: 11:04 04-10-2017 | Исправлено: 2as, 11:12 04-10-2017
YuS_2



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

Цитата:
у пользователей скрипт начинается с создания этого семаформа

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

Всего записей: 1669 | Зарегистр. 03-02-2009 | Отправлено: 11:55 04-10-2017
KapralBel



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

Цитата:
А лучше с проверки доступности каталога с обновлениями, нет доступа

Можно и так, но случаи бывают разные  
Возникнут проблемы с тем что проверка то началась а семафор не выставлен - лучше вернуться к моему предложению

Всего записей: 11004 | Зарегистр. 16-02-2005 | Отправлено: 12:03 04-10-2017
farag



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

Цитата:
наверное, не мотивирован  

Фармит в какую-то хрень на эмуляторе Android в 3 окна сразу и глушит литрами технический спирт, не в силах встать. XP и кнопочные телефоны forever, машину не моет, сам не моется и не любит, когда что-то новое выходит. Застрял окончательно в 2001 году. А, еще ненавидит вкладки в браузере: только 100 окон, только хардкор!

Всего записей: 270 | Зарегистр. 27-07-2009 | Отправлено: 12:50 04-10-2017 | Исправлено: farag, 12:52 04-10-2017
YuS_2



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

Цитата:
Возникнут проблемы с тем что проверка то началась а семафор не выставлен

Да какие тут могут быть проблемы? Доступен каталог - ставим семафор и обновляемся, недоступен - висим в цикле, либо запускаемся повторно через время...
Семафор, в любом случае, будет выставлен только непосредственно перед началом обновления.

Всего записей: 1669 | Зарегистр. 03-02-2009 | Отправлено: 15:12 04-10-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

Компьютерный форум 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