问题描述
我正在使用 Exchange 服务器,但在尝试打开运行空间时出现“拒绝访问”错误。
if(_runspace.RunspaceStateInfo.State == RunspaceState.BeforeOpen)
_runspace.open();
}
catch (Exception ex)
{
PowershellEnvironmentExceptionHandler.Handle(ex);
}
我可以使用相同的凭据从 powershell 远程连接(使用 connect-exchangeonline)。
负责连接的代码是:
class ExchangeConnectionProvider
{
IkeyvaultProvider _keyProvider;
Uri _uri = new Uri("https://outlook.office365.com/powershell-liveid/");
string _shell = "http://schemas.microsoft.com/powershell/Microsoft.Exchange";
private static readonly ILogger _logger = LogManager.GetCurrentClassLogger();
public ExchangeConnectionProvider(IkeyvaultProvider keyProvider)
{
_keyProvider = keyProvider;
}
string GetUserName()
{
var username= CloudConfigurationManager.GetSetting("exchangeUser");
if (string.IsNullOrEmpty(username))
return string.Empty;
return username;
}
string getpassword()
=> CloudConfigurationManager.GetSetting("exchangePassword");
internal WSManConnectionInfo Provide()
{
string username = GetUserName();
string password = getpassword();
_logger.Info($"Connecting to exchange with username {username}");
return Connect(username,password);
}
WSManConnectionInfo Connect(string username,string password)
{
//password = WebUtility.HtmlDecode(password);
securestring securePassword = new securestring();
foreach (char c in password)
{
securePassword.AppendChar(c);
}
securestring secureStrin = new NetworkCredential("",password).SecurePassword;
//var creds = new PSCredential(username,secureStrin);
var creds = new PSCredential(username,securePassword);
var connection = new WSManConnectionInfo(_uri,_shell,creds);
connection.SkipCNCheck = true;
connection.SkipCACheck = true;
connection.SkipRevocationCheck = true;
connection.AuthenticationMechanism = AuthenticationMechanism.Basic;
connection.MaximumConnectionRedirectionCount = 2;
return connection;
}
当我使用具有交换管理员角色的帐户时,一切正常。 用户名/密码没有问题。
有人知道哪个角色负责允许
_runspace.open();
“拒绝访问”出现在上面。
我已经将我之前使用的用户角色(和代码正在工作)与当前用户进行了比较 当前用户:
Role Management
Security Group Creation and Membership
以前的用户:
Move MailBoxes
Reset Password
Migration
distribution Groups
Team MailBoxes
Mail Recipient Creation
Security Group Creation and Membership
Role Management
Recipient Policies
Message Tracking
Mail Recipients
这两个用户在云交换的不同域中工作 - 我之前在测试域(一切正常)工作。
我还对这些用户属性进行了比较(通过 get-user 命令),唯一的区别是:
交换版本:
最糟糕的是,我无法访问交换服务器设置,因此我无法为该用户分配新角色 - 我必须与公司其他部门合作,这真的需要太多时间 - 如果我愿意的话知道上面的角色需要操作会快很多 :)
交换版本:
0.20 (15.0.0.0) (current user,where i have problem)
1.1 (15.0.0.0) (prevIoUs user on test domain)
分配的 SKU:
null (current user)
true (prevIoUs user on test domain)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)