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

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
#$%&*#$$!!!!!
Слов не хватает.. дабы спасти нервы остальным, сообщаю тому, кто не знал:
Команда Move-Item Folder/Folder Folder2/Folder -Force
НЕ перезаписывает папку если таковая уже имеется в приемнике.
А теперь внимание вопрос: КАКОГО ХРЕНА?!?...
Прошу прощение за крик...

Всего записей: 85 | Зарегистр. 23-04-2003 | Отправлено: 09:16 06-05-2010
johnysc3



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как заставить работать с 1С8 такой скрипт:

Код:
 
$connector = new-object -comobject "V81.COMConnector"
$connection=$connector.connect("File=""d:\Bases1C\""; Usr="""";Pwd = """";")
$ChangeName="Обмен"
$ref=$connection.Справочники.НастройкиОбменаДанными.НайтиПоНаименованию($ChangeName).Ссылка
$noderef=$connection.ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке($ref,$null,$null)
 

при запуске он цепляется к 1с-ке, но ничего в ней сделать не может, выдает такие ошибки:

Код:
 
Нельзя вызвать метод для выражения со значением NULL.
D:\БезИмени1.ps1:4 знак:72
+ $ref=$connection.Справочники.НастройкиОбменаДанными.НайтиПоНаименованию <<<< ($ChangeName).Ссылка
    + CategoryInfo          : InvalidOperation: (НайтиПоНаименованию:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 
Нельзя вызвать метод для выражения со значением NULL.
D:\БезИмени1.ps1:5 знак:89
+ $noderef=$connection.ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке <<<< ($ref,$null,$null)
    + CategoryInfo          : InvalidOperation: (ВыполнитьОбменД...ольнойНастройке:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 

Всего записей: 72 | Зарегистр. 12-12-2006 | Отправлено: 22:26 15-05-2010
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
johnysc3
Powershell не поддерживает такие вызовы через IDispatch по именам, а обертки создать не может, т.к. у 1с typelibrary нет. Надо:
 
$cats = [System.__ComObject].InvokeMember("Справочники",[System.Reflection.BindingFlags]::GetProperty,$null,$connection,$null)  
$nod = [System.__ComObject].InvokeMember("НастройкиОбменаДанными",[System.Reflection.BindingFlags]::GetProperty,$null,$cats,$null)  
$fnd = [System.__ComObject].InvokeMember("НайтиПоНаименованию",[System.Reflection.BindingFlags]::InvokeMethod,$null,$nod,$ChangeName)  
$ref = [System.__ComObject].InvokeMember("Ссылка",[System.Reflection.BindingFlags]::GetProperty,$null,$fnd,$null)  

Всего записей: 512 | Зарегистр. 31-03-2004 | Отправлено: 03:35 16-05-2010
johnysc3



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Refugee
Огромное спасибо! Работает!

Всего записей: 72 | Зарегистр. 12-12-2006 | Отправлено: 18:36 16-05-2010
Black_Swan



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет народ!
Не пойму вот какой момент, в инете много примеров работы с Active Directory через PowerShell, где можно увидеть к примеру комндлет Get-ADUser. Но проблема в том, что у меня он не работает. Может кто в курсе почему? Или может их нужно добавлять самостоятельно, если да то как?
Моя версия PS 2

Всего записей: 40 | Зарегистр. 20-03-2006 | Отправлено: 11:37 20-05-2010
Rafusia



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос по исключениям.
 
$Directory = "P:\---"
 
$Exclude = "name1", "name2", ...
 
$Files = dir -path $Directory -recurse -exclude $Exclude
 
del $Files -recurse
 
создал, простенький скрипт для чистки папки, с исключением по определенным названиям папок!
 
то есть не удалять только папки с названиями в переменной $files но чистить их рекурсивно. Сейчас появилась необходимость в нашей директории оставить постоянную папку которая не чистится? Есть конечно вариант с бэкапом этой папки в начале скрипта а потом заливать обратно! Не могу сообразить есть вариант с двойным исключением в скрипте?
 
Заранее спасибо!

Всего записей: 1 | Зарегистр. 01-06-2010 | Отправлено: 11:23 01-06-2010
BOA_KAA



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

Цитата:
Командлеты AD Powershell доступны, начиная с Windows Server 2008 R2. Чтобы использовать командлеты AD Powershell, в домене должен быть хотя бы один контроллер на основе Windows Server 2008 R2.
http://blogs.technet.com/b/adpowershell_ru/archive/2009/02/25/active-directory-windows-powershell-quick-start-guide.aspx
 

 
Добавить просто нечего.

Всего записей: 289 | Зарегистр. 01-12-2004 | Отправлено: 11:39 01-06-2010
demoded



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

Код:
$TodayDate = Get-Date
$FromDateSQL = $TodayDate -f 'MM/dd/yyyy'
$ToDateSQL = $TodayDate -f 'MM/dd/yyyy'
 

 
теперь мне надо $FromDateSQL поставить на 21:00, а $ToDateSQL на 23:00
 
Добавлено:
как всегда получается, когда не всилах уже найти сам решение пишешь на форум... а потом сам все делаешь...

Код:
 
$FromDateSQL = Get-Date -format 'MM\/dd\/yyyy 21:00'
$ToDateSQL = Get-Date -format 'MM\/dd\/yyyy 23:00'

Всего записей: 61 | Зарегистр. 04-09-2004 | Отправлено: 11:54 08-06-2010
ComradG



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

Цитата:
ftype microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.exe "&'%1' %*"

Чего-то это не катит.

Цитата:
set-executionpolicy unrestricted

Правильнее было бы использовать set-executionpolicy RemoteSigned
И... может стоит добавить в шапку ссылку http://technet.microsoft.com/en-us/scriptcenter/powershell.aspx

Всего записей: 2037 | Зарегистр. 05-07-2008 | Отправлено: 15:20 08-06-2010
01MDM



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

Цитата:
Чего-то это не катит.

Это сделано специально в целях безопасности. Все скрипты ассоциированы с блокнотом. Я не проверял, попробуй:

Код:
 
ftype Microsoft.PowerShellScript.1=cmd /c powershell -c %1
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:13 08-06-2010
ComradG



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

Цитата:
Я не проверял

Думаю мы поняли друг друга в плане того, что имеется в виду XP. А вот это

Цитата:
ftype Microsoft.PowerShellScript.1=cmd /c powershell -c %1

работает при условии, что %1 взято в кавычки. Что довольно странно.

Всего записей: 2037 | Зарегистр. 05-07-2008 | Отправлено: 15:33 09-06-2010
01MDM



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

Цитата:
Думаю мы поняли друг друга в плане того, что имеется в виду XP

Это имеет значение? Специально попробовал на XP - работает.

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

Лучше в кавычки. На случай пробелов в пути к файлу.
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:52 09-06-2010
Ramzeskz

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здрасте, помогите практиканту. Стоит такая задача, написать скрипт на PS, суть заключается в том чтобы найти файлы к примеру 29-930-231-87-11-12 , которые обновляются раз в день, брать вчерашние файлы, архивировать и удалять их. Не подскажете как это реализовать

Всего записей: 1 | Зарегистр. 30-06-2010 | Отправлено: 10:26 30-06-2010
iRogalik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть 2 вопроса, как запустить процесс с ПОНИЖЕННЫМИ привилегиями?
Как прибить процесс, у которого привилегии системы?

Всего записей: 1 | Зарегистр. 09-01-2009 | Отправлено: 12:39 11-07-2010
radchin

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть слелующая задача, требующая следующее:
1. из сценария запустить Internet Explorer
2. развенуть его на весь экран
3. вывести окно Internet Explorer на передний план (чтобы IE был по верх остальных окон)
4. отобразить в брузере необходимую страничку
5. убрать с экрана курсор мыши
 
Для этого был написан следующий сценарий, который запускается из автозапуска, при регистрации пользователя, и успешно справляется с первыми четыремя пунктами задачи.  
 
Никак не могу сообразить, как убрать курсор мыши с центра экрана (уж больно сильно мешает)? Помогите, пожалуйста. Может кто уже сталкивался с подобным?
 

Код:
 
$WshShell = New-Object -ComObject WScript.Shell
$ie = New-Object -ComObject InternetExplorer.Application
 
$ie.FullScreen = $true
$ie.StatusBar = $false
$ie.Visible = $true
$ie.Navigate("http://forum.ru-board.com")
 
 
while($ie.LocationName -eq ""){}
 
 
$WindowTitle = $ie.LocationName + " - " + $ie.Name
 
$WshShell.AppActivate($WindowTitle)
 

Всего записей: 2 | Зарегистр. 23-01-2009 | Отправлено: 11:09 14-07-2010 | Исправлено: radchin, 11:40 14-07-2010
BVV63



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую здешних старожилов.
Вооружившись вумной книжкой принялся за изучение "PowerShell". Ну, и понятно, что вопросы на текущий момент у меня соответствующего уровня.
Можно ли использовать в скрипте "PowerShell" внешние процедуры, аналогично как в батниках (Call)? Т. е. сценарий разбивать на несколько файлов, главный и дочерние, и из главного вызывать дочерние. Ну, подразумевается: есть ли простой законный способ? В книженции я что-то не нашёл ответа.

Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 12:39 18-08-2010 | Исправлено: BVV63, 12:40 18-08-2010
BVV63



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мда... В темах "Задачи на bat-файлах 8" в данном разделе и "Командная строка, батники, сценарии (bat, cmd)" в "Программы" постится по несколько страниц за день, а тут тишина... Это однозначно говорит о том, насколько "батаника" на текущий момент популярнее в широких массах, нежели "PowerShell".
Но может кто-нить всё же откликнется ?.. Вопрос такой. При выполнении сценария вывод команд перенаправляется в файл. Можно в сцерании как-нить единожды настроить это перенаправление (сделать по умолчанию), дабы постоянно его не прописывать во многих строках? Ну, за исключением команд, вывод которых явно перенаправляется в Nul.
 
Добавлено:
Я подразумеваю не протоколирование, там будет слишком много ненужного.

Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 11:47 24-08-2010 | Исправлено: BVV63, 12:54 24-08-2010
Andrue



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
такая задача
 
скрипт запускается 1 раз в час
проверяет свободное место на диске
если оно меньше опред значения (100МБ)
надо удалять файлы с самой старшей датой создания
ПРИЧЕМ файлы лежат в нескольких папках
структура такая
 
ДАТА1
  - 00-06
      - CHL01
           file1.idx
           file1.h264
           file2.idx
           file2.h264
           .......
           .......
           fileXX.idx
           fileXX.h264
      - CHL02
      ....
   - 06-12
      - CHL01
           file1.idx
           file1.h264
           file2.idx
           file2.h264
           .......
           .......
           fileXX.idx
           fileXX.h264
      - CHL02
      ....
- 12-18
      - CHL01
           file1.idx
           file1.h264
           file2.idx
           file2.h264
           .......
           .......
           fileXX.idx
           fileXX.h264
      - CHL02
      ....
- 18-00
      - CHL01
           file1.idx
           file1.h264
           file2.idx
           file2.h264
           .......
           .......
           fileXX.idx
           fileXX.h264
      - CHL02
      ....
ДАТА2
        ....

то есть самые старшие файлы - файлы ХХ в каждой папке
(файлы на диска с такой стуктурой создает программа видеонаблюдения
которая когда остается на диске свободно менее 100МБ останавливает запись)

Всего записей: 843 | Зарегистр. 29-01-2003 | Отправлено: 18:59 08-09-2010
mptok

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Бесплатная книга о PowerShell на русском - http://cid-d489fb91b2112580.skydrive.live.com/browse.aspx/Materials/Powershell

Всего записей: 98 | Зарегистр. 22-04-2006 | Отправлено: 00:24 10-09-2010
BVV63



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mptok
Она (ссылка на неё) уже есть в шапке: "Windows PowerShell Франк Кох (БЕРН)  Разработчик и пропагандист платформы. На русском языке в формате pdf и doc".

Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 08:46 10-09-2010 | Исправлено: BVV63, 08:52 10-09-2010
   

Страницы: 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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru