web-dev-qa-db-ja.com

デバッグ時にVisual Studioのセキュリティ警告をオフにするIIS

Visual Studio 2008または2010を使用している場合、IIS w3wp.exeに接続するたびにAttach Security Warningが表示され、

これをどうやって変えるの?

これがしばらくするとタイムアウトするように見えるので、それを長持ちさせるためにアタッチする方法も知っておくといいでしょう。

Btw:これを以下の回答のコメントとして追加しました。最初にしたことは、msdnの記事 http://msdn.Microsoft.com/en-us/library/ms241736.aspx それは機能しません。

157
roundcrisis

Tzuryが言及した記事にも記載されていますが、このスレッドの答えをまとめると:

レジストリキーを変更するときにVisual Studioが実行されていないことを確認してください。そうしないと、終了時に古い値で上書きされます

次のレジストリキーを1に変更(または作成)します。

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

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

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

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

Visual Studio 2015HKEY_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

Update:regeditを開きたくない場合は、これを Gist として* .regファイルとして保存して実行してください(VS2017より前のすべてのVSバージョンのキーをインポートします)。

Visual Studio 2017

設定はプライベートレジストリの場所に保存されます。この回答を参照してください: https://stackoverflow.com/a/41122603/6791

VS 2017の場合、これを Gist として* .ps1ファイルとして保存し、adminとして実行するか、以下をコピーして貼り付けます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
}
228
Wiebe Tijsma

レジストリ設定は機能します。ただし、%windir%\SysWOW64\の32ビットregedit.exeを使用するか、HKLM\Software\Wow6432Node\...の下に追加して、VS2005/2008の32ビットレジストリサンドボックスに設定する必要があります。両方に追加するだけの.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

バージョンを2005年には8.0、2010年には10.0などに変更するだけです。

注:Windows 7のregeditでは、.regファイルをUTF16-LEとして保存する必要があるようです。そのため、.regファイルに保存する場合は、それを行う必要があることに注意してください。

13

Windows 7で動作するようになりました。VS2008を開いたままでレジストリ値を最初に変更しました。次に、それを閉じてレジストリエディターを更新し、値が0にリセットされたことに気付きました。その後、1に戻し、VS2008を起動しました。現在は正常に動作します。 VS2008を閉じて開き直そうとしましたが、レジストリ値は1のままです。ご協力ありがとうございます

8
Eric Villemure

この投稿の他の回答には適切な情報が含まれていますが、それを機能させるのに問題があったため、これは回答を非常に明確にする試みです。これらの手順は、Windows 7 Ultimate 64ビットで実行されているVisual Studio 2010で機能しました。

  • Visual Studioのインスタンスが実行されていないことを確認します(タスクマネージャーを使用してdevenv.exeを確認します)
  • DWORD DisableAttachSecurityWarningレジストリ値をHKEY_CURRENT_USER\Software\Microsoft\VisualStudio\X.X\Debuggerに追加し、値を1に設定します。 Visual Studio 2008ではX.Xを9.に置き換え、2010では10.を使用します

これを機能させるのに苦労した理由は、HKEY_CURRENT_USERの代わりにHKEY_LOCAL_MACHINEを使用してこれを試していたためです。 Process Monitor とdevenvを少しフィルタリングして、間違いを特定する必要がありました。 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

Iis AppPool IDを実際のWindowsユーザーに変更できます(ローカルマシンの場合)。

6
Tóth Zoltán

あなたの答えは http://msdn.Microsoft.com/en-us/library/ms241736.aspx で利用可能です

この警告を表示する正当なシナリオをデバッグしていて、それを抑制したい場合、これを可能にするレジストリ設定があります。シナリオを完了したら、忘れずに警告を再度有効にしてください。

4

これは質問に対する直接的な答えではありませんが、セキュリティメッセージを回避し、以前にアタッチされたプロセスにアタッチするより高速な方法を提供します。

  • インストール 拡張機能の再接続
  • 再接続を使用して接続すると、メッセージはバイパスされます
  • 前のプロセスに再接続(Ctrl-R + Ctrl- [1-5])しても同じ利点があります
4
Alexei

Powershell variant ... replace $vsversionそれを適用したいバージョンで。

Note:これを実行する前に作業を保存します。実行中のすべての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
3

したがって、x64/Win7上のVisual Studio 2010で機能する唯一のことは、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
2
Shawn Cicoria

Visual Studioの拡張機能は、VS2015およびVS2017で使用できます。 "すべてに接続"

enter image description here

通常のプロセスを使用して、「Attach To IIS」を任意のキーコードにバインドできます。

1
Marc Gravell

powershell SliverNinjaおよびMartin Hollingsworthからの既存の回答に基づくバリエーション。これはwin7/x64環境でVisual Studio 2015でテストされています。スクリプトは、実行中の場合は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!"
}
0
Cebe