Перейти из форума на сайт.Реклама на 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
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Упс... откуда мне знать, какой левый, допустим, выдает у чела это в событиях
Код события:   36882  
Источник:      Schannel
А мелкие говорят, что надо удалять сертификат, а какой не оповестили.
Я про утилиту (Sigcheck) от Руссиновича вякнул в теме про вынь , а потом про пошик вспомнил... это Фсе, что мне известно.

Всего записей: 6551 | Зарегистр. 12-10-2001 | Отправлено: 16:10 12-09-2017 | Исправлено: KLASS, 16:13 12-09-2017
LevT



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

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

Вот так?

Цитата:
 
Поставщик Schannel создает список доверенных центров сертификации, выполняя поиск в хранилище доверенных корневых центров сертификации на локальном компьютере. Эта ошибка регистрируется, если Schannel обнаруживает сертификат, выданный недоверенным центром сертификации.
 

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 16:24 12-09-2017 | Исправлено: LevT, 16:31 12-09-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
А по русски? То что нужно знать это понятно (может быть, когда-нибудь), но а, если не ведаешь?
Ну должен пошик такую фигню выдать, это очевидно... люди спрашивают,
а я в теме по выни сторонние утилиты предлагаю... не айс как то, модер правила нарушает )
Долой все стороннее, учимся решать проблемы средствами системы.
А ты как хотел поднять пошик на форуме? Только личными примерами... иначе запинают, как, впрочем, и в жизни.

Цитата:
Поставщик Schannel создает список доверенных центров сертификации, выполняя поиск в хранилище доверенных корневых центров сертификации на локальном компьютере.

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

Всего записей: 6551 | Зарегистр. 12-10-2001 | Отправлено: 16:35 12-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Судя по твоей ссылке, неправильный сертификат затесался тут
"Cert:\LocalMachine\Root\" | Get-GhildItem
 
Попробуй вывод на своей проблемной машине слить в | Test-Certificate -Verbose
(у меня возвращает просто True)

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 16:50 12-09-2017 | Исправлено: LevT, 16:53 12-09-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Опять упс...
Чел уже утиль от Руссиновича заюзал и у него она что то обновила, по его словам
ошибок пока нет, вот три поста, ну и сам понимаешь, проверить то негде. (
Поздно я сообразил, виноват.
 
Добавлено:
А давай без сообщений системы )
Умерла она, как проверить локальный центр сертификации

Всего записей: 6551 | Зарегистр. 12-10-2001 | Отправлено: 16:59 12-09-2017 | Исправлено: KLASS, 17:08 12-09-2017
LevT



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

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 17:37 12-09-2017
Rwd

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

 
"Cert:\LocalMachine\Root\" | Get-ChildItem - результат на скрине справа.
 
Get-ChildItem -Path Cert:\localMachine\My | Test-Certificate - там у меня ничего, скрин не делал.
 
Get-ChildItem -Path Cert:\localMachine\Root | Test-Certificate - результат на скрине слева.
 
Ниже отсортированные по дате тем самые 4 сертификата: 3 верхние - истёк срок действия, нижний - отозван выдавшим его центром сертификации.

Всего записей: 376 | Зарегистр. 11-11-2016 | Отправлено: 22:33 12-09-2017
LevT



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

взять нужные сертификаты (например из LocalMachine\Root)
        XОЧУ отфильтровать недействительные
               и удалить их  

 
Кто осилит написать продвинутую функцию-командет (фильтр недействительных сертификатов)
Get-Invalid (по образцу Get-Newer, несколько страниц назад)
 
 
Добавлено:
 
function Get-Invalid {
[CmdletBinding()]
[OutputType([System.Security.Cryptography.X509Certificates.X509Certificate2])]
param(
    [Parameter(ValueFromPipeline)]
    [System.Security.Cryptography.X509Certificates.X509Certificate2[]]$certs
)
process {
    foreach ($cert in $certs) {
          if -not ($cert | Test-Certificate) {
               Write-Output $cert  
          }
    }
}
}
 
написано прямо сюда (в пошике посмотрел только дотнетовский тип)
Отлаживайте!
 
 
Добавлено:
 
"Cert:\LocalMachine\Root\" | Get-ChildItem   ==    Get-ChildItem -Path "Cert:\LocalMachine\Root\"
 
 $cert | Test-Certificate                                ==     Test-Certificate  -Cert $cert

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 22:49 12-09-2017 | Исправлено: LevT, 23:24 12-09-2017
Rwd

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

Цитата:
Отлаживайте!

 
if (-not ($cert | Test-Certificate))
 

Код:
 
function Get-Invalid {  
 [CmdletBinding()]  
 [OutputType([System.Security.Cryptography.X509Certificates.X509Certificate2])]  
 param(  
     [Parameter(ValueFromPipeline)]  
     [System.Security.Cryptography.X509Certificates.X509Certificate2[]]$certs  
 )  
 process {  
     foreach ($cert in $certs) {  
           if (-not ($cert | Test-Certificate)) {  
                Write-Output $cert  
           }  
     }  
 }  
 }
 

 
Отрабатывает без ошибок и сообщений. Так и должно быть?

Всего записей: 376 | Зарегистр. 11-11-2016 | Отправлено: 23:14 12-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дык это чистая функция ))
Ей надо входные данные скормить
 
Добавлено:
 
Get-Invalid (Get-ChildItem -Path "Cert:\LocalMachine\Root\")
 
или что то же самое  
 

Код:
 
"Cert:\LocalMachine\Root\" | Get-ChildItem |  
                                                       Get-Invalid  |    
                                                                 Remove-Item -WhatIf

 

 

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 23:20 12-09-2017 | Исправлено: LevT, 12:22 13-09-2017
Rwd

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

 
Get-Invalid (Get-ChildItem -Path "Cert:\LocalMachine\Root\") - слева
"Cert:\LocalMachine\Root\" | Get-ChildItem | Get-Invalid  | Remove-Item -WhatIf - справа
 
Но сертификаты не удалились

Всего записей: 376 | Зарегистр. 11-11-2016 | Отправлено: 23:51 12-09-2017
LevT



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

Цитата:
Но сертификаты не удалились

Это потому что я умышленно добавил -WhatIf  
 
Можно ещё потом подправить тело функции внутри цикла, чтобы не гадила лишней информацией и красными "ошибками".
 
try {
    $cert | Test-Certificate -ErrorAction Stop | Out-Null
} catch {
    $cert | Write-Output
}  

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 00:00 13-09-2017 | Исправлено: LevT, 10:57 13-09-2017
Rwd

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

Цитата:
WhatIf - Предназначен для эмуляции выполнения команды и вывода информации, о том, что бы случилось, если выполнить данную команду без этого параметра.

 
Понятно    
 
 
Добавлено:

Цитата:
Можно ещё потом подправить функцию внутри, чтобы не гадила лишней информацией и ошибками.

Можно, но ИМХО - пусть гадит.
 

Всего записей: 376 | Зарегистр. 11-11-2016 | Отправлено: 00:02 13-09-2017 | Исправлено: Rwd, 00:05 13-09-2017
LevT



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

Цитата:
ИМХО - пусть гадит.

 
Для сбора подобной инфы в v5 добавили Write-Information

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 00:05 13-09-2017
Rwd

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

Цитата:
чтобы не гадила лишней информацией и красными "ошибками"


Код:
 
function Get-Invalid {  
  [CmdletBinding()]  
  [OutputType([System.Security.Cryptography.X509Certificates.X509Certificate2])]  
  param(  
      [Parameter(ValueFromPipeline)]  
      [System.Security.Cryptography.X509Certificates.X509Certificate2[]]$certs  
  )  
  process {  
      foreach ($cert in $certs) {  
           try {  
               $cert | Test-Certificate -ErrorAction Stop | Out-Null  
           } catch {  
               $cert | Write-Output  
           }    
      }  
  }  
  }
 

 
Get-Invalid (Get-ChildItem -Path "Cert:\LocalMachine\Root\") >> d:\bad_cert.txt - сохранить на память    
и Get-Invalid (Get-ChildItem -Path "Cert:\LocalMachine\Root\") | Remove-Item -WhatIf  
 

Всего записей: 376 | Зарегистр. 11-11-2016 | Отправлено: 12:17 13-09-2017
LevT



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

Замечу, что я почти не включал мозги и совсем не гуглил.
 
Творческие достижения, которыми стали бы поводом для гордости - они не тут, а в гораздо более сложных штуках.  
К которым можно наконец приступать, благодаря тому что такие вот упражнения решаются "конвейерным методом" и не представляют проблемы.
 
Сложные штуки становится проще,  
потому что из их сложности вычитается вся та не-такая-уж-сложность, которую можно упрятать в конвейер/трубу.

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 12:28 13-09-2017
Rwd

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
О сложности говорить не готов, опыта меньше суток. Основную пользу пока вижу в отказе от стороннего софта, это важно.

Всего записей: 376 | Зарегистр. 11-11-2016 | Отправлено: 12:40 13-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересно
 тут кто-нибудь заметил, что в перспективе "инженерную" или "мАстерскую" часть можно в значительной мере поручить компьютеру?
(написать молотилку с нужными типами входов и выхода задача вполне рутинная)
 
Людям остаются:  
1) постановка задачи (подбор трубы)
2) правильный выбор командлетов, воздействующих на окружающий мир.
3) ответственность за результат.
 
 
Добавлено:
 
Rwd
Не обращайте внимания: это я продолжаю убеждать здешних завсегдатаев )

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 12:40 13-09-2017
2as

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Получить список истёкших сертификатов с помощью PowerShell 2.0

Код:
Set-Location cert:
Get-ChildItem -Recurse | where { $_.notafter -le (get-date).AddDays(75) -AND $_.notafter -gt (get-date)} | select thumbprint, subject

подробности здесь :

Всего записей: 3267 | Зарегистр. 09-09-2003 | Отправлено: 12:52 13-09-2017 | Исправлено: 2as, 13:03 13-09-2017
LevT



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

Цитата:
 >> d:\bad_cert.txt

 
В отличие от bash и cmd перенаправление вывода имеет ограниченное применение: его результат используем только для чтения человеческими глазами.
Если есть хотя бы гипотетический шанс, что этот файлик будет скармливаться программе (любой) - то так лучше не делать, потому что теряется структура.
 
Есть Export-, например Csv.
 
 
Добавлено:
2as

Цитата:
Получить список истёкших сертификатов с помощью PowerShell 2.0  

 
только ЗАРУБИТЬ НА НОСУ, что скоро он последует вслед за XP - и когда с его использованием возникнут проблемы, ТЕРПЕТЬ МОЛЧА.
 
Ну или завести отдельный раздел - "клуб дауншифтеров" - что гуманнее и правильнее.
 
 

Всего записей: 10100 | Зарегистр. 14-10-2001 | Отправлено: 12:54 13-09-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

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