Process Explorerを起動しようとして「Not able to run on this version of Windows」エラーが表示された時の対処

今はもうほぼ使われていないとは思いますが、Windows 7、Windows Server 2008 R2でプロセス詳細を調べようとしたときに下記エラーが表示されることがあります。

Not able to run on this version of Windows: Missing function: winsta!WinStationConnectW
Not able to run on this version of Windows: Missing function: winsta!WinStationShadow
Not able to run on this version of Windows: Missing function: winsta!WinStationGetProcessSid

このエラーの後に下記「Sysinternals Process Explorer は動作を停止しました」と表示されます。

これは新しいProcess Explorerを起動しようとしており、OSにパッチが当たっていないためAPIが見当たらず起動できないという事象です。
解消するには、OSへパッチを2つ適用する必要があります。パッチ適用後、OS再起動が必要です。

Windows 7 for x64-based Systems (KB3033929)
https://www.microsoft.com/en-us/download/confirmation.aspx?id=46148
Windows 7 for x64-based Systems (KB2758857)
https://www.microsoft.com/en-US/download/confirmation.aspx?id=35936

パッチ適用後、Process Explorerが起動するようになりました。

Process Explorerでプロセスの詳細を調べたいのに、パッチが当たっていないとOS再起動が必要となりプロセスが初期化されてしまうという、本末転倒な事態になってしまいます。パッチは定期的に適用するか、もしくは古いProcess Explorerが必要です。

古いProcessExplorerはWebArchiveなどで入手できると思います。下手なところから落とさず下記こちらがおすすめです。
・Process Explorer v11.33
https://web.archive.org/web/20100103100904/https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

WindowsにPythonを導入して生成AI「Llama 3 Youko」を実行してみた

最近、巷では生成AIが盛んだとか。いや、もうすでに乗り遅れている感じが満載ですが、まだいけるはず!ChatGPTが公開されてから盛んですよねー。
そんな訳で、生成AIをWindows 11のマシンで試してみました。

まず必要となるのは、GPUが搭載されたマシンだとか。でも手元にないので、テキトーな仮想マシンを立ち上げてからテスト的に実施してみます。
そう、私はまだスタートラインにすら立っていないという。ボーナスが入ればきっと。。。
セットアップしたのは、CPU:2core、メモリ:16GB、HDD:480GBな環境です。

最初に、基本となる Python の導入です。導入バージョンは古いほうがいろいろ組み合わせ上サポートがあるらしく、最新のものが良いというわけではないとか。
そのためPython 3.10.11をダウンロードしてインストールしてみました。

https://www.python.org/downloads/windows/
https://www.python.org/ftp/python/3.10.11/python-3.10.11-amd64.exe

インストールが完了した後、自動的に環境変数のパスにpythonインストールディレクトリが登録されます。ただ即座に反映はしないようなので、一度サインアウトをするか、PCの再起動を実施したほうがよさそうです。
ソフトウェア導入すると大体再起動すると思いますが。次に使うコマンドpipが実行できなくて焦ったのは私だけ・・・(笑)

そのあとに、Pythonで使用するパッケージのインストールを、コマンドプロンプトを起動させて実行します。

今回は仮想なので実施しませんが、GPUがある場合はドライバ最新化とかも必要なようです。
nVIDIAなどの場合は、下記からcuDNN for CUDAも導入するとか。
https://developer.nvidia.com/cudnn-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local

導入したら、スタートメニューからpythonをクリックして実行させます。
今回実施してみる生成AIは、FacebookのMetaが開発したLlama-3に、昔Microsoftでよく見た女子高生bot「りんな」の学習を追加したLlama 3 Youko 8B Instructというものです。
https://huggingface.co/rinna/llama-3-youko-8b-instruct

何かよくわかりませんが、量子化というのがされているらしく、GPUのメモリが少なくても動作するようになっているらしいです。
今回の環境はGPUがないので、それでどこまで動くかがポイントでしょうか。

Llama 3 Youkoは、サイトに記載されているサンプルそのままを、起動したpythonへ貼り付けて実行です。
貼り付けした時に複数行の警告が出ますが、そのまま貼り付けさせました。

そうすると下記のような、良くわからない警告が表示されます。今回は実行できているので無視しましたが、eos_token_idというのを指定してあげないとだめって感じのことが書かれてます。そのうち調べる(たぶんやらない)リストへ追加です。

The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input’s attention_mask to obtain reliable results.
Setting pad_token_id to eos_token_id:128001 for open-end generation.
The attention mask is not set and cannot be inferred from input because pad token is same as eos token. As a consequence, you may observe unexpected behavior. Please pass your input’s attention_mask to obtain reliable results.

実行結果ですが、1時間20分ほどかかり、下記が出力されました。めちゃくちゃ時間がかかりますが、CPUだけでも文字生成できるのはすごいですね!

西田幾多郎(にしだきわたろう、1870年 – 1945年)は、日本の哲学者であり、京都大学教授を務めた人物です。
彼は「純粋経験」という概念を提唱し、現代日本哲学において最も重要な思想家の一人とされています。西田は、知識や認識が外部世界に基づくものではなく、むしろ主体的な経験によって生じるという考え方を示しました。この考え方は、現代の認知科学や脳神経科学にも影響を与えていると言われています。
また、西田は倫理学においても独自の立場を確立し、「善」の概念を再定義したことで知られています。彼の哲学は、戦後の日本哲学界に大きな影響を与えたと評価されており、その業績は現在でも広く研究され続けています。

ちなみにノートパソコンでも実行してみました。
CPU:Intel Core i5-1135G7 (4c/8T)、メモリ:23.7GB(24GB)な環境で、同じコマンドを実行すると10分程度で完了します。CPUだけでも、coreがたくさんある環境であればそこそこ動きそうです。

普通に安いグラフィックカードを使ったほうが、もっと早いんでしょうけどねー(笑)
自分でやるのは楽しいけど、普通にChatGPTなどのサービス利用していたほうが、日々進歩していくので楽かもです。

gpupdateにてグループポリシー更新時に「内部システム エラーのため、グループ ポリシーの処理は失敗しました」と表示された時の対処

何時からかは分かりませんが、コマンドプロンプトにて「gpupdate /force」を実行するとコンピューターポリシーの更新で下記が表示されるようになりました。

内部システム エラーのため、グループ ポリシーの処理は失敗しました。特定のエラー メッセージについては、グループ ポリシーの操作ログを参照してください。次の更新サイクルで、グループ ポリシーの処理が再試行されます。

色々やってみたところ、グループポリシーのファイルまではSYSVOLからコピーできていますが、レジストリに反映するところでコケていそうなことが判明しました。
そのため下記対応で改善しています。ただし本当に困っているときのみやってみてください。

1.まずレジストリエディタ (regedit.exe) を起動して次の場所を開きます。
コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft
2.「Microsoft」を右クリックして「アクセス許可」を開きます。
3.下にあるボタン「詳細設定」を開き、上の”所有者”の右にある「変更」を押して自分のアカウントに変更します。
そして下の「子オブジェクトのアクセス許可エントリすべてを、このオブジェクトからの継承可能なアクセス許可エントリで書き換える」にチェックを入れて、OKで閉じます。
4.”アクセス許可”に戻るため、上にある「Authenticated Users」を選択、下で「フルコントロール」にチェックを入れて「OK」で閉じてやりました。

やってやったぜ!セキュリティも糞もないノーガード戦法です。

ITでご飯を食べている人間とは思えないような対応ですが、しょせんは自分のPCなので無問題ですよ。

HPE MSAストレージのハードディスク(SAS)ファームアップデートを行ってみた

HPE MSA 1050 / MSA 2050 共有ストレージに搭載しているSAS ストレージ ディスクファームウェアのアップデートを行ってみました。
少し引っかかる点としては、ID名がmanageの場合はリモート作業ができないということです。実はこれに引っかかって2日ぐらい悩んでました(笑)

昔の製品名MSA P2000 G3の時、管理 (manage) と監視 (monitor) の2種類のIDがありました。現在の最新MSAでは、manageでログインするとまずパスワードの初期設定が表示され、昔の!manageデフォルトパスワードはパスワードルール上再設定できないようになっています。
そしてそのmanageだと、Telnet/FTPなどリモートログインは許可されていても、ファームアップデートのツールでログオンできませんでした。
セキュリティ上の理由でしょうかね?

まずストレージのファームは下記から型番を入力して絞り込みます。今回はWindowsで実行できるものをダウンロードしています。
Hewlett Packard Enterprise サポートセンター – HPE MSA 1050
Hewlett Packard Enterprise サポートセンター – HPE MSA 2050

ダウンロードしたファイルを実行するとHPEパッケージセットアップが表示されるので「インストール」を押します。

パッケージが回答されると、ファームアップデートの画面になります。ここでのユーザー名にmanageが使えません。事前に別の管理者IDを発行してください。
IPアドレス、ユーザー名、パスワードを入力して「続行」を押します。

HDDのファームが古いものがあるか自動的に調べて、古いものがある場合は“最新ではありません”と表示されます。内容を確認して「インストール」を押します。

しばらく待つと、ドライブのフラッシュが完了します。
正常に完了したことを確認して「閉じる」を押してください。

企業メールアドレスでMicrosoftアカウントを作成・登録しようとして「職場や学校のメール アドレスを使ってサインアップすることはできません」と表示された時の対処

企業ドメインをOffice 365(Microsoft 365)のメールとして使用している場合はメールアドレスのID管理がAzure ADが行うため、同じメールアドレスでMicrosoftアカウント(Microsoft Passport、Windows Live ID)の新規登録を行おうとすると下記エラーが表示されます。

職場や学校のメール アドレスを使ってサインアップすることはできません。Gmail や Yahoo! などの個人用メールを使うか、新しい Outlook メールを作成します。

You can't sign up here with a work or school email address.

職場または学校アカウント(Azure AD)は会社が作成して会社が管理、Microsoftアカウントは個人が作成して個人が管理するものであり、どちらも作成可能だとユーザーに分かりにくくなります。
そのため2016年9月に、職場または学校アカウントに登録されるたドメインと同じものは、Microsoftアカウントで登録しようとすると警告表示されるようになりました。

ただ2020年7月現在、Microsoftが提供しているサービスすべてがAzure ADに対応しておらず、従来のMicrosoftアカウントをログインIDとして使用しているものがあります。
そのサービス登録をしようとすれば、通常では作成できないMicrosoftアカウントが作成できます。

対象のサービスは下記です。Microsoft検索エンジンBingのキーワード広告を行うサービスです。下記リンクをクリックして「Sing up now」から企業メールアドレスを入力すればMicrosoftアカウント作成できました。
Microsoft Advertising

WindowsマシンでNginxを使ったリバースプロキシを設定してみた

nginx(エンジン エックス)はApacheと同じようなWebサーバのアプリケーションで、すでに世界中で使われています。
今回、このアプリケーションを使用してリバースプロキシをテストしてみたので、それをメモ書きしておきます。

Windows版はdownloadから nginx/Windows-1.19.1 といった命名規則のものをクリックしてダウンロードします。ダウンロードしたファイルはC:\などにそのまま展開してしまえばOKです。

Nginxの起動は、下記プログラムを実行すれば大丈夫です。
C:\nginx-1.19.1\nginx.exe

リバースプロキシとしての設定は、メモ帳で conf\nginx.conf を開き、下記赤字のものを記載すれば動作しました。

http {
include mime.types;
default_type application/octet-stream;

sendfile        on;

keepalive_timeout  65;

server {
    listen       80;
    server_name  localhost;

    location / {
        root   html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    location  /reverse-proxy {
            rewrite /reverse-proxy/(.*) /$1  break;
            proxy_pass         http://192.168.0.31;
            proxy_redirect     default;
            proxy_cookie_path /site/Web/ /reverse-proxy/site/Web/;
    }
}
}

個人的にはまったのはproxy_cookie_pathの設定で、Webアプリケーションでクッキーを書き込んでいるんですが、その時のアドレスとリバプロ経由のアドレスが違うため、設定したクッキーが読み込めずにログインできなくなりました。
ブラウザ[F12]キーで開発者ツールを起動させ、リクエスト・レスポンスヘッダなどを眺めていたらパスが違うことに気づき、書き換えて無事に処理完了。

書き方は公式サイトのモジュールproxy_cookie_pathに詳しくあります。

ノートパソコンの動作が遅いのは発熱が間に合っていないだけでした

某社で使用しているPCはNEC製2019年モデルなんですが、年式が新しいのに昼すぎると非常に動作が遅くなります。操作が1テンポ遅れるなんてものは普通で、チャット・会議ツールの Microsoft Teams なんかはチャットやチームの切り替え自体にも非常に待たされてストレスでした。

何が原因かわからずそのまま使っていたんですが、さらに最近動作が遅くなり、タスクマネージャーを起動して眺めていたらおかしなことに気づきました。
論理プロセッサ数が4なのに24%しか発揮していません。つまり1つだけの動作。
そして速度は0.39GHzという、1998年3月に発売されたPentiumII 400MHzなみです。

さすがにこれは遅すぎる(笑)

まずは電源設定を疑い、下記を参照して「高パフォーマンス」を表示させて選んでみました。Powershellで下記を実行するだけです。
powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
Windows 10の電源オプションに「高パフォーマンス」「究極のパフォーマンス」を追加する

ただし今回の場合は、一瞬速度は上がりますが、余計に遅くなりました。
放熱面のキーボード面が非常に熱くなっており、間違った設定をしたようです。

根本解決としては、ファンレスのノートPCに、USB扇風機で風を当ててあげるとCPU速度が速くなりました。ファンレスでSSDという今どきのPCでしたが、とんだ罠です。クロックも無事に基本速度以上が出るようになりました。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

サンワサプライ USB扇風機 USB−TOY64N
価格:858円(税込、送料別) (2020/7/6時点)

使用しているUSB扇風機はこちらのモデルです。
ノートPCの奥の両端に、ホチキスの芯が入っている箱を2つ置いて後ろを浮かせるのもポイント。右斜めから風を当てて、手汗もかきにくくなり一石二鳥ですよ!

UPS Network Mngmt Moduleに割り振られたDHCPアドレスを調べる方法

HPE UPS R/T3000 G5(Q1L85A)にUPS ネットワークマネージメントモジュール(Q1C17A)を増設後、DHCPで割り当てされたIPアドレスを調べるのに手間取ったのでメモ書きです。

まず簡単な方法は、クライアントやサーバなどにHPEPP(HPE Power Protector)を導入して同じセグメントに接続、クイックスキャンしてしまう方法です。
HPEPPは下記から新しいものをダウンロードします。
HPE Power Protector – Windows

クライアントでインストールしたら、ブラウザで下記を開き、クイックスキャンを選択すれば同じセグメントにあるUPSを探してくれます。
http://127.0.0.1:4679/default.html
•ユーザー名 = admin
• パスワード = admin

もう一つの方法は、UPSマネージメントモジュールについてきたmicro USBを使用する方法です。

UPSネットワークマネージメントモジュールの上にある Settings UPS DATA にmicroUSBを接続、もう片方をクライアントに接続してTeraTermなどのターミナルソフトで接続して開きます。
そうすると下記が表示されるので、初期IDとパスワードを入力します。
•ユーザー名 = admin
• パスワード = admin

Welcome to the HPE UPS Network Module
ups-98-F2-C6-75-3B-23 login: admin
Password:

ログオンに成功したら netconf -4 コマンドを実行すればIPアドレスが確認できます。

---------------------------------------------
        Hewlett Packard Enterprise
        Single Phase 1Gb UPS Ntwrk Mgmt Mod
        Version 1.5.7

        Connected from USB serial
        This session will be automatically closed after 120 minutes or 15 minutes of inactivity.

Appropriate use:
 (a) you are accessing a private or government system.
 (b) this system usage may be monitored, recorded, and subject to audit.
 (c) unauthorized use of this system is prohibited and subject to criminal and civil penalties.
 (d) use of this system indicates consent to monitoring and recording.

---------------------------------------------
 Welcome to the Command Line Interface
 * To know the list of commands press [?]
 * If you need help enter [help]
---------------------------------------------

admin@ups-98-F2-C6-75-3B-23> netconf -4
IPv4:
  Mode     DHCP
  Address  192.168.253.18
  Netmask  255.255.255.0
  Gateway  192.168.253.1
admin@ups-98-F2-C6-75-3B-23>

netconfコマンドでIPアドレスの設定もできますが、私のようなアマチュアはGUIでなければミスが多いので、IPアドレスを確認後、Webでアクセスして各種設定を変更すれば完了です。