IISのデバッグ時にVisual Studioのセキュリティ警告をオフにする
-
06-07-2019 - |
質問
Visual Studio 2008または2010を使用している場合、IIS w3wp.exeに接続するたびにAttach Security Warningが表示されます
どのようにこれを有効にしますか?
しばらくするとタイムアウトするように思えるので、長続きするように接続を維持する方法も知っておくといいでしょう。
Btw:これを以下の回答のコメントとして追加しました。最初にしたことは、msdnの記事 http://msdn.microsoft.com/en-us/library/ms241736.aspx でも機能しません。
解決
Tzuryが言及した記事にも記載されていますが、このスレッドの答えを要約すると次のとおりです。
レジストリキーを変更するときに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
Visual Studio 2015
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger \ DisableAttachSecurityWarning
VS2015の場合、上記のレジストリキーを作成する必要がある場合があります。
- Visual Studioが実行されていないことを確認し、レジストリエディターを開きます。
- へ移動
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
、右クリックして新しいDWORD
を作成します。- 名前:
DisableAttachSecurityWarning
- 値:
1
。
- 名前:
更新: regeditを開きたくない場合は、この gist を* .regファイルとして実行します(すべてのVSバージョンのキーをインポートしますVS2017より)。
Visual Studio 2017
構成はプライベートレジストリの場所に保存されます。次の回答を参照してください: https://stackoverflow.com/a/41122603/67910
VS 2017 の場合、これを保存 gist を* .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\' Tzuryが言及した記事にも記載されていますが、このスレッドの答えを要約すると次のとおりです。
レジストリキーを変更するときに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
Visual Studio 2015
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger \ DisableAttachSecurityWarning
VS2015の場合、上記のレジストリキーを作成する必要がある場合があります。
- Visual Studioが実行されていないことを確認し、レジストリエディターを開きます。
- へ移動
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
、右クリックして新しい DWORD
を作成します。
- 名前:
DisableAttachSecurityWarning
- 値:
1
。
更新: regeditを開きたくない場合は、この gist を* .regファイルとして実行します(すべてのVSバージョンのキーをインポートしますVS2017より)。
Visual Studio 2017
構成はプライベートレジストリの場所に保存されます。次の回答を参照してください: https://stackoverflow.com/a/41122603/67910
VS 2017 の場合、これを保存 gist を* .ps1ファイルとして管理者として実行するか、ps1ファイルに次のコードをコピーして貼り付けます:
<*>\privateregistry.bin
$BasePath='HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio'
$keysResult=dir $BasePath
$keysResult | ? { Tzuryが言及した記事にも記載されていますが、このスレッドの答えを要約すると次のとおりです。
レジストリキーを変更するときに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
Visual Studio 2015
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger \ DisableAttachSecurityWarning
VS2015の場合、上記のレジストリキーを作成する必要がある場合があります。
- Visual Studioが実行されていないことを確認し、レジストリエディターを開きます。
- へ移動
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
、右クリックして新しい DWORD
を作成します。
- 名前:
DisableAttachSecurityWarning
- 値:
1
。
更新: regeditを開きたくない場合は、この gist を* .regファイルとして実行します(すべてのVSバージョンのキーをインポートしますVS2017より)。
Visual Studio 2017
構成はプライベートレジストリの場所に保存されます。次の回答を参照してください: https://stackoverflow.com/a/41122603/67910
VS 2017 の場合、これを保存 gist を* .ps1ファイルとして管理者として実行するか、ps1ファイルに次のコードをコピーして貼り付けます:
<*>.Name -match '\\\d+\.\d+_[^_]+} | % {
$keyName = Tzuryが言及した記事にも記載されていますが、このスレッドの答えを要約すると次のとおりです。
レジストリキーを変更するときに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
Visual Studio 2015
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger \ DisableAttachSecurityWarning
VS2015の場合、上記のレジストリキーを作成する必要がある場合があります。
- Visual Studioが実行されていないことを確認し、レジストリエディターを開きます。
- へ移動
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
、右クリックして新しい DWORD
を作成します。
- 名前:
DisableAttachSecurityWarning
- 値:
1
。
更新: regeditを開きたくない場合は、この gist を* .regファイルとして実行します(すべてのVSバージョンのキーをインポートしますVS2017より)。
Visual Studio 2017
構成はプライベートレジストリの場所に保存されます。次の回答を参照してください: https://stackoverflow.com/a/41122603/67910
VS 2017 の場合、これを保存 gist を* .ps1ファイルとして管理者として実行するか、ps1ファイルに次のコードをコピーして貼り付けます:
<*>.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
}
他のヒント
レジストリ設定は機能します。ただし、VS2005 / 2008の32ビットレジストリサンドボックスで%windir%\ SysWOW64 \
の32ビットregedit.exeを使用するか、< code> 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
バージョンを2005年の8.0、2010年の10.0などに変更するだけです
注:Windows 7のregeditでは、.regファイルをUTF16-LEとして保存する必要があるようです。そのため、.regファイルに保存する場合は、それを行う必要があることに注意してください。
Windows 7で動作するようになりました。VS2008を開いたままレジストリ値を最初に変更しました。次に、それを閉じてレジストリエディターを更新し、値が0にリセットされたことに気付きました。その後、1に戻し、VS2008を起動しました。現在は正常に動作します。 VS2008を閉じて開き直そうとしましたが、レジストリ値は1のままです。ご協力ありがとうございます
この投稿のその他の回答には正しい情報が含まれていますが、それを機能させるのに問題があったため、回答を非常に明確にする試みです。これらの手順は、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.0 に置き換え、2010では 10.0 を使用します
これを機能させるのに苦労した理由は、HKEY_CURRENT_USERの代わりにHKEY_LOCAL_MACHINEを使用してこれを試していたためです。 プロセスモニターとdevenvのフィルタリングを使用して特定する必要がありました。私の間違い。 HKLM値は、Visual Studioを初めて開く前に設定された場合にのみ効果があると思われます。
Visual Studioの開いているインスタンスは、閉じられたときに変更を上書きし、いずれにしても新しいインスタンスのみが設定を取得します。
Wow6432Node 私が知る限り、レジストリは不要なようです。次のPowershellコマンドは、Visual Studio 2010の手順を適用します。
Get-Process -Name devenv* | ForEach-Object { Stop-Process この投稿のその他の回答には正しい情報が含まれていますが、それを機能させるのに問題があったため、回答を非常に明確にする試みです。これらの手順は、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.0 に置き換え、2010では 10.0
を使用します
これを機能させるのに苦労した理由は、HKEY_CURRENT_USERの代わりにHKEY_LOCAL_MACHINEを使用してこれを試していたためです。 プロセスモニターとdevenvのフィルタリングを使用して特定する必要がありました。私の間違い。 HKLM値は、Visual Studioを初めて開く前に設定された場合にのみ効果があると思われます。
Visual Studioの開いているインスタンスは、閉じられたときに変更を上書きし、いずれにしても新しいインスタンスのみが設定を取得します。
Wow6432Node 私が知る限り、レジストリは不要なようです。次のPowershellコマンドは、Visual Studio 2010の手順を適用します。
<*>.Id }
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VisualStudio\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force
ローカルマシンの場合、iis AppPool IDを実際のWindowsユーザーに変更できます。
回答は http://msdn.microsoft.com/で入手できます。 en-us / library / ms241736.aspx
正当なものをデバッグしている場合 この警告を引き起こすシナリオ 表示され、それを抑制したい、そこに あなたができるレジストリ設定です これをする。忘れずに再度有効にする あなたが終わった後の警告 シナリオ。
これは質問に対する直接的な回答ではありませんが、セキュリティメッセージを回避し、以前にアタッチされたプロセスにアタッチするより高速な方法を提供します。
- 拡張機能を再接続
- 再接続を使用して接続すると、メッセージはバイパスされます
- 前のプロセスに再接続(Ctrl-R + Ctrl- [1-5])しても同じ利点があります
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
そのため、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
VS2015およびVS2017で使用できるVisual Studio拡張機能:&quot;すべてに添付物事&quot; :
「IISにアタッチ」をバインドできます。通常のプロセスを使用して、好きなキーコードに。
SliverNinjaとMartin Hollingsworthからの既存の回答に基づく powershell のバリエーション。これは、 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!"
}