【问题标题】:Run PowerShell ISE from the command line?从命令行运行 PowerShell ISE?
【发布时间】:2014-07-19 01:26:32
【问题描述】:

所以当我从 PowerShell ISE 运行它时,我有一个运行良好的脚本。但是,我需要自动化它,所以我运行powershell.exe .\script.ps1,但我收到一些关于无法识别的命令的错误(它们来自非标准模块)。

感谢任何帮助,谢谢!

【问题讨论】:

  • 有什么错误,您能否向我们展示您正在运行的脚本的相关部分。您的非标准模块是否来源于您的脚本?
  • 不要“从命令行运行 ISE”。修复您的脚本,使其无论在何处运行都能正常运行。

标签: powershell powershell-ise


【解决方案1】:

编辑脚本的开头以导入所有依赖项(模块)。这是一种很好的做法,因为它使代码更具可读性并且适用于 PS 2.0 和 3.0+

script.ps1

#Import example module
Import-Module ActiveDirectory

#Script start
$name = Read-Host "Username"
$user = Get-ADUser $name
.....

【讨论】:

  • 这几乎做到了!由于它不是标准模块,因此仅使用模块的名称(例如,Import-Module ActiveDirectory)是行不通的。首先我使用Get-Module -ListAvailable找到模块的路径,然后使用Import-Module C:\path\ActiveDirectory,它成功了。
  • :) 只要模块已安装在模块位置,Import-Module ModuleName 应该可以工作。你也可以Get-Module -Listavailable ActiveD* | Import-Module
【解决方案2】:

一个原因应该是脚本是点源代码或模块是从您的配置文件脚本中加载的。在这种情况下,您的问题可能来自这样一个事实,即从命令行启动 PowerShell 和启动 PowerShell ISE 并没有系统地使用相同的配置文件脚本。查看每个中的$Profile var 并编辑相关文件。

$Profile 在我的 ISE 上:

C:\Users\JPB\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

$Profile 在我的命令行上:

C:\Users\JPB\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

关于个人资料的更多信息。About_Profile

了解所有$Profile 路径的方法:

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 2018-02-16
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2018-03-14
    • 2022-01-27
    相关资源
    最近更新 更多