Корпорация Microsoft сделала интересное завяление — VBScript уберут из ОС Windows. Речь, конечно, о поддержке сценариев VBScript. Почему скриптовый язык программирования потерял актуальной для корпорации? Подробности — под катом.
Что действительно происходит?
Редмондская корпорация действительно заявила о том, что в новых актуальных версиях операционной системы Windows уже не будет поддержки фирменной операционной системы Windows. Правда, отключат ее не сразу, отказ будет происходить постепенно, чтобы
Кроме того, у некоторых компаний до сих пор в ходу некоторые сценарии, написанные на VBScript, поэтому им тоже нужно найти замену, перейдя на более современные и эффективные инструменты.
Произойдет все достаточно скоро — как только выйдет крупное обновление функциональности Windows 11 (24H2), релиз которого намечен на III-IV квартал 2024 г., ряд компонентов, которые предназначены для поддержки скриптового языка, окажутся переведены в категорию «функций по запросу» (Features on Demand; FOD).
В FOD, к слову, входят некоторые дополнительные компоненты операционной системы, включая .NET Framework (.NetFx3), Hyper-V и WSL. Их, при необходимости, можно установить дополнительно. На первом этапе VBScript останется дефолтным элементом системы.
Но все это прекратится уже в ходе второго этапа, когда VBScript перестанет автоматически устанавливаться вместе с Windows. При желании его можно будет вернуть в качестве FOD-компонента. Эта возможность продумана для тех пользователей, кому скриптовый язык все же нужен — а таких немало. Пока что беспокоиться не о чем, реализация второго этапа намечена на 2027 года.
Есть еще и третий этап, когда корпорация полностью откажется от поддержки VBScript, и скриптовый язык программирования уйдет из Windows, забрав с собой ряд компонентов. К сожалению, корпорация Microsoft не заявляет о сроках реализации третьего этапа, поскольку, видимо, представители компании и сами этого не знают.
Почему Microsoft так поступает?
Дело в том, что популярность скриптового языка постепенно падает, поскольку в мире появляются более современные инструменты, которые действуют более эффективно.
Кроме того, VBScript, как и VBA (Visual Basic for Applications), активно применяются киберпреступниками, начиная еще с 90-х годов прошлого века. Правда, об этом корпорация ничего в своем заявлении не сообщает.
В качестве одного из наиболее показательных примеров можно привести нашумевший в свое время зловред ILOVEYOU. На данный момент ему исполнилось уже почти четверть века, а изначально он был написан как раз на VBS. Распространялся он достаточно просто — пользователю, чаще всего, приходило электронное письмо с темой ILOVEYOU.
Человек, который открывал письмо, видел, что отправитель — кто--то из знакомых или коллег (так оно было), поэтому без особых сомнений открывал сообщение. Стоило только кликнуть по вложенному файлу с именем «LOVE-LETTER-FOR-YOU.TXT.VBS», и оказывалось, что документы на жестком диске испорчены, а пользователь теперь становился новым отправителем вируса по всему контакт-листу знакомых в адресной книге Outlook.
Кстати, расширение файла не отображалось, ну а сам значок скрипта могли распознать далеко не все пользователи. Скорее, иконка в виде свитка стимулировала человека нажать на нее — и попасться на крючок.
Основная идея вируса — использование простейшей программы, котрая запускает макросы — относительно простые программы, которые дают возможнсть актуализировать определенные действия.
Чаще всего макросы использовались для работы в Microsoft Excel, есть они и в ворде, их применяли для автоматической генерации отчетов на основе данных, введенных в форму автоматической генерации отчетов на основе данных, введенных в форму.
Что касается червя, то он могут распространяться и через мессенджер IRC (если тот был установлен на компьютере). Кроме того, червь загружал троянскую программу, которая отправляла создателю вируса пароли к почте и для доступа в Интернет. Хуже всего то, что он удалял, скрывал или портил файлы на жестком диске: музыку в формате MP3, изображения в формате JPEG, а также разнообразные скрипты или копии веб-страниц.
Вирус поразил огромное количество компьютеров по всему миру. Корпорация Microsoft тогда, 24 года назад, быстро выпустила обновление безопасности для почтового клиента Outlook, в котором наконец-то были введены серьезные ограничения на запуск скриптов. Например, для подтверждения действий скрипта пользователю нужно было отреагировать.
Использовался VBScript и в наши дни, все с той же целью — реализация кибератак. Например, в 2024 году ботнет Emolet заразил немало компьютеров. В ходе атаки написанный на VBScript вредонос рассылался по электронной почте под видом форм отчетности W-9, якобы отправленных Налоговым управлением США, – в составе файлов Microsoft OneNote. Понятно, что многие доверчивые пользователи открывали сообщения — и им приходилось платить.
В целом, сейчас VBScript оказался мало кому нужен в среде WIndows, поэтому компания Microsoft, стремясь сэкономить ресурсы на поддержку технологии, предпочла от нее отказаться. Поддерживаете ли вы это решение? Расскажите в комментариях.
Читайте также
Комментарии (51)
Grigory_Otrepyev
25.05.2024 08:03+4Чаще всего макросы использовались для работы в Microsoft Excel, есть они и в ворде, их применяли для автоматической генерации отчетов на основе данных, введенных в форму автоматической генерации отчетов на основе данных, введенных в форму.
Кого опять нанял селектел писать от имени переходящей учетки ? макросы -
Чтобы сэкономить время при выполнении часто повторяющихся задач, объедините несколько действий в макрос. Сначала необходимо записать макрос. Затем вы сможете запускать его нажатием кнопки на панели быстрого доступа или с помощью сочетания клавиш. Способ запуска зависит от того, как вы настроите макрос.
это только первый шаг к своим скриптам в VBA
В целом, сейчас VBScript оказался мало кому нужен в среде WIndows, поэтому компания Microsoft, стремясь сэкономить ресурсы на поддержку технологии, предпочла от нее отказаться.
Как бы так сказать, что обьявлен переход на питон в офисе
а повершелл существует уже лет 20.
hurtavy
25.05.2024 08:03+2да вообще бред написан. Микрософт ничего не говорит про выпиливание VBScript из офиса, только то, что vbs перестанут выполняться в системе
Grigory_Otrepyev
25.05.2024 08:03да там и правда все прекрасно, в том числе вспомнила бабка
Что касается червя, то он могут распространяться и через мессенджер IRC (если тот был установлен на компьютере). Кроме того, червь загружал троянскую программу, которая отправляла создателю вируса пароли к почте и для доступа в Интернет.
Revertis
25.05.2024 08:03+8Да, перевод отвратительный, тысяча ошибок. Какой нейросеткой переводили хоть?
slepmog
25.05.2024 08:03+2
bodyawm
25.05.2024 08:03Интересно, выкинут всю подсистему wscript?
У wscript есть оченб приятная фишка: возможность встроить интерпретатор любого из двух языков в любую программу с поддержкой COM
Wohlstand
25.05.2024 08:03Видал я ещё в детстве о том, что VBS-скрипты существуют, НО, за всё время до недавних пор я ни разу не видел, чтобы кто-то использовал эти скрипты как-то по настоящему (единственный человек, который их по настоящему использует, это один товарищ из Сургута, и чую он явно не обрадуется тому, что ему придётся учить новые языки программирования, я ему уже сразу советовал, пусть учит хотя бы Питон для начала). Я лично использовал для скриптов-самопалов суровый челябинский BAT, который сильно слабее по функционалу, но VBScript не гонял. А скрипты на VBScript видал лишь в вирусах, какие прилетали либо в письмах, либо на сайтах, которые целились на уязвимый Internet Explorer (другие браузеры чхать хотели на VBScript).
Grigory_Otrepyev
25.05.2024 08:03скрипты на VBScript видал лишь в вирусах, какие прилетали либо в письмах, либо на сайтах, которые целились на уязвимый Internet Explorer (другие браузеры чхать хотели на VBScript).
Active Scripting (formerly known as ActiveX Scripting) это немного не VBS
Активно используют VBA, кто с экселем \ данными работает.
Wohlstand
25.05.2024 08:03+1VBA я хорошо знаю, использовал через M$-Access для курсача в универе и на временной подработке после универа, пилил там базу данных заказчику с кучей логики разной. Если VBA, то тогда заражённые документы для Word и Excel, а VBS это когда сами скрипты втыкались под видом каких либо плюшек, я видал и те и те. Я ещё видал письмо с VBS-скриптом внутри GZ-сжатого архива.
Я помню, что видел в коде одного зловреда `script lang="VBScript"`, но я не знал, что это называется как "ActiveX Scripting". Под именем ActiveX я лишь помню двоичные плагины к "Ослу", и либо это был Flash, либо плагины-костыли для старых камер видеонаблюдения (сейчас такие плагины совсем не нужны, благодаря WebAssembly и WebRTC, на работе разрабатываю системщину для камер видеонаблюдения и понимаю эту кухню).
Sheti
25.05.2024 08:03+1Я использовал VBS в групповых политиках домена во времена WinXP. Тогда нельзя было в правилах прописать подключение сетевых дисков, делалось у меня через скрипт.
Wohlstand
25.05.2024 08:03Интересненько, и, кажется я кое-что вспомнил, что в универе я откопал подобный скрипт на сетевом дискес той же ролью работы из под групповом политики в Active Directory и себе скопировал, но так и не удосужился его изучить.
uneasy
25.05.2024 08:03Ха! А я и не знал про эту фишку, как привык в нулевых делать через скрипт, так и продолжаю :) Пойду добавлю политику.
helmm
25.05.2024 08:03+1популярность скриптового языка постепенно падает, поскольку в мире
появляются более современные инструменты, которые действуют более
эффективноКакие например?
Джинса какая-то.
ptr128
25.05.2024 08:03+1Если тоже самое, но простыми словами, то VBScript в будущем не будет автоматически регистрироваться в Windows Scripting Host (WSH), что совершенно не запрещает зарегистрировать его там самостоятельно.
Но так как многие приложения пользуются не WSH, а собственным встроенным интерпретатором, например, VBA, то для них ничего не изменится.
APh
25.05.2024 08:03Краткий пересказ, кто не читал:
Если не изучал использование компа, то вирус к тебе придёт, как бы файл ни назывался.
KEugene
25.05.2024 08:03... их применяли для автоматической генерации отчетов на основе данных, введенных в форму автоматической генерации отчетов на основе данных, введенных в форму.
Рекурсия какая-то...
KEugene
25.05.2024 08:03Вот, кстати, на днях впервые использовал python в Экселе. Надо было посчитать количество слов в строке. Я не нашел, как это сделать штатными средствами. Зато легко получилось с помощью функции в ячейке, написанной на питоне. Две строчки и готово. Мне очень понравилось. Хоть это и не предназначено для масштабных вычислений. Расчеты идут где-то в облаке и ячейке на пересчет нужна пара секунд. К счастью, мои два десятка строк обрабатывались параллельно. Если vba будет заменен на питон, то я это, скорее, буду приветствовать.
Merzavets
25.05.2024 08:03Интересно! Подскажите, где подробнее почитать об интеграции Питона и Эксела? Это становится всё актуальнее с возможным отказом от любимого (без сарказма) MSOffice, чтобы начинать что-то переносимое между пакетами разных производителей делать.
KEugene
25.05.2024 08:03+1Честно говоря, тут ничего сложного нет. Тот же Гугл на первой странице выдает все, что есть. Например, это Introduction to Python in Excel от Microsoft
Вот так это выглядит у меня в книге:
На компьютере Анаконда не установлена, но пришлось где-то (я не помню точно), увязать аккаунт Анаконды и MS.
NAS
25.05.2024 08:03Можно и формулой
=ЕСЛИ(ЕПУСТО(A1);0;ДЛСТР(СЖПРОБЕЛЫ(A1))-ДЛСТР(ПОДСТАВИТЬ(A1;" ";""))+1)
IvanSTV
25.05.2024 08:03Надо было посчитать количество слов в строке.
на VBA это делается не сильно сложной.
Option Explicit Function WordsCount(ByVal Src As String) Dim i As Long, count1 As Long, temp As String count1 = 0 For i = 1 To Len(Src) temp = Mid(Src, i, 2) If Right(temp, 1) <> Chr(32) And Left(temp, 1) = Chr(32) Then count1 = count1 + 1 Next i WordsCount = count1 End Function
saboteur_kiev
25.05.2024 08:03vbscript и vba это же разные вещи?
KEugene
25.05.2024 08:03Я бы не хотел поднимать полемику, но на мой взгляд, почти одно и то же. Синтаксис одинаковый, объектная модель та же. Я бы сказал, что VBA - это урезанная в плане объектов версия vbs. Ну, плюс хороший IDE.
mumamum
25.05.2024 08:03Строго говоря, совершенно всё равно какой бы скрипт использовался бы внутри Windows.
А причина существования именно VBScript связана с создателем фирмы. Слышал версию, что Basic - это большая любовь основателя фирмы, Билла Гейтса, который даже бейджик носил "Программист на Бейсике". Да и самый первый значимый для фирмы Microsoft коммерчески успешный был именно Бейсиком. Затем классический Basic переродился в VisualBasic, затем в VBScript.
Но Билла Гейтса уже много лет как нет в руководстве компании.
ExTalosDx
25.05.2024 08:03статья похожа на новость, т.к ничего полезного из неё не извлёк, всё довольно очевидно. Ожидал что будут рассмотрены альтернативные решения vb скриптам, но такого не было.
В общем-то выглядит, как фарм плюсов.
wmlab
25.05.2024 08:03+1Я благодаря VBS нашел работу. Меня наняли сначала как контрактора (contact-to-hire) переводить зоопарк десктопных VBS на PowerShell. Середина 2010-х. Оказалось, что эта компания была вендором крупной нефтяной компании и этих VBS было как грязи на все случаи жизни и все окружения. Так что остался там на несколько лет уже под другие проекты. VBS, я тебя люблю!
Dragokas
25.05.2024 08:03С ILoveYou рассмешили. Открою страшную тайну: а знаете сколько вирусов распространяются в формате PE EXE? Аяяяй, а давайте его выпилим? Ибо, совсем не сейфово :) Да, и макросы в офисе под нож, ибо нормальные люди идут изучать Python в скиллбокс. А эти все ваши VBA, кому они нужны xD
galapagos
25.05.2024 08:03Как бывший специалист в сфере пекеджинга / развертывания приложений в корпоративной среде скажу свое слово.
Корпоративные системы развертывания приложений необходимы для автоматизации установки / применения кастомных настроек рабочей среды / лицензий и так далее.
То есть вот человек приходит в офис, втыкает в ноутбук флешку, вводит корпоративные креденшилы и уходит на кухню. В это время на нем устанавливается винда, все нужные для него приложения (часто специфические) с корпоративными настройками, включая даже фон рабочего стола. Системный администратор который бы это сделал за день, возможно, пропуская что-то или ошибаясь, не нужен.
В дальнейшем все апдейты приложений прилетают тоже централизовано.
У Microsoft есть система SCCM, лучшая среди унивесальных.
Так вот, множество кастомных "допилов" испокон веков делались в vbscript, и передавались от версии к версии. Конечно, теперь есть powershell, но такой апдейт сильно повлияет на переход корпоративщиков к Windows 11. Будут сидеть до последнего. Пока все не перепишут.
Grigory_Otrepyev
Это как ?
ABy
Ну вот раньше в windows было 98% windows, а сейчас только 10-11
и нечего,
Aggle
Это возврат к истокам. Было время, когда всего 3% с небольшим было и ничего, пользовались.
QtRoS
Тоже сломался на этой строчке...
hurtavy
/
vagon333
А я сломался на фразе:
NeoNN
WSL допилят до логического конца, коим будет превращение винды в Линукс от Майкрософта, ну а для игрушек останется режим совместимости со старым Виндоус
saboteur_kiev
Просто уже есть WSL2, поэтому первый не нужен. Но многие успели сделать на нем определенные решения и не готовы резко спрыгнуть.
Превращение Винды в Линукс вряд ли возможен.
Но в Линуксе изначально поддерживались контейнеры, что оказалось офигеть как удобным в наш мир докеров и кубернетисов, а в винду это портировать нативным образом не представляется возможным из-за большой разницы в архитектуре ядра.
Вместо VBScript есть множество решений, включая тот же встроенный повершелл. Или просто ставишь питон/перл/JS/bash и понеслась. Просто у всех этих питонов, JS и так далее есть фатальный недостаток - МС ими не владеет. Поэтому основной заменой предлагаться будет powershell или JS, который слишком уж распространен, вдобавок после nodejs никто не мешает свой интерпретатор для бэкенда сделать
mvv-rus
Все немного не так. То есть - совсем не так.
Первый - сильно легче. Потому что он - это подсистема. Примерно такая же, как Win32: Win32API ведь не является родным API Windows (современной, ведущей свое происхождение от Windows NT) , то есть интерфейс ядра имеет совсем другой набор функций (т.н. Native API). Эта концепция подсистем со своими API была заложена изначально в проект Windows NT. Но с концепция подсистем работает только в пользовательском пространстве и не совместима с приложениями, тесно связанными с ядром - вот и появился WSL2, который основан уже на виртуальной машине.
Виртуализация приложений в Windows существует примерно с тех же пор, что и в Linux. В частности, современная WIndows без виртуализации пространства имен работать просто не может: изначально в Windows NT не было сессий со своим виртуальным пространством имен системных объектов (они появились в AFAIK уже в WinNT 4.0 TSE, для потребностей многопользовательского терминального доступа), а в сколько нибудь современных версиях Windows (начиная с Vista) сессии не просто есть, а необходимы: сервисы ОС и программы пользователей (даже локально зарегистрированных с клавиатуры/монитора) выполняются в разных сессиях. А сессии как раз основаны на виртуализации пространства имен ОС - не только объектов файловых систем, а вообще всех именованых объектов. А в терминальных решениях от той же CItrix виртуализация приложений использовалась еще шире. Да и сейчас в версии Docker, адаптированной для Windows, есть поддержка Windows-специфических контейнеров. Другое дело, что MS решила не переносить управляющие компоненты Docker под Win32 а предпочла запускать их через WSL2, видимо, решив, что переносить не выгодно (да и не соответсвует стратегии MS по переводу своего бизнеса в облака), но технически это можно было бы сделать.
Что ещё интереснее, в Windows параллельно с VBScript и примерно на тех же правах всегда существовала и версия JavaScript - по крайней мере, я не помню версию Windows Scripting Host, (WSH) в которой его не было. И вообще, WSH был штукой изначально расширяемой - например, кто-то когда-то сделал под него версию Perl - ибо WSH был основан на стандартном API COM (так же, как, к примеру, Powershell основан на стандартном API .NET CLR, под который можно и другие языки перенести - и, по крайней мере, Python, работающий с CLR, точно есть).
saboteur_kiev
Да, собственно про это MS и пишет, когда упоминает JS, что он давно поддерживается.
Что касается контейнеров и так далее, мне кажется что большую роль в этом сыграл сетевой стек, который у Linux гораздо понятнее, и лучше проработан.
IMHO создать аналог кубернетеса на чистых виндовых контейнерах будет очень сложно, а докер не в последнюю очередь взлетел из-за оркестраторов типа кубера/опенщифта и попроще (докерсвармы и что там еще есть).
mvv-rus
По правде говоря, тот JS, который был в WSH вместе VBScript и современный JS, который, к примеру, в браузерах - это небо и земля. Я где-то год назад освежал свои знания по JS и этому поразился.
Вопрос спорный. Вообще-то сетевой стек там идет от одного и того же корня - Berkley Sockets. У Windows там ищначально было преимущество в поддержке асинхроннности (ибо в кооперативно-многозадачной Windows for WorkGroups 3.11 без этого было нельзя). Ну а в NT (и выросшейей из нее современной Windows) архитектура ввода/вывода изначально была асинхронной, а потому костыли типа epoll или WSA-функций из WfWG там изначально не требовались. Но, к примеру, Netfilter, таки да, в Linux появился на несколько лет раньше, чем его аналог в Windows - Windows Filtering Platform в Vista/Server 2K8. Насчет виртуализации сетевого стека для приложений, когда она появилась - не скажу, для пользовательских приложений она была без надобности. В современных Windows Container она есть, AFAIK - на базе связки виртуального коммутатора HyperV и WFP, я эту связку я по Server 2012 ещё помню, а когда появилась - не выяснял, может ещё и в Server2K8 R2.
Дело тут IMHO в другом: в стратегическом решении MS отказаться от развития Windows Server как универсальной платформы для приложений "на земле", без Azure, вне зависимости от его технических достоинств - потому что это не соответствовало базовой стратегии преобразования в облачную компанию (где по оценке менеджмента бабла можно поднимать больше). В результате имеем, к примеру, что в ASP.NET Core мультиплатформеннный стек на Kestrel оптимизирован куда лучше, чем базирующийся на уникальной для Windows функциональности драйвера режима ядра протокола HTTP и связанных с ним очередей (банально, к примеру, нет такого кэширования и пула контекстов обработки (это чисто внутренняя штука, не HttContext известый пользователям фреймворка), как для Kestrel - ну, а без пула и кэша в .NET плохо - GC сильно напрягается).
PS Kubernets в Windows Server в варианте работы с Windows Container таки есть, но слово Azure в названии там намекает, что это нам объедки с барского стола после облаков кинули. Насколько ему нужен WSL2 - не разбирался.
moroz69off
... придётся те же зловреды лопатами разгребать.
Frosst
Лучше об этом не думать. Обычный человек не сможет этого понять.
georgiy08
Также, как и
Почему скриптовый язык программирования потерял актуальной для корпорации