我正在尝试从 ruby 脚本为 Active Directory 中的现有用户运行 enable-mailbox 命令。我正在使用这个 winrm gem。到目前为止,我已经能够使用 winrm 和 kerberos 身份验证连接到交换服务器。我可以从 powershell 运行一个交换管理 shell。从那里我可以执行交换命令。
但是,当我尝试运行 enable-mailbox 时,出现以下错误:
Active Directory 操作在 上失败。为“域\帐户”提供的凭据无效。
“操作失败”。是逐字逐句的。在您认为应该有的空间中没有文本。域\帐户与我用来通过 kerberos 成功连接 winrm 的帐户相同。
这是我的简单代码:
endpoint = 'http://server:5985/wsman'
krb5_realm = 'myrealm'
winrm = WinRM::WinRMWebService.new(endpoint, :kerberos, :realm => krb5_realm)
#exch_cmd = "Get-Help Enable-Mailbox" NOTE THAT THIS COMMAND WORKS FINE
exch_cmd = "Enable-Mailbox -Identity:'user DN' -Alias:'username' -Database:'mailbox'"
command = "powershell -psconsolefile \"C:\\Program Files\\Microsoft\\Exchange Server\\V15\\bin\\exshell.psc1\" -command \". "+exch_cmd+"\""
winrm.cmd(command) do |stdout, stderr|
STDOUT.print stdout
STDERR.print stderr
end
谢谢你的帮助!