2012-10-31 72 views
1

我已經寫了下面的腳本將用戶添加到MS實時運行:PowerShell腳本不是從批處理文件

$pass = Get-Content D:\PSScripts\pass.txt | ConvertTo-SecureString 
$cred = New-Object System.Management.Automation.PSCredential "[email protected]", $pass 
Connect-MsolService -Credential $cred 
New-MsolUser -userprincipalname [email protected] -Displayname "Johny Tester2" 

我可以複製和粘貼行的命令的PowerShell線,併成功地創建一個新用戶,但我不知道如何從命令行運行它們。

我保存的上述4行到一個文件中d:\ PSScripts \ script2.ps1

我創建的文件:d:\ PSScripts \ runall.bat具有以下內容:

的powershell。 EXE 「& 'd:\ PSScripts \ script2.ps1'」

(我也試過沒有&標誌,不帶引號,沒有 'EXE',與-command開關)

看起來它通過前兩行an d然後在'Connect-MsolService'和'New-MsolUser'上拋出錯誤:

術語'Connect-MsolService'不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。

我需要能夠從另一個程序執行這些命令並運行bat文件是我的最佳選擇。請幫忙。

D:\PSScripts\script2.ps1開始運行在Win Server 2008 R2中的PowerShell 2.0版本

回答

1

嘗試添加

import-module MSOnline 

4

PowerShell 2不會執行動態模塊加載,但這是PowerShell 3中的一項新功能。要解決您的問題,可以使用Import-Module cmdlet手動將模塊導入到會話中。這是完整的解決方案。

Import-Module MSOnline 
$pass = Get-Content D:\PSScripts\pass.txt | ConvertTo-SecureString 
$cred = New-Object System.Management.Automation.PSCredential "[email protected]", $pass 
Connect-MsolService -Credential $cred 
New-MsolUser -userprincipalname [email protected] -Displayname "Johny Tester2" 
+1

這比一個被接受的答案更好,因爲它不僅解釋了應該做什麼,它解釋了爲什麼*。 – alroc

0

查看完整的主題在這裏:MSOnline can't be imported on PowerShell (Connect-MsolService error)

我做了什麼來解決這個問題是:

複製稱爲MSOnline和MSOnline文件夾從源

C擴展級:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Modules \ MSOnline

文件夾

C:\ WINDOWS \ Syswow64資料\ WindowsPowerShell \ V1.0 \模塊

然後在PS運行Import-Module MSOnline,它會自動獲得模塊:d

相關問題