2014-07-19 523 views
2

所以我有一個腳本,當我從PowerShell ISE運行它時工作正常。但是,我需要將其自動化,因此我運行了powershell.exe .\script.ps1,但是出現了一些未被識別的命令錯誤(它們來自非標準模塊)。從命令行運行PowerShell ISE?

任何幫助表示讚賞,謝謝!

+0

什麼是錯誤的,你能告訴我們的腳本你的相關部分運行。您的腳本中是否使用了非標準模塊? – Matt

+0

不要「從命令行運行ISE」。修復您的腳本,使其無論在哪裏運行,都能正常運行。 – alroc

回答

3

編輯腳本導入所有依賴關係(模塊)的開始。這是很好的做法,因爲它使代碼更易讀,並與兩個PS 2.0起作用的3.0+

script.ps1

#Import example module 
Import-Module ActiveDirectory 

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

這幾乎做到了!由於它不是標準模塊,因此只使用模塊的名稱(例如'Import-Module ActiveDirectory')不起作用。首先,我使用'Get-Module-ListAvailable'來查找模塊的路徑,然後使用'Import-Module C:\ path \ ActiveDirectory'並且它工作。 –

+0

:)只要模塊已安裝在模塊位置中,'Import-Module ModuleName'應該可以工作。你也可以使用'Get-Module -Listavailable ActiveD * |進口Module' –

2

一個原因應該是腳本是點源或從您的配置文件腳本加載模塊。在這種情況下,您的問題可能來自於以下事實:從命令行啓動PowerShell並啓動PowerShell ISE不會系統地使用相同的配置文件腳本。查看每個變量中的$Profile並編輯關聯的文件。

$Profile我ISE:

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

$Profile我的命令行:

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

更多配置文件。 About_Profile

一個知道所有的$Profile路徑方式: enter image description here