在 Exchange 2010 中远程处理时使用 powershell 时出错

Error when using powershell while remoting in Exchange 2010

我正在尝试编写我们的一些入职流程脚本,并且我正在尝试启用邮箱作为交换。我有一些行似乎在脚本之外工作,但在脚本内部抛出错误。你能帮帮我吗?

代码如下:

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
}

它抛出的错误是这样的:

"identity" 的全局变量是在脚本的前面设置的,并且在我的其他函数中起作用。任何帮助,将不胜感激。

Invoke-Command 的脚本块参数将在远程计算机上 运行 并且无法访问调用者的全局范围。

$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