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

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

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

Цитата:
 
$tt = Get-Content dhcp.csv  
$tt | select-string " " -Exclude "Non-Windows| set-content 124.csv

а тут случайно нет кавычки лишней?
которая перед Non-Windows
с ней - powershell ждёт следующих действий.
без неё - создаёт такой же файл как и предыдущий без изменений.

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 17:59 02-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
 
При копировании скрипта пропустил одну кавычку - см. исправление
 

Код:
 $tt = Get-Content dhcp.csv  
$tt | select-string " " -Exclude "Non-Windows"| set-content 124.csv
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:08 02-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я уже так пробовал - получается файл ничем не отличающийся от старого...

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 09:28 03-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
Сорри не верно написал - действительно не работает. Что то ступил
Кстати просмотрел справку по регулярным выражениям в PowerShell немного отличается от стандарта - не поддерживает маску исключения (?!Pattern)

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:36 03-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проблема с -Exclude в том что он не поддерживает Pipeline input

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 12:08 03-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
-Exclude - служит не для фильтрации текста, а для фильтрации файлов

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:13 03-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
с файлами так с файлами... =[
буду копать в сторону регулярных выражений - или может ещё что-нибудь подскажет кто.

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 12:28 03-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
См.
<PowerShell>\en\about_regular_expression.help.txt

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:32 03-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ура! в случае с CSV файлами всё оказывается просто:
import-csv dhcp.csv | where-Object {$_.'Product Name' -ne "Non-Windows"} | export-csv final.csv -notype
 
 
 
Добавлено:
теперь появился ещё один интересный вопрос:
как запустить powershell скрипт без пользовательского подтверждения (надо автоматизировать по расписанию)....
Нашёл что можно подписать код сертификатом - но это как-то не удобно...
Пока на мои попытки он всегда отвечает:
"While scripts from the Internet can be useful, this script can potentially harm
 your computer. Only run scripts that you trust. Do you want to run
H:\dhcp_002.ps1?
[D] Do not run  [R] Run once  [S] Suspend  [?] Help (default is "D"):"

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 15:36 03-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
Вообще на 1-й странице есть
Ввести в PowerShell следующую команду set-executionpolicy unrestricted
шапку обновил на этот счет

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:06 03-08-2006
deixtra

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

Цитата:
Ввести в PowerShell следующую команду set-executionpolicy unrestricted

всё же рекоммендую проверить, из CMD: powershell -Command C:\123.ps1
 
У меня по крайней мере спрашивает, executionpolicy стоит в unrestricted

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 10:56 04-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
Не ругается
 
Попробуй сделать команду
FType Microsoft.PowerShellScript.1="C:\Program Files\Windows PowerShell\powershell.exe" "&'%1'" "%*"
и добавить в переменную PATHEXT расширение .ps1
тогда можно будет запускать скрипты аналогично командным файлам винды .BAT/.CMD
Просто набрав в командной строке
123

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 12:10 04-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо за помощь!
Потестил с разными условиями: предположительно, чтобы powershell не спрашивал подвтерждения в добавок к execpolicy его надо ещё запускать с админскими правами.

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 15:00 04-08-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
deixtra
 
Цитата:
тобы powershell не спрашивал подвтерждения в добавок к execpolicy его надо ещё запускать с админскими правами.

ОК. Внес в шапку

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:32 04-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отправление файлов по e-mail
Тут нашёл очень полезную страничку: http://mow001.blogspot.com/2005/11/sending-mail-from-msh.html
 
Но наткнулся на проблему - в "new-object system.net.mail.MailMessage" все поля, где значения в фигурных скобках - не поддаются редактированию.
А это очень важное:  
To : {}  
и другие...
Попробовал по аналогии вот этого сделать:
$att = new-object System.Net.Mail.Attachment("c:\test.txt")
$msg.Attachments.add($att)
(тут $msg = new-object system.net.mail.MailMessage)
 
не получается %(
 
Вообщем задача - отправить письмо с аттачментом на заданные адреса. Атачить получается, изменить адрес получателя - не получается.

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 15:47 07-08-2006
KapralBel



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

Код:
$Attach     = new-object System.Net.Mail.Attachment("C:\Test.txt")  
$SMTPClient = new-object System.Net.Mail.SMTPClient
$Msg        = new-object System.Net.Mail.MailMessage
 
$Msg.Attachments.add($Attach)
$Msg.To.Add("BillGates@Microsoft.Com")
$Msg.from="Vasya.Pupkin@Mail.Ru"
$Msg.Subject="Subject"
$Msg.Body="This is body of E-Mail"
 
$SMTPClient.Host="SMTP.Mail.Ru"
 
$SMTPClient.Send($Msg)
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:21 07-08-2006 | Исправлено: KapralBel, 17:23 07-08-2006
deixtra

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
а ты проверял работу скрипта?
у меня $Msg.To.Add("BillGates@Microsoft.Com") - не добавляет адрес в поле To (если быть точнее то поход добавляет пустое значение - потому что дальнейшее выполнение создает там списк из пробелов разделённых запятыми)

Всего записей: 11 | Зарегистр. 14-12-2005 | Отправлено: 11:30 08-08-2006
KapralBel



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

Код:
From                        : Vasya.Pupkin@Mail.Ru
Sender                      :
ReplyTo                     :
To                          : {, }
Bcc                         : {}
CC                          : {}
Priority                    : Normal
DeliveryNotificationOptions : None
Subject                     : Subject
SubjectEncoding             :
Headers                     : {}
Body                        : This is body of E-Mail
BodyEncoding                : System.Text.ASCIIEncoding
IsBodyHtml                  : False
Attachments                 : {1.ps1}
AlternateViews              : {}

Так, что ли???
Но доставляет - добавлял 2 своих адреса (как раз в коде они и светятся )
 
Добавлено:
Так вот письма дошли не смотря на то что адреса не отображаются

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:08 08-08-2006
KapralBel



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

Код:
# Ngen PowerShell RC1 for faster startup
 
cd $pshome
$dir = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
ls *.dll | % {& "$dir\ngen.exe" install $_.fullname}

Ускорение запуска PowerShell
Запустите вышеуказанный скрипт в PowerShell

Цитата:
Как заметно ускорить запуск PowerShell RC1
 
У PowerShell RC1 есть фича - в этой пре-релизной версии при установке они забыли или просто не стали прекомпилировать dll-ки ngen-ом и поэтому запуск PowerShell может занимать заметно большее время, чем следует. В релизе (или в RC2), как ответили на их форуме, поправят.
 
Это поправимо также уже сейчас скриптом, который надо запустить из PowerShell единожды.
Кстати, там будет пара сообщений от ngen, что такие-то dll не в том формате - это ничего, просто проигнорируйте.
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:56 24-08-2006
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Готовится к выходу PowerShell 1.0 RC 2
 
Про изменения можно почитать на http://blogs.msdn.com/powershell/
 
правда там не написано когда выйдет

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 09:00 28-08-2006 | Исправлено: Etalon, 16:14 28-08-2006
   

Страницы: 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