2014-02-18 2 views
0

Я пытаюсь добавить внешний контакт с MS Exchange с помощью Powershell.Команда Powershell не найдена после PSSession Импорт

$username = "[email protected]" 
$password = "password" 
$secure_password = $password | ConvertTo-SecureString -AsPlainText -Force 
$credencial = New-Object System.Management.Automation.PSCredential ($username, $secure_password)  
$session_name = "office365_session" 

foreach($tmp in Get-PSSession){ 
    if ($tmp.Name -eq $session_name) { 
     $opened_session = Get-PSSession -Name $session_name 
    } 
} 

if ($opened_session -eq $null) { 
    $opened_session = New-PSSession -Name $session_name -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell/" -Credential $credencial -Authentication Basic -AllowRedirection -WarningAction SilentlyContinue -ErrorAction Stop 
    Import-PSSession $opened_session -AllowClobber -WarningAction SilentlyContinue -ErrorAction Stop -DisableNameChecking | Out-Null 
} 

New-MailContact -Name "test" -DisplayName "test user" -ExternalEmailAddress "[email protected]" -FirstName "Test" -LastName "User" 

Но команда "Нью-MailContact" не найден и выдает ошибку:

New-MailContact : The term 'New-MailContact' 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. 

Как запускать эту команду "New-MailContact"? Может быть, мне нужно импортировать что-то еще или, возможно, есть еще один способ добавить контакт?

+0

Добавить оснастку после импорта сеанса. – websch01ar

ответ

0

Вы пропустили важную часть, которая создает сеанс для коробки Exchange, поэтому ваш импорт не работает.

Вот пример для O365

$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $credencial -Authentication Basic –AllowRedirection; 

только тогда вы можете запустить

Import-PSSession $session -AllowClobber -WarningAction SilentlyContinue -ErrorAction Stop -DisableNameChecking | Out-Null 

New-MailContact -Name "test" -DisplayName "test user" -ExternalEmailAddress "[email protected]" -FirstName "Test" -LastName "User" 
+0

Я не пропустил создание сеанса перед командой «New-MailContact», только скопировал неправильный скрипт. Извините :) Я обновил свой сценарий powershell. – VaidasV

+1

Измените свой импорт на 'Import-PSSession $ session -AllowClobber -WarningAction SilentlyContinue -ErrorAction Stop', и вы получите значимый результат. Новый модуль будет загружен как файл (что-то temp, т.е. _tmp_yywgcdto.ni0_). Затем запустите 'Get-Command -Module _yourModuleName_', т.е.' Get-Command -Module tmp_yywgcdto.ni0'. Вы должны получить кучу команд обмена или ошибку – Raf

+0

Я использовал '$ import = Import-PSSession $ session -AllowClobber -WarningAction SilentlyContinue -ErrorAction Stop' ' Get-Command -Module $ import.Name' У меня есть куча команд, но команда New-MailContact не существует в списке. – VaidasV

Смежные вопросы