Size: a a a

Windows 10, etc - Вадим Стеркин

2020 December 16
Windows 10, etc - Вадим Стеркин
▶️ Как проверить наличие значения в массиве и собрать все рабочие ссылки на посты канала Telegram

В #PowerShell легко проверить, есть ли в массиве конкретное значение:
$a = 1,2,3
$a.Contains(2) # содержит?
True
!$a.Contains(2) # не содержит?
False


Я не планировал так быстро возвращаться к теме парсинга веб-страниц, но для бота мне понадобилось собрать ссылки на все посты канала. Понятно, что они начинаются с https://t.me/sterkin_ru/1 и увеличиваются инкрементно. Но часть постов была удалена (неактуальность, ошибочный постинг), а битые ссылки не нужны.

Иду по ссылке в браузере и смотрю исходный код страницы. Если поста по ссылке нет, сервис t.me отдает описание канала. Сравниваю с исходным кодом любого поста и ищу отличия. В описании канала упомянут чат @winsiders, что в исходном коде выглядит как https://t.me/winsiders (этого, кстати, не происходит при таком упоминании чата в тексте поста).

Поэтому в данном случае достаточно выбрать страницы, где в массиве ссылок не содержится ссылка на чат. Дальше уже знакомый вам Invoke-WebRequest. К сожалению, при публикации в канал код некорректно обрабатывается поэтому ссылки на Pastebin и скрипт в архиве
¯\_(ツ)_/¯

950..955 - для примера на случай, если вы будете проверять:) На практике я использовал 1..999, т.к. последний на тот момент пост был за номером 999. Это - оператор range, попробуйте в консоли 1..5 | %{$_}

В итоге из 1000 ссылок по факту отсутствовали 10% ✌️
источник
Windows 10, etc - Вадим Стеркин
​​▶️ Как распарсить JSON и собрать все рабочие ссылки на посты канала Telegram

Мне тут сразу два человека доставили по поводу предыдущего поста 🙈

Василий Гусев пожурил за использование метода Contains, потому что он подходит только для массивов и вообще не задокументирован в справке #PowerShell, ибо .NET. Он посоветовал использовать операторы -contains и -notcontains.
$a = 2
$a -contains '2' # содержит?
True
$a -notcontains '2' # не содержит?
False


Соответственно, условие проверки будет таким (полный код по ссылке):
if ($c.links.href -notcontains 'https://t.me/winsiders')

👉 Также выяснилось, что для решения конкретной задачи, т.е. получения списка постов канала Telegram, есть более эффективный способ. Из описания любого канала можно экспортировать его историю в JSON (см. картинку).

Зная об этом, я бы конечно решал задачу без веб-запросов. Фрагмент структуры JSON:
{
"name": "Windows 10, etc - Вадим Стеркин",
"type": "public_channel",
"id": 9608710293,
"messages": [
 {
  "id": 1,
  "type": "service",
  "date": "2016-03-24T00:00:55",
   ...
 },
 {
  "id": 22,
  "type": "message",
  "date": "2016-03-26T01:39:23",
  "from": "Windows 10, etc - Вадим Стеркин",
  "from_id": 9608710293,
  "text": "Привет канал"
 },


Мне нужны id постов с типом message. Получаю содержимое файла, конвертирую из JSON в объект, из которого дальше делаю выборку сообщений с нужным типом, затем перебор и запись в файл.
$j = Get-Content -Path "C:\temp\result.json" | ConvertFrom-Json
$j.messages | Where-Object {$_.type -eq 'message'} |
ForEach-Object {
  $_.id | Out-File -Append C:\temp\urls.txt
}

Поскольку код в канале обрабатывается некорректно, в примере только вывод ID постов, а код с выводом ссылок на посты на Pastebin.
✌️
источник
2020 December 18
Windows 10, etc - Вадим Стеркин
​​▶️ Новое в блоге: #PowerShell: как в #Windows10 быстро выявить дубликаты драйверов и удалить их

На ПК одного из коллег возникла острая необходимость высвободить как можно больше пространства на диске. Стандартные средства очистки и ручное удаление ненужного лишь незначительно улучшили ситуацию.

Я заинтересовался вопросом и применил свое руководство на практике. Помимо прочего мое внимание привлекло хранилище драйверов, занимающее 4GB. Сегодня я покажу, как автоматизировать анализ и очистку хранилища.

➡️ Читать в блоге: http://www.outsidethebox.ms/20667/
источник
2020 December 19
Windows 10, etc - Вадим Стеркин
⏰ На этой неделе инсайдерам доставили новую версию приложения "Будильники и Часы" 10.2012.18.0 с обновленным дизайном на основе WinUI 2.4 (обзор на Community).

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

Если вы пользуетесь приложением, поддержите баг-репорт - он в канале для гиков фидбэка 👍

Если... У меня ему нет применения в #Windows10, да и полноценная работа невозможна на устройствах без поддержки Modern Standby. Уведомление не сработает, если система уйдет в сон ⚡️

Для короткого таймера сгодится, но я привык делать это голосом на смартфоне. Да, Кортана умеет, но ей не пользуюсь даже с английским интерфейсом.

Время для трех городов есть в часах в трее, да и просто в пуске можно набрать. Для будильников и таймеров мне удобнее смартфон. А вам?

👍 - пользуюсь приложением в Windows
📱- есть же смартфон
⏰- только механика, только хардкор
источник
2020 December 22
Windows 10, etc - Вадим Стеркин
​​▶️ Маленькая функция #PowerShell для преобразования кодов ошибок в понятный текст

На форум пришел человек с проблемой установки MS Office MSI. Коллеги запросили лог и увидели там:
Note: 1: 2203 2: C:\Windows\Installer\inprogressinstallinfo.ipi 3: -2147287037
Такие коды с отрицательным значением попадаются в ошибках приложений, журналах событий, логах Windows Installer и т.п.

У меня в профиле PowerShell ($profile) давно лежала функция Convert-Error для преобразования кодов ошибок с помощью утилиты certutil, я рассказывал про нее в блоге.

После публикации первой версии этого поста Вадимс Поданс доставил, что в функции лишняя конвертация в шестнадцатеричное значение, поскольку это встроено в PowerShell. Оптимальный вариант:
Function Convert-Error
([int]$Err)
{certutil -error $Err}


Вызывается так:
Convert-Error -2147287037

Результат на картинке↓ Windows Installer ожидал наличия папки %windir%\Installer, но ее не оказалось. Особо талантливый пользователь удалил за ненадобностью 🙉 После создания папки Office установился.

Применение функции не ограничивается кодами с отрицательным значением, попробуйте:
Convert-Error 0x80070005
Convert-Error 5

(Для чисел до 9999 по умолчанию предполагается префикс 0х8007)

Мне также доставили, что можно обойтись без certutil:
$iErrorCode = -2147287037
(New-Object -TypeName System.ComponentModel.Win32Exception($iErrorCode)).Message


Однако certutil универсальнее, поскольку умеет обрабатывать ошибки из других библиотек, например, wininet.dll. Если очень хочется без certutil, у Поданса есть и такой скрипт, но это уже above my paygrade ✌️
источник
2020 December 23
Windows 10, etc - Вадим Стеркин
​​🔓 Сегодня в рубрике "Знаете ли вы?" временное отключение запросов UAC в предварительной версии Windows 7 (сборка 6608).

Напомню, что в Windows Vista все было жестко - если UAC включен, то запрос шел на каждое административное действие. Поэтому контроль учетных записей отключали практически все :)

В Windows 7 добавили два промежуточных уровня:
- автоматическое одобрение администраторам для элементов панели управления (значок с щитом)
- показ запроса UAC вне безопасного рабочего стола для слабых видеокарт

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

#Классика блога времен Windows 7 в тему: Так ли страшен контроль учетных записей?
✌️
источник
2020 December 25
Windows 10, etc - Вадим Стеркин
📊 Опрос: ваши впечатления от канала

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

👉 Пройдите опрос!
====
Кстати, возвращаясь к напечатанному. Анонсируя Microsoft Forms, я предложил вам самостоятельно выявить практические отличия от Google Forms. Создавая этот опрос, я отметил пару моментов.

1. В отличие от Microsoft, у Google есть валидация ответов. Например, для вопросов с множественным выбором (флажки) можно ограничить количество выбранных вариантов или наоборот потребовать выбора не менее N пунктов.

2. В отличие от Google, у Microsoft есть формат Likert, с помощью которого в рамках одного вопроса можно получить мнение по каждому его пункту. У меня - это вопрос про интерес к темам канала.
источник
2020 December 30
Windows 10, etc - Вадим Стеркин
Спасибо, что читаете мой канал 👍  С наступающим новым годом! 🎄 Продолжим в следующем году ✌️
источник
2021 January 08
Windows 10, etc - Вадим Стеркин
​​📊 Итоги опроса читателей канала

Перед новым годом я попросил вас пройти опрос. Откликнулись 200 человек, спасибо вам большое! Я прикрепил расклад по первым семи вопросам.

Отмечу несколько моментов, которые меня удивили в той или иной степени:

🔹 Практически всех устраивает не более одного поста в день. И меня тоже. Лучше меньше, да лучше!

🔹 Мнение автора вызывает интерес у 88%. Спасибо :) Это оказалась четвертая по величине категория после трех основных технических направлений.

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

🔹 Анонсы вебинаров и курсов интересны 21% и не вызывают отторжения еще у 32%. Про рекламу ожидаемо доставили негатив в свободной форме, но важно было увидеть срез по аудитории.

🔹 Вело 🚴‍♀️ внезапно хотят видеть в канале 24%, при этом отрицают менее 40%. Я так и не начал писать обещанный еще летом большой пост про электровелосипеды ⚡️ Возможно, подкину какие-то моменты в канал.

🔹 Треть респондентов готова поддержать меня ежемесячной подпиской на Patreon. Это очень приятно, спасибо! Вообще, идея не моя, но мне ее подкидывали в чате не раз. Я подумаю :)

Помимо этого, 25 человек в свободной форме написали, о чем хотели бы читать в канале, и что в нем надо улучшить. Опрос был анонимный, но я счел необходимым ответить вам. Тут все-таки не центр отзывов Windows :)

👉 Подробные ответы я вчера опубликовал в чате, первый пост треда здесь https://t.me/winsiders/688597  

✅ Основной вывод из отзывов я сделал такой: надо работать над тематическим и техническим балансом постов канала. Отдельным постом всем не угодишь, но мне вполне по силам чередовать трюки Windows и скрипты PowerShell с диагностикой, мнением и анонсами вебинаров, не сваливаясь в серии по одной теме.

Спасибо, что читаете мой канал ✌️
источник
2021 January 11
Windows 10, etc - Вадим Стеркин
​​⚙️ Новое в блоге: diskusage vs. dfp: анализ занятого места на диске из командной строки

В предновогодних инсайдерских сборках #Windows10 20277 и 21277 появилась консольная утилита diskusage для анализа дискового пространства. Сегодня я разберу некоторые нюансы работы новой утилиты и поделюсь с вами результатами ее испытаний в сравнении с утилитой dfp.

Предвосхищая вопрос, diskusage работает и в предыдущих версиях Windows 10, если перекинуть в них исполняемый файл и MUI-ресурсы.

➡️ Читать в блоге: https://www.outsidethebox.ms/20709/
источник
2021 January 13
Windows 10, etc - Вадим Стеркин
​​🧹 Как очистить историю в диалоговом окне Run (Выполнить)

Недавно я рассказывал, почему не сохраняется история в этом окне. А теперь почти обратная задача. Понятно, что решение легко нагугливается, но скорее всего поиск выведет на удаление MRU из реестра.

Все проще - щелкните правой кнопкой мыши в адресной строке проводника и удалите журнал ✌️
источник
Windows 10, etc - Вадим Стеркин
Windows Central подготовили замечательный материал про грядущие масштабные изменения дизайна Windows 10 под кодовым названием "Sun Valley", а мы перевели его для вас.

Например, нынешнее меню "Пуск" останется по умолчанию, но будет доработано, а вот вариант из Windows 10X так же, вероятно, будет, но уже опционально.

Короче говоря, читаем статью, ибо там крайне много интересных подробностей.
источник
2021 January 14
Windows 10, etc - Вадим Стеркин
​​🧹 Как быстро очистить историю списка переходов для конкретного приложения

Вопрос задали в чате @winsiders. Список переходов приложения отображается в:
- контекстном меню приложения на панели задач или в меню Пуск
- в результатах поиска меню Пуск (в правой панели)

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

1. Win+R - shell:Recent\AutomaticDestinations и отсортируйте файлы в папке по дате (новые сверху).
2. В списке переходов желаемого приложения удалите / открепите / закрепите любую запись.
3. Обновите папку из п. 1 (F5 в проводнике) и удалите самый новый файл.

Понятно, что очистить все списки можно путем удаления всех файлов в папке. Но можно просто выключить историю в Параметрах. #Классика блога в помощь: Почему не сохраняется история в списках переходов ✌️

👍 - о, что-то новенькое
👌 - я все это знаю
источник
2021 January 15
Windows 10, etc - Вадим Стеркин
😎 ОС и браузеры посетителей блога сейчас и 10 лет назад

В архивах блога я наткнулся на старую статистику посетителей по ОС и браузерам, закинул ее в чат, и меня тут же попросили доставить текущую. Your wish is my command :)

Прокомментирую картинку.

🔹 Декабрь 2010
Десять лет назад посетителей с мобильных ОС не набиралось и половины процента. Фактически все визиты были с десктопов, треть которых еще работала под управлением Windows XP.

В браузерах рулила Opera по давней привычке Рунета, а Chrome только набирал обороты.

🔹 Декабрь 2020
Сейчас треть визитов в блог уже с мобильных ОС, где ожидаемо рулит Android. В стане Windows каждый пятый посетитель еще сидит на Windows 7. Однако существенный процент устаревших ОС традиционно связан с тем, что люди приходят в блог с работы.

В браузерах на Windows давно доминирует Chrome, а Opera пока делит второе место - в силу все той же привычки или встроенного VPN?

Firefox потихоньку опускается на дно, а Яндекс все никак не войдет в тройку, несмотря на стратегию "в каждой дырке затычка" (она, очевидно, не действует на ЦА блога).

Edge пока плетется в хвосте. (Причем если смотреть по всем ОС, он уступает еще и Safari, который в свою очередь нагибает Firefox :) Старый Edge занимает меньше половины процента, т.е. 4% - это по сути Edge Chromium. Интересно будет посмотреть на его прогресс через пару лет.

Если вас интересуют еще какие-то нюансы, спрашивайте в чате 👌
источник
2021 January 18
Windows 10, etc - Вадим Стеркин
​​❄️ MVP - всё! ❄️

Действительно, хватит уже - все-таки 15 лет подряд. Надо дать дорогу молодым :) С тем же успехом выпилить могли и раньше. Ведь последние несколько лет мой вклад в сообщество был примерно на одном уровне.

Telegram и ВК - для них что-то с другой планеты, статьи в блоге я публикую нечасто, на принадлежащих Microsoft форумах не отвечаю, отзывами в Feedback Hub не заваливаю, видео новых сборок не делаю, хвалебные оды не пишу, зато критикую в Twitter и закрытом Yammer.

👉 В моей деятельности ничего не меняется. Награда Microsoft MVP / Windows Insider MVP всегда была следствием моего вклада в сообщество, а не причиной или мотивацией для этого вклада. Я продолжу вести канал Telegram / группу ВК / Twitter, писать в блог, отвечать на форуме и т.д.

Впрочем, я больше не буду писать за вас отзывы в Feedback Hub, что я иногда делал по мотивам обсуждений в чате. Это имело смысл, потому что баги и пожелания WI MVP обрабатываются в первую очередь и фактически сразу направляются в продуктовую группу. Но это тоже неточно, как-нибудь расскажу в чате :)

Что же касается дороги молодым, в октябре я номинировал в WI MVP Антона Капранова, лидера Community. И награда нашла героя, с чем я его и поздравляю!👍
источник
2021 January 19
Windows 10, etc - Вадим Стеркин
​​⚙️ Удаление всех точек восстановления кроме последней

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

Почему в Windows два различных варианта в разных местах - вопрос, на который ответа не знает никто, наверное :)

👉 Бонус. Если собираетесь зачистить системные файлы классикой нежели контролем памяти в Параметрах, сразу запускайте cleanmgr от имени администратора из поиска меню Пуск или диалога Win+R сочетанием Ctrl+Shift+Enter. Так не придется два раза сканировать пользовательские файлы ✌️
источник
2021 January 21
Windows 10, etc - Вадим Стеркин
🧹 cleanmgr против контроля памяти

После публикации поста об удалении точек восстановления читатель Антон спросил у меня в личке, что лучше использовать: классическую очистку диска или контроль памяти в параметрах. Отвечаю в канале.

✅ Регулярная очистка: контроль памяти
Утилиту cleanmgr можно запускать по расписанию, но настройка - морока в сравнении с простым списком вариантов в параметрах.

Функционально же контроль памяти зачищает то, что классике недоступно. Поэтому выбор очевиден. Я давным-давно настроил еженедельную очистку и забыл.

✅ Однократная очистка: без разницы (под администратором)
Если вы входите в систему с административной учетной записью, разницы практически нет. Есть лишь пара нюансов:
- в классике доступно удаление точек восстановления
- из классики убрали очистку папки Загрузки, добавленную в 1809

Из-под обычной учетной записи следует запускать cleanmgr от администратора (при наличии прав, конечно). Очистка в параметрах показывает администратору полный список, а пользователь с обычными правами не увидит системных пунктов и поднять права до админа не сможет.

В этом контексте интерфейс классической панели управления был более предсказуемым и последовательным нежели параметры #Windows10. Эту тему я уже поднимал в канале ✌️
источник
2021 January 22
Windows 10, etc - Вадим Стеркин
​​😎 Лекарство от голосовых сообщений в мессенджерах (Android)

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

С Tasker сходу слать отлуп не получилось, но быстро нашлось семейство приложений Autoresponder для Telegram, WhatsApp, etc https://play.google.com/store/apps/dev?id=7857280643314172854

Приложение дуплетом скрывает уведомление о войсе и шлет заготовленный текст в ответ. В недешевой Pro версии больше опций и интеграция с Tasker.

😠 Нет войсам!
🎤 Слушай, такое дело...
источник
2021 January 25
Windows 10, etc - Вадим Стеркин
🔒 Будут ли приходить новые сигнатуры защитника, если поставить Windows Update на паузу в #Windows10

Вопрос задали в чате, и никто сходу четко ответить не смог. Но это легко проверяется за день. Например, в #PowerShell:
Get-MpComputerStatus | select *sig*

Если лень проверять, через пару дней я опубликую ответ, а пока проверка знаний и обоснованных предположений :)
👍 Придут
👎 Не придут

Upd. Правильный ответ: придут. На момент публикации ответа расклад был 233/49, т.е. 83% ответили верно ✌️
источник
2021 January 26
Windows 10, etc - Вадим Стеркин
​​⏱Новое в блоге: Как выполнять команды и скрипты от имени системы (SYSTEM) средствами Windows

В комментариях предыдущей статьи про diskusage читатель задал вопрос↓ о папке C:\Windows\CSC, где хранится кэш автономных файлов. Очевидно, в его организации с проблемой сталкиваются регулярно, а для анализа приходится выключать ОС ;)

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

➡️ Читать в блоге: https://www.outsidethebox.ms/20806/
источник