0

Я пытаюсь запустить некоторые из наших процессов onboarding, и в этом я пытаюсь включить почтовые ящики в обмен. У меня есть некоторые строки, которые, похоже, работают вне сценария, но вызывают ошибку внутри скрипта. Можете ли вы мне помочь?Ошибка при использовании powershell при удалении удаленного доступа в Exchange 2010

The кодов выглядит следующим образом:

Function enableExchangeMailbox { 
#Grabs admin credentials from xml document and imports it, setting the variable 
$UserCredential = Import-Clixml 'SecureCredentials.xml' 

#Sets up a new remote session 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mxex2010.minnetronix.com/Powershell -Authentication Kerberos -Credential $UserCredential 

#Enable the mailbox on the server 
Invoke-Command -Session $Session -ScriptBlock { 
    Enable-Mailbox -Identity $global:userName -Database $global:exchangeDatabase 
} 

#cleanup 
Remove-PSSession $Session 
} 

ошибка, что он бросает это:

error message

Глобальная переменная для "идентичности" был установлен ранее в сценарии и работает в мои другие функции. Любая помощь будет оценена по достоинству.

ответ

1

Аргумент scriptblock для Invoke-Command будет запущен на удаленном компьютере и не будет иметь доступ к глобальной области действия вызывающего.

Pass $userName в качестве параметра аргумента функции, и передать его в удаленном сеансе с using: спецификатора:

Function enableExchangeMailbox { 

    param($userName) 

    #Grabs admin credentials from xml document and imports it, setting the variable 
    $UserCredential = Import-Clixml 'SecureCredentials.xml' 

    #Sets up a new remote session 
    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mxex2010.minnetronix.com/Powershell -Authentication Kerberos -Credential $UserCredential 

    #Enable the mailbox on the server 
    Invoke-Command -Session $Session -ScriptBlock { 
     Enable-Mailbox -Identity $using:userName -Database $global:exchangeDatabase 
    } 

    #cleanup 
    Remove-PSSession $Session 
} 

вызов, как:

enableExchangeMailbox -userName $userName 
+0

работал как шарм. Спасибо вам за это! –

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

  • Нет связанных вопросов^_^