前面,我们的所有示例都是在 powershell ise 下面运行的,我也相信肯定有人尝试过,直接在 powershell 中运行,不过我们写的都是 foundation,所以直接在 powershell 中运行是失败的。今天,我们就来看看怎么让我们写的 foundation 能够在 powershell 中也能运行。
在前面,我们已经了解了 powershell 的模块,今天我们就需要将我们的 foundation 作为一个模块,加载到 powershell 中,这样我们就可以直接在 powershell 中直接运行我们的脚本命令了。
保存我们的 foundation 文件到 Module 目录,选择所有用户可用,还是当前用户可用,可以自己选(可以通过 $env:PSModulePath 查看有哪些目录。):
重新打开 powershell,我们就可以像运行系统自带的命令那样,运行我们自己创建的 foundation(命令)。
PS C:\Users\Admin> test-net_port -computerName szsvr01
True
注意:powershell 的执行策略,会影响到模块的自动加载。如果运行命令出现导入模块相关的错误,需要参考前面一篇文章,更改执行策略。
我们可以看一下,加载的模块:
PS C:\Users\Admin> Get-Module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Manifest 1.0.0.0 NetTCPIP {Find-NetRoute, Get-NetCompartment, Get-NetIPAddress, Get-NetIPConfiguration...}
Script 0.0 PSLAB test-net_port
Script 2.0.0 PSReadline {Get-PSReadLineKeyHandler, Get-PSReadLineOption, Remove-PSReadLineKeyHandler, Set-PSReadLineKeyHandler...}