Перейти из форума на сайт.Реклама на Ru.Board


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

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

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 6.0




 
Что бы ассоциировать скрипты с 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 | Исправлено: KapralBel, 08:39 18-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
 

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

Всего записей: 11134 | Зарегистр. 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 - служит не для фильтрации текста, а для фильтрации файлов

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

Всего записей: 11134 | Зарегистр. 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
шапку обновил на этот счет

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

Всего записей: 11134 | Зарегистр. 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 его надо ещё запускать с админскими правами.

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

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

Всего записей: 11134 | Зарегистр. 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 своих адреса (как раз в коде они и светятся )
 
Добавлено:
Так вот письма дошли не смотря на то что адреса не отображаются

Всего записей: 11134 | Зарегистр. 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 не в том формате - это ничего, просто проигнорируйте.
 

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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru