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

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



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Перевод полученного тобою сообщения об ошибке:
 
"то ли ты очепятался, то ли ты должен выполнить определение функции Get-Newer перед запуском той строчки, которая её вызывает."
 
 
Добавлено:

Цитата:
Загадками я все одно не пойму, зря время потеряешь.

 
во-первых поймёшь
во-вторых, другие тоже поймут
 
но я убываю на полдня

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 13:21 27-08-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ясен перец, что "должен выполнить", тока откуда мне знать как?
Для меня это темный лес, не более.

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 13:28 27-08-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
 
Запустить скрипт в powershell
А поначалу нагляднее в ISE
 
Добавлено:
Запусти powershell ise, создай там новый документ и скопируй скрипт отсюда.

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 16:23 27-08-2017
KLASS



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

Цитата:
создай там новый документ и скопируй скрипт отсюда.

Делал

Цитата:
Имя "Get-Newer" не распознано

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 16:52 27-08-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Его определение во вчерашнем посте (прямо над сегодняшним).
Ты забыл его скопировать.

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 17:20 27-08-2017 | Исправлено: LevT, 17:22 27-08-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
выложи полный скрипт, я не понимаю что нужно делать

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 17:33 27-08-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
функцию Get-Newer я написал вчера.
функцию Get-LocalFile сегодня, следующим постом.
 
объедини скрипт из двух постов.  

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 18:22 27-08-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Если так
то вывод в нижнем окне ISE
 
 
Добавлено:
Не удается найти путь, например,
"E:\WgetSoft01\pestudio.zip; Destination=E:\WgetSoft01\pestudio.zip}"
Получается, что скрипт берет не удаленный файл и локальный, а замыкается на одном локальном.
Destination - верно, но Source в файле C:\soft.txt указан как адрес к удаленному файлу на сервере, вот пару строк из файла C:\soft.txt

Код:
 
Source, Destination
http://amlpages.com/Source/pwdcrack.zip, E:\WgetSoft01\pwdcrack.zip
http://azjio.ucoz.ru/file/TextReplace.7z, E:\WgetSoft01\TextReplace.7z
 

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 18:30 27-08-2017 | Исправлено: KLASS, 18:47 27-08-2017
LevT



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

О как здорово! Сразу куча разноприродных ошибок.
Но в целом то, что надо.
 
Кто-нибудь. присоединяйтесь и правьте!
А я на некоторое время откланиваюсь.
 
 
Добавлено:
 

Цитата:
 вот пару строк из файла C:\soft.txt  

 
Кто ж мог догадаться, что C:\soft.txt у тебя это CSV, а не список УРЛов, строка под строкой.
Мой код исходил именно из такого предположения.
 
 
Добавлено:
Надо полностью переписать Get-LocalFile: вся инфа есть в исходном файле.

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 18:50 27-08-2017
KLASS



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

Цитата:
что C:\soft.txt у тебя

Это не у меня, но у пошика )
 
Добавлено:
Ссылку поправил, чтобы сразу к разделу

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 18:58 27-08-2017 | Исправлено: KLASS, 19:00 27-08-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно переписать Get-LocalFile ради тренировки.
Но вообще оно не нужно, поскольку в файле c:\soft.txt оказывается есть вся информация.
 
Так что достаточно  переписать Get-Newer
 
Добавлено:
KLASS
 
А тебе епитимья: таки допиши Get-LocalFle
 Это тривиально!

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 19:32 27-08-2017 | Исправлено: LevT, 19:39 27-08-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
За что, да и зачем, если

Цитата:
Но вообще оно не нужнр, поскольку в файле c:\soft.txt оказывается есть вся информация.

А вот тебе надо епитимью, за то, что не разглядел в командлете Imprort-CSV очевидного.

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 19:43 27-08-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Интересно, твой CSV кривой потому, что создан не программно, а руками, притом без привлечения мозга?
Или его испортило форматирование форума при вставке сюда?
 
'Source'
'Destination '    - имя второго поля заканчивается пробелом!
 
Это к разговору на предыдущей странице.  
 
CSV всё-таки точный формат: не надо удивлять машину - а вернее последующих разработчиков - подсовывая вместо структурированных данных ручную мешанину.
 
 
Добавлено:
 
Лови
 

Код:
 
<#
.Synopsis
   Short description
.DESCRIPTION
   Long description
.EXAMPLE
   Example of how to use this cmdlet
.EXAMPLE
   Another example of how to use this cmdlet
#>
function Get-Newer
{
    [CmdletBinding()]
    Param
    (
        # Remote files' URLs
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true)]
        $Source,
 
        # Local files' paths
        [Parameter(ValueFromPipelineByPropertyName=$true)]
        $Destination
    )
 
    Process{  
        try {
            $okay = $false
            $localfile = $PSItem.Destination | Get-Item -ErrorAction Stop   #если ошибка доступа к файлу или его нет
            [DateTime]$localtime = $localfile.LastWriteTime  
             
            #возможные исключения в .Net методах Create и GetResponse не обработаны
            [DateTime]$remotetime = [Net.HttpWebRequest]::Create($PSItem.Source).GetResponse() | Select -ExpandProperty LastModified  
            if ($remotetime -gt $localtime){  
                $okay = $true                
            } else {  
                Write-Warning ("{0} is not newer, skipping" -f $localfile.FullName)        
            }
        } catch {    # обработано только исключение "нет такого локального файла": ошибка доступа провалится сюда же
            $okay = $true
        }
 
 
        if ($okay){  
            Write-Verbose ("Included: {0}" -f $PSItem.Source)  
            Write-Output $PSItem  
        }  
    }  
     
}
 
 

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 11:56 28-08-2017 | Исправлено: LevT, 12:36 28-08-2017
xerpal



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, может кто кинуть ссылку на вводную для установки и работы сабжа? А то официальный мануал от микрософта какой-то жесткий, а сабж нужен буквально для одной задачи, вникать часами не хочется.
 
Никто не встречал доступное вводное руководство? Такое вот, руководство для совсем впервые видящих сабж?

Всего записей: 1633 | Зарегистр. 08-10-2011 | Отправлено: 12:47 28-08-2017 | Исправлено: xerpal, 13:13 28-08-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xerpal
сабж стоит в винде изкоробки
 
"для одной задачи" прокатит только в том случае, если есть готовый командлет типа
Do-Something -InputVariable $mydata
 
но всё равно надо уметь хотя бы пользоваться готовым на уровне работяги-подмастерья
да и найти это самое Do-Something

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 12:58 28-08-2017
KLASS



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

Цитата:
 притом без привлечения мозга?  

За базаром следи.

Цитата:
имя второго поля заканчивается пробелом!  

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

Цитата:
The contents of the Filelist.txt file should be in the following format:

Если ты знаешь больше, то напиши опровержение мелким, а не мне.
Я сделал лишь то, что указано у них на сайте.

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 13:32 28-08-2017
LevT



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

Цитата:
Покажи, где на сайте мелких, ты увидел пробел, пробел есть только после запятой  
 

 
пробел я скопировал отсюда, из твоего тэга code
Твой код испортило форматирование - непрошеная в данном случае услуга форума.
 
Кстати.
Копируя отсюда куски кода, следует иметь в виду возможность добавления ошибок.

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 13:53 28-08-2017 | Исправлено: LevT, 13:55 28-08-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Код с форума всегда копирую после обязательного нажатия РЕДАКТИРОВАТЬ в том посту, откуда копирую.
Если это новость, то все когда то впервые... к тому же, не повод умничать )
У себя в посту с последним кодом, убери лишние пробелы, которые есть, даже после нажатия РЕДАКТИРОВАТЬ.
Так что, подходим к зеркалу и пару раз по затылку )

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 14:28 28-08-2017
LevT



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

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

На этот раз я вставил код из ISE, так что пробелы лишние если и есть, то некритичные
 
Ты зря обижаешься: я всего лишь использовал этот случай как иллюстрацию к вчерашнему разговору.
 
Суть которого в том, что форматирование враг структуры.
Именно форматированием занимаются командлеты Out-* : потому не стоит их использовать для вывода структурированных данных.
 

Всего записей: 17744 | Зарегистр. 14-10-2001 | Отправлено: 14:40 28-08-2017
KLASS



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

Цитата:
На этот раз я вставил код из ISE, так что пробелы лишние если и есть, то некритичные

Мое дело предупредить, но если возникнут траблы у тех, кто твой код будет юзать, то вспомни об сегодняшнем разговоре ) И не обижался я, просто не терплю, когда ищут виноватых на стороне, не более.
 
Добавлено:
LevT
Если последний выложенный код надо вставить за место этого, то файлы продолжают скачиваться, даже, если присутствуют локально.

Всего записей: 11450 | Зарегистр. 12-10-2001 | Отправлено: 14:43 28-08-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 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