デフォルトでは、Windows Vista/7/8のUACプロンプトは安全なデスクトップに表示されます。残念ながら Print Screen セキュリティで保護されたデスクトップを表示するときに、キーは効果がないようです。私はこれの背後にある理由を見ることができます-ユーザーモードのアプリケーションが安全なデスクトップのコンテンツをキャプチャすることができるべきではありません。
しかし、私の質問は残ります。このデスクトップのスクリーンショットを取得する方法はありますか?
編集:多分私が問題を説明するのに役立つでしょう。
現在Windows 8を実行していますが、使用したい小さなDisplayLinkベースのモニターがあります。 このドライバ はリリースされたばかりで、安全に動作しますが、安全なデスクトップで動作しません。そこでフォーラムにバグレポートを投稿したいのですが、そのためにはスクリーンショットが必要です。明らかに問題は標準のデスクトップでは発生しません-そしてWindowsをVMで実行することは不可能です。Windows8はハードウェア仮想化(私が持っていない)を必要とし、USBモニターを動作させるためです。 VMは、とにかくせいぜいトリッキーです。
私はそれを行うにはかなり「黒い帽子」の方法を見つけました...
セキュリティで保護されたデスクトップでアクセシビリティツールを使用しても問題なく動作するので、- FastStone Capture Portable のコピーを使用してc:\windows\system32
および名前変更osk.exe
からosk.exe.old
およびコピー/名前変更fscapture.exe
Faststoneディレクトリからosk.exe
system32ディレクトリ内。
次に、UACプロンプトに行き、 Win Key+U、「画面キーボード」オプションをクリックしました。
そして... FastStone Captureが開始されましたが、それは単なる試用版でした...このモードで使用すると、ライセンスの詳細にアクセスできません。..写真をうまく撮って保存できました...しかし、デスクトップに保存していると思いましたが、実際にはc:\windows\syswow64\config\systemprofile\desktop
...あなたは毎日何か新しいことを学びます!
上記に基づいて、UACセキュアデスクトップは自分の資格情報を使用する高度な環境であると常に思っていましたが、実際にはSystem
ユーザーの下で起動されていると思います。 Print Screen 実際には機能するかもしれませんが、ユーザーのコンテキストではありません-これを念頭に置いて、Fast Stone Captureの代わりにPaintのコピーを使用する場合は、スクリーンショットを取り、On Screen KeyboardハックからPaintを起動します。同じように機能する可能性があります。
編集---更新---
ペイントは窓の外にあります!私の理論をテストしたところ、うまくいきませんでした。正確な理由はわかりませんが、上記のスクリーンキャプチャツールと私の方法のほとんどを使用すれば、うまくいくと思います。
デジタルカメラを入手し、画面の写真を撮ります。
しかし、私の質問は残ります。このデスクトップのスクリーンショットを取得する方法はありますか?
SYSTEM
として実行され、適切な場所にインストールされたプロセスは、UIPIをバイパスして、Secure Desktopにアクセスできます。
これを行う既存のプログラムを活用します-RealVNC(無料版ではありませんが、残念ながら)やUltraVNCなど。
PCでサーバーを実行し、別のコンピューターからクライアントを接続します。クライアントウィンドウのスクリーンショットを撮ります。
画面の写真を撮るのはおそらく同じくらい簡単ですが。
さらに良い方法があります。 2つの無料のオープンソースツール Greenshot および Process Hacker を使用して、安全なデスクトップのスクリーンショットを作成できますこれらの利点:
実行が簡単で、最初のセットアップに加えて、時間を大幅に短縮できます。はじめましょう!
Greenshotをダウンロードし、Print Screenキーを押した場合に画面全体の画像がフォルダーに自動保存されるように設定を構成します。
Process Hackerをダウンロードしてください。 Process Hackerのメインウィンドウが表示された場合は、Greenshotが閉じていることを確認し、[Hacker]と[Run as ...]をクリックします。
「プログラム」でGreenshotの実行ファイルを選択します。 「ユーザー名」でリストをクリックし、「NT AUTHORITY\SYSTEM」を選択します。 「タイプ」はサービス、セッションID 1である必要があり、「デスクトップ」で「WinSta0\Winlogon」を選択します。これは重要!
これで準備は完了です。「OK」をクリックし、Greenshotの読み込みが完了したら(短いはずです)、UACウィンドウを開いてPrintキーを押します。これで、Greenshotの指定したフォルダーにあるセキュリティで保護されたデスクトップの画像が表示されます。 UACスクリーンショットを作成する必要がなくなった場合は、Greenshotプロセスを終了してください。
楽しんで!これまでのところ、ここの解決策は好きではなかったので、私はいくつかのテストの後に自分でこれを確認してテストしました。
仮想マシンやvncを使用したり、レジストリやシステムファイルを変更したりする以外のオプションを提供します。
最初にスクリーンショットソフトウェアが必要です。この回答では 7capture を使用しますが、これは無料ですが、他のソフトウェアでも実行できると思います。
次に、 PsTools suite からPsExecが必要になります。このツールを使用すると、システムファイルを変更せずに、キャプチャをWindows Secure Desktop内に配置できます。PsExecによって自動的に実行されるサービスを作成および削除するだけです。
次に、7captureがインストールされ、PsToolsがいくつかのフォルダーに抽出された状態で、次の手順を実行します。
1)CMDを管理者として開きます。
2)現在のフォルダーをPSToolsが抽出されたフォルダーに設定します:cd path_to\PSTools
3)次のコマンドを使用して、Windows Secure Desktop内で7captureを開始します:PsExec /h /x /d /s "path_to\7capture.exe"
どこ:
-h:ターゲットシステムがVista以上の場合、アカウントの昇格されたトークン(利用可能な場合)を使用してプロセスを実行します。
-x:WinlogonセキュアデスクトップにUIを表示します(ローカルシステムのみ)。
-d:プロセスが終了するのを待ちません(非インタラクティブ)。
-s:システムアカウントでリモートプロセスを実行します。
4)撮影したいWindows Secure Desktopを開きます。 (UACプロンプト、Ctrl + Alt + Del画面など)
5)Ctrl + PrintScreenを使用して1つのウィンドウのみのショットを撮るか、PrintScreenを使用して画面全体のショットを撮ります。
6)Alt + Tabを使用して7captureに切り替えます。
7)必要な場所にファイルを保存するだけです。 (フルスクリーン画像に問題がある場合は、BMPとして保存してください)
そして、ここで私のWindows 7(ブラジルポルトガル語)で結果を見ることができます。
TeamViewerをPCにインストールし、PCを再起動すると、teamviewerはUACプロンプトにアクセスできるようになります。 teamviewerを使用している別のPCから、teamviewerが表示されているがフォーカスがないときにデスクトップ全体のスクリーンショットを作成できます。UACプロンプトのスクリーンショットが表示されます。
セキュリティで保護されたデスクトップは、ユーザーがデスクトップをロックする(Windows + L)、スクリーンセーバーがアクティブになる(ユーザーがログインしていない場合)、またはデフォルトでユーザーアカウント制御がプロンプトを表示するときにアクティブになります。
出典: XPDM vs. WDDM
このアイデアは、William Hilsumの答えから借りたものですが、違いがあります。システムファイルを置き換える必要がなく、変更を元に戻すのが簡単です。以下の手順を実行した後、 Win+U 安全なデスクトップのスクリーンショットを撮る必要があるときはいつでも。
次のコマンドを入力するか貼り付けて、X:\Path\to\file.exe
には、選択した実行可能な画面キャプチャツールの実際のパスを指定します。次に押す Enter。
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe" /v "Debugger" /t REG_SZ /d "X:\Path\to\file.exe" /f
注ペイントと組み込みのSnipping Toolは使用できません。サードパーティのプログラムに依存する必要があります。作業ツールは、たとえば Lightshot 、 Greenshot 、および ShareX です。
次のコマンドを入力するか貼り付けて、 Enter:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe" /f
別のオプションは、autoitscriptを使用することです(autoitscript.comから)
これは、Windows GUIと一般的なスクリプトを自動化するために設計されたフリーウェアのBASICに似たスクリプト言語です。シミュレートされたキーストローク、マウスの動き、ウィンドウ/コントロール操作の組み合わせを使用します。
Send()関数を使用すると、printscreenのキープレスをシミュレートできます。サイトの例から引用 https://www.autoitscript.com/autoit3/docs/functions/Send.htm :
Example()
Func Example()
Send("{PRINTSCREEN}")
EndFunc
ダウンロード http://www.autoitscript.com/site/autoit/downloads/ ダウンロードしてください。
私は自分でこの解決策を試していませんが、問題を解決するためにハッキングする必要があることを考えると、かなりまともです。
試してみる。私が助けてくれることを願っています。
セキュリティで保護されたデスクトップについてはあまり知りませんが、理論的にはSnipping Toolを開いて、その方法でスクリーンショットを撮ることができます。レジストリの編集、ファイル名の変更、なし。これは非常に基本的で簡単な方法です。 「Snipping Tool」を検索するか、Run(キーボードショートカット:Win + R)を開いて、「snippingtool」または「snippingtool.exe」と入力します。
どちらの方法でも、それを開いて「フルスクリーン切り取り」モードを使用します。 Windows 10では、[モード]ボタンの横にある矢印をクリックして、[全画面切り取り]を選択します。古いバージョンのWindowsでは、[新規]ボタンの横にある矢印をクリックし、[全画面切り取り]を選択します。これは、メモを追加したり、切り取りを保存したり、Snipping Toolウィンドウから電子メールで送信したりできるSnipping Toolウィンドウに自動的にコピーされます。詳細については、Microsoftの ヘルプページ を参照してください。
次の手順に従って、UACのセキュアデスクトップを無効にします。
コンピューターの構成> Windowsの設定>セキュリティの設定>セキュリティオプション
[無効]オプションを選択します。
その後、任意の昇格されたアプリケーションで通常の印刷画面キーを使用できます。