【連載】

Windows 10で始めるBash

50 CPU情報をPowerShell経由で取得する

  • >
  • >>

50/50

Windows 10 Anniversary UpdateからサポートしたWSL(Windows Subsystem for Linux)。その結果としてWindows 10上でもBUW(Bash on Ubuntu on Windows)が動作し、各種Linuxコマンドが利用可能になった。本連載ではWSLに関する情報や、Bashから実行するシェルスクリプトを紹介する。

CPU情報をPowerShell経由で取得する

私事で恐縮だが、昨日新たな2-in-1 PCを購入し、Windows 10 Insider Preview ビルド16215に更新を行ってから、WSLの環境構築に取りかかったところ、ちょっとしたトラブルに出くわした。Bash.exeを起動するとWindowsストア経由でのダウンロードをうながされるため、指定されたURLにアクセスしたところ、Windowsストアで「WSL Linux」を検索するショートカットのようである。だが、そこにWSL用のUbuntuは並んでいないのだ。

ビルド16215上で新規にBUWのインストールを試みると、Windowsストア経由のダウンロードをうながされる

開発者向けカンファレンス「Build 2017」でアナウンスされたように、2017年9月リリース予定のWindows 10 Fall Creators Updateでは、Ubuntu以外にopenSUSEやFedoraといった、他のLinuxディストリビューションが利用可能になる。そのための布石と思われるが、インストールできないと何も始めることはできない。少々困っていたところで思い出したのが、lxrun.exeの存在だ。WSLのインストールやアンインストール、デフォルトユーザーの設定を実行するコマンドだが、「lxrun /install」で難なくBUWが使えるようになったのである。

コマンドプロンプトやWindows PowerShellから「lxrun /install」を実行して、BUWをインストールした

ただし、Windows PowerShell(以下、PowerShell)側の問題なのか、既定のUNIXユーザーアカウント作成プロセスに処理が進まず、ダウンロードスクリプトを1度中断する必要があった。未確認だがプロンプトを表示せずに処理を進める「/y」オプションを使えば回避できるだろう。ちなみにlxrun.exeのヘルプメッセージを確認すると、「Warning: lxrun.exe is only used to configure the legacy Windows Subsystem for Linux distribution. Distributions can be installed by visiting the Windows Store」との一文が加わっていた。単にインストールプロセスの変更に伴い、メッセージを加えたのだと推察する。

さて、今回はCPU情報をシェルスクリプトで取り出して見よう。Windows 10上で同情報を得る方法は多岐にわたるが、今回はWMI(Windows Management Instrumentation)のクラス「Win32_Processor」をPowerShell経由で呼び出すことにした。いつもどおり、任意のテキストエディターに以下の内容を入力し、必要に応じて出力先のパスなどを変更してから、chmodコマンドなどで実行権限を与えて動作を確認してほしい。

 #!/bin/bash

 IFS_Backup=$IFS
 IFS=$'\n'

 for Obj in `powershell.exe Get-WmiObject -Class Win32_Processor`; do
    case ${Obj} in
        Name* )
            StrName=$(echo ${Obj:20})
            echo "Name :" $StrName
            ;;
        Caption* )
            StrCPU=$(echo ${Obj:20})
            echo "Model:" $StrCPU
            ;;
    esac
 done

 IFS=$IFS_Backup

本シェルスクリプトを実行すると、Win32_Processorから取得した情報を元にCPUのモデル情報と名称を表示する。

シェルスクリプトの実行結果。CPU情報を出力した

前回のシェルスクリプトと基本的なロジックは同様だが、今回はcutコマンドではなく、変数展開を利用した。パフォーマンス的な差はないものの、可読性は少々向上したのではないだろうか。

<お知らせ>
ITソリューション検討Information

マイナビニュースのIT Search+では、ITソリューションの検討に役立つ情報を掲載しています。
ここでは、IT Search+の人気記事ベスト3をご紹介。ぜひ、ビジネスにお役立てください。

  • >
  • >>

50/50

インデックス

連載目次
第50回 CPU情報をPowerShell経由で取得する
第49回 DirectXおよびWDDMのバージョンを確認する
第48回 PCの稼働時間をWindows 10から取得する
第47回 Ubuntuのパッケージを管理する
第46回 Windows 10とWSLの最新バージョンをBashで取得する
第45回 米国本家のOfficeの最新バージョン情報もBashで取得する
第44回 インストール済みのOfficeバージョンを取得する
第43回 Office 2016の最新バージョン情報を公式サイトから取得する
第42回 1週間のファイルをISOファイルに書き込むシェルスクリプト
第41回 WSL上のLinuxディストリビューションを変更する
第40回 知ってますか今年の祝日? 国民の祝日自動取得シェルスクリプト
第39回 Bashから当日使ったファイルをWindowsのアプリケーションで開く
第38回 Findで当日使ったファイルを検索する
第37回 HTMLコードの出力シェルスクリプトをRowspan属性に対応させる
第36回 HTMLのTableタグ出力シェルスクリプトをColspanに対応させる
第35回 BashでHTMLのTableタグを楽に
第34回 ファイル名の大/小文字一括変更シェルスクリプトをオプションで制御する
第33回 規則に応じたファイル名の大/小文字化
第32回 拡張子を一括で小文字に統一するスクリプト
第31回 Googleカレンダーから情報を抜き出す
第30回 ドライブを占有するフォルダー容量をExcelで可視化する
第29回 ドライブを占有するフォルダー容量を「R」で可視化する
第28回 ドライブを占有するフォルダー容量をSparkで可視化する
第27回 ドライブを占有する容量をフォルダーごとに簡単確認
第26回 オプションを加え汎用性を高めたレジストリーキー比較スクリプト
第25回 Reg.exeの出力結果をカラフルにして見やすくする
第24回 Reg.exeの出力結果を比較する
第23回 getoptsを活用してイベントソース可視化を大幅に拡張する
第22回 BashからPowerShellを利用する
第21回 Windowsのイベントソースを可視化してオプションで表示を分ける
第20回 Windowsのイベントログを「Cut」で切り出し可視化する
第19回 PDFファイルを画像ファイル化する
第18回 PDFファイルから一括で大量の画像を抽出
第17回 複数PDFファイルから一括テキスト抽出
第16回 文章をMarkdown記法で整える
第15回 ファイル名ではなく内容判断で重複ファイルを削除するには?
第14回 整理整頓!空のフォルダを一括でデスクトップに移送する
第13回 フォルダの中のファイルを一括でPDFにするには
第12回 フォルダーの中のエクセル請求書ファイルを合計する
第11回 BashからExcelブックにアクセスする
第10回 時間軸でデスクトップを片付ける
第9回 散らかったデスクトップを片付ける
第8回 インターネットショートカットファイルを作成する
第7回 取得結果をCSVファイルやテキストファイルに出力する
第6回 Webページの情報をシェルスクリプトで取得する
第5回 case文でスクリプト内容を整理する
第4回 実行先のフォルダーを引数で指定する
第3回 ピクセルサイズに応じて画像ファイルをリサイズする
第2回 他の画像形式をJPEG形式に変更する
第1回 フォルダー内のJPEGファイルを連番でリネームする

もっと見る



人気記事

一覧

イチオシ記事

新着記事