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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день.
подскажите, как пользоваться запуском на удаленной машине, если машина из другого домена
Invoke-Command -ComputerName compname.domain.local -ScriptBlock $Command
получаю ошибку
Сбой подключения к удаленному серверу compname.domain.local . Сообщение об ошибке: WinRM не удается обработать запрос. При проверке подлинности Kerberos возникла
 следующая ошибка: не удается найти компьютер compname.domain.local . Убедитесь, что этот компьютер присутствует в сети и что его имя указано без ошибок. Подробности см. в разделе справки "about_Remote_Troubleshooting".
    + CategoryInfo          : OpenError: (compname.domain.local:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : NetworkPathNotFound,PSSessionStateBroken
 
при этом из Windows PowerShell ISE я к ней нормально цепляюсь, и работаю
 
можно ввести команду
Invoke-Command -ComputerName compname.domain.local -Credential domain\user-ScriptBlock $Command
 
но при этом спросит пароль, а я планировал зашедулить этот скрипт

Всего записей: 64 | Зарегистр. 07-06-2008 | Отправлено: 09:13 24-05-2017
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sergey_41
$DstSecurePassword = $DstPlainPassword | ConvertTo-SecureString -AsPlainText -Force
$DstCredentials = New-object System.Management.Automation.PSCredential -ArgumentList $DstUsername, $DstSecurePassword

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 11:18 24-05-2017
Sergey_41

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

Всего записей: 64 | Зарегистр. 07-06-2008 | Отправлено: 08:46 25-05-2017 | Исправлено: Sergey_41, 14:25 29-05-2017
dimonprodigy



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как сделать чтобы Enter-PsSession отрабатывал нормально? А то локально команда выполняется нормально, а на удаленном компе - с кракозябрами:
 
http://i.imgur.com/UbhuU4y.jpg

Всего записей: 708 | Зарегистр. 27-02-2006 | Отправлено: 10:33 02-06-2017
LevT



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

Обратите внимание
Быстрое введение в актуальный пошик (не для новичков)
http://overpoweredshell.com/
 
блог стартовал только что - и, как я погляжу, исключительно по делу.
С удовольствием обсужу его содержание с теми, кому это интересно.
 
Сам на голову отстаю от автора: понимаю что к чему, но самому написать такое кишка тонка.
 
Самый нижний/старый пост - о том, как написать на пошике "sudo"

Цитата:
 
Start-ElevatedProcess -Program notepad -Command {C:\Windows\System32\Drivers\etc\hosts}
 

Тут важен не только результат, а процесс: остальные повторно используемые инструменты пишутся примерно так же.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 18:03 21-06-2017
farag



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

Код:
 
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'Get-ChildItem -Force -Path $env:SYSTEMROOT\SoftwareDistribution\Download | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue'
$trigger =  New-ScheduledTaskTrigger -Daily -DaysInterval 62 -At 9am
$settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable
$principal = New-ScheduledTaskPrincipal -User System -RunLevel Highest
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName SoftwareDistribution -Principal $principal -Settings $settings -Force
 

Отрабатывается идеально на Windows 10, но на 8.1 выдает

Код:
 
Register-ScheduledTask : Параметр задан неверно.
строка:5 знак:1
+ Register-ScheduledTask -Action $action -Trigger $trigger -TaskName So ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (PS_ScheduledTask:Root/Microsoft/...S_ScheduledTask) [Register-ScheduledTask], CimException
    + FullyQualifiedErrorId : HRESULT 0x80070057,Register-ScheduledTask
 

Работает лишь вариант

Код:
 
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument 'Get-ChildItem -Force -Path $env:SYSTEMROOT\SoftwareDistribution\Download | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue'
$trigger =  New-ScheduledTaskTrigger -Daily -DaysInterval 62 -At 9am
$settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName SoftwareDistribution -Settings $settings -User System -RunLevel Highest -Force
 

Соответственно, почему-то на Principal ругается. Что не так вообще?..

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 13:46 05-07-2017
vasheezloy



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Quest Powershell может кто дать линк на загрузку именно его?

Всего записей: 23 | Зарегистр. 17-08-2011 | Отправлено: 15:23 24-07-2017
Richard_Nixon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
В продолжение задачи 13:29 29-03-2017
 
Требование к скрипту(под тегом#) пополнилось необходимостью суммировать количество обращений с четырех известных IP (за заданный get-date период), причем отдельными $arr этого скрипта.
Помнится вы говорили о правилах регэкспа применяемых к подчеркиванию,  

Цитата:
В общем, здесь, с учетом вышеизложенного, я бы записал так:
 
Код:
$finc2="\b(?>FTBIB|FTPR|FTALL|FTNG|FTLIT)_READER\b"
$finc3="(?<=_)fulltext&c21com=2&p21dbn\b"  

 
А что насчет точки, разделяющей цифры IP адреса?  Задача представить запись следующим образом:
 
"Выборка из предыдущего результата, отбор строк по совпадению(Всего просмотренных страниц документов пользователями с IP адреса 235.XXX.XXX.XX):"+$($arr№.. .count)
$arr5 = $arr1|%{if($_ -match $finc№....){$_}}
 
"Выборка из предыдущего результата, отбор строк по совпадению: (Количество загруженных документов пользователями с IP адреса 235.XXX.XXX.XX):"+$($arr№... .count)
$arr6 = $arr1|%{if($_ -match $finc№.....){$_}}
 
Прошу ткнуть носом как будет верно записать $finc4, 5, 6 ..... для IPv4 адресов. Кроме стандартных внешних IP необходимо каунтить одим числом найденные (по номеру сети 10.120.30.) адреса ЛСВ .
 
Оригинал лога
 
Оригинал скрипта под #
 
 

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 13:48 02-08-2017 | Исправлено: Richard_Nixon, 14:00 02-08-2017
YuS_2



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

Цитата:
Помнится вы говорили

Эх-ма, "вспомнила бабка, когда девочкой была..." шутка.
То ведь было в марте, тут надо опять вникать в суть задачи... а сейчас голова забита немного другим. Попозже немного (сегодня-завтра) попробую вспомнить.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:03 02-08-2017
LevT



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

Цитата:
Требование к скрипту(под тегом#) пополнилось  

YuS_2

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

 
Вот именно поэтому умные эксперты придумали ешё и дисциплину написания скриптов, "лучшие практики".
Если бы вы им следовали, проблемы бы у вас сейчас не было (да и третьему постороннему было бы легко въехать и вам помочь).
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 14:31 02-08-2017 | Исправлено: LevT, 14:37 02-08-2017
Richard_Nixon



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

Цитата:
тут надо опять вникать в суть задачи

Заранее спасибо.  
Главное интересует как записать $finc =(АЙПИ АДРЕС ) или $finc =(НОМЕР СЕТИ )
очевидно что это не просто, что-то $finc= "192.168.1.1" или  $finc="192.168.1.*", поэтому никак не наберусь смелости пробовать такую глупость.
 

LevT

Цитата:
Вот именно поэтому умные эксперты придумали ешё и дисциплину написания скриптов, "лучшие практики".
Если бы вы им следовали, проблемы бы у вас сейчас не было (да и третьему постороннему было бы легко въехать и вам помочь).  
Критику вашу принимаю как созидательную, обязуюсь над собой работать.
 

Цитата:
Вы сами постарались, чтобы вам не смог помочь никто
Не могли бы вы развернуто донести мысль об алгоритме обращения и формулирования вопроса в этой теме? Вполне допускаю что вы абсолютно правы, делая такое замечание. Только полагаясь на правила раздела и форума я никак не возьму в толк где я нарушаю данный алгоритм.

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 14:34 02-08-2017 | Исправлено: Richard_Nixon, 15:57 02-08-2017
YuS_2



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

Цитата:
Вот именно поэтому умные эксперты придумали ешё и дисциплину написания скриптов, "лучшие практики".  
Если бы вы им следовали, проблемы бы у вас сейчас не было (да и третьему постороннему было бы легко въехать и вам помочь).  

Слушай, вот ты поднадоел уже со своими поучениями. Может хватит оффтопить? Если есть желание помочь - помогай, а не занимайся псевдобурной деятельностью с умным видом, с раздуванием щек и нахмуриванием бровей...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:40 02-08-2017
LevT



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

"На слабо" я не ведусь.
Вы сами постарались, чтобы вам не смог помочь никто кроме вас двоих.
Несмотря на предупреждения до и после.
 
Умный учится на ошибках чужих, а не своих!

 
Добавлено:
Richard_Nixon

Цитата:
Не могли бы вы развернуто донести мысль об алгоритме обращения и формулирования вопроса в этой теме? Вполне допускаю что вы абсолютно правы, делая такое замечание.  

 
Алгоритмы тут не при чём.
Ты сам выбрал, думать ли над моими советами или по-быстрому взять нахаляву предложенный скрипт (благо что советчик был любезен и его дорабатывал...)
 
Теперь за это расплачиваешься не только ты, но и тот, кто давал угодные тебе на тот момент советы.  
(извините за "ты/вы": мне так проще было донести мысль)

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:45 02-08-2017 | Исправлено: LevT, 16:11 02-08-2017
Richard_Nixon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
14:00 02-08-2017
Дело пошло, но есть вопрос. В 5й и 6й выборке не получается извлечь из результата $arr3 или $arr4. Если брать $arr1 , то значение возвращается, но естественно, содержит в себе сумму ($arr3 или $arr4), что не отвечает задаче. Если выставить значение как указано ниже, - $arr5 = $arr3|%{if($_ -match $finc4){$_}}  - возвращается ноль.

Цитата:
 
 
$fexc="\burub\b"
$finc1="\bft_request\b"
$finc2="\b(?>FTBIB|FTPR|FTALL|FTNG|FTLIT)_READER\b"
$finc3="(?<=_)fulltext&c21com=2&p21dbn\b"
$finc4="212.96.201.61\b"
 
#Отбор строк по диапазону дат:
$dbeg = get-date("01.07.2017")
$dend = get-date("31.07.2017")
$strdat = gc "D:\WORK_FUNC\count\logs\*.log" -enc UTF8|%{
    $str=get-date($($_ -replace '^.*datetime=(\d+\.\d+\.\d+)\s.*','$1'))
    if($str -le $dend -and $str -ge $dbeg){$_}
}
#Выборка1 из предыдущего результата, исключающая строки:
$arr1 = $strdat|%{if($_ -notmatch $fexc){$_}}
#Выборка2 из предыдущего результата, отбор строк по совпадению:
$arr2 = $arr1|%{if($_ -match $finc1){$_}}
#Выборка3 из предыдущего результата, отбор строк по совпадению:
$arr3 = $arr1|%{if($_ -match $finc2){$_}}
#Выборка4 из предыдущего результата, отбор строк по совпадению:
$arr4 = $arr1|%{if($_ -match $finc3){$_}}
#Выборка5 из предыдущего результата, отбор строк по совпадению:
$arr5 = $arr3|%{if($_ -match $finc4){$_}}[/q]
#Выборка6 из предыдущего результата, отбор строк по совпадению:
$arr5 = $arr4|%{if($_ -match $finc4){$_}}

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 16:48 02-08-2017 | Исправлено: Richard_Nixon, 16:54 02-08-2017
YuS_2



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

Цитата:
пополнилось необходимостью суммировать количество обращений с четырех известных IP (за заданный get-date период), причем отдельными $arr этого скрипта.

В общем, если правильно понял, то требуется это:

Код:
function useinc ($x){
    process{
        if($_ -match $x){$_}
    }
}
 
#Фильтры
$fexc='\burub\b'
$finc1='\bft_request\b'
$finc2='\b(?>FTBIB|FTPR|FTALL|FTNG|FTLIT)_READER\b'
$finc3='(?<=_)fulltext&c21com=2&p21dbn\b'
#Фильтры по IP
$fip1='host\=66\.249\.76\.49\b'
$fip2='host\=66\.249\.76\.\d{1,3}\b'
$fip3='(?>host\=66\.249\.79\.181|host\=66\.249\.64\.143)'
$fip4='host\=66\.249\.64\.143'
 
 
#Отбор строк по диапазону дат:
$dbeg = get-date("26.03.2017")
$dend = get-date("28.03.2017")
$strdat = gc ".\fulltext*.log" -enc UTF8|%{
    $str = get-date($($_ -replace '^.*datetime=(\d+\.\d+\.\d+)\s.*','$1'))
    if($str -le $dend -and $str -ge $dbeg){$_}
}
#Выборка из предыдущего результата, исключающая строки:
$arr1 = $strdat|%{if($_ -notmatch $fexc){$_}}
#Выборка из предыдущего результата, отбор строк по совпадению:
$arr2 = $arr1|useinc $finc1
$arr3 = $arr1|useinc $finc2
$arr4 = $arr1|useinc $finc3
#Выборка по IP фильтрам
$arrIP1 = $arr1|useinc $fip1
$arrIP2 = $arr1|useinc $fip2
$arrIP3 = $arr1|useinc $fip3
$arrIP4 = $arr1|useinc $fip4
 
&{
"всего обращений к БД включая внешние поисковые системы: "+$($strdat.count)
"Пользовательских обращений к БД, всего, включая загрузки, без учета обращений поисковыми системами: "+$($arr1.count)
"Всего просмотренных документов пользователями, включая скачанные: "+$($arr2.count)  
"Всего просмотренных страниц документа пользователями: "+$($arr3.count)  
"Всего загруженных документов пользователями из БД: "+$($arr4.count)
"Всего просмотренных страниц документов пользователями с IP адреса 66.249.76.49: "+$($arrIP1.count)
"Всего просмотренных страниц документов пользователями из сети 66.249.76.*: "+$($arrIP2.count)  
"Всего просмотренных страниц документов пользователями с IP адреса 66.249.79.181 и 66.249.64.143: "+$($arrIP3.count)
"Всего просмотренных страниц документов пользователями с IP адреса 66.249.64.143: "+$($arrIP4.count)
}|out-file "out_$(get-date -f {yyyy.MM.dd_HH-mm}).txt" -enc default -force

 
- здесь все выборки из $arr1, но по аналогии можно добавить выборки и по другим отобранным строкам...
 
Добавлено:
 02-08-2017

Цитата:
В 5й и 6й выборке

Тут главное не ошибаться с именованием переменных.
В частности, у Вас отсутствует $arr6 ...
Наверное, нумерацию переменных по IP лучше выделить в отдельный массив, как в моем примере... меньше будет ошибок.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:50 02-08-2017 | Исправлено: YuS_2, 09:29 03-08-2017
Richard_Nixon



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просто замечательно, даже скорость обработки выросла.  Двигаюсь дальше, выстраиваю фильтры по логике задачи.
Не могу только понять почему извлечение из $arr4 успешно проходит

Цитата:
#Выборка по IP фильтрам
$arrIP1 = $arr4|useinc $fip1
$arrIP2 = $arr4|useinc $fip2
$arrIP3 = $arr4|useinc $fip3
$arrIP4 = $arr4|useinc $fip4
$arrIP5 = $arr4|useinc $fip5

 
а из $arr3 возвращает ноль, что есть арифметическое противоречие.

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 13:05 03-08-2017 | Исправлено: Richard_Nixon, 13:13 03-08-2017
YuS_2



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

Цитата:
из $arr3 возвращает ноль

Надо сбросить массив в файл и вручную проследить, есть ли там совпадения по используемому шаблону.
Вот так:

Код:
...
$arr3 = $arr1|useinc $finc2
$arr3 >test_arr3.txt
$arr4 = $arr1|useinc $finc3
...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:16 03-08-2017
Richard_Nixon



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

Цитата:
Надо сбросить массив в файл и вручную проследить, есть ли там совпадения по используемому шаблону
Так точно, есть. Чего ему только  надо, собаке? Опираясь на файл, могу, конечно, сделать отдельный ps1, но думаю меня не простят местные ценители лаконичных записей.

Всего записей: 89 | Зарегистр. 22-02-2017 | Отправлено: 15:21 03-08-2017 | Исправлено: Richard_Nixon, 15:28 03-08-2017
farag



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может, кто-нибудь поможет с моим вопросом?
Подробнее

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 16:09 03-08-2017 | Исправлено: farag, 16:09 03-08-2017
YuS_2



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

Цитата:
Чего ему только  надо

Показывайте целиком скрипт, в том варианте, в котором не работает и файл-лог тоже, именно тот, на котором не работает...
 
farag

Цитата:
Может, кто-нибудь поможет

Ну, а чем тут можно помочь? Сравните версии PS, может в этом загвоздка?
Если нет такого командлета в наборе, то самостоятельно PS его не найдет увы...
Хмм, командлет должен быть по умолчанию с версии Win 8.1...
Посмотрел error... там проблема в неверном формате... надо читать документацию и приводить в соответствие.
Здесь можно почитать.
Как минимум, не:

Код:
$principal = New-ScheduledTaskPrincipal -User System -RunLevel Highest

а примерно так:

Код:
$principal = New-ScheduledTaskPrincipal -UserID "System" -RunLevel Highest

 
В общем, читать и пробовать варианты...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 16:35 03-08-2017 | Исправлено: YuS_2, 17:07 03-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