Articles of 活动目录

如何使用“转换声明策略”跨林部署Windows声明?

介绍 我已经看到,Windows Server 2012允许过滤或转换传入和传出声明,遍历森林信任。 我的目标是实现这样一个转换或过滤。 build筑 我有2个域(DomainA和DomainB),每个域包含Windows Server 2012 R2域控制器(DCA和DCB)和Windows 8.1客户端(ClientA和ClientB)。 DomainA属于森林A,DomainB属于森林B. 这些森林: 由一个双向信任连接, 将域设置为域function级别“Windows Server 2012”。 在每个DC和客户端上,通过组策略启用索赔。 体系结构的testing 首先,我想确保索赔function。 为此,我使用PowerShell在DCA上创build了声明“国家/地区”(根据声明规范 )。 New-ADClaimType ` -AppliesToClasses:@('user') ` -Description:"User country" ` -DisplayName:"Country" ` -ID:"ad://ext/Country:mycompany" ` -IsSingleValued:$true ` -Server:"DomainA.com" ` -SourceAttribute:Country-Name 然后我用非pipe理员帐户(John)login我的ClientA,然后检查他的索赔。 PS C:\Users\John> whoami /claims USER CLAIMS INFORMATION ———————– Claim Name Claim ID Flags Type Values ================ […]

读取内存时出现访问冲突

背景 我正在用Visual Studio 2013 Community Edition编写命令行C ++程序。 它通过LDAP连接到Active Directory服务器,并在一些属性(例如:办公地点,部门)中检索唯一值列表。 问题 该程序编译好,但我遇到一个内存访问问题,当我运行它: Unhandled exception at 0x74EDC6B1 (Wldap32.dll) in LdapSearchResultTest1.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC. 这是我第一次使用C ++与外部库,所以我不知道如何甚至接近debugging(通常我为Android写Java)。 我花了一天的更好的时间来看看这个问题,并根据类似问题的答案尝试一些想法,但是我仍然无法解决这个问题。 确切的问题在于这个函数调用的最后一个参数: // Do the search int searchReturnCode = ldap_search_s( ldapSession, &searchBase[0], LDAP_SCOPE_SUBTREE, filter, pAttributes, 0, &pSearchResults); // Error is here 我的代码 我的代码是基于MSDN网站的一个例子,我已经在代码中复制了这个例子。 这是一个certificate这个问题的SSCCE : #include<iostream> #include<Windows.h> #include<Winldap.h> #include<WinBer.h> […]

Win32:如何根据Active Directoryvalidation凭据?

它已被问及 .NET的答案,但现在是时候得到本机Win32代码的答案: 我如何validationWindows用户名和密码? 我之前问过这个问题的托pipe代码 。 现在是本地解决scheme的时候了。 它需要指出一些更常见的解决scheme的陷阱: 无效的方法1.使用模拟查询Active Directory 很多人build议查询Active Directory的东西。 如果抛出exception,那么你知道凭据是无效的 – 正如在这个stackoverflow问题中所build议的。 然而,这种方法有一些严重的缺陷 : 您不仅要validation域帐户,还要进行隐式授权检查。 也就是说,您正在使用模拟令牌从AD读取属性。 如果否则有效的帐户没有权利从AD读取? 默认情况下,所有用户都具有读取访问权限,但可以将域策略设置为禁用受限帐户(和/或组)的访问权限。 针对AD的绑定具有严重开销,AD架构caching必须在客户端(DirectoryServices使用的ADSI提供程序中的ADSIcaching)中加载。 这既是networking,又是AD服务器,消耗资源,而且对于像validation用户帐户这样的简单操作来说太昂贵了。 对于非例外情况,您依赖exception失败,并假设这意味着无效的用户名和密码。 其他问题(如networking故障,AD连接故障,内存分配错误等)则被误解为authentication失败。 .NET的DirectoryEntry类的使用是validation凭据的不正确方法的一个例子: 无效的方法1a – .NET DirectoryEntry entry = new DirectoryEntry("persuis", "iboyd", "Tr0ub4dor&3"); object nativeObject = entry.NativeObject; 无效的方法1b – .NET#2 public static Boolean CheckADUserCredentials(String accountName, String password, String domain) { Boolean result; using […]

将button添加到Windows 7login屏幕

我想为Windows 7用户实现自复位密码function。 login屏幕提示域用户应该显示一个忘记密码button,这将打开密码重置向导。 所以问题是如何添加一个命令button到标准的Windowslogin屏幕? 我知道在Windows XP中的GINA如下所述: 将命令button添加到Windowslogin屏幕 但是这个话题已经三年了,而在Vista / Windows 7中,微软提出了“Microsoft Windows Credential Provider”。

如何在ASP.NET中列出Windows用户和组?

我有一个ASP.NET网站项目,我需要列出我的Windows系统上的所有用户和他们的组。 我已将身份模拟设置为true,并在web.config中提供了admin的用户名和密码。 我从哪说起呢? 提前致谢。 更新: 我目前有以下代码 – var machine = new DirectoryEntry("WinNT://<IP ADDRESS>"); foreach (DirectoryEntry child in machine.Children) { // get the child's group(s). } 当我debugging时,我可以看到machine.Children中的用户列表。 我如何find这个用户所属的组?

C# – 无法使用Windows 10上的PrincipalContext(ContextType.Machine):系统找不到指定的文件

以下几个Windows版本的服务器版本,Windows 7专业版和其他版本,但在Windows 10(至less两台机器),我得到的错误:“系统找不到指定的文件\ r \ n”。 错误来源是“活动目录” System.IO.FileNotFoundException:系统找不到指定的文件。 堆栈跟踪: at System.DirectoryServices.AccountManagement.UnsafeNativeMethods.IADs.Get(String bstrName) at System.DirectoryServices.AccountManagement.CredentialValidator.BindSam(String target, String userName, String password) at System.DirectoryServices.AccountManagement.CredentialValidator.Validate(String userName, String password) at System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials(String userName, String password) at IsValidWindowsUser(String userName, String password) in MembershipProvider.cs:line xxx 以下是我需要触发错误的最小数量的代码。 在这种情况下,我正在使用ValidateCredentials(),但其他操作(如PrincipalSearches也会失败,出现完全相同的错误。 我已经使用LogonUser()validation了凭据的有效性。 https://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx bool IsValidWindowsUser(string userName, string password) { using (var p = new PrincipalContext(ContextType.Machine)) return p.ValidateCredentials(userName, […]

如何用C ++编程式更新组策略?

我以编程方式pipe理组策略,但是我无法find任何以编程方式更新组策略的function。 即gpupdate / force

如何将自定义属性添加到Windows中的AD组?

我想知道如何编写脚本。 另外,是否有一个开箱即用的GUI工具,让我这样做?

如何确定帐户的types(AD用户与AD组)?

我有一个关于确定帐户名称的types(用户或组)的问题。 例如,我有两个string,分别是“Adventure-works \ david”和“Adventure-works \ admins”,第一个表示名为david的用户,第二个表示AD组。 我的问题是如何确定这些帐户的types(用户或AD组)? 有没有方便的方法可以使用? 任何意见表示赞赏。 谢谢。

应该安装在Windows 7计算机上的PowerShell Active Directory模块导入它,还是可以从Windows 2008 R2 DC远程导入?

目前我正在taskpads上委托一些远程pipe理员的权限。我有以下问题; – >对于在PowerShell中导入活动目录模块,它是本地安装的,还是可以从Windows 2008 R2 DC远程导入? – >对于在远程工作站上工作的任务板,pipe理工具是否应安装在所有的远程机器上,还是有集中的维护方式? 请让我知道是否有关于我的努力的澄清/问题。