Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами разбирали перезагрузку сервера из командной строки, в данной публикации я хочу вас научить обычной и удаленной перезагрузке компьютера средствами PowerShell, который прочно вошел в нашу жизнь. Уверен, что вы сами сможете определить себе сценарии, которые сможете использовать в своей практике.
Перезагрузка компьютера, это базовая процедура в операционной системе, и для большинства людей достаточно графического варианта, но бывают ситуации, что у вас может быть с помощью групповой политики убрана кнопка перезагрузки, или же вам нужно перезагрузить сразу пачку серверов, в таких ситуациях вас выручит PowerShell.
Открываем окно PowerShell в режиме администратора и знакомимся с командлетом Restart-Computer.Первое, что я вам советую сделать, это ознакомиться со справкой командлета, для этого введите:Как перепрограммировать свой мозг на успех — Доктор Максвелл. M — Психокибернетика
Get-Help Restart-Computer
Для того, чтобы была выполнена локальная перезагрузка компьютера, вам достаточно ввести данный командлет:
Restart-Computer
Как видим компьютер уходит в перезагрузку.
Так же можно использовать команду с добавлением ключа -ComputerName
Restart-Computer -ComputerName localhost
Тут так же будет выполнена перезагрузка компьютера, хочу отметить, что localhost означает локальный компьютер, но вам никто не мешает тут ввести и имя локального компьютера.
Удаленная перезагрузка компьютера
Как я и говорил ранее PowerShell, это прекрасный инструмент по удаленному управлению компьютерами, серверами и службами. Предположим, что у меня есть RDS ферма состоящая из 10 серверов с Windows Server 2019. Мне необходимо произвести обслуживание четырех серверов, для этого я перевожу их в режим стока (Drain Mode) чтобы отсечь новые подключения, и рассылаю уведомление сотрудникам, через msg, чтобы сотрудники перелогинились. После я начинаю обслуживать данные системы, когда я заканчиваю, то мне необходимо их перезагрузить. Для этого мы воспользуемся вот такой конструкцией:
Restart-Computer -ComputerName w10-cl02, w10-cl03 (w10-cl02, w10-cl03 имена удаленных компьютеров или серверов)
После выполнения команды компьютер уходит в перезагрузку, если этого не произошло, то вы с большой вероятностью получите ошибку:
Restart-Computer : Не удалось перезагрузить компьютер w10-cl02 со следующим сообщение об ошибке: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Restart-Computer -ComputerName w10-cl02, w10-cl03
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (w10-cl02:String) [Restart-Computer], InvalidOperationException
+ FullyQualifiedErrorId : RestartcomputerFailed,Microsoft.PowerShell.Commands.RestartComputerCommand
Restart-Computer : Не удалось перезагрузить компьютер w10-cl03 со следующим сообщение об ошибке: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Restart-Computer -ComputerName w10-cl02, w10-cl03
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (w10-cl03:String) [Restart-Computer], InvalidOperationException
+ FullyQualifiedErrorId : RestartcomputerFailed,Microsoft.PowerShell.Commands.RestartComputerCommand
Тут вся загвоздка в том, что за компьютерами остались активные сессии работающих пользователей, именно в интерактивном режиме. В таких случаях, если они не вышли и не реагируют на ваши сообщения, вы можете принудительно произвести перезагрузку компьютера с чистой совестью. Для этого можно использовать ключ -Force, в результате PowerShell конструкцию будет выглядеть таким образом:
Restart-Computer -ComputerName w10-cl02, w10-cl03 -Force
Как видим команда успешно отработала и была произведена перезагрузка компьютера.
Если вы хотите перезагрузить удаленный компьютер от имени определенного пользователя, то данный командлет вам это позволит сделать. Для этого введите:
Restart-Computer -ComputerName w10-cl02, w10-cl03 -Credential rootsem (Где root, это наименование домена, а sem, это логин пользователя)
В результате у вас появится окно для ввода пароля пользователя, указываем его и нажимаем «Ok». Кстати если на удаленном компьютере, который требуется перезагрузить, будет активная сессия пользователя в интерактивном режиме, то вам так же выскочит ошибка, что «компьютер используется другими пользователями» и вам нужно будет добавлять ключик -Force:
Restart-Computer -ComputerName w10-cl02, w10-cl03 -Credential rootsem -Force
В логах Windows на тех компьютерах, в журнале система, вы сможете обнаружить событие с кодом ID 1074(/kak-uznat-kto-perezagruzil-server-windows/), в котором вы увидите, кто перезагрузил систему:
Процесс C:Windowssystem32wbemwmiprvse.exe (W10-CL02) инициировал действие «Перезапустить» для компьютера W10-CL02 от имени пользователя ROOTsem по причине: Причина на перечислена
Код причины: 0x80070015 Тип выключения: Перезапустить
Предположим, что у вас есть список компьютеров, которые требуется удаленно перезагрузить. В такой ситуации сам Бог велел использовать PowerShell. Структура файла выглядит очень просто, обычный текстовый документ, формата txt. На каждой строке по одному имени компьютера, без запятых. Я положил его в корень диска C:.
Для того, чтобы прочитать данный файл есть командлет Get-Content и конструкция команды принимает вот такой вид:
Get-Content -Path C:computers.txt | Restart-Computer -Force
В итоге удаленная перезагрузка компьютера через PowerShell успешно отработала и все системы из файла обслужены.
Перезагрузка компьютера с задержкой по времени
Еще очень частая ситуация, это перезапуск компьютера, но через определенное время, предположим, через 60 секунд, чтобы какие-то другие вещи успели отработать, очень часто применяется в сценариях и скриптах. Для выполнения это задачи есть командлет Start-Sleep. Пишем команду:
Start-Sleep -Seconds 60; Restart-Computer -ComputerName w10-cl03 -Force
В ключе -Seconds вы задаете время в секундах.
так же у вас есть возможность определить механизм, который используется для аутентификации учетных данных пользователя. Этот параметр был введен в Windows PowerShell 3.0. Называется этот ключ -WsmanAuthentication. На выбор у вас будет пять вариантов: Basic, CredSSP, Default, Digest, Kerberos и Negotiate.
Аутентификация поставщика услуг безопасности учетных данных (CredSSP), при которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности на нескольких ресурсах, например для доступа к удаленному сетевому ресурсу. Этот механизм увеличивает риск безопасности при удаленной операции. Если удаленный компьютер скомпрометирован, переданные ему учетные данные можно использовать для управления сетевым сеансом.
В моем примере я буду использовать проверку подлинности Kerberos, напоминаю, что для этого у вас на удаленных компьютерах должна быть настроена служба WinRM и политика, определяющая с каких ip-адресов вы можете производить подключение к ней. В итоге команда принимает такой вид:
Restart-Computer -ComputerName w10-cl02, w10-cl03 -Force -WsmanAuthentication Kerberos
После ее выполнения удаленные компьютеры уходят в перезагрузку.
Более подробно про командлет Restart-Computer вы можете почитать по ссылке https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/restart-computer?view=powershell-6
Скрипт PowerShell для перезагрузки по расписанию
Предположим, что вам нужно перезагрузить компьютер по расписанию, это можно сделать и групповыми политиками, а так же и через задачу по расписанию, актуально для компьютеров не в домене. Вы в задаче подкладывает ваш скрипт PowerShell, чтобы выполнять его в нужное время, но с уведомлением человека. Ниже текст скрипта.
$wshell = New-Object -ComObject Wscript.Shell
$wshell.Popup(«Данный компьютер будет перезагружен»,10,»Сохраните свои данные»,0x0)
$wshell.Popup(«Перезагрузка будет через 30 секунд»,2,»Не забудьте сохранить данные»,0x0)
Restart-Computer -ComputerName w10-cl01
(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(2)
На этом у меня у меня все. Мы разобрали удаленную перезагрузка компьютера через PowerShell, разобрали работу со списками. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Популярные Похожие записи:
- Как массово поменять пароль локального администратора в домене
- Как узнать, нуждается ли удаленный сервер в перезагрузке
- Как вручную изменить сервер администрирования Kaspersky в агенте
Ошибка подключения к RDS: Logon to the database failed
Ошибка RDS: Cannot get role and feature data
Как вывести список установленных программ в Windows 11
5 Responses to Restart-Computer перезагрузка компьютера из PowerShell
Привет Иван.Когда я делаю обычную перезагрузку, то мой ноутбук уходит в чёрный экран и не возвращается Приходится принудительно его отключать-вынимать штекер из розетки. После этого включаю и ноутбук работает как ни в чём не бывало. Посоветуйте как наладить перезагрузку? Благодарю.
Иван Семин :
Добрый день! Я бы проверил состояние системы через команду sfc /scannow DISM /Online /Cleanup-Image /CheckHealth https://pyatilistnik.org/restart-computer/» target=»_blank»]pyatilistnik.org[/mask_link]
Создание и отладка выполняющегося кода с помощью Горячей перезагрузки в Visual Studio (C#, Visual Basic, C++)
Область применения:Visual Studio
Visual Studio для Mac
Visual Studio Code
Начиная с Visual Studio 2022, Горячая перезагрузки в Visual Studio работает как для управляемых приложений .NET, так и для собственных приложений C++. В зависимости от типа приложения, над которым вы работаете, цель Горячей перезагрузки заключается в том, чтобы максимально уменьшить количество перезапусков приложения после изменений. Это позволяет повысить продуктивность, уменьшить время, затрачиваемое на ожидание перестроения и перезапуска приложений, а также на возврат к точке в приложении, на которой вы ранее остановились, и т. д.
Это достигается за счет того, что вы можете изменить файлы кода приложения и немедленно применить изменения к выполняющемуся приложению, что также известно как Горячая перезагрузка. После применения изменений вы повторно исполняете код, выполнив действие в самом приложении (или с помощью определенного таймера и т. п.), а затем немедленно просматриваете изменения. При этом не нужно приостанавливать приложение с помощью точек останова.
Обновление выполняющегося кода с помощью Горячей перезагрузки
- Откройте проект, основанный на поддерживаемом типе приложения. Дополнительные сведения о .NET см. в статье Поддержка приложений .NET.
- Убедитесь, что отладка машинного кода отключена в параметрах отладчика или в профиле запуска отладки.
- Запустите приложение с подключенным отладчиком, используя клавишу F5 или CTRL+F5, если это сочетание клавиш поддерживается для вашего приложения.
- Откройте файл кода C#, C++ или Visual Basic с помощью кода, который может быть повторно выполнен с помощью пользовательского интерфейса запущенного приложения (например, код программной части для кнопки или команды viewmodel), или что-либо, что активируется по таймеру и изменяет код.
- Примените изменения кода с помощью кнопки Горячая перезагрузка или сочетания клавиши ALT+F10.
Поддерживаемые платформы приложений .NET и сценарии
- При использовании Visual Studio 2022 и запуске приложения с помощью отладчика базовый интерфейс Горячей перезагрузки работает с большинством типов приложений .NET и версий платформы. В частности, поддерживается платформа .NET, .NET Core и .NET 5+ (как для C#, так и для Visual Basic в соответствующих случаях). Среди поддерживаемых типов приложений: веб-приложения (изменения кода программной части), настольные, мобильные, облачные и другие типы проектов. В этом сценарии предполагается, что если вы используете отладчик, то вам будет доступна Горячая перезагрузка и вы можете ее попробовать!
- Если вы используете Visual Studio 2022, но не используете отладчик, например нажимаете сочетание клавиш CTRL+F5 для запуска приложения, Горячая перезагрузка доступна даже при нацеливании на большинство типов приложений .NET 6. Это означает, что приложения, не предназначенные для .NET 6 (.NET 5 или более поздней версии), не поддерживают сценарий без отладчика и должны использовать отладчик для получения поддержки Горячая перезагрузка.
- При использовании Visual Studio 2022 с приложением .NET 6 большинство сценариев поддерживаются. Это не ограничивается новой функцией «нет отладчика», упомянутой выше. Также поддерживаются другие новые возможности, такие как горячая перезагрузка проектов Blazor и, в более общем плане, изменение файлов Razor в любых приложениях ASP.NET Core и горячая перезагрузка CSS. Использование Visual Studio 2022 вместе с приложениями, предназначенными для .NET 6, обеспечивает наиболее эффективное использование Горячей перезагрузки.
В следующей таблице показано, какие типы приложений поддерживают Горячую перезагрузку .NET с подключенным отладчиком (клавиша F5) и без подключенного отладчика (CTRL+F5), а также требуется ли .NET 6 для минимальной поддержки (т. е. использования клавиши F5). Для поддержки CTRL+F5 всегда требуется .NET 6. Также показана минимальная версия Visual Studio, которая поддерживает эту функцию.
Код программной части ASP.NET | Нет | 16.11 | 17,0 |
ASP.NET Razor (Blazor Server и ASP.NET Core) | Да | 17,0 | 17,0 |
ASP.NET Razor (Blazor WASM) | Да | 17.1 | 17.0 |
WPF | Нет | 16.11 | 17,0 |
WinUI3 | Нет | 16.11 | — |
WinForms | Нет | 16.11 | 17,0 |
Консоль | Нет | 16.11 | 17,0 |
.NET MAUI (WinUI 3) | Да | 17.1 | — |
.NET MAUI (Android) | Да | 17.1 | — |
.NET MAUI (iOS) | Да | 17.1 | — |
Гибридное приложение Blazor .NET MAUI (WinUI 3) | Да | 17.1 | — |
Гибридное приложение Blazor .NET MAUI (Android) | Да | 17.1 | — |
Гибридное приложение Blazor .NET MAUI (iOS) | Да | 17.1 | — |
Типы изменений, которые можно выполнить с помощью Горячей перезагрузки, определяются средой выполнения, а не методом, использованным для запуска приложения (F5 или CTRL+F5).
В следующих разделах будут более подробно описана приведенная выше сводка.
Поддержка приложений С++
При использовании Visual Studio 2022 и запуске приложения с помощью отладчика можно выполнить горячую перезагрузку собственного приложения C++ при запуске в отладчике (F5) с помощью кнопки Горячая перезагрузка. Горячая перезагрузка также поддерживается для приложений, созданных с помощью проектов CMake и OpenFolder.
Этот интерфейс работает на основе собственного режима «Изменить и продолжить». Поддерживаемые изменения см. в статье Изменить и продолжить.
Visual Studio 2022 с приложением .NET при использовании отладчика
При использовании Visual Studio 2022 и запуске приложения с помощью отладчика Горячая перезагрузка работает с большинством платформ приложений, включая распространенные типы приложений, например Console, Windows Forms (WinForms), WPF, UWP, WinUI 3 (см. примечание), а также большинство типов веб-проектов ASP.NET (для изменений кода программной части), включая ASP.NET MVC, веб-API и даже старые проекты ASP.NET Web Forms. Это только примеры. Если вы используете .NET и управляемый отладчик Visual Studio, вы должны получить базовую поддержку Горячей перезагрузки. Это означает, что в этом сценарии отлично работают даже такие проекты, как функции Azure.
WinUI 3 по умолчанию использует отладку в смешанном режиме, которая не поддерживает Горячую перезагрузку. Это можно изменить в параметрах проекта, включив управляемый отладчик, который обеспечивает правильную работу Горячей перезагрузки. Для включения отладчика в проекте измените файл «launchSettings.json» и добавьте «nativeDebugging»: false после свойства commandName .
Приложения .NET MAUI поддерживаются начиная с Visual Studio 2022 версии 17.1 (предварительная версия 1).
Visual Studio 2022 с приложением .NET без отладчика
Горячая перезагрузка доступна без отладчика при нацеливании на большинство типов приложений .NET 6, включая такие типы проектов, как Console, WPF, Windows Forms (WinForms), ASP.NET Core MVC, веб-API и Blazor.
Эта функция предоставляется исключительно для .NET 6+. Приложения, не предназначенные для .NET 6 (.NET 5 или более ранних версий), не поддерживают сценарий «без отладчика» и должны использовать отладчик для получения доступа к Горячей перезагрузке.
Кроме того, имейте в виду, что не все типы проектов в настоящее время поддерживают сценарий «без отладчика». В частности:
- Приложения UWP не поддерживаются для Горячая перезагрузка без отладчика. Это предусмотрено специально, и добавление поддержки не планируется.
- Приложения Xamarin.Forms, предназначенные для iOS и Android, не поддерживают Горячая перезагрузка .NET (независимо от того, запускаете ли вы приложение с отладчиком или без нее), но будут продолжать поддерживать Горячая перезагрузка XAML.
- Приложения .NET MAUI поддерживаются только с отладчиком.
Visual Studio 2022 с приложением .NET 6
Если вы используете и Visual Studio 2022, и работаете с приложениями, нацеленными на .NET 6, вы получаете преимущества наиболее удобной и функциональной Горячей перезагрузки.
В этом сценарии поддерживаются:
- приложения Blazor (Server и WebAssembly (см. примечание));
- изменение файлов Razor в Blazor и в обычных веб-сайтах ASP.NET Core;
- Горячая перезагрузка CSS;
- поддержка Горячей перезагрузки при запуске приложений без отладчика (как описано выше).
Если вы будете нацеливать приложения на .NET 6, то будете получать улучшения в будущих обновлениях Visual Studio 2022, а также в основных выпусках .NET.
В первом выпуске Visual Studio 2022 (версия 17.0) не включена поддержка Горячей перезагрузки для приложений Blazor WebAssembly при использовании отладчика Visual Studio, но эта функция доступна начиная с версии 17.1. Воспользоваться функцией Горячей перезагрузки можно, если запустить приложение в Visual Studio без отладчика или обновить его до выпуска 17.1.
Поддерживаемые сценарии ASP.NET Core
Базовые функции Горячей перезагрузки поддерживается для многих сценариев ASP.NET. Самой распространенной функцией является возможность изменения кода программной части и других файлов классов .NET для большинства типов веб-приложений. Эта функция работает при использовании отладчика Visual Studio везде, где ранее был доступен режим «Изменить и продолжить». Более подробное руководство: Поддержка Горячей перезагрузки .NET для ASP.NET Core.
Для разработчиков ASP.NET Core, которые нацеливают приложения на .NET 6, существуют дополнительные возможности, недоступные для более ранних версий .NET. К этим возможностям относятся следующие:
- CSHTML. Редактирование файла Razor CSHTML поддерживает много типов изменений.
- Обновление браузера. Редактирование файла Razor автоматически обновляет изменения в веб-браузере при отладке. Ранее эта функция была доступна только при запуске приложения без отладчика.
- Горячая перезагрузка CSS. Теперь можно изменять CSS-файлы во время работы приложения, и изменения будут применяться к выполняющемуся приложению по мере ввода.
- Без отладчика. Вы получаете поддержку Горячей перезагрузки при использовании Visual Studio для запуска веб-приложения без отладчика (CTRL+F5).
Поддерживаемые изменения .NET
Интерфейс Горячая перезагрузка .NET работает на основе механизма «Изменить и продолжить» и Roslyn. В списке Поддерживаемые изменения перечислены типы изменений, которые в настоящее время поддерживаются Roslyn, и возможные будущие улучшения.
Неподдерживаемые сценарии .NET
- Приложения Xamarin. Forms не поддерживают Горячую перезагрузку .NET в сценариях iOS и Android. Предоставляется частичная поддержка Горячей перезагрузки при нацеливании на приложение UWP. Это предусмотрено специально, и какие-либо улучшения в этом отношении не планируются. (Примечание. Горячая перезагрузка XAML останется доступной и будет поддерживаться для клиентов Xamarin.Forms с последней версией пакета SDK.)
- Приложения .NET MAUI не поддерживаются до Visual Studio 2022 версии 17.1, предварительная версия 1. Начиная с версии 17.1 (предварительная версия 1) .NET MAUI поддерживается, но только с подключенным отладчиком.
- Приложения, созданные на языке F# или предназначенные для .NET Native, не поддерживают Горячая перезагрузка.
Если вы используете Visual Studio без отладчика. Горячая перезагрузка .NET работает только для приложений, нацеленных на .NET 6.
Кроме того, Горячая перезагрузка недоступны в некоторых конфигурациях проекта:
- Если вы используете отладчик Visual Studio для запуска приложения, но отключены Edit and Continue в параметрах, Горячая перезагрузка не поддерживается.
- Конфигурации выпусков или пользовательских сборок не поддерживаются. Проект должен использовать конфигурацию отладочной сборки.
- Некоторые оптимизации запуска и компиляции не поддерживаются в Горячей перезагрузке .NET. Например, если профиль отладки проекта настроен следующим образом, Горячая перезагрузка .NET не поддерживается:
- Для проекта включена обрезка. Например, если в файле проекта для профиля отладки для параметра PublishTrimmed задано значение true.
- Для проекта включена функция ReadyToRun. Например, если в файле проекта для профиля отладки для параметра PublishReadyToRun задано значение true.
Настройка Горячей перезагрузки
Для настройки Горячей перезагрузки можно выбрать Параметры в раскрывающемся списке Горячая перезагрузка.
Или откройте Инструменты>Параметры>Отладка>Горячая перезагрузка .NET/C++ .
Среди параметров Горячей загрузки есть следующие:
- Enable Hot Reload and Edit and Continue when debugging (Включить Горячую перезагрузку и режим «Изменить и продолжить» при отладке). Включает Горячую перезагрузку при запуске с подключенным отладчиком (F5).
- Enable Hot Reload when starting without debugging (Включить Горячую перезагрузку при запуске без отладки). Включает Горячую перезагрузку при запуске без подключенного отладчика (Ctrl+F5).
- Apply Hot Reload on File Save (Применить Горячую перезагрузку при сохранении файла). Применяет изменения кода при сохранении файла.
Вы также можете управлять доступностью Горячей перезагрузки .NET на уровне проекта, изменяя файл «launchSetting.json» своих проектов .NET 6 и задавая параметру hotReloadEnabled значение false .
Предупреждение
Если появится следующее диалоговое окно, то Горячей перезагрузке не удалось применить текущие изменения без перезапуска. Вы можете либо перестроить приложение и применить изменения (перезапустить приложение), либо продолжить редактирование. При перестроении состояние приложения теряется. Если вы продолжите редактирование, возможно, что дополнительные изменения или исправления могут привести к повторной работе Горячая перезагрузка.
Если вы выберете в диалоговом окне параметр Always rebuild (Всегда перестраивать), в текущем сеансе Visual Studio будет автоматически выполнять перестроение и перезагрузку без отображения диалогового окна.
В первом выпуске Visual Studio (версия 17.0) диалоговое окно «Изменить и продолжить» все еще отображается при использовании Горячей перезагрузки с отладчиком. Эта ошибка была исправлена начиная со второй предварительной версии выпуска 17.1.
Устранение неполадок
Для ASP.NET Core, если вы используете сжатие ответов, см. сведения о сжатии ответов в dotnet watch .
Источник: learn.microsoft.com
Горячая перезагрузка .NET: новая возможность для редактирования кода во время выполнения приложений
Сегодня мы с радостью представляем возможность «горячей перезагрузки» для .NET, которая уже доступна в Visual Studio 2019 16.11 (предварительная версия 1), а также в .NET 6 (предварительная версия 4) через инструмент командной строки dotnet watch. В этой статье мы расскажем, что такое горячая перезагрузка .NET, как приступить к ее использованию, как мы планируем развивать эту возможность в будущем, а также какие виды правок кода и языки поддерживаются на данный момент.
Что такое «горячая перезагрузка .NET»?
Горячая перезагрузка позволяет вносить изменения в исходный код приложения во время его выполнения без необходимости приостанавливать его вручную или создавать точку останова. Теперь прямо во время работы приложения можно внести в код изменение из числа тех, что поддерживаются для горячей перезагрузки, нажать кнопку «Применить изменения кода» в новом интерфейсе Visual Studio — и изменение будет сразу же применено.
Горячая перезагрузка работает со множеством старых и новых типов проектов, включая WPF, Windows Forms, предварительные версии .NET MAUI, проекты кода программной части приложений ASP.NET Core, проекты консольных приложений, WinUI 3 (требуется управляемый отладчик) и многие другие. В сущности, новая возможность работает с любыми проектами на базе среды выполнения .NET Framework или CoreCLR.