在 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
我正在尝试编写我们的一些入职流程脚本,并且我正在尝试启用邮箱作为交换。我有一些行似乎在脚本之外工作,但在脚本内部抛出错误。你能帮帮我吗?
代码如下:
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