Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» PowerShell

Автор: KapralBel
Дата сообщения: 09.06.2006 14:36
Etalon
Вау... Спасибо - это самое то

ps. Как прописать автоматом такой запуск
ftype Microsoft.PowerShellScript.1="C:\Windows\PS\PowerShell.exe" "&'%1'"

Вместо "C:\Windows\PS\PowerShell.exe" - указывается свой путь к PowerShell
Автор: Etalon
Дата сообщения: 14.06.2006 13:03
PowerShellAnalyzer
http://www.karlprosser.com/ert33412/psanalyzer-11.zip

Не понятно кто у кого идею слизал
толи
http://www.karlprosser.com/coder/?page_id=14
у
http://powershell.com/

толи наооборот

Но PowerShellAnalyzer вроде как по качественней сделан
Автор: KapralBel
Дата сообщения: 14.06.2006 15:14
Etalon
Что-то мне этот PowerShellAnalyzer не восхитил, попытался в нем запусить скрипт, который я приводил выше (размеры и тип дисков) - дает ошибку на каждой строке у PowerShell-а - работает нормально и в коммм. строке тоже
Автор: Etalon
Дата сообщения: 14.06.2006 15:53
Это альфа версия

К стати у него ещё и проблема с кирилицей есть
В прочем у PowerShellIDE она тоже есть

Посмотрим, что дальше из этих проектов вырастет

Сама идея интересна

Добавлено:
с твоим скриптом у меня обе оболочки на Param ругаются
Автор: KapralBel
Дата сообщения: 15.06.2006 17:07
Etalon
PowerShellIDE - не ругается


Добавлено:
Кстати этот скрипт идет с PowerShellIDE
Автор: Etalon
Дата сообщения: 16.06.2006 07:51
Не знаю, как у меня получилось в прошлый раз
Может запускал что-то другое и это другое повлияло на запуск последующих сценариев

Но обе оболочки ещё сырые

Попробовал с помощью

get-disksize.ps1"RemoteComputer"

посмотреть какие диски есть на удалённых компьютерах
скрипт отобразил только локальные, для данного "RemoteComputer", диски, а сетевые не захотел.


Автор: deixtra
Дата сообщения: 02.08.2006 15:43
всем привет!
начал осваивать PowerShell, а по скольку в програмировании я ни бум-бум заткнулся на такой простой задаче:
мне надо сделать выборку из файла - надо проверить каждую строку на наличие определённого слова - если это слово есть - то удалить всю строку.

В принципе я сделал всё через положительную проверку - у меня набор слов для проверки ограниченный, но хотелось бы всё красиво.
С регулярными выражениями в PowerShell у меня как-то не срослось - или ошибки, или вообще не отрабатывает =[
Автор: KapralBel
Дата сообщения: 02.08.2006 15:58
deixtra
Приведи свой скрипт
Автор: deixtra
Дата сообщения: 02.08.2006 16:04
$tt = Get-Content dhcp.csv
$tt | select-string {$_ -notcontains "*Non-Windows*"} | set-content 124.csv

это то что не работает - вообщем я просто не понимаю как загнать то условие которое мне нужно

а так я сделал несколько таких:
$tt = Get-Content dhcp.csv
$tt | select-string "Windows" | set-content 124.csv
$tt | select-string "NT" | add-content 124.csv
$tt | select-string "bla-bla-bla" | add-content 124.csv
Автор: KapralBel
Дата сообщения: 02.08.2006 16:20
deixtra

Код: $tt = Get-Content dhcp.csv
$tt | select-string " " -Exclude "Non-Windows" | set-content 124.csv
Автор: deixtra
Дата сообщения: 02.08.2006 16:59

Цитата:

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

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

При копировании скрипта пропустил одну кавычку - см. исправление


Код: $tt = Get-Content dhcp.csv
$tt | select-string " " -Exclude "Non-Windows"| set-content 124.csv
Автор: deixtra
Дата сообщения: 03.08.2006 08:28
я уже так пробовал - получается файл ничем не отличающийся от старого...
Автор: KapralBel
Дата сообщения: 03.08.2006 09:36
deixtra
Сорри не верно написал - действительно не работает. Что то ступил
Кстати просмотрел справку по регулярным выражениям в PowerShell немного отличается от стандарта - не поддерживает маску исключения (?!Pattern)
Автор: deixtra
Дата сообщения: 03.08.2006 11:08
проблема с -Exclude в том что он не поддерживает Pipeline input
Автор: KapralBel
Дата сообщения: 03.08.2006 11:13
deixtra
-Exclude - служит не для фильтрации текста, а для фильтрации файлов
Автор: deixtra
Дата сообщения: 03.08.2006 11:28
с файлами так с файлами... =[
буду копать в сторону регулярных выражений - или может ещё что-нибудь подскажет кто.
Автор: KapralBel
Дата сообщения: 03.08.2006 11:32
deixtra
См.
<PowerShell>\en\about_regular_expression.help.txt
Автор: deixtra
Дата сообщения: 03.08.2006 14:36
ура! в случае с 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"):"
Автор: KapralBel
Дата сообщения: 03.08.2006 16:06
deixtra
Вообще на 1-й странице есть
Ввести в PowerShell следующую команду set-executionpolicy unrestricted
шапку обновил на этот счет
Автор: deixtra
Дата сообщения: 04.08.2006 09:56

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

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

У меня по крайней мере спрашивает, executionpolicy стоит в unrestricted
Автор: KapralBel
Дата сообщения: 04.08.2006 11:10
deixtra
Не ругается

Попробуй сделать команду
FType Microsoft.PowerShellScript.1="C:\Program Files\Windows PowerShell\powershell.exe" "&'%1'" "%*"
и добавить в переменную PATHEXT расширение .ps1
тогда можно будет запускать скрипты аналогично командным файлам винды .BAT/.CMD
Просто набрав в командной строке
123
Автор: deixtra
Дата сообщения: 04.08.2006 14:00
спасибо за помощь!
Потестил с разными условиями: предположительно, чтобы powershell не спрашивал подвтерждения в добавок к execpolicy его надо ещё запускать с админскими правами.
Автор: KapralBel
Дата сообщения: 04.08.2006 14:32
deixtra

Цитата:
тобы powershell не спрашивал подвтерждения в добавок к execpolicy его надо ещё запускать с админскими правами.

ОК. Внес в шапку
Автор: deixtra
Дата сообщения: 07.08.2006 14:47
Отправление файлов по 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)

не получается %(

Вообщем задача - отправить письмо с аттачментом на заданные адреса. Атачить получается, изменить адрес получателя - не получается.
Автор: KapralBel
Дата сообщения: 07.08.2006 16:21
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)
Автор: deixtra
Дата сообщения: 08.08.2006 10:30
KapralBel
а ты проверял работу скрипта?
у меня $Msg.To.Add("BillGates@Microsoft.Com") - не добавляет адрес в поле To (если быть точнее то поход добавляет пустое значение - потому что дальнейшее выполнение создает там списк из пробелов разделённых запятыми)
Автор: KapralBel
Дата сообщения: 08.08.2006 12:08
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 : {}
Автор: KapralBel
Дата сообщения: 24.08.2006 10:56

Код: # Ngen PowerShell RC1 for faster startup

cd $pshome
$dir = [Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()
ls *.dll | % {& "$dir\ngen.exe" install $_.fullname}
Автор: Etalon
Дата сообщения: 28.08.2006 08:00
Готовится к выходу PowerShell 1.0 RC 2

Про изменения можно почитать на http://blogs.msdn.com/powershell/

правда там не написано когда выйдет

Страницы: 123456789101112131415161718192021222324

Предыдущая тема: Не понятная проблема с видеокартой.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.