私はPowerShell ISEに、私が自分のISEプロファイル(私が持っている唯一のプロファイル)に追加したスクリプトをドットソーシングで用意しています。 ISEを開くと、読み込まれるスクリプトのバージョンは3.7.2
になります。ただし、現在のバージョンのスクリプト(ドットソーシングポイントのパス)は5.3
です。私のプロファイルにドットソース行をコピーして貼り付けてISEで実行すると、スクリプトは正しく5.3
と表示されます。私は自分のプロファイルからラインを削除しましたが、ISEがロードされてもコマンドが表示されます。Powershell ISE古いバージョンのスクリプトをロードしています
今、スクリプトがどこかにキャッシュされているようです。私はWindowsPowerShell \ Modulesフォルダをチェックしましたが、私はImportExcel
とWASP
のモジュールしか持っていません。私は最初にモジュールにしたことはありませんでしたが、どこにでも記載されているとは思いません。Get-Module
。現在、私のスクリプトの追加を参照している行は私のプロフィールから削除されており、$profile.Contains("Create-Cert")
はFalse
を返します。これは私には正しいファイルがロードされていることを意味しています。私が試したもう一つの点は、ドット・ソースの$profile
ISEでした。これは正常に実行されたようですが、ドット・ソースを$profile
にしていたかどうかにかかわらず、現在のバージョンはまだありませんでした。
Powershellがこのスクリプトのこの古いバージョンを保存している可能性がありますか?私はそれに参照するために私のコンピュータを検索しましたが、私は3.7.2
に一致する古いバージョンを見つけることさえできません。
編集:私が試みたもう一つのトラブルシューティングのステップは、プロファイルの名前を変更してISEを開くことでした。私がこれをしたとき、コマンドは私のコマンドリストに表示されなくなりました。Get-Help Create-Cert
はそれを見つけることができなかったのでエラーで戻ってきました。その後私のプロファイルの名前をMicrosoft.PowerShellISE_profile.ps1
に変更し、ISEを閉じて開いて、コマンドを再度3.7.2
にロードしました。それはコマンドがプロファイル自体に埋め込まれているのとほぼ同じですが、それは可能ではないと私は考えています。
もう1つ注意したいのは、このスクリプトはサーバー上に存在し、ローカルには存在しないことです。私はそれが問題ではないと思う、サーバはいつでもアクセス可能だが、おそらくその事実のために何かキャッシングがある。
編集2: Tom Collinsの推薦で、私は新しいプロファイルを作成し、自分のスクリプトに関する行だけを追加しました。今回はそれが機能しました。 ISEがロードされると、バージョン5.3
が正しく読み込まれました。私は古いプロファイルと新しいプロファイルの名前を入れ替えて、突然正しいバージョンを再度ロードしました。私は閉鎖をテストし、それを数回開き、毎回5.3
をロードしています。私はまだ実際にそれを修正したものの完全な喪失に瀕しており、誰かが深い説明を提供しようとするなら、私はもっと知りたいと思うだろう。
commandanalysisフォルダをクリアしましたか?私はこれが問題だとは思っていませんが、試してみる価値があります。それは 'C:¥Users¥YOURUSERNAME¥AppData¥Local¥Microsoft¥Windows¥PowerShell¥CommandAnalysis'にあります。 – Robin
@Robin私はこれまでにはなかったが、ただそれをクリアして、ISEをバックアップした。まだ3.7.2だった。とにかくありがとう。 – Malil
次のステップでは、元のプロファイルの名前を変更し、ISEをロードしてロードされていないことを確認してから、スクリプトを使って新しいISEプロファイルファイルを手作業で再構築します。これを新しいプロファイルファイルとして保存して、再度実行します。それがうまくいくと、元のプロファイルに古いスクリプトをロードしているものがあります。 –