1

我编写了以下脚本来将用户添加到 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 上运行

4

3 回答 3

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"
于 2012-10-31T10:35:02.307 回答
1

尝试添加

import-module MSOnline

在您的D:\PSScripts\script2.ps1.

于 2012-10-31T05:59:30.537 回答
0

在此处查看完整主题:无法在 PowerShell 上导入 MSOnline(Connect-MsolService 错误)

我为解决这个问题所做的是:

从源中复制名为 MSOnline 和 MSOnline Extended 的文件夹

C:\Windows\System32\WindowsPowerShell\v1.0\Modules\MSOnline

到文件夹

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules

然后在 PS 中运行Import-Module MSOnline,它会自动获取模块:D

于 2013-04-15T15:02:41.223 回答