如何使用VBScript将本地组添加到Publishing Point?

时间:2011-11-09 11:00:00

标签: vbscript acl

我正在尝试弄清楚如何使用vbscript将本地组添加到(按需)发布点。

该组只需要对其进行读取访问。该小组(当然)已经首先创建。

系统:带有Media Services 2008的Windows Server 2008 R2 x64(适用于R2)。它不是域控制器,没有Active Directory。

上下文:使用一个Pub运行媒体服务器。每部电影的点数,并使用该组允许/拒绝访问该Pub。基于每个用户的点/电影。 我可以手动添加组,但我真的想用(vb)脚本来完成它。

手动完成: (首先创建一个本地组)。 在服务器管理器中,单击按需发布点,“属性”选项卡,“授权”,“WMS发布点ACL授权”(当然必须启用),右键单击它 - 选择“属性”。 奇怪的是,默认情况下,组未在对象类型中启用,因此必须专门使它们能够添加组。

我能找到的最接近的例子是:(它在VB.Net中)
http://msdn.microsoft.com/en-us/library/dd875036%28v=VS.85%29.aspx

到目前为止我的(几乎正在工作)脚本:

Dim Server
Dim ODPubPoint
Dim Plugin
Dim ACLCheckAdmin
Dim AccessCtrlList
Dim objACE

' Create a new WMSServer object.
Set Server = CreateObject("WMSServer.server","localhost")

' Create a new ODPubPoint object.
Set ODPubPoint = Server.PublishingPoints.Item("supersizeme")

' Retrieve the plug-in to be configured.
Set Plugin = ODPubPoint.EventHandlers.Item("WMS Publishing Points ACL Authorization")

' Retrieve the custom interface of the plug-in.
Set ACLCheckAdmin = Plugin.CustomInterface

' Retrieve the list of access control entries.
Set AccessCtrlList = ACLCheckAdmin.AccessControlList

' Create an object to be able to add to the access control list.
Set objACE = CreateObject("AccessControlEntry")

objACE = AccessCtrlList.Add("MEDIESERVER\hest", 16 )


该组确实被添加,但脚本因错误而死:
ppaddgroup.vbs(27,2)Microsoft VBScript运行时错误:对象不支持此属性或方法。

在VB.Net示例中,它说WMS_ACCESS_CONTROL.WMS_ACL_ALLOW_ALL,我不知道如何从VB.Net转换为VBScript。我认为这只是一个常数,但显然不是。
(我只想允许读访问,如WMS_ACL_ALLOW_READ)。

我在这个页面上找到了常数:
http://include.wutils.com/com-dll/constants/constants-WMSServerLib.htm

任何人都可以提出将组添加到发布点的正确方法吗?

1 个答案:

答案 0 :(得分:0)

greylion's previous edit

  

最后一行必须是:

     

Set objACE = AccessCtrlList.Add("MEDIESERVER\test", 16 )

     

出于某种原因,我确信最后的行为是加入了   小组不应该在前面有一套“Set”。我以为这只是   用于创建或定义对象,但显然它也用于填充   他们用实际数据。令人讨厌的是,它几乎与“Set”一起工作   失踪,这让我觉得我只是有一些小细节错了,但是   无法知道它是什么。

     

心理记录:用数据填充对象不像设置一样   变量或常数。