HPEサーバのSmart Storage Administratorで「After completing the configuration – reboot the system.」と表示された時の対処

Intelligent Provisioning 3.90 を久方ぶりにさわって戸惑ったのでメモ書き。

BIOS(UEFI)起動中にF10キーを押してIntelligent Provisioning(IP)を起動、メニューからSR Storage Administratorを選択してSmart Storage Administrator (SSA)を起動しました。
RAID設定をちょこちょこっと変更して終了(再起動)しようとしたところ下記メッセージに遭遇。

After completing the configuration – reboot the system.

変更が終わったら勝手に再起動してくれそうなメッセージですが、実は待っていても再起動してくれません・・・。対処としては、RAID構成が絶対書き込まれているだろう30分ぐらい放置して、電源リセットとなります。

普通のIPだと右上とかに [×] ボタンがあったりするんですが、SSAのメニューでは表示されないようです。バグっぽい気もしますが、最近はHPE MegaRAID MRコントローラーに移行していて MR Storage Administrator で管理する感じだから、このまんまですかね。

Office 展開ツールで「Couldn’t install – Error Code: 0-2054 (0)」が出た時の対処

Office 展開ツール (ODT)で凡ミスを行ったのでメモ書き。

Office 2021をインストールするためにOffice Deployment Toolをダウンロードしてsetup.exeに引数を渡して実行しました。そうするとエラーが発生。

Couldn’t install
The configuration file wasn’t specified.
Error Code: 0-2054 (0)

初めは混乱して、ネットワーク疎通を確認したり、ウイルス対策除外を行ったりいろいろしていましたが、普通にメッセージにエラー内容が書いてありました。
原因は 引数の設定もれ です・・・。残念。

実行しようとしたコマンドは
setup.exe PerpetualVL2021.xml
なんですが、正しくは下記でした。
setup.exe /configure PerpetualVL2021.xml

引数が漏れて実行していたという単純ミスです。もし私みたいに慌てて調べた方は、コマンドを再度ご確認ください。

Amazon Linux 2023でlogrotateが動作しない場合の原因と対処

普段Windowsしか知らない人間がLinuxを使ってみて躓いたので、その原因と対処を書いておきます。
ログローテーションの対象ログが、複数の設定ファイルで同じものが重複していると動作しません。

Linuxでは、ログファイルを毎日・毎週などで新しいファイルにして、ログ調査などを行いやすくすることが一般的です。そのやり方として、logrotateというデーモンで、指定したタイミングでログファイルを新しくしたり圧縮したりできます。

昔のLinuxでlogrotateは、cronで実行するものでしたが、最近はsystemdのタイマーで実行するようです。今回ローテーションさせるため、/etc/logrotate.d/rsyslogにローテーションさせたいファイルを書いて、1日放置してみたところ動作せずログがそのままでした。

タイマーが正しく動いていないのかと下記コマンドを実行。

$ sudo systemctl enable logrotate.timer

そのあとに有効なタイマーを確認するために下記を実行したところ、logrotatedがありませんでした。

$ sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2025-02-17 10:06:28 JST 24s left Mon 2025-02-17 10:05:26 JST 38s ago refresh-policy-routes@enX0.timer refresh-policy-routes@enX0.service
Mon 2025-02-17 13:47:26 JST 3h 41min left Sun 2025-02-16 13:47:26 JST 20h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2025-02-17 20:10:44 JST 10h left Mon 2025-02-17 00:31:26 JST 9h ago update-motd.timer update-motd.service
Mon 2025-02-24 00:47:48 JST 6 days left Mon 2025-02-17 00:43:26 JST 9h ago fstrim.timer fstrim.service

4 timers listed.
Pass –all to see loaded but inactive timers, too.

ステータスを確認しても、Activeとなっていませんでした。

有効にならない理由が分からないため、logrotateの設定が正しいか検証コマンドを実行してみることに。

$ sudo logrotate -dv /etc/logrotate.conf
WARNING: logrotate in debug mode does nothing except printing debug messages! Consider using verbose mode (-v) instead if this is not what you want.

reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file btmp
reading config file chrony
reading config file dnf
reading config file rsyslog
reading config file squid
error: squid:1 duplicate log entry for /var/log/squid/access.log
error: found error in file squid, skipping
reading config file wtmp
reading config file zabbix-agent
Reading state from file: /var/lib/logrotate/logrotate.status
Allocating hash table for state file, size 64 entries
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state
Creating new state

Handling 7 logs
(以下略)

そうすると、エラーとして「error: squid:1 duplicate log entry for /var/log/squid/access.log」が出ており、squidのログファイルを複数書いてしまっているのが原因でした。なんという凡ミス。

logrotateの設定ファイルを編集して、logrotateのstartとstatusをもう一度確認します。「Active: active」と表示されて正常に動作しました。

$ sudo systemctl start logrotate.timer
$ sudo systemctl status logrotate.timer
● logrotate.timer – Daily rotation of log files
Loaded: loaded (/usr/lib/systemd/system/logrotate.timer; enabled; preset: enabled)
Active: active (waiting) since Mon 2025-02-17 11:12:17 JST; 2s ago
Trigger: Tue 2025-02-18 00:00:00 JST; 12h left
Triggers: ● logrotate.service
Docs: man:logrotate(8)
man:logrotate.conf(5)

Feb 17 11:12:17 al2023sv systemd[1]: Started logrotate.timer – Daily rotation of log files.

タイマーが開始されたので、ログローテーションされたかをlsで確認します。

$ sudo ls -al /var/log
total 4716
drwxr-xr-x 8 root root 4096 Feb 17 10:19 .
drwxr-xr-x. 19 root root 269 Feb 13 10:49 ..
lrwxrwxrwx. 1 root root 39 Dec 19 16:08 README -> ../../usr/share/doc/systemd/README.logs
drwx——. 9 root root 23 Feb 13 10:21 audit
-rw-rw—-. 1 root utmp 384 Feb 14 13:14 btmp
drwxr-x—. 9 chrony chrony 108 Feb 17 10:19 chrony
-rw-r—–. 1 root adm 11403 Feb 14 13:45 cloud-init-output.log
-rw-r—–. 1 root adm 467265 Feb 14 13:45 cloud-init.log
-rw-r–r–. 1 root root 598495 Feb 17 00:45 dnf.librepo.log
-rw-r–r–. 1 root root 276279 Feb 17 00:45 dnf.log
-rw-r–r–. 1 root root 60566 Feb 17 00:45 dnf.rpm.log
-rw-r–r–. 1 root root 3859 Feb 17 00:45 hawkey.log
drwxr-sr-x+ 3 root systemd-journal 46 Feb 13 10:21 journal
-rw-rw-r–. 1 root utmp 292299 Feb 14 15:58 lastlog
-rw——- 1 root root 0 Feb 17 10:19 maillog
-rw——- 1 root root 0 Feb 13 10:49 maillog-20250217
-rw——- 1 root root 4624 Feb 17 10:19 messages
-rw——- 1 root root 3290421 Feb 17 10:11 messages-20250217
drwx——. 9 root root 6 Dec 19 16:08 private
-rw——- 1 root root 850 Feb 17 10:19 secure
-rw——- 1 root root 41075 Feb 17 10:11 secure-20250217
-rw——- 1 root root 0 Feb 17 10:19 spooler
-rw——- 1 root root 0 Feb 13 10:49 spooler-20250217
drwxrwx— 9 squid root 94 Feb 17 10:19 squid
-rw——-. 1 root root 0 Dec 19 16:08 tallylog
-rw-rw-r–. 1 root utmp 18439 Feb 14 15:58 wtmp
drwxr-xr-x 9 zabbix zabbix 65 Feb 17 10:19 zabbix

日付が入ったフィルが出来ており、問題なさそう。

念のため、タイマーのリストも再度確認。こちらも問題なく追加されていました。

$ sudo systemctl enable logrotate.timer
$
$ sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2025-02-17 10:15:26 JST 7s left Mon 2025-02-17 10:14:26 JST 52s ago refresh-policy-routes@enX0.timer refresh-policy-routes@enX0.service
Mon 2025-02-17 13:47:26 JST 2h 32min left Sun 2025-02-16 13:47:26 JST 21h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2025-02-17 20:10:44 JST 8h left Mon 2025-02-17 00:45:26 JST 10h ago update-motd.timer update-motd.service
Tue 2025-02-18 00:00:00 JST 12h left Mon 2025-02-17 10:12:17 JST 3min 1s ago logrotate.timer logrotate.service
Mon 2025-02-24 01:15:09 JST 6 days left Mon 2025-02-17 00:43:26 JST 10h ago fstrim.timer fstrim.service

5 timers listed.
Pass –all to see loaded but inactive timers, too.

logrotateさせるファイルを複数書くと、そもそもlogrotateが動作しないんですね。有効なところまで動作してくれてもいいのにとは思いますが、重複しているどちらが優先かシステム的には分からないのでこういった動作になるんでしょうか。
何はともあれ、単純にヒューマンエラーなので、設定のチェックなどが重要ですね。

PowerShell ISEで実行環境をWindows PowerShell 5からPowerShell 7に変更する方法

Windows標準で導入されていて、ちょっと検証するだけなら便利なPowerShell ISEですが、実行するバージョンが標準ではWindows PowerShell 5までとなっています。これをPowerShell 7でする方法が紹介されていたので試してみました。

Using PowerShell 7 in the Windows PowerShell ISE
https://blog.ironmansoftware.com/using-powershell-7-in-the-windows-powershell-ise/

まず、端末にPowerShell 7をインストールしていない場合、MSIパッケージなどで新規導入します。ダウンロードサイトは下記となり、今回は「PowerShell-7.5.0-win-x64.msi」をインストールしました。

Windows への PowerShell のインストール

ダウンロードしたファイルを実行して、そのまま進めていけば導入は完了します。途中のOptional Actionsの下二つに、必要があればチェックを入れてください。
「Add ‘Open here’ context menus to Explorer」にチェックw入れると右クリックのコンテキストメニューに「PowerShell 7」を追加され、「Add ‘Run with PowerShell 7’ context menu for PowerShell files」にチェックを入れると右クリックのメニューに「PowerShellで実行」が追加されます。

導入が完了したら、スタートメニューを押して「PowerShell ISE」と入力、PowerShell ISEを実行します。初期状態ではプロファイルがないため、下記で紹介されているコマンドを実行します。
Windows PowerShell ISE でプロファイルを使用する方法

if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }

次に作成したプロファイルを編集するため、「psEdit $PROFILE」と入力して実行します。するとプロファイルが自動的に開かれて編集可能となります。

psEdit $PROFILE

開かれたプロファイルに、サイトで紹介されていた下記を貼り付けて保存すれば完成です。

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Clear()
$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Switch to PowerShell 7", { 
        function New-OutOfProcRunspace {
            param($ProcessId)

            $ci = New-Object -TypeName System.Management.Automation.Runspaces.NamedPipeConnectionInfo -ArgumentList @($ProcessId)
            $tt = [System.Management.Automation.Runspaces.TypeTable]::LoadDefaultTypeFiles()

            $Runspace = [System.Management.Automation.Runspaces.RunspaceFactory]::CreateRunspace($ci, $Host, $tt)

            $Runspace.Open()
            $Runspace
        }

        $PowerShell = Start-Process PWSH -ArgumentList @("-NoExit") -PassThru -WindowStyle Hidden
        $Runspace = New-OutOfProcRunspace -ProcessId $PowerShell.Id
        $Host.PushRunspace($Runspace)
}, "ALT+F5") | Out-Null

$psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add("Switch to Windows PowerShell", { 
    $Host.PopRunspace()

    $Child = Get-CimInstance -ClassName win32_process | where {$_.ParentProcessId -eq $Pid}
    $Child | ForEach-Object { Stop-Process -Id $_.ProcessId }

}, "ALT+F6") | Out-Null

一度PowerShell ISEを終了させて、もう一度PowerShell ISEを実行すると、上部メニューのアドオンの所に“Switch to PowerShell 7”が追加されており、そちらをクリックすることでWindows PowerShell 5からPowerShell 7に切り替えることが出来るようになります。

PowerShell 7の方が、対応している.NETバージョンが新しいため、色々なことを試せるかと思います。本格的に作るまでもないようなものは、OS標準のISEで実行するのはアリですね。

ぷらっとホームさんよりAmazonギフト券と粗品をいただきました

ぷらっとホームさんの「メルマガの評価」に回答したところ、Amazonギフト券500円分と、タオルの粗品をいただきました。ありがとうございます。

ネットワークやアプライアンス系に強い印象のあるぷらっとホームさんですが、実は上場企業なのです。知ってました?!私はお恥ずかしながら知らず、ちょっと前に初めて知りました。
いろんなデータセンター等で、ぷらっとホームさんの製品が増えたかどうかで、業績が予想できそうですね。株価の予測にも使えるかも?(笑)

タオル、ありがたく使わせていただきます!

銀行振込で誤振り込みをしたので組戻しをしたけどできなかった話

日々、ネットでの取引はクレジットカード決済を行うことが多いとは思いますが、私の持っているJCBクレカは海外資本の会社では対応しておらず、銀行振込を行ったりします。
国内資本の会社では、ほとんど使えるので不便ないんですが。やっぱりJCBよりVISAの方が世界中どこでもだいたい使えて便利ですよね。今さら変えるのめんどいけどそのままにしていました。

そんな中、銀行振込を金曜日の夜中2時に、寝ぼけながらペペッと行いました。
6万円ほどをポチポチっと。
そして週が明けて月曜日に、状況を確認すると未入金のため取引不成立となっていることを確認。

再度、サイトで振込の画面を見ると、全く違う会社が表示されていました。
どうやら間違えちゃったようです。てへぺろ。

メーンバンクは楽天銀行のため、楽天で組戻し方法を調べます。
https://help-personal.rakuten-bank.net/%E7%B5%84%E6%88%BB%E3%81%97%E6%89%8B%E7%B6%9A%E3%81%8D%E3%81%A8%E3%81%AF%EF%BC%9F-644b26f78d41b9001bbcd23b

電話で口座番号などを入れて、オペレーターに組戻しをしたいと伝えて、どの時間のいくらの振込かと相手の名前を伝えるだけで、組戻しは対応していただけるようです。
手数料880円かかり、返金はされない場合でも手数料なので徴収されます。手続き結果はメールで知らせてくれるとのことなので結果を待ってました。

しばらく3日ほど待つと楽天銀行より下記のようなメールが届きました。

[重要]楽天銀行よりご連絡

楽天銀行カスタマーセンターでございます。
平素は当行をご利用いただきまして誠にありがとうございます。

先般承りました組戻依頼につきまして、お手続きができず
組戻不可となりました。

誠に恐れ入りますが、不可事由の詳細につきましては
お答えいたしかねますのでご了承ください。

なお、組戻手数料を徴収させていただいております。
大変お手数ではございますが、ログイン後の画面から
入出金明細をご確認ください。

ご不明点等ございましたら、当行カスタマーセンターまでご連絡ください。
0120-776-910 携帯電話・PHS等からは 03-6832-2255(通話料有料)
受付時間:9:00-17:00(年末年始を除く)

今後とも、楽天銀行をご愛顧いただきますようお願い申し上げます。

うん、終わった・・・。

ちなみに、相手は法人だったため法人名を下記で調べて直接連絡しようとしました。
しかしこちらでは会社名がヒットせず、すでに清算・解散・破産等をした存在しない会社のようでして、完全に泣き寝入りです・・・。

■国税庁 法人番号公表サイト
 https://www.houjin-bangou.nta.go.jp/
■労働保険適用事業場検索
 https://chosyu-web.mhlw.go.jp/LIC_D/workplaceSearch
■オンライン登記情報検索サービス
 https://www.touki-kyoutaku-online.moj.go.jp/ToukiGateway/search
■TDB企業サーチ
 https://www.tdb.co.jp/service/u/1000.jsp

裁判すれば取り返せるらしいんですが、相手の住所がわからないためまずそこから調査したり、そもそも裁判も時間がかなりかかるのと、5万円ほど費用もかかるようです。
6万円を取り返すのに5万円を使うってのもあれでして、泣き寝入りコースです・・・。

そんなわけで、組戻しを行ってみましたが、取り返せずに終了しました!

OS起動後やアプリ起動時に「You must install or update .NET to run this application.」と表示される事象の対応

OS再起動後にログオンすると下記が表示されました。

WindowsWidgets.WinUI.exe
You must install or update .NET to run this application.

Sounload it now

どうやらこのメッセージは、アプリケーションが起動するときに、OSにインストールされている.NET Frameworkのバージョンが低い場合に表示されるようです。
私の場合は、SSDメーカーの状態チェックツールが自動アップデートされ、ログイン時に実行されて表示されていました。

対応としては、素直にSounload it nowを押すと、インターネットで公開されている.NET Frameworkのダウンロードサイトに飛ぶので、ダウンロードしてインストールしてあげれば完了です。

DISMで関連付けをインポートするときに「エラー: 5 既定の OEM 関連付けファイルとしてイメージに保存できませんでした。」と表示された時の対処

Windowsにログオンしているユーザで関連付けを修正して、今後新規でログオンするユーザ全てに反映するためにデフォルトユーザに関連付けを上書きをよくします。
現在Administratorでログオンしている場合に、下記コマンドで関連付けをエクスポートして、デフォルトにインポートといったシナリオです。

Dism /Online /Export-DefaultAppAssociations:”C:\AppAssoc.xml”
Dism /Online /Import-DefaultAppAssociations:”C:\AppAssoc.xml”

インポート時に、下記のようなアラートが表示される場合があります。

展開イメージのサービスと管理ツール
バージョン: 10.0.22621.1

イメージのバージョン: 10.0.22621.963

エラー: 5

C:\AppAssoc.xml を既定の OEM 関連付けファイルとしてイメージに保存できませんでした。
詳細については、ヘルプを参照してください。

DISM ログ ファイルは C:\Windows\Logs\DISM\dism.log にあります

このエラーは、関連付けを保存しているOEMDefaultAssociations.xmlに書き込みができなかった場合に良く表示されます。対処としては、エクスプローラーで C:\Windows\System32 を開き、OEMDefaultAssociations.xmlを削除します。

ファイル削除後、もう一度インポートのコマンド
Dism /Online /Import-DefaultAppAssociations:”C:\AppAssoc.xml”
を実行すれば、インポートも成功して、削除したOEMDefaultAssociations.xmlファイルも再作成されます。

その後、新規ユーザでログオンしてみて、関連付けや既定のアプリが意図したものになっているか確認して完了です。