亲爱的,
我们目前在我们的 DMZ 中有一个 Exchange 2016 边缘服务器,它正在处理我们所有的入站和出站电子邮件。我注意到边缘服务器内没有 Activesync 服务/角色。我只能在位于我们私有 LAN 网络中的内部邮箱服务器中看到它。
是否可以在边缘服务器中启用/安装 Activesync 角色?因为我们不想将我们的内部邮箱服务器直接暴露在互联网上。
问候,
亲爱的,
我们目前在我们的 DMZ 中有一个 Exchange 2016 边缘服务器,它正在处理我们所有的入站和出站电子邮件。我注意到边缘服务器内没有 Activesync 服务/角色。我只能在位于我们私有 LAN 网络中的内部邮箱服务器中看到它。
是否可以在边缘服务器中启用/安装 Activesync 角色?因为我们不想将我们的内部邮箱服务器直接暴露在互联网上。
问候,
TL;博士; 如何发现 Windows 上的 OCSP 响应有什么问题?
我正在尝试在本地 Exchange Server 2019 中安装新证书。但 Exchange 总是报告新证书未通过吊销检查并且不会使用它。新证书具有从新证书通过中间 CA 到我的根 ca 的信任链。当我在 certmgr.msc 中打开新证书时,我看到该链,并且所有证书在 certmgr 中都报告为 OK。我已将我的根 CA 安装到“受信任的根证书颁发机构”存储中。我已将中间 CA 安装到“中间证书颁发机构”存储中。
新证书的授权信息访问URL 指定了我自己的 OCSP 响应者。我知道这不是连接问题,也不是代理问题,因为我实时查看 OCSP 日志,并且我知道连接已建立,并且我的 OCSP 响应者发送证书“OK”。我在 linux 主机上使用 openssl-ocsp 进行了测试,当我使用以下 openssl 命令时,验证成功:
openssl ocsp
-issuer "$ca_sub_cert_file"
-cert "$exchangeCert"
-resp_text
-CApath "$CA_ROOTS_HASHES_DIR"
-url "http://$hostNameFull:$ocsp_port/"
请注意,上面的 openssl 命令明确引用了issuer和CApath,这使得对中间 CA 的信任成为可能。在 Windows 上,我希望安装 root-ca 和中间 CA 会同样启用对 OCSP 响应的信任。但我不知道如何测试这个。
这应该不是必需的,但我还为 ocsp-responder “安装”了一个证书。我允许向导自动选择商店,但我找不到它放在哪里。当我在 certmgr.msc 中搜索它时,它不会出现。我没有手动安装它,因为我不知道我应该使用哪个商店。
我怀疑我的 openssl OCSP 响应者的响应对于 Exchange Server 2019 是错误的。我的理论是:
如何检验上述理论?我搜索了 Windows 事件日志,但它们没有提及 OCSP 或撤销。
我有一个请求来捕获 Exchange 服务器上的所有电子邮件流量并将邮件存储到 dms/数据库。
经过一番调查,我得出的结论是,实现此类功能的最佳方式是自定义 TransportAgent。
周围有几个问号:
MS 文档似乎已经过时,并且代码示例似乎已经消失。它到处都提到了 Exchange 2013,但较新的版本也应该支持它们。
Office365 根本不支持(至于Office 365 是长期计划,以后会再次出现问题)。
我的问题是,实现这样的事情的最佳方法是什么?是否有任何钩子或 API 可以让我拦截所有传入和传出的邮件(或者仅针对某个域,例如,而不仅仅是每个用户帐户)?
理想情况下,是否有一种可在本地和云 Exchange 服务器/Office365 中重复使用的解决方案?
我无法Get-MailboxDatabaseCopyStatus
在函数或表达式中获得 Exchange 管理 CmdLet (OnPremises) 的任何结果。
function Get-DAGDatabaseCopys ($Identity) {
# Neither this line:
#[Int]$DBCopys = Invoke-Command { @(Get-MailboxDatabaseCopyStatus -Identity $Identity).count }
# Or this line works:
$DBCopys = @(Get-MailboxDatabaseCopyStatus -Identity $Identity).count
return $DBCopys
}
用法:
Get-DAGDatabaseCopys -Identity "DatabaseName"
表达式示例:
$strMasterType = "DatabaseAvailabilityGroup"
$expDatabaseSpaceGB = @{Expression={if(($_.MasterType -eq $strMasterType) -and ($IncludeDagCopys)){
start-sleep 1
$DBCopys = @(Get-MailboxDatabaseCopyStatus -Identity $_).count
return [math]::Round((Value-ToGB -Value $_.AvailableNewMailboxSpace),2) * $DBCopys
};Label="DatabaseWhiteSpaceSizeGB"}
用法:
$MailboxDBStatus = Get-MailboxDatabase -Status | select ServerName, Name, MasterType, $expDatabaseSpaceGB
函数或表达式的返回值将始终为empty
或0
(如果 DataType 为 Int)。函数/表达式中的对象中没有数据$DBCopys
,即使我尝试接收完整的对象(不仅仅是计数)。
脚本根目录或 Powershell 控制台上的相同 CmdLet 直接按预期工作。
这是此 cmdlet 的一般行为还是我在这里做错了什么?
谢谢。
我想在邮箱上启用 OWA 邮箱策略的名称。使用Get-CASMailbox命令,我可以知道邮箱是否启用了 OWA 策略,但如果启用,则无法获取 OWA 邮箱策略的名称。
如果我谈论 ActiveSync 策略Get-CASMailbox命令可以返回有关 ActiveSync 策略是否启用的信息以及 ActiveSync 策略名称的名称(如果它已启用但不返回 OWA 邮箱策略的名称)。
我以这种方式使用此命令
var asEnabled = false; var asPolicyName = string.Empty; var owaEnableed = false;
var owaPolicyName = string.Empty;
Command cmd = new Command("Get-CASMailbox");
cmd.Parameters.Add("identity", "abc");
cmd.Parameters.Add("DomainController", "abc");
Pipeline pipeline = RunspaceFactory.CreateRunspace(RunspaceConfiguration.Create()).CreatePipeline();
pipeline.Commands.Add(cmd);
var result = pipeline.invoke();
foreach (PSObject ps in results)
{
if (ps.Members["ActiveSyncEnabled"].Value != null)
{
asEnabled = ps.Members["ActiveSyncEnabled"].Value.ToString().ToLowerInvariant() == "true" ? true : false;
}
if (ps.Members["OWAEnabled"].Value != null)
{
owaEnabled = ps.Members["OWAEnabled"].Value.ToString().ToLowerInvariant() == "true" ? true : false;
}
if (ps.Members["ActiveSyncMailboxPolicy"].Value != null)
{
asPolicyName = ps.Members["ActiveSyncMailboxPolicy"].Value.ToString(); //returns name of ActiveSync policy enabled
}
//want to get the name of OWAMailboxPolicy but **Get-CASMailbox** does not return it
}
所有这部分代码工作正常,但Get-CASMailbox不包含OWAMailboxPolicy参数,因此无法获取在该邮箱上启用的 OWA 邮箱策略的名称。
我需要帮助如何在特定邮箱上启用 OWAMailboxPolicy 名称?