Visual Studio 2022でビルド時に「機能 ‘再帰的パターン’ は C# 7.3 では使用できません。8.0 以上の言語バージョンをお使いください。」のエラーが出た時の対処

ChatGPTって便利ですよね。自分ではできないプログラミングも、チャット形式でヒアリングしていくうちに完成します。
ただChatGPTは実環境にてすぐに実行できるものを生成してくれるとは限りません。今回の場合は下記エラーが表示されました。

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー (アクティブ) CS8370 機能 '再帰的パターン' は C# 7.3 では使用できません。8.0 以上の言語バージョンをお使いください。 Test C:\Users\User\source\repos\Test\Test\ChatTest.cs 83

Visual Studio 2022にて新規プロジェクトを作成すると、C# 7.3として作成されてしまい、ChatGPTが作成したプログラムがC# 8.0のものだったので、上記エラーが表示されたようです。

対応としては、C# Project file (*.csproj)をメモ帳などで開きます。

そうすると <TargetFrameworkVersion>v4.8</TargetFrameworkVersion> といった.Net Frameworkのバージョン指定があるので、その下に改行して <LangVersion>8.0</LangVersion> を追加してあげればビルドできます。

自分の実力以上のことをしようとすると、思わぬところで躓きますね(笑)

Windows 10で2024年10月パッチを適用するとPDFアイコンが真っ白になった時の対応

燃え尽きたぜ。。。真っ白に。。。

そんなわけで、Windows Updateでパッチを適用したところ、PDFのアイコンが白い色に変ってしまいました。かっこいい!って思っていたんですが、エクスプローラーなど背景が白い場合、アイコンが見えないという罠。

PDFファイルを右クリックしてプロパティを開くと、そこはEdge標準のPDFアイコンが表示されており、一時的なキャッシュの不整合か何かで表示できていないだけのようですね。

戻し方は、PDFファイルのプロパティを開き、プログラムの右にある「変更」を押します。

そうすると「今後の .pdf ファイルを開く方法を選んでください。」と聞かれますが、変更せずにOKを押して、プロパティもOKを押して閉じます。

そうすると、Windows 10のEdge標準のPDFアイコンに戻りました。

Acrobat Readerなどを使っている人は、この事象は発生していないみたいですね。
もしかすると専用リーダー使えって事?

2024年にWindows 7 SP1やWindows Server 2008 R2をインストールした後に手動で当てるパッチ一覧

検証・確認のため、古いOSをインストールすることはよくあるかと思いますので備忘録。
Windows 7 SP1やWindows Server 2008 R2などを新規インストールした後、そのままではVMware ToolsやWindows Updateが実行できません。
VMToolsの場合は下記のエラーが出てしまい、インストールがロールバックされます

Windows セキュリティ:ドライバー ソフトウェアの発行元を検証できません。

VMware Tools のインストール:セットアップ中に、 VSock 仮想マシン通信インターフェイス ソケット ドライバを自動インストールできませんでした。ドライバを手動でインストールする必要があります。

VMware Tools のインストール:セットアップ中に、 メモリ制御ドライバを自動インストールできませんでした。ドラバを手動でインストールする必要があります。

Windows Updateは次のエラーが出て失敗します。

Windows Update:新しい更新プログラムを検索できませんでした。
このコンピューターで利用できる新しい更新プログラムを確認中にエラーが発生しました。
エラー:コード 80072EFE Windows Update で不明なエラーが発生しました。

この場合に手動で適用するパッチ一覧は下記となります。基本的には①のSha2だけ当ててもよいんですが、どうせならロールアップ含めて当てるべきかと思っています。③の後に再起動して④の適用です。

① KB4474419
SHA-2 code signing support update for Windows Server 2008 R2, Windows 7, and Windows Server 2008: September 23, 2019
https://www.catalog.update.microsoft.com/search.aspx?q=kb4474419

② KB4490628
Servicing stack update for Windows 7 SP1 and Windows Server 2008 R2 SP1: March 12, 2019
https://www.catalog.update.microsoft.com/search.aspx?q=kb4490628

③ KB3020369
April 2015 servicing stack update for Windows 7 and Windows Server 2008 R2
https://www.catalog.update.microsoft.com/search.aspx?q=kb3020369

④ KB3125574
Convenience rollup update for Windows 7 SP1 and Windows Server 2008 R2 SP1
https://www.catalog.update.microsoft.com/search.aspx?q=kb3125574

上記4つのパッチを当てると、Windows Updateも実施できるようになり、VMware Toolsのインストールもエラーが発生せずに完了します。

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