Windows」カテゴリーアーカイブ

パスワードマネージャー(1Password)を導入

様々なサービスの認証情報を管理するのが大変になってきたので、専用の管理ソフトであるパスワードマネージャーを導入することにしました。

いくつか製品がある中で、試用の結果1Passwordが良さそうだったので正式に採用しました。有償のサービスで価格は月$2.99となっています。

パスワードマネージャーのメリット

パスワードマネージャーを使うと個別のパスワードを記憶しておく必要がなくなるので、極めて複雑なパスワードをサービス毎に設定できます。そのため、パスワードの使い回しや強度不足の問題を解消できます。

また、パスワードの不正利用が確認された場合に通知してくれるWatchtowerという機能があるので、もしもの時にもすぐに対応ができるということです。

入力する時もブラウザのエクステンション経由で半自動入力できるので、手間がかからず非常に便利です。1PasswordとVivaldiの組み合わせの場合はChrome用エクステンションで問題なく入力できました。

モバイルOS用のアプリもあるので、PCとスマートフォンで同じ1Passwordアカウントによる認証情報の管理が可能です。

マスターパスワードの保護

パスワードマネージャーのパスワード(マスターパスワード)は別途管理の必要がありますが、認証用アプリとしてMicrosoft Authenticatorを設定することができます。この設定を行うことで1Passwordのサービス自体が二要素認証で認証されることになるので、より安全に運用することが可能です。

認証情報の棚卸しにも

導入して便利になったのもさることながら、1番効果があったと感じるのは認証情報の棚卸しができたことです。認証情報を1Passwordに登録していく過程で必要ないアカウントや、あるいはサイトリニューアルで使えなくなったアカウントなどを整理することができました。

認証情報の管理が気になる方に

個人で有償のパスワードマネージャーを使うというのはなかなかハードルが高く感じましたが、実際に使い始めてみると妥当な費用という感想です。

管理もしやすくなりましたし、従来採用していた”手元の手帳に書いておく”という方法に比べて入力が楽なので助かっています。14日間試用もできるので、気になる方は是非試用をオススメします。

Microsoft PowerToys

最近PCにmicrosoftPowerToysを導入しました。Microsoft PowerToysはMicrosoft製のWindowsで利用できる便利ツールを集めたユーティリティです。

Microsoft PowerToys: Windows をカスタマイズするためのユーティリティ

[Microsoft Docs]

このエントリを書いている時点でのバージョン(v0.55.1)に含まれている機能は以下の通りです。

  • 常に手前に表示(あらゆるウィンドウを常に手前に表示できるオプションを提供)
  • Awake(PCがスリープにならないよう起動状態を維持する)
  • Color Picker(表示されているもの全てに対応するカラーピッカー)
  • FancyZones(ウィンドウレイアウトをカスタマイズ)
  • File Explorer Add-ons(プレビューなどエクスプローラの機能を拡張)
  • Image Resizer(コンテキストメニューから直接画像をリサイズ)
  • Keyboard Manager(キーボード配置を再マップ)
  • マウス ユーティリティ(マウス位置の強調表示など)
  • PowerRename(正規表現も使える強力なファイルリネーム機能)
  • PowerToys Run(キーボードショートカットからアプリケーションを直接検索して起動)
  • Shortcut Guide(すぐ呼び出せるショートカットの一覧表)
  • ビデオ会議のミュート(キーボードショートカットでWeb会議のオーディオを制御)

かなり盛りだくさんの内容です。私はこの中でも特にPowerRenameが気に入っていて、よく使っています。他に便利に感じるのはFile Explorer Add-onsで、オプションの1つにsvgファイルのプレビューを有効にする機能があるのでこちらも重宝しています。

機能は豊富ですが、個別に有効/無効を設定できるのでカスタマイズ幅は確保されています。従来こういった便利ツールはフリーソフトでの提供が多かったですが、Micorosft純正で出してもらえると安心感がありますし、組織的にバグフィックスや改良を行ってくれるのでありがたいです。

WindowsでVGAドライバを再起動する方法

時々OSは動いているがVGAドライバにトラブルが生じて画面がフリーズしてしまう場合があります。画面が固まってしまっているもののストレージのアクセスランプは点滅していて、Ctrl + Alt + Delのショートカットを受け付けない場合などが典型的です。

こういった場合自作PCではリセットスイッチなどで対応するのが簡単です。ただOSが動いていれば、Ctrl + Shift + Windowsキー + Bの4つ同時押しでVGAドライバを強制的に再起動できるそうです。

黒い画面またはブランクの画面のエラーのトラブルシューティング

[Microsoft サポート]

押してみるとスピーカーから「ポッ」とビープ音がして画面が暗転します。正常なときに実行しても画面が暗転・点滅するだけですが、VGAの問題で画面が固まってしまったときにはこの方法が有効そうです。覚えておくと便利な操作だと思います。

ATOK Passportの大型アップデートが提供開始

もはや毎年2月の風物詩とも言えるATOK Passportのアップデートが提供開始となりました。

基本的な部分として変換エンジンであるATOKディープコアエンジンはATOKディープコアエンジン2にバージョンアップしているそうです。

新機能の中でも興味を引くのが”カスタムATOK”というATOKをカスタマイズできる機能です。文書作成の目的により変換エンジンの傾向を設定したり、個別のオプション機能をON/OFFして自分好みの設定を作り込んでいくことができるそうです。

ATOK PassportはおかげさまでPC・スマートフォンそれぞれで大活躍してくれています。Windows標準搭載のMS-IMEがちょっとしっくり来ない方にはぜひ一度試してみていただきたいです。

コマンドプロンプトでドライブを移動する

コマンドプロンプトでディレクトリを移動する際にはcdコマンドを使います。通常コマンドプロンプトを起動するとカレントディレクトリは”C:\Users\[ユーザ名]”になっています。

ここからカレントディレクトリを例えば”C:\hoge”にしたい場合、

[command prompt]
cd C:\hoge

と入力してEnterキーを押せばOKです。

Dドライブにも同様にhogeというフォルダがある場合、C:\hogeの部分をD:\hogeにすれば良さそうなのですが、この入力だとディレクトリを移動できません。ドライブに変更が加わる場合は/dオプションをつけて、

[command prompt]
cd /d D:\hoge

とすればOKです。

結構長いことコマンドプロンプトを触っているつもりでしたが、この操作は最近まで知りませんでした。コマンドを打ち込むときには大体Cドライブに用事があるからなのかもしれません。

ちなみにPowershellの場合は別ドライブであってもcdコマンドのみで移動ができるので簡単です。

【参考情報】

cd|Microsoft Docs

[ Microsoft Docs ]

robocopyの戻り値を利用したエラーチェック

Windowsで利用できるrobocopyコマンドでデータのバックアップをしていると、CLIで実行するコマンドゆえにエラーの発生に気づきにくいことがあります。

robocopyは処理完了後に内容に応じた戻り値を出力するので、エラーの発生した戻り値が出ている時のみ何らかの処理を追加することで、エラーに気づきやすくすることが可能です。

戻り値の一覧は以下の通りです。

サーバー 2008 またはサーバー 2008 R2 Windows Robocopy ユーティリティでWindowsコード

[Microsoft Docs]

より詳しい情報としては以下の記事が参考になります。

Robocopy のエラー (戻り値) について

[Microsoft Technet]


8以上がエラーを含むコードなので、簡単にエラーチェックだけをしたいなら8以上で通知にしておけば良さそうです。

コードの例です。Powershellにrobocopyコマンドを組み込んで使っていますので、戻り値は$LASTEXITCODEという変数に格納されます。この変数を評価して、8以上だった場合にはWrite-Hostコマンドでログを確認するよううながす表示をするようにしています。

#Powershell
#コピー元コピー先の設定
$CopyFrom = [コピー元]
$CopyDest = [コピー先]

#データコピー
Robocopy $CopyFrom $CopyDest /S /R:5 /W:0 /LOG+:log.txt

#エラー判定
If($LASTEXITCODE -ge 8){
    Write-Host("エラーが発生しました。ログを確認して下さい。")
    
    Pause
}

動かすとこんな感じになります。外出中や寝ている間に動かしておいても、この窓が出ていなければ正常終了している、窓がある場合何らかのエラーがあったことが確認できて便利です。

Windows11発表

Windowsに関する大きい発表があるという予告がされていましたが、発表されたのはWindows11でした。

Windows 11発表。年内提供予定でWindows 10からは無償アップグレード

[PC Watch]

各新機能については以下の動画が分かりやすいと思います。

色々と新機能が盛り込まれていますが、内部的にWindows10とどのくらいの差異があるものなのかは気になるところです。変更点の多い機能アップデート相当のものなのか、それともWindowsの内部バージョンが”10.0″から変わるのか興味があります。

あわせて組織で現在Windows10を運用している場合、機能アップデートのようにWSUSなどからアップグレードすることができるのかも確認しておきたいところです。今後の続報が待たれます。

色々ある新機能の中でピックアップすると、Microsoft Storeの刷新は注目だと思います。正直Microsoftの思ったように活用されていない感のあるストアですが、W32アプリをそのまま配布できること、またAndroidアプリを配布・実行できるようになることでストアに目を向けるユーザが増えるかもしれません。

モバイルOSのアプリインストールはできるけど、Windowsの”インストーラを入手してアプリケーションをインストールする”という形式は難しく感じる、というユーザもいるでしょうから、そういったユーザにモバイルOSライクな使い心地を提供できるようなら良いのではないかと思います。

最近は機能アップデートもそれほど大掛かりなものが無く少々寂しかったですが、久々に色々と変化がありそうで楽しみです。

自己昇格するバッチファイルを作成する

PCにあまり詳しくない人にバッチファイルを実行してもらう時に困るのが、”管理者実行”の問題です。コマンドの内容によっては管理者権限で実行しないといけないものもあるのですが、事前に説明しておいても右クリックして管理者実行してもらえないというケースがよくあります。

ネットで調べてみると、バッチファイルの書き方次第ではバッチファイル自身が権限を昇格してコマンドを実行できるような書き方ができるようなので、試してみました。

管理者権限の判定

今バッチファイルが管理者権限・ユーザ権限どちらで実行されているかを判断するには、openfilesコマンドを使います。

このコマンドは現在開かれている共有フォルダや共有ファイルを列挙するコマンドなのですが、管理者権限がないと実行できません。

ユーザ権限で実行した場合は変数errorlevelに1、管理者権限で実行した場合は0が格納されるので、これを権限の判定に使用します。

自己昇格

自分自身の権限を昇格して実行するには、powershellの力を借ります。powershellでよく使う”start-process hogehoge -verb runas”という管理者でプロセス実行する文がありますが、ここで実行するプロセスにコマンドプロンプトの変数である”%~0”を使用します。

%~0はバッチファイル自身を意味する変数で、これにより自分自身を再度管理者権限で実行することができます。

表示上の一工夫

最初に権限確認のため実行するopenfilesですが、実行結果が1枚目のコマンドプロンプトに表示されてしまいます。ちょっとうっとうしいのでこれを表示させないために、結果を標準ログにまとめて捨ててしまいます。

記述としては”openfiles > NUL 2>&1”となり、”2>&1”の部分が「エラーログを標準ログにまとめる」の意で、”>NUL”の部分が「出力を捨てる」という意味合いになります。

なので、口語に直すと「openfilesの出力を捨てる。ただし、エラーログと標準ログはまとめる」といった感じになります。ちなみに”>NUL”と”2>&1”の順序を逆にすると普通に結果が画面に出力されてきますのでご注意下さい。

できあがったバッチファイル

[bat]
@echo off

rem openfilesを実行して実行権限を判定できる数値をerrorlevelに格納する
rem このopenfilesの結果はウインドウに出力しない
openfiles >NUL 2>&1 

rem errorlevelの値が1(ユーザ権限)だった場合は管理者権限により自身を再実行
if %errorlevel% equ 1 (
	powershell start-process %~0 -verb runas
) else (
	rem 実行したい処理(例としてopenfiles)
	openfiles
)

参考情報

こちらのサイトの情報が大変参考になりました。ありがとうございました。

How to check in a batch file if you are running it elevated

[winaero.com]

Robocopyのバッチファイルが文字化けして失敗する問題

Robocopyのコピージョブをバッチファイル化して運用する時に、文字化けしてコピーが失敗する場合があります。ジョブを直接cmd.exeで実行した時には問題ないのにバッチファイルにするとうまくいかないという場合、テキストファイルの文字コードの問題である可能性が高いです。

これは”C:\ほげ”から”C:\ぴよ”にコピーをするジョブですが、このようにパスが文字化けしてコピーが失敗します。

Robocopyのジョブを作成する時にテキストエディタでジョブを書いて拡張子を変更してバッチファイル化することがありますが、Windows付属の”メモ帳”でテキストファイルを書くとデフォルトの文字コードがUTF-8で保存されます。

ところが、バッチ実行時の標準文字コードはShift-JISなので、そのままだとUTF-8のテキストをShift-JISで解釈することになってしまい2バイト文字で文字化けが発生するというわけです。

対策としてはメモ帳ではなく何らかのテキストエディタを使い、テキストファイル保存時に文字コードを明示的にShift-JISに設定してあげればOKです。

2021/04/28追記:メモ帳でも”名前をつけて保存”を選択することで文字コードを指定できるそうです。(情報提供:kentax様)

初歩的なミスだとは思いますが、普段自分が触っていない環境だとテキストエディタが入っていなかったりするのでこの手のトラブルが起きがちです。注意したいところです。

ATOK for Windowsのプログラムが2019年2月に更新予定

月額契約のATOK Passportで提供されているATOK for Windowsのプログラムが、2019年2月に新機能の追加込みで更新されるそうです。

ジャストシステム、説明で漢字変換できる新機能を搭載した新「ATOK for Windows」

[PC Watch]

毎年一太郎の新バージョンが2月頃に出るので、それに対応したアップデートのようです。新機能として漢字そのものの説明を入力することにより目的の漢字に変換ができる漢字絞り込み変換と、難読地名を読んだまま入力すると正しく入力できる地名入力変換が追加されているそうです。

漢字絞り込み変換は一見面倒そうですが、旧字体や姓名に使う異体字を入力する際には便利そうに思います。地名入力変換の方は個人的にどこまでマイナーな難読地名に対応しているか試してみたくなります。