login脚本概述

为一个体验式学习课程工作,以及…我被要求照顾login脚本,我们还没有准备好完全实现它,我自己是一个脚本的新手,但我试过,这是我所拥有的。 我想知道是否有知识渊博的人可以看看并指出任何错误 – 如果我知道要寻找什么,我可以做更多的研究。

谢谢你的帮助。

这个脚本的目标是检测用户是哪个组的一部分,然后为该部门分配适当的份额。 工资单将有权访问每个部门的“工资”份额。

Department Key: HR, Accounting=ACT, Payroll=PYR, IT, Admin=AD, Production=PRD, Custodial=CST Const ACT_GROUP = "cn=Accounting" Const AD_GROUP = "cn=Admin" Const CST_GROUP = "cn=Custodial" Const HR_GROUP = "cn=Human Resources" Const IT_GROUP = "cn=IT" Const PYR_GROUP = "cn=Payroll" Const PRD_GROUP = "cn=Production" Set wshNetwork = CreateObject("WScript.Network") Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) strGroups = LCase(Join(CurrentUser.MemberOf)) If InStr(strGroups, ACT_GROUP) Then wshNetwork.MapNetworkDrive "N:", "\\FileServer\Accounting\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\Accounting\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\Accounting\ACTPayroll\" ElseIf InStr(strGroups, AD_GROUP) Then wshNetwork.MapNetworkDrive "N:", "\\FileServer\Admin\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\Admin\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\Admin\ADPayroll\" ElseIf InStr(strGroups, CST_GROUP) Then wshNetwork.MapNetworkDrive "N:", "\\FileServer\Custodial\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\Custodial\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\Custodial\CSTPayroll\" ElseIf InStr(strGroups, HR_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\Human Resources\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\Human Resources\HRPayroll\" ElseIf InStr(strGroups, IT_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\IT\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\IT\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\IT\ITPayroll\" ElseIf InStr(strGroups, PYR_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Payroll\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\Payroll\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\Payroll\PYRPayroll\" wshNetwork.MapNetworkDrive "Q:", "\\FileServer\Accounting\ACTPayroll\" wshNetwork.MapNetworkDrive "R:", "\\FileServer\Admin\ADPayroll\" wshNetwork.MapNetworkDrive "S:", "\\FileServer\Custodial\CSTPayroll\" wshNetwork.MapNetworkDrive "T:", "\\FileServer\Human Resources\HRPayroll\" wshNetwork.MapNetworkDrive "U:", "\\FileServer\IT\ITPayroll\" wshNetwork.MapNetworkDrive "V:", "\\FileServer\Production\PRDPayroll\" ElseIf InStr(strGroups, PRD_GROUP) Then wshNetwork.MapNetworkDrive "g:", "\\FileServer\Production\Department\" wshNetwork.MapNetworkDrive "M:", "\\FileServer\Production\Users\" & wshNetwork.UserName wshNetwork.MapNetworkDrive "O:", "\\FileServer\Production\PRDPayroll\" End If 

是否必须使用login脚本来完成? 如果使用组策略首选项是一个选项,它可能是首选。 这样,你可以用一个漂亮的graphics用户界面(GUI)来完成这个任务,并以相同的方式将其分组。 此外,它将名称映射到GUID,所以如果一个组名称发生变化,它仍然可以正常工作(除非您还记得在那里更改名称,否则在脚本中不会这么做)。 此外,您可以在login过程中查看工作站的“事件日志”中可能发生的错误。 这给出了一个很好的概述: 使用组策略首选项来映射基于组成员资格的驱动器

如果你需要它是一个脚本,嵌套组的成员关系吗? 也许检查一些好的示例脚本http://www.rlmueller.net/freecode2.htm