コマンドプロンプトの「コピペ」で重大トラブル?誤実行を予防せよ

Windows全般
スポンサーリンク

コマンドプロンプトやPowerShell プロンプトでは、不用意に右クリックすると意図しない処理を実行してしまい、トラブルに繋がります。これを予防するためには①「簡易編集モード」をOFFにするか、②「Windows ターミナル」を使う、という対策が有効です。本番システムのサーバーでは予め誤操作対策をしておくと安心です。各操作を詳しく解説していきます。

右クリックしただけで大暴走?

WindowsのコマンドプロンプトやPowerShellプロンプトで、右クリック操作でヒヤッとしたことは無いでしょうか?具体的にはプロンプト上で誤って右クリックし、クリップボードにコピーしていたテキストがコマンドとして実行されてしまった、という例です。

文法に誤りがあればエラーになるものの、コマンドとして解釈できれば容赦なく実行されます。たとえそれが削除用コマンドだとしても。下の画像はPowerShellプロンプトの例ですが、コマンドプロンプトでも同様のことが起こり得ます。

最近のバージョンのWindowsでは、プロンプト画面では右クリックするだけで、クリップボードの文字列がペーストされるようになっています。そしてクリップボード内のテキストに改行が含まれていると、Enterキーが押されたものとされて、コマンドが実行されてしまいます。

特に本番システムのサーバーでは、この手の誤操作は重大な障害に繋がります。 予防する策を考えてみましょう。

対策① 「簡易編集モード」をOFFにする

簡易編集モードとは?

コマンドプロンプトの場合、下図のようにタイトルバーを右クリックして「プロパティ」を選択します。開いた画面の[オプション]タブに「簡易編集モード」という欄があります。

近年のバージョンのWindowsでは、デフォルトでONになっており、次の動作になります。

「簡易編集モード」がONの場合の動作
  • プロンプト内の文字列をドラッグすると、選択状態にする。
  • 文字列を選択した状態で右クリックすると、クリップボードにコピーする。
  • 文字列を選択していない状態で右クリックすると、クリップボードの文字列をペーストする(改行があればコマンドとして実行する)。

そのため「簡易編集モード」をOFFに変更することで、前述の誤操作を予防することが出来ます。

OFFにしたときの副作用

ただし「簡易編集モード」をOFFにすると、文字列を選択してコピーや貼り付けする際、少し面倒になります

文字列の選択やコピーをするためには、毎回プロンプトを右クリックして「マーク」を選択し、編集モードにする必要があります。また、文字列をペーストするときに右クリックは使えません(右クリックメニューの「貼り付け」を選択するか、ショートカットキーの「Ctrl + V」で可能)。

このように操作性は多少下がります。ですが、本番サーバーのトラブルと天秤にかけると、この程度は受け入れてよいかと思います。

ほかの誤操作予防効果

バッチプログラムを実行中に、そのコマンドプロンプト内で文字列を選択状態にすると、その間プログラムが中断することがあります。「簡易編集モード」がONだと、プロンプト画面を誤ってクリックしただけでプログラムが中断し、本番サーバーなどではトラブルになり得ます。そのためOFFにしておくと、こちらの予防効果も期待できます。

対策② 「Windows ターミナル」を使う

OSが限定されますが、Windows 11では「Windows ターミナル」という新しいターミナルソフトが標準で搭載されています。なお、Windows Server 2022 や Windows 10でも、インストールすること使用可能なようです(私はまだ試したことが無いですが)。

「Windows ターミナル」は次世代のターミナルソフトで、これまでのコマンドプロンプトやPowerShellプロンプトの代わりとして使用することができます。機能も強化されていますが、ここで注目すべきはクリップボードからペーストしたときの動きです。

こちらもマウスを右クリックすると、クリップボードの貼り付け動作になります。ただし、改行を含む文字列の場合は下のように確認画面が表示されます。

誤操作の場合はここでキャンセルすれば、事故には至りません。フリーソフトの「TeraTerm」でもこの動作になるのですが、この機能は助かります。これがデフォルトの動作ですので、この「Windowsターミナル」が使える環境であれば、使うだけで誤操作の対策になります。

補足

余談ながら、プロンプト画面では「Ctrl+C」にも注意が必要です。選択した文字列をクリップボードにコピーするショートカットでもありますが、実行中の処理を強制終了するショートカットでもあります。

重要なバッチプログラム等の実行中に、テキストをコピーするつもりで誤って「Ctrl+C」を押すと、トラブルにつながりかねません。これを完全に予防する方法は紹介できませんが、少なくとも「Ctrl+C」がそういう意味を持つことは忘れないようにした方が良いでしょう。それにしても、罠みたいなものがたくさん潜んでいますね。

おわりに

今回の記事は以上です。ご質問やご意見等ありましたら、下のコメント欄やtwitterからお願いします。

当サイトでは、ITインフラ関連の知識やノウハウをメインに紹介しています。下の関連記事にも役立つ情報があるかもしれませんので、ぜひご覧下さい。

また、知識やノウハウを効率的に学ぶ方法として、Udemy の「ながらセミナーもおすすめです。三日坊主にならず、普段の生活の中でスキルアップする方法です。これについては下の記事で紹介していますので、良ければご覧下さい。

もとだて
もとだて

最後まで読んでいただき、ありがとうございました。

フィードバック

コメント

タイトルとURLをコピーしました