воскресенье, 12 ноября 2017 г.

Отключение адаптивной смены яркости в Windows 10

Долгое время не мог понять, что же меня раздражает при активной работе на ноутбуке сWindows 10. Оказалось, что при изменении картинки на экране,  например при смене вкладки браузера со светлой страницы Яндекса на странцу с видео YouTube, происходило адаптивное изменение яркости подсветки экрана. Очень раздражающая штука.

Легко отключить это не получилось, в настройках электропитания уже была отключена.

Поэтому пришлось лезть глубже. Оказалось, что проблема известная и связана сдрайверами видеоадптеров. В частности в моем случае пришлось для интегрированной видеокарты изменить драйвер на стандартный от Microsoft, потому что обновление драйвера от ATI не принесло результата. 

Делается это в диспетчере устройств. Правой клавишей на видеоадаптере, из контекстного меню выбираем пункт "Обновить драйвер..." >  "Выполнить поиск драйверов на этом компьютере" > "Выбрать драйвер из списка доступных драйверов на этом компьютере". Откроется окно выбора драйвера,  в котором выбираем "Базовый видеоадаптер (Microsoft)".

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

суббота, 4 ноября 2017 г.

Удаление службы с помощью Powershell


Подхватил недавно Adware которые насоздавал кучу лишних служб, таких как updater.mail.ru. Конечно, в состав Windows 10 входит отличная утилита SC с помощью которой их легко можно удалить:

 sc delete updater.mail.ru.

Но удивил тот факт что в составе Powershell есть командлеты для создания, настройки и управления службами, но вот для удаления нет.  Есть костыли использующие WMI

(Get-WmiObject win32_service -Filter ″name=′updater.mail.ru′″).delete()

или прямое удаление ветки реестра относящийся к службе в разделе:

HKLM:\SYSTEM\CurrentControlSet\Services\

но вот командлета нет. Искал на powershelgallery.com и в стандартной поставке. Отличный пример когда соберусь изучать создание командлетов. наверняка это из-за каких-подводных камней. хотя конечно можно просто обёртку для sc.exe написать, что совсем не интересно.

Формирование HTML из Powershell кода в ISE


Увидел как убого выглядит вставляемый код и поискал способ для формирования расцвеченного HTML кода для вставки в статьи блога. Поскольку я использую Powershell совсем не часто, то функционала стандартного ISE мне выше крыши. Так что первым делом попытался найти способ сделать это из этого инструмента.

Нашёл хорошую статью на wiki technet Wiki: Как вставить отформатированный код сценария PowerShell в TechNet Wiki. Но увы PowerShellPack уже вышел в тираж.

Зато на той же wiki нашёл страницу с дополнениями для самого ISE. Одним из которых был Copy As HTML Add-On. Удобная штука с собственным установщиком. Пришлось правда использовать set-executionpolicy, но это и так пришлось бы делать. Схоронил у себя этот архивчик.

В статью Блогера код вставляется в режиме HTML. И выглядит один-в-один как в редакторе:

$path = "d:\temp\"

$files = Get-ChildItem $path

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false

$Summary = @()

foreach ($file in $files) {
     #Открываем каждый из полученных файлов
    $excel.Workbooks.Open($file.fullname) | Out-Null
    
    
    [int] $Year = "20" +$File.name.substring($file.name.Length - 6,2);
    
    [int] $Month = $file.name.substring($file.name.Length - 9,2);
    
    Write-Host "Open file: " $file.FullName "; Year = " $Year "; Month = " $month
    #Получаем перечень с именами листов длиной менее трёх символов - листы с данными по дням имеют имена в два символа
    $Sheets = $excel.worksheets | where {$_.Name.length -lt 3}
    $plan = 0
    $fact = 0
    #Для каждого из полученных листов в файле проводим разбор
    foreach ($Sheet in $Sheets)  {
        [int] $Day = $Sheet.Name
        
        for ($Col = 7; $Col -le 8; $Col++) {
            For ($Row =14; $Row -le 16; $Row++) {
                if ($sheet.cells.item($Row, $Col).Value2 -eq "Койко/мест") {
                    #Write-host $year $Month $Day "-" $Col ":" $Row  = "YES!"
                    #Write-Host "Day = " $Day "; Fact Value = " $sheet.cells.item($Row, $Col + 2).Value2 "; PlanValue = " $sheet.cells.item($Row + 1, $Col + 2).Value2

                    
                    #$DataDay = New-Object PsObject
                    #$DataDay | Add-Member -MemberType noteproperty -Name Year -Value $Year
                    #$DataDay | Add-Member -MemberType noteproperty -Name Month -Value $Month
                    #$DataDay | Add-Member -MemberType noteproperty -Name Day -Value $Day
                    #$DataDay | Add-Member -MemberType noteproperty -Name FactValue -Value $sheet.cells.item($Row, $Col + 2).Value2
                    #$DataDay | Add-Member -MemberType noteproperty -Name PlanValue -Value $sheet.cells.item($Row + 1, $Col + 2).Value2
                    
                    
                    #$Summary += $DataDay
                    $plan +=$sheet.cells.item($Row + 1, $Col + 2).Value2
                    $fact +=$sheet.cells.item($Row, $Col + 2).Value2
                }
            }
        }
    }
                $DateMonth = New-Object PsObject
                    $DateMonth | Add-Member -MemberType noteproperty -Name Year -Value $Year
                    $DateMonth | Add-Member -MemberType noteproperty -Name Month -Value $Month
                    $DateMonth | Add-Member -MemberType noteproperty -Name FactValue -Value $Fact
                    $DateMOnth | Add-Member -MemberType noteproperty -Name PlanValue -Value $Plan
            $Summary += $DateMonth

}
$Summary | Out-GridView

#$table = @()
#   for ($i=2010; $i -le 2011; $i++) {
#        For ($j = 1; $j -le 12; $j++) {
#            $temp = $summary | where {$_.Month = $j} | where {$_.Year = $i}
#            $Fact = 0
#            $Plan = 0
#            foreach ($t in $temp) {
#                $fact += $t.FactValue
#                $plan += $t.PlanValue
#            }
#            
#            $DateMonth = New-Object PsObject
#                    $DataMonth | Add-Member -MemberType noteproperty -Name Year -Value $Year
#                    $DataMonth | Add-Member -MemberType noteproperty -Name Month -Value $Month
#                    $DataMonth | Add-Member -MemberType noteproperty -Name FactValue -Value $Fact
#                    $DataMOnth | Add-Member -MemberType noteproperty -Name PlanValue -Value $Plan
#            $table += $dateMonth
#        }
#    
#    }






Администратор заблокировал выполнение этого приложения.


Система защиты Windows при всей своей неэффективности в то же время достаточно сложна и эшелонирована. Так элементы обеспечения безопасности Defender и UAC, который кстати раньше обозначался как  Limited User Account (LUA), способны работать в связке. Приводя к блокировке потенциально опасных для системы приложений. Вот и я столкнулся с этим, при том что и UAC и Defender я старательно отключил, приложение было блокировано из-за сертификата издателю которого система не доверяет. При этом использование функции "Запуск от имени администратора" привело к повторному появлению указанного окна.

Удалось запустить исполняемый файл из командной консоли, которая в свою очередь и была запущена от имени Администратора. Но это не очень удобно. Ниже представлен Powershell скрипт вносящий изменения в ветку реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\ System\EnableLUA
для отключения функционала ограниченного пользовательского аккаунта (LUA). Естественно при отключении еще одного средства защиты система становится ещё более подверженной вторжению.

<#
Отключает LUA
#>
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
$RegProperty = "EnableLUA"

Set-ItemProperty -path $RegPath -Name $RegProperty -value "0"


<#
Включает LUA
#>
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
$RegProperty = "EnableLUA"

Set-ItemProperty -path $RegPath -Name $RegProperty -value "1"


Отключить Поиск Windows


Еще одна бесполезная для меня часть используемой мной Windows 10 - это поиск. Сервис который бесполезно тратить оперативную память и процессорное время.  Не так много, но курочка по зёрнышку...

Как всегда оформлю всё в виде Powershell скрипта, чтобы не возиться с GUI утилитами.

$RegPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search"
$RegPathShort = "HKLM:\SOFTWARE\Policies\Microsoft\Windows"
$RegProperty = "AllowCortana"


if (test-path $RegPath) {
$y = Get-ItemPropertyValue -path $RegPath -Name $RegProperty -ErrorVariable x -ErrorAction SilentlyContinue
    if ($y) {
        Set-ItemProperty -path $RegPath -Name $RegProperty -value "0"
    }
    else {
        New-ItemProperty -path $RegPath -Name $RegProperty -Value "0" -PropertyType "Dword"
    }
}
else {
    mkdir -path $RegPathShort -name "Windows Search"
    New-ItemProperty -path $RegPath -Name $RegProperty -Value "0" -PropertyType "Dword"
}

четверг, 26 октября 2017 г.

Пленочка

Говорите любите сдирать пленочку с техники? А вы с сервера пробовали ее снять? Наверняка нет, иначе такие глупости бы в голову не приходили.

5 минут отдираю. Уже засомневался что ее отрывать надо было. уж очень крепко она держится.

суббота, 21 октября 2017 г.

Отключить Защитник Windows

Еще одна напрягающая мой старый ноутбук служба Windows - это её защитник.
Опять призываем на помощь себе запущенную рот имени системного администратора консоль PowerShell.

Отключаем все запланированные задания

Get-ScheduledTask *defender* | Disable-ScheduledTask  

И добавляем в реестр параметр

New-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "DisableAntiSpyware" -Value "1" -PropertyType "Dword"
New-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "AllowFastServiceStartup" -Value "0" -PropertyType "Dword"
New-ItemProperty -path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "ServiceKeepAlive" -Value "0" -PropertyType "Dword"

Перезагрузка. И ничего... оказывается Windows 10 Creator Update несколько по другому работает. Добавляем:

MkDir -path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "Real-Time Protection"

New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableBehaviorMonitoring" -Value "1" -PropertyType "Dword"
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" -Name "DisableOAVProtection" -Value "1" -PropertyType "Dword"

MkDir -path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" -Name "Spynet"

New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "DisableBlockAtFirstSeen" -Value "1" -PropertyType "Dword"
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "LocalSettingOverrideSpynetReporting" -Value "0" -PropertyType "Dword"
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Spynet" -Name "SubmitSamplesConsent" -Value "2" -PropertyType "Dword"



Вот теперь отключились сервисы высвободив немного оперативной памяти и перестав нервировать меня проверкой по включению машины.

Удалить Windows Store


Как-то так сложилось, что я не устанавливаю приложения из Windows Store. А системные службы регулярно мешают мне работать создавая нагрузку на диск или процессор в виде сервиса wsappx. Поэтому пришло в голову удалить этот магазин из системы.

Выполнить это можно из консоли powershell в 3 шага:

  1. Команда "Get-AppxPackage *windowsstore* | Remove-AppxPackage", не забываем про автодополнение команд с помощью клавиши Tab.
  2. ?????
  3. Результат!
Как результат система быстрее запускается и меньше тормозит. Кстати, Очень полезно бывает отключить все живые плитки, чтобы коварная служба wsappx не тормозила работу. В той же консоли PowerShell вводим:
Set-ItemProperty -Path "HKCU:/Software/Policies/Microsoft/Windows/CurrentVersion/PushNotifications" -Name "NoTileApplicationNotification" –Value "1"

Так же до кучи можем очистить кэш плиток командой:

Set-ItemProperty -Path "HKCU:/SOFTWARE/Policies/Microsoft/Windows/Explorer" -Name "ClearTilesOnExit" -Value "1"
Конечно всё это можно запихнуть в сценарий, но надо ли?

четверг, 19 октября 2017 г.

Блокчейн защитит частных инвесторов


Федеральный фонд по защите акционеров и вкладчиков обратился в Госдуму с предложением использовать технологию блокчейн для хранения реестра частных инвесторов. Предполагается, что это позволит лучше защитить интересы владельцев индивидуальных инвестиционных счетов (ИИС), которые сегодня рискуют значительно больше банковских вкладчиков.
По логике представителей фонда, брокеры и управляющие компании будут стараться сэкономить на отчислениях. В результате после отзыва у них лицензии некоторые клиенты не смогут найти себя в реестре, а значит, получить страховое возмещение. Использование блокчейна поможет решить эту проблему, так как данные из блокчейна нельзя удалить, а значит, частные инвесторы будут гарантированно получать страховое возмещение, уверены авторы концепции.
В Госдуме готовы рассмотреть новацию, изложенную в письме. По словам председателя комитета по финансовому рынку Госдумы Анатолия Аксакова, «инициатива требует всестороннего изучения». Он не исключает, что такой вариант защиты частных инвесторов может быть реализован на практике.
— Я допускаю, что инициатива может быть поддержана, но сначала нужно изучить ее, — отметил Анатолий Аксаков.
Индивидуальный инвестиционный счет — это счет в брокерской или управляющей компании, на который гражданин может получить налоговый вычет на сумму внесенных средств или налоговую льготу на полученный по счету доход. В настоящее время физлица открыли свыше 200 тыс. таких счетов.
По словам управляющего директора Бинбанка Алии Юсуповой, инициатива интересна.
— Основное достоинство блокчейна — сохранение информации без возможности ее последующего изменения или удаления, — пояснила представитель Бинбанка. — Отлично, если этот реестр будет вестись с использованием электронных ресурсов Банка России. 
По словам Алии Юсуповой, необходимо обозначить конкретные механизмы контроля за корректным вводом данных в блокчейн. Иначе проблема вывода за баланс частных инвесторов не будет решена.
— К ключевым рискам и вызовам технологии блокчейн можно отнести необходимость создания единого цифрового идентификатора, который поможет использовать запись в блокчейне как валидный аргумент при взыскании страховых средств, — добавил специалист по исследовательской деятельности кафедры «Финансы, платежи и электронная коммерция» московской школы управления «Сколково» Егор Кривошея.
Директор по стратегическому развитию УК «Альфа-капитал» Вадим Логинов отметил, что вопрос создания реестра держателей ИИС, в том числе в контексте принятия закона о страховании, актуален, но требует тщательной проработки.
— Необходимо определиться, кто будет вести такой реестр, кому должен быть предоставлен к нему доступ и за какой счет должна быть реализована инновация, — пояснил Вадим Логинов.
А соучредитель инвесткомпании Exante Анатолий Князев считает, что технически проще, если такой реестр будет вести ЦБ, а не система на блокчейне, у которой пока нет правовой базы.
Законопроект о страховании индивидуальных инвестиционных счетов был внесен в Госдуму 16 января. Его цель — увеличить инвестиции граждан в фондовый рынок, а также защитить владельцев акций и облигаций от мошенничества. Согласно законопроекту, Агентство по страхованию вкладовсформирует Фонд страхования инвестиций. Участие в нем будет обязательным для брокеров и УК, которые открывают и ведут индивидуальные инвестиционные счета. Фонд будет формироваться исключительно за счет страховых взносов брокеров и УК. Максимальный размер страхового возмещения составит 1,4 млн рублей — как по банковским вкладам. Но в отличие от вкладчиков частные инвесторы не будут защищены государством.
СПРАВКА «ИЗВЕСТИЙ»
Блокчейн (от английского blockchain — «блочная цепь») — это технология хранения и защиты информации с помощью распределенных баз данных. В ее основе — постоянно продлеваемая цепочка цифровых записей. Это позволяет добиться высочайшей устойчивости к фальсификации, пересмотру, взлому и краже информации. Данные в блокчейне хранятся одновременно у всех участников, а все записи автоматически обновляются до последней версии при каждом внесенном изменении. Технология блокчейн не запрещена российским законодательством в отличие от денежных суррогатов, к которым относится биткоин.

Центробанк нашел применение распределенным реестрам в России


В июне 2016 года рабочая группа ЦБ по изучению технологии блокчейн (blockchain; технология блочных цепей — это система организации распределенной базы данных), на которой работает система Bitcoin, представит результаты работы. «Известия» выяснили, что основной вопрос, который сейчас решается участниками рабочей группы, — как именно применять технологию блокчейн, которая не запрещена российским законодательством в отличие от криптовалют. По словам источника, близкого к ЦБ, если вопрос с применением технологии не решится до конца 2016 года, у банков остынет к ней интерес: тогда ее дальнейшее изучение будет нецелесообразно. Собеседник пояснил, что регулятор рассматривает возможность разрешить банкам хранить данные обо всех трансакциях в блокчейне.

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

По словам источника, близкого к ЦБ, блокчейн сверхнадежен: поскольку это распределенная база данных, нет единого места, где хранились бы все данные. Они располагаются одновременно у всех участников системы, и все записи автоматически обновляются до последней версии при каждом внесенном изменении. А удалить данные из блокчейна нельзя, что делает систему максимально прозрачной. Поэтому ЦБ рассматривает возможность дать банкам право использовать технологию блокчейн для хранения информации обо всех их трансакциях, резюмирует собеседник.

Официальные представители ЦБ не опровергли слова источника. Они сообщили, что представят свою позицию по вопросу спустя некоторое время.

По словам автора первой книги про биткоины Алекса Форка, сейчас задачу применения блокчейна, помимо ЦБ, решает консорциум крупнейших инвестбанков мира R3, созданный полгода назад. В него входят Goldman Sachs, JPMorgan, Credit Suisse, Barclays, Commonwealth Bank of Australia, State Street, RBS, BBVA и UBS и пр. Российских банков в R3 нет.

— В рамках нашей отечественной финансовой архитектуры совершенно очевидно, что новация, о которой говорит источник, в первую очередь должна быть инициирована Банком России, — отметил Алекс Форк. — Подобный подход несет значительные преимущества: скорость оборота денежных средств существенно увеличится, облегчится анализ трансакционной активности, повысится коллективная безопасность.

По словам руководителя цифрового бизнеса группы Бинбанка Дмитрия Каштанова, банки также изучают технологию блокчейн и возможности ее применения на практике — к примеру, в работе с ценными бумагами для депозитариев, в системах денежных переводов и других направлениях.

По словам CEO компании «Источник», экс-маркетолога Mail.Ru Group Роберта Багратуни,  если российские банки не начнут работать с технологией блокчейн, они просто отстанут от своих конкурентов за рубежом.

— Блокчейн позволяет защитить данные банков о трансакциях, а также значительно снижает вероятность использования мошеннических схем благодаря своей децентрализованной структуре, — объяснил Роберт Багратуни. — Если ЦБ не позволит финансовым институтам работать с этой технологией, то российская банковская система в перспективе может стать довольно уязвимой. Вероятно, это понимают в ЦБ и поэтому ведут работу в данном направлении.

Президент Сбербанка Герман Греф заявил на форуме в Давосе, что технология блокчейн дает колоссальные возможности, в том числе по безопасному обмену информацией. Есть и экспертные предложения перевести на блокчейн всю систему регистрации — юридических лиц, прав на недвижимость. Хранение данных о трансакциях через банки РФ также укладывается в эту логику.

Но гендиректор и владелец ООО «Цифровые технологии будущего» Андрей Бухтияров, ранее возглавлявший Ibank, считает, что «если данные можно закриптовать, то точно так же их можно раскриптовать». А значит, возникает вопрос, насколько все-таки защищены данные в блокчейне от атак хакеров.