有关在Windows域上强制执行用户计数许可的建议

时间:2014-07-01 23:22:13

标签: windows licensing

我们有一个本质上是后端的应用程序(即它在服务器上运行,用户永远不会直接与它交互)。应用程序仅通过UNC共享与文件服务器交互(不与SQL服务器或类似的东西交互)。

我们的营销人员希望根据“网站上的用户数量”(或其他一些客户规模)来销售此应用程序,并责成我在我们的许可中找出一种方法来强制执行此操作系统

我知道Microsoft服务器有CAL,我想知道是否有办法查询域控制器以确定CAL(到目前为止,谷歌搜索还没有提出任何相关信息)。

有没有人有任何聪明或有创意的解决方案来解决这个问题?

1 个答案:

答案 0 :(得分:0)

就像哈利所说,你使用的任何解决方案都可能很狡猾,因为你计算的用户数量可能不会反映现实中的用户数量。话虽这么说,我能想到的最好的解决方案是计算Active Directory域中已启用的用户对象的数量。这可以通过使用脚本语言或内置命令来完成:

PowerShell的

(get-aduser -Filter {enabled -eq $true}).count

DSQUERY

dsquery * -filter "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))" -limit 0 | find /v /c ""

的VBScript

Const Ads_Scope_SubTree = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")

objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = Ads_Scope_SubTree 

objCommand.CommandText = _
"Select Name From 'LDAP://DC = [Your Domain], DC = Com' Where objectCategory = 'Person'" 

Set objRecordSet = objCommand.Execute
MsgBox "Total Number Of Users Found : " & objRecordSet.RecordCount

如果您想了解类固醇的相似之处,请参阅https://sysinfo.io/export-active-directory-users/。网站上还有大量免费的PowerShell脚本。