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ファイルも再作成されます。

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

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のインストールもエラーが発生せずに完了します。