Вимкніть попередження безпеки Visual Studio Приєднайте попередження безпеки під час налагодження IIS


160

Під час використання Visual Studio 2008 або 2010 кожного разу, коли ви приєднуєтесь до IIS w3wp.exe, ви отримуєте попередження про додавання безпеки,

Як ви це перетворюєте?

Було б чудово також знати, як тримати його за припіканням, оскільки це, здається, закінчиться через деякий час.

Btw: Я додав це як коментар до відповіді нижче, перше, що я зробив, було спробувати статтю msdn http://msdn.microsoft.com/en-us/library/ms241736.aspx, але це не працює.


1
Це працювало до недавнього часу в VS2015 - у мене, безумовно, всі екземпляри VS закриті, і ключ встановлений, але попередження почало з’являтися знову.
швидке множення

Відповіді:


231

Ви також знайдете у статті, згаданій Цурі, але підсумуйте відповіді в цій темі:

переконайтеся, що Visual Studio не працює при зміні ключа реєстру, або він буде виписаний при виході зі старим значенням

Змініть (або створіть) наступний ключ реєстру на 1 :

Visual Studio 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning

Візуальна студія 2015 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger\DisableAttachSecurityWarning

Для VS2015 вам може знадобитися створити ключ реєстру, на який посилалося вище.

  1. Переконайтесь, що Visual Studio не працює, і відкрийте Редактор реєстру.
  2. Перейдіть до HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger, клацніть правою кнопкою миші та створіть нове DWORD:
    • Ім'я: DisableAttachSecurityWarning
    • Значення: 1.

Оновлення: Якщо ви не хочете відкривати regedit, збережіть цю суть як * .reg файл і запустіть його (імпортуйте ключі для всіх версій VS, ніж VS2017).

Візуальна студія 2017

Конфігурація зберігається в приватному реєстрі, дивіться цю відповідь: https://stackoverflow.com/a/41122603/67910

Для VS 2017 збережіть цей суть як файл * .ps1 та запустіть його як адміністратор або скопіюйте та вставте наступний код у файл ps1:

#IMPORTANT: Must be run as admin

dir $env:LOCALAPPDATA\Microsoft\VisualStudio\15.* | % {
    #https://stackoverflow.com/a/41122603
    New-PSDrive HKU Registry HKEY_USERS

    reg load 'HKU\VS2017PrivateRegistry\' $_\privateregistry.bin

    $BasePath='HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio'

    $keysResult=dir $BasePath
    $keysResult | ? {$_.Name -match '\\\d+\.\d+_[^_]+$'} | % {
        $keyName = $_.Name -replace 'HKEY_USERS','HKU:'
        New-ItemProperty -Path $keyName\Debugger -Name DisableAttachSecurityWarning -Value 1
    }
    $keysResult.Handle.Close()    

    [gc]::collect()

    reg unload 'HKU\VS2017PrivateRegistry'

    Remove-PSDrive HKU
}

10
Для VS2012 ключем є HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ Debugger \ DisableAttachSecurityWarning
maddoxej

17
@ImranRizvi вам потрібно переконатися, що він не працює під час зміни реєстру все одно, інакше він буде просто переписаний при виході зі старим значенням
Wiebe Tijsma

4
як щодо VS 2017? Клавіша налагодження взагалі відсутня (більшість з них відсутня)
Adaptabi

4
Схоже, Visual Studio 2017 зберігає локальний реєстр, тому вам доведеться змінити цей файл, а не глобальний реєстр. Я вирішив проблему з додаванням попередження про безпеку лише під час редагування цього локального файлу реєстру. Прочитайте цю відповідь для більш докладного пояснення: stackoverflow.com/a/41122603/692665
Ceridan

1
@TravisK, в основному у вас немає цієї клавіші за замовчуванням, і ця ситуація дорівнює тому, що цей ключ зі значенням дорівнює нулю. У вашому випадку слід вручну додати новий DWORD за допомогою ключа DisableAttachSecurityWarning та Value дорівнює 1 до розділу «Відладчик». Коли ви закінчите, просто вивантажте приватний реєстр і тепер ви можете запустити MSVS і протестувати його.
Черидан

13

Налаштування реєстру працює; однак вам потрібно переконатися, що ви встановили його в 32-розрядної пісочниці реєстру для VS2005 / 2008, використовуючи 32-бітний regedit.exe %windir%\SysWOW64\або додавши його під HKLM\Software\Wow6432Node\.... Я створив .reg скрипт, який просто додає його обом:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

Просто змініть версію на 8.0 для 2005 року, 10.0 для 2010 року тощо.

ПРИМІТКА: regedit в Windows 7, схоже, хоче .reg файли збережені як UTF16-LE, тому, якщо ви збережете його у .reg файл, пам’ятайте, що вам потрібно це зробити.


8

Мені вдалося змусити його працювати в ОС Windows 7. Я вперше змінив значення реєстру, коли VS2008 ще відкрився. Потім я закрив його і оновив редактор реєстру і помітив, що значення було скинуто на 0. Потім я змінив його на 1 і запустив VS2008. Зараз це прекрасно працює. Я спробував закрити VS2008 і відкрити його назад, а значення реєстру залишається 1. Дякую за допомогу


7

Інші відповіді в цьому дописі містять правильну інформацію, але у мене виникли проблеми з його роботою, тому це спроба зробити відповідь дуже явною. Ці інструкції працювали для Visual Studio 2010, що працює на Windows 7 Ultimate 64-bit.

  • Переконайтесь, що жодні екземпляри Visual Studio не запущені (Використовуйте диспетчер завдань, щоб перевірити наявність devenv.exe )
  • Додайте значення реєстру DWORD DisableAttachSecurityWarning в HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger та встановіть значення на 1 . Для Visual Studio 2008 замініть XX на 9.0 , для 2010 року використовуйте 10.0

Причиною, чому я намагався це зробити, було те, що я намагався це використовувати за допомогою HKEY_LOCAL_MACHINE замість HKEY_CURRENT_USER. Мені довелося скористатися процесорним монітором і трохи фільтрувати девенв, щоб визначити свою помилку. Я підозрюю, що значення HKLM впливає лише на те, якщо воно встановлюється перед першим відкриттям Visual Studio.

Будь-які відкриті екземпляри Visual Studio замінять ваші зміни, коли вони закриті, і лише нові екземпляри в будь-якому випадку вибирають налаштування.

Наскільки я можу сказати, використання реєстру Wow6432Node видається непотрібним. Наступні команди Powershell застосовуватимуть кроки для Visual Studio 2010.

Get-Process -Name devenv* | ForEach-Object { Stop-Process $_.Id }
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VisualStudio\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force

6

Ви можете змінити ідентифікацію iis AppPool на свого фактичного користувача Windows, якщо це локальна машина.


1
Мене нещодавно вкусила ця "особливість", якої я раніше не бачив, коли ваша відповідь дала мені зрозуміти, що це тому, що я просто перейшов з фактичного облікового запису користувача на додаток.
drzaus

4

Ваша відповідь доступна на веб- сайті http://msdn.microsoft.com/en-us/library/ms241736.aspx

Якщо ви налагоджуєте законний сценарій, який спричиняє появу цього попередження, і хочете його придушити, існує налаштування реєстру, яке дозволяє це зробити. Не забудьте знову ввімкнути попередження після завершення сценарію.


4

Це не пряма відповідь на питання, але це обходить повідомлення про захист, а також забезпечує більш швидкий спосіб приєднатись до раніше приєднаного процесу:

  • встановити розширення Reattach
  • приєднати за допомогою Reattach, і повідомлення обійдеться
  • повторне приєднання (Ctrl-R + Ctrl- [1-5]) до попереднього процесу має ту саму перевагу

3

Варіант Powershell ... замініть $vsversionверсію, до якої потрібно застосувати.

Примітка . Збережіть свою роботу, перш ніж це запустити. Усі запущені екземпляри VS будуть зупинені. Якщо ви не закінчите відкриті екземпляри VS, значення не збережеться.

$vsversion = "12.0" # VS 2013 (optionally 11, 10, 9, etc.)
kill -name devenv # end any existing VS instances (required for persisting config change)
Get-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -ErrorAction SilentlyContinue # query value (ignore if not exists)
Set-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value 1 # assign value

2

тож єдине, що могло б працювати для мене з Visual Studio 2010 на x64 / Win7, - це оновити обидва вузли, включаючи Wow6432Node.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\10.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001


0

PowerShell варіація на основі існуючих відповідей від SliverNinja і Мартін Холлінгсуорт. Це було перевірено Visual Studio 2015 на середовищі win7 / x64 . Сценарій попросить вас закрити Visual Studio, якщо він працює (не намагатиметься його вбити).

$vsversion = "14.0" # VS 2015 (optionally 12, 11, 10, 9, etc...)
$disable = 1 # set to 0 to enable the warning message

# not using Get-Process here because powershell instance can be 64 bit and devenv is 32 bit
if (!(get-wmiobject win32_process -filter "name='devenv.exe'")) {
    # Create or (force) update the property
    New-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value $disable -PropertyType 'DWORD' -Force
    Write-Host Done!
}
else {
    Write-Error "Please close Visual Studio first!"
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.