AND OR  

Windows

Windows7またはWindows10での各種設定などについて整理する。

スリープからの自動復帰

スリープ(または休止状態)から自動復帰してしまう場合の設定確認方法を整理する。

# スリープ解除設定可能なデバイス一覧を表示
> powercfg -devicequery wake_programmable
Razer Taipan
HID 準拠コンシューマー制御デバイス
HID 準拠システム コントローラー
HID キーボード デバイス (001)
HID キーボード デバイス (002)
HID 準拠デバイス (004)
Razer Taipan (005)
Intel(R) Ethernet Connection (2) I218-V
HID 準拠デバイス (005)

# 現在スリープ解除設定されているデバイス一覧を表示
> powercfg -devicequery wake_armed
Intel(R) Ethernet Connection (2) I218-V

# タイマー(タスクスケジューラ)によってスリープ解除が許可されているデバイス一覧を表示
> powercfg -waketimers

デュアルディスプレイ関連

2枚のディスプレイに別々の壁紙を設定したい場合は以下のコマンドをエクスプローラーのアドレスバーに入力して実行する。

control /name Microsoft.Personalization /page pageWallpaper

後は対象画像を選び、サムネイルを右クリックメニューから表示させたい方のモニターを選ぶだけ。

Google Chrome

ChromeのキャッシュをRAMディスクに移す設定 (R:\Data\Temp\Chrome に移す場合)

  • Chromeをデフォルト構成でインストールした場合
    rmdir /s /q "C:\Users\(ユーザー名)\AppData\Local\Google\Chrome\User Data\Default\Cache"
    rmdir /s /q "R:\Data\Temp\Chrome"
    mkdir "R:\Data\Temp\Chrome"
    mklink /d "C:\Users\(ユーザー名)\AppData\Local\Google\Chrome\User Data\Default\Cache" "R:\Data\Temp\Chrome"
    C:\Users\(ユーザー名)\ 以下のデータを D:\Data\Users\ に保存している場合
    (例えばCドライブをSSD、DドライブをHDDにマウントしている場合でも、読み書き回数が多くてデータサイズも大きくなりがちなUsersフォルダ以下は別ドライブに移動させるケースが多い)
    rmdir /s /q "D:\Data\Users\AppData\Local\Google\Chrome\User Data\Default\Cache"
    rmdir /s /q "R:\Data\Temp\Chrome"
    mkdir "R:\Data\Temp\Chrome"
    mklink /d "D:\Data\Users\AppData\Local\Google\Chrome\User Data\Default\Cache" "R:\Data\Temp\Chrome"  
    NVMe SSDとか使ってるならわざわざRAMに設定しなくても良い。

Windows Subsystem for Linux (WSL)

WSL用の管理ツールの使い方を整理する。

wslconfig

PS> wslconfig
Linux 用 Windows サブシステムの管理操作を実行します                 
                                                 
使用法:                                              
   /l, /list [/all]                              
       登録されたディストリビューションを一覧表示します。                 
       /all - すべてのディストリビューションを一覧表示します (オプション)。   
              現在インストールまたはアンインストール中のものも含まれます。     
                                                 
   /s, /setdefault <ディストリビューション名>                
       ディストリビューションを既定として設定します。                   
                                                 
   /t, /terminate <ディストリビューション名>                 
       ディストリビューションを終了します。                        
                                                 
   /u, /unregister <ディストリビューション名>                
       ディストリビューションの登録を解除します。                     
                                                 
   /upgrade <ディストリビューション名>                       
       ディストリビューションを WslFs ファイル システム形式にアップグレードします。
PS> wslconfig /l
 Windows Subsystem for Linux ディストリビューション:
 Legacy (既定)                       
 Ubuntu-18.04    

/s オプションで利用するLinux環境を選ぶだけ。上記例のLegacyというのはUbuntu 16.04、バージョン表記の無いUbuntuを入れると、Legacyと表記されるようだ(2019/09現在)。

WSLのバージョンはディストリビューション毎に以下のオプションで設定できる。

PS> wsl --set-version <distribution name> <versionNumber>

WSLのバージョン確認は以下のオプション。

PS> wsl --list --verbose
  NAME            STATE           VERSION
* Ubuntu-18.04    Stopped         2
  Legacy          Stopped         1  

CUDA on WSL2

以下、エヌビディアさんのQiita記事を参考にして構築すればたぶん動く。ありがたや。

PowerShell

PowerShellで利用できる便利なコマンドなどを整理する。Windows10からはWSL(Windonws Subsystem for Linux)環境が提供されているが、Windowsネイティブの機能を活用するにはPowerShellを使いこなせるようになるのが良さそう。

  • PowerShell環境
    PS C:\Users\ryo> $PSVersionTable
    
    Name                           Value
    ----                           -----
    PSVersion                      5.1.14393.576
    PSEdition                      Desktop
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    BuildVersion                   10.0.14393.576
    CLRVersion                     4.0.30319.42000
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    SerializationVersion           1.1.0.1
  • 環境変数の確認/設定
    PS C:\Users\ryo> Get-ChildItem env:
    Name                           Value
    ----                           -----
    ALLUSERSPROFILE                C:\ProgramData
    APPDATA                        C:\Users\ryo\AppData\Roaming
    CommonProgramFiles             C:\Program Files\Common Files
    CommonProgramFiles(x86)        C:\Program Files (x86)\Common Files
    CommonProgramW6432             C:\Program Files\Common Files
    ... 省略
    環境変数の設定は以下のように行う。
    ## ダブルクォートを忘れないように
    PS> $env:NODE_ENV="production"
    ## 以下の方法はPowerShellでは動作しないので注意
    PS> set NODE_ENV=production
    set-item env:testVariable -value testValue の形式でも設定できるけど面倒なので上記の方法で行うと良い。
  • プロファイルの設定
    .bashrcや.zshrcのPowerShell版のようなもの。.ps1ファイルを任意のディレクトリに置いておくとPowerShell起動時に読込・反映してくれる。環境変数 $profile で読み込まれるファイルを確認できる。
    PS> $profile
    D:\Data\Users\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • シンボリックリンクの作成と削除
    PS> New-Item -Path . -Name a.symlink -Value a.txt -ItemType SymbolicLink
    PS> Remove-Item a.symlink
  • Emacsキーバインディング
    方法はいくつかあるようだが、PSReadLineを利用すると比較的簡単に実現できる。作者に感謝。

A bash inspired readline implementation for PowerShell

Windows10環境ならデフォルトでインストール済

If you are on Windows 10, PSReadline is already installed. Windows 10 RTM and the November update have version 1.1, later builds have version 1.2 (which includes vi mode). See below for how to upgrade.

PowerShellのプロファイルに以下を追記する。キーバインドも細かくしていできるので自分好みにカスタマイズすると良い。

if ($host.Name -eq 'ConsoleHost') {
  Import-Module PSReadline
  Set-PSReadlineOption -EditMode Emacs
  Set-PSReadlineKeyHandler -Key 'Ctrl+p' -Function HistorySearchBackward
  Set-PSReadlineKeyHandler -Key 'Ctrl+n' -Function HistorySearchForward
}

Windowsエクスペリエンスインデックス

Windows8.1以降ではエクスプローラーからWindowsエクスペリエンスインデックスの結果を閲覧できないようだ。インデックスを計算するツールは引き続き利用できるのでコマンドプロンプトかPowerShell上で実行、確認する。

## formalは全項目を検査、restartオプションでインデックスを再生成、cleanは過去のインデックス作成履歴を削除するオプション
## つまり以下のコマンドで現在のPC構成を検知、新規にインデックスを作成してくれる
PS> WinSAT.exe formal -restart clean
## 処理結果例
> CPU LZW 圧縮                                   675.80 MB/s
> CPU AES256 暗号化                               2068.20 MB/s
> CPU Vista 圧縮                                 1741.01 MB/s
> CPU SHA1 ハッシュ                                2217.16 MB/s
> ユニプロセッサ CPU LZW 圧縮                           168.98 MB/s
> ユニプロセッサ CPU AES256 暗号化                       517.25 MB/s
> ユニプロセッサ CPU Vista 圧縮                         437.30 MB/s
> ユニプロセッサ CPU SHA1 ハッシュ                        554.03 MB/s
> メモリのパフォーマンス                                  23931.61 MB/s
> Direct3D Batch のパフォーマンス                      42.00 F/s
> Direct3D Alpha Blend のパフォーマンス                42.00 F/s
> Direct3D ALU のパフォーマンス                        42.00 F/s
> Direct3D Texture Load のパフォーマンス               42.00 F/s
> Direct3D Batch のパフォーマンス                      42.00 F/s
> Direct3D Alpha Blend のパフォーマンス                42.00 F/s
> Direct3D ALU のパフォーマンス                        42.00 F/s
> Direct3D Texture Load のパフォーマンス               42.00 F/s
> Direct3D Geometry のパフォーマンス                   42.00 F/s
> Direct3D Geometry のパフォーマンス                   42.00 F/s
> Direct3D Constant Buffer のパフォーマンス            42.00 F/s
> ビデオ メモリのスループット                               81604.90 MB/s
> Dshow ビデオ エンコード時間                            1.13396 s
> メディア ファンデーション デコード時間                         0.05286 s
> Disk  Sequential 64.0 Read                   781.45 MB/s          8.3
> Disk  Random 16.0 Read                       767.93 MB/s          8.6
> 合計実行時時間 00:02:03.30

CPUなど各パーツのスループットが表示される。計算結果を従来のようにスコアで表示するにはPowerShellからコマンドで確認する。

PS> Get-CimInstance Win32_WinSAT
CPUScore              : 8.1                 
D3DScore              : 9.9                 
DiskScore             : 8.45                
GraphicsScore         : 8.8                 
MemoryScore           : 8.1                 
TimeTaken             : MostRecentAssessment
WinSATAssessmentState : 1                   
WinSPRLevel           : 8.1                 
PSComputerName        : 

VirtualBox

起動時のGNOME関連のエラー

VirtualBoxにCentOS 6.4の仮想マシンを構築して起動したときに、

The configuration defaults for GNOME Power Manager... not been installed correctly.

というエラーが出てGNOMEを起動できない場合は、CTRL+ALT+F2 を押してコンソールログイン後、yum で gnome-power-manager パッケージを入れ直してOSを再起動する。

$ sudo yum remove gnome-power-manager
$ sudo yum install gnome-power-manager
$ reboot

仮想ディスクの拡張

以下のサイトを参考にさせていただいた。あとでここにも整理する。
VitualBoxのディスク拡張

PortQry

Microsoft公式で配布しているポートスキャンツール。
Portqry.exe コマンド ライン ユーティリティの説明

Portqry.exe は、TCP/IP 接続の問題のトラブルシューティングに役立つコマンド ライン ユーティリティで、Windows 2000 ベースのコンピュータ、Windows XP ベースのコンピュータ、および Windows Server 2003 ベースのコンピュータで実行できます。このユーティリティでは、選択したコンピュータの TCP ポートと UDP ポートの状態を確認できます。

次のコマンドはホスト "example.com" に対してTCPポート22をLISTENしているか確認する。

portqry -n example.com -p tcp -e 22