我编写了以下脚本来将用户添加到MS Live:
$pass = Get-Content D:\PSScripts\pass.txt | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential "user@domain.com", $pass
Connect-MsolService -Credential $cred
New-MsolUser -userprincipalname test@domain.com -Displayname "Johny Tester2"
我可以逐行将命令复制并粘贴到PowerShell并成功创建新用户,但我无法弄清楚如何从命令行运行它们。
我将以上4行保存在D:\ PSScripts \ script2.ps1
的文件中我创建了一个文件:D:\ PSScripts \ runall.bat,其中包含以下内容:
powershell.exe“&'D:\ PSScripts \ script2.ps1'”
(我也试过没有&符号,没有引号,没有'exe',带-command开关)
看起来它经过了前两行,然后它在'Connect-MsolService'和'New-MsolUser'上抛出并出错:
术语“Connect-MsolService”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我需要能够从另一个程序执行这些命令,并且运行bat文件是我的最佳选择。请帮忙。
在Win Server 2008 R2,PowerShell版本2.0上运行
答案 0 :(得分: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 "user@domain.com", $pass
Connect-MsolService -Credential $cred
New-MsolUser -userprincipalname test@domain.com -Displayname "Johny Tester2"
答案 1 :(得分:1)
尝试添加
import-module MSOnline
在D:\PSScripts\script2.ps1
。
答案 2 :(得分:0)
请在此处查看完整主题:MSOnline can't be imported on PowerShell (Connect-MsolService error)
我为解决这个问题所做的是:
从源
复制名为MSOnline和MSOnline Extended的文件夹C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \模块\ MSOnline
到文件夹
C:\的Windows \ Syswow64资料\ WindowsPowerShell \ V1.0 \模块
然后在PS中运行Import-Module MSOnline
,它将自动获取模块:D