S. *_*ell 32 powershell powershell-module powershell-5.0
我创建了一个模块'ActiveDirectory.psm1',其中包含powershellv5中的一个类.我将该模块导入另一个名为"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);
Run Code Online (Sandbox Code Playgroud)
这一切都按预期工作但是当我对ActiveDirectory.psm1进行更改并保存更改时,它们不会立即反映出来.即如果ActiveDirectory.psm1包含:
write-verbose 'do something';
Run Code Online (Sandbox Code Playgroud)
如果我改变它
write-verbose 'now the script does something else';
Run Code Online (Sandbox Code Playgroud)
输出仍然是"做某事"
我猜它已经将模块存储在内存中并且没有重新加载它因此错过了我所做的更改.我需要运行什么命令才能加载最新保存的模块版本?
小智 6
根据我收集到的信息。Import-Module 不导入类。您必须使用“using module ”,并且它必须位于脚本的第一行。最重要的是,这些类似乎以某种深奥的方式“缓存”,排除了任何卸载模块或删除模块选项。我发现我基本上需要重新启动我的 powershell 终端才能清除它。
如果不涉及类,请使用 import-module 或 install-module。在这两种情况下,您都可以执行 get-modules -all 或 get-installedmodule,然后删除模块或卸载模块。您需要确保查找所有版本并通过管道将其删除/卸载,以确保清除所有内容。
| 归档时间: |
|
| 查看次数: |
22357 次 |
| 最近记录: |