带有导入模块的 Powershell 运行 脚本

Powershell run script with Import-Module

我为我的管理员组创建了一个模块,其中包含一些功能,可以自动执行我们经常执行的一些过程(将管理员添加到远程机器、C 盘清理等...)

这些功能的先决条件之一是生成一系列 7 个凭据,每个凭据对应我们工作的每个域。

有没有办法在您导入模块时将脚本块添加到 运行,或者这是我应该添加到每个人的个人资料中的内容吗?

一位评论者提到我可以将它添加到 module.psm1 文件中,但这没有用。这是我正在尝试 运行.

的代码
$creds = Import-Csv [csvfile]
$key = Get-Content [keyfile]
foreach ($cred in $creds) {
    $user = $cred.User
    $password = $cred.Hash | ConvertTo-SecureString -Key $key
    $i = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password
    New-Variable -Name ($cred.Domain + "_Cred") -Value $i -Force
    }

运行 这手动工作正常,但当从 Import-Module 命令 运行 时它不会创建凭据。

当您导入模块时,任何不是函数的代码都会 运行。

使用模块时的一个实用提示:&. 具有可能未记录的功能。您可以提供两个参数,第一个是模块引用(来自 get-module 或类似的),第二个是脚本。使用模块引用参数,脚本将在模块的上下文中 运行。例如:

& $myMod {$usa_cred} 

即使没有导出,也会输出$use_cred的值。这对于调试脚本很有用。模块也可以有嵌入式模块,& $myMod {gmo} 将列出这些子模块。通过嵌套 &. 您可以访问子模块上下文。