上下文:
我正在创建一个电子反应应用程序。我正在为我的同事建造它。 该应用程序将为您提供易于使用的UI。您可以执行通常需要Powershell进行的其他操作。 示例:Gui询问您要访问的用户,以及另一个也应授予访问权的用户。
然后,我将我们需要的所有信息传递给powershell-node(一个处理带有node的powershell的程序包),它将(在此示例中)授予指定用户完全访问权限。
问题
由于我们没有个人登录权限,因此我们使用了另一个帐户来执行交换和Powershell命令。所以通常我会这样向我们的前服务器创建一个pssession:
$Connection = @{
ConfigurationName = 'Microsoft.Exchange'
ConnectionUri = 'http://ourserver/powershell'
Authentication = 'Kerberos'
Credential = Get-Credential}
$Ex2010Session = New-PSSession @Connection
Import-PSSession $Ex2010Session -AllowClobber | Out-Null
通常这可以工作,并给我命令行开关add-mailboxpermission
。
该命令本身也可以在普通Powershell上运行,因为我使用管理员帐户(运行方式)打开了它。这就是重点:
在我的脚本中,我确实执行了此操作,但是随后我使用所有必需的参数运行Add-Mailboxpermission
命令。
当然不能用,因为我用普通帐户打开了电子应用程序。此外,-Credential
命令上没有Add-MailboxPermission
参数。
可能的解决方案; 我想到的第一个想法是,仅使用adm帐户打开应用程序。可能的话,我渴望有更好的解决方案。
我尝试了什么
我的下一个想法是“为什么我不通过这样的invoke-command将命令发送到服务器:
Invoke-Command -Session $Ex2010Session -ScriptBlock {
Add-MailboxPermission -Identity $Identity -AccessRights 'FullAccess' -user
$User -automapping $Automapping
}
不幸的是,当我尝试运行此命令时,出现以下错误消息:
在受限语言模式下无法引用的变量或正在引用“数据”部分的变量。变量 可以引用的内容包括:$ PSCulture,$ PSUICulture,$ true,$ false和$ null。
我无权访问我们的前基础架构,因此无法尝试解决这些问题(语言模式)。
所以我在那里,不知道如何解决这个问题。我希望你们对如何解决它有任何想法,这将非常整洁。