Powershellv5のクラスを含むモジュール「ActiveDirectory.psm1」を作成しました。 「test.ps1」という別のファイルにそのモジュールをインポートし、クラスからメソッドを呼び出しています。
test.ps1には次が含まれます。
using module '\\ser01\Shared\Scripts\Windows Powershell\modules\ActiveDirectory\ActiveDirectory.psm1'
Set-StrictMode -version Latest;
$AD = [ActiveDirectory]::New('CS');
$AD.SyncGroupMembership($True);
ActiveDirectory.psm1に変更を加えてすぐに反映されない変更を保存すると、すべて正常に機能します。つまり、ActiveDirectory.psm1に以下が含まれている場合:
write-verbose 'do something';
に変更した場合
write-verbose 'now the script does something else';
出力は「何かをする」ままです
私はそれがモジュールをメモリに保存していて、それをリロードしないので、私が行った変更が欠けていると推測しています。モジュールの最新の保存バージョンをロードするには、どのコマンドを実行する必要がありますか?
インポートモジュール 'E:\ xxx.ps1' -Force
この問題に遭遇した他の人については、 https://github.com/PowerShell/PowerShell/issues/2505 をご覧ください。
複雑さの初歩的なレベルを超えるモジュールのインポートに関する既知の長年のバグがあるようです(たとえば、更新に失敗する単一のクラスとクラスメソッドを持つモジュールがあります)。