我正在尝试编写一个实用程序作为批处理文件,除其他外,将用户添加到“拒绝本地登录”本地安全策略。该批处理文件将用于数百台独立计算机(不在域中,甚至不在同一网络上)。
我假设以下选项之一是我的选择,但也许有一个我没有想到。
类似的命令行实用程序net.exe,可以修改本地安全策略。
执行相同操作的 VBScript 示例。
使用一些 WMI 或 Win32 调用编写我自己的。如果没有必要,我宁愿不做这个。
我在 IIS 7.5 中托管了两个 Web 应用程序。他们必须共享 ASP.NET 表单身份验证 cookie。由于我不想将机器密钥放在 Web.config 中(我没有使用网络农场,我不希望密钥在 web.config 文件中可见),我已将其设置为使用以下设置:
<machineKey validationKey="AutoGenerate" decryptionKey="AutoGenerate" />
Run Code Online (Sandbox Code Playgroud)
根据文档,这应该会导致 IIS 为两个 Web 应用程序自动生成相同的机器密钥。在我的 Windows 7 和 Windows 8 开发人员机器上,这按预期工作。任何一个 Web 应用程序都可以对用户进行身份验证,并且两个应用程序都可以识别相同的身份验证 cookie。
但是,当我将此设置移至在 Windows Server 2008 R2 上运行的生产环境时,这两个应用程序将不会共享身份验证 cookie。当 WebAppA 对用户进行身份验证时,WebAppB 无法解密 auth cookie 并强制用户重新进行身份验证。当他们这样做时,新的身份验证 cookie 对 WebAppA 无效。
我已经证明它通过将两个应用程序中的机器密钥显式设置为相同的密钥来使用单独的机器密钥:
<machineKey validationKey="F801AB..." decryptionKey="ADB3C1..." />
Run Code Online (Sandbox Code Playgroud)
当我这样做时,身份验证就像在我的开发人员机器上一样工作。
我的开发和生产环境之间的什么差异可能导致这种情况?
我们使用 Exchange 2010 作为 Office 365 订阅的一部分。我们有一个仅由 Alice 拥有的安全组。如果不使用 Alice 的帐户,管理员如何获得该安全组的所有权?
PS C:\> Get-DistributionGroup "SecurityGroupX" |
Select ManagedBy -ExpandProperty "ManagedBy"
namprd00.prod.outlook.com/Microsoft Exchange Hosted Organizations
/example.onmicrosoft.com/alice
Run Code Online (Sandbox Code Playgroud)
我是组织管理角色的成员,因此我希望能够覆盖此权限。我尝试使用 Exchange 管理门户,也尝试使用 PowerShell:
PS C:\> Set-DistributionGroup "SecurityGroupX" -ManagedBy "stephen@example.com"
You don't have sufficient permissions. This operation can only be performed by a
manager of the group.
+ CategoryInfo : NotSpecified: (:) [Set-DistributionGroup], OperationRequiresGroupManagerException
+ FullyQualifiedErrorId : 99CEE042,Microsoft.Exchange.Management.RecipientTasks.SetDistributionGroup
+ PSComputerName : bl0prd0000psh.outlook.com
Run Code Online (Sandbox Code Playgroud) asp.net ×1
batch-file ×1
group-policy ×1
iis ×1
iis-7.5 ×1
powershell ×1
security ×1
vbscript ×1
windows ×1