所以当我从PowerShell ISE运行它时,我的脚本运行正常。但是,我需要自动化它,所以我运行powershell.exe .\script.ps1
,但是我得到一些未被识别的命令的错误(它们来自非标准模块)。
感谢任何帮助,谢谢!
答案 0 :(得分:4)
编辑脚本的开头以导入所有依赖项(模块)。这是一个很好的做法,因为它使代码更具可读性,适用于PS 2.0和3.0 +
script.ps1
#Import example module
Import-Module ActiveDirectory
#Script start
$name = Read-Host "Username"
$user = Get-ADUser $name
.....
答案 1 :(得分:3)
一个原因应该是脚本来源或从您的配置文件脚本加载模块。在这种情况下,您的问题可能来自以下事实:从命令行启动PowerShell并启动PowerShell ISE不会使用系统相同的配置文件脚本。查看每个$Profile
var并编辑相关文件。
$Profile
:
C:\Users\JPB\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
我的命令行 $Profile
:
C:\Users\JPB\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
有关个人资料的详情。About_Profile
了解所有$Profile
路径的方法: