1

I've written the following script to add a user to MS Live:

$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"

I can copy and paste the commands to PowerShell line by line and successfully create a new user, but I can't figure out how to run them all from command line.

I saved the above 4 lines in a file at D:\PSScripts\script2.ps1

I created a file: D:\PSScripts\runall.bat with the following content:

powershell.exe "& 'D:\PSScripts\script2.ps1'"

(I also tried without the & sign, without the quotes, without the 'exe', with -command switch)

It looks like it goes through the first two lines and then it throws and error on 'Connect-MsolService' and 'New-MsolUser':

The term 'Connect-MsolService' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

I need to be able to execute those commands from another program and running a bat file is my best option. Please help.

Running on Win Server 2008 R2, PowerShell Version 2.0

3 Answers 3

4

PowerShell 2 doesnt do dynamic module loading, that is however a new feature in PowerShell 3. To fix your issue you can manually import the module into your session using the Import-Module cmdlet. Here's the complete fix.

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"
Sign up to request clarification or add additional context in comments.

1 Comment

This is a better answer than the one that was accepted because it not only explains what should be done, it explains why.
1

try adding

import-module MSOnline

at the start of your D:\PSScripts\script2.ps1.

Comments

0

See full topic here: MSOnline can't be imported on PowerShell (Connect-MsolService error)

What I did to solve the issue was:

Copy the folders called MSOnline and MSOnline Extended from the source

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

to the folder

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

And then in PS run the Import-Module MSOnline, and it will automatically get the module :D

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.