Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication 通过OU和组登录VBS以映射驱动器_Authentication_Vbscript_Mapping_Drive Mapping - Fatal编程技术网

Authentication 通过OU和组登录VBS以映射驱动器

Authentication 通过OU和组登录VBS以映射驱动器,authentication,vbscript,mapping,drive-mapping,Authentication,Vbscript,Mapping,Drive Mapping,我试图通过调用从用户所在的OU中查找用户的子例程,使以下登录脚本正常工作。然后,根据驱动器所在的组,在子例程中完成驱动器映射。我希望避免创建组,只使用每个OU的域用户,而不必为这么大的公司中的每个OU维护它们,因此在第一个级别上对OU进行筛选比按组进行筛选要容易得多。我不能让这个工作,但任何帮助将不胜感激。我觉得我很接近 On Error Resume Next Dim objfileserverO,objFILE,objShell,objNetwork set objfileserverO=C

我试图通过调用从用户所在的OU中查找用户的子例程,使以下登录脚本正常工作。然后,根据驱动器所在的组,在子例程中完成驱动器映射。我希望避免创建组,只使用每个OU的域用户,而不必为这么大的公司中的每个OU维护它们,因此在第一个级别上对OU进行筛选比按组进行筛选要容易得多。我不能让这个工作,但任何帮助将不胜感激。我觉得我很接近

On Error Resume Next
Dim objfileserverO,objFILE,objShell,objNetwork
set objfileserverO=CreateObject("Scripting.FileSystemObject")
set objShell=CreateObject("Wscript.Shell")
set objNetwork=CreateObject("Wscript.Network")
set objSysInfo = CreateObject("ADSystemInfo")



strUserDN = objSysInfo.UserName

Set objUser = GetObject("LDAP://" & strUserDN)

strOUPath = objUser.Parent

Function GetUserOU(strOUPath)
Select Case strOUPath
Case "LDAP://ou=Users,ou=abzed,ou=domain,dc=domain,dc=org"
    Call MapIt1
Case "LDAP://ou=Users,ou=huston,ou=domain,dc=domain,dc=org"
    Call MapIt2
Case "LDAP://ou=Users,ou=denv,ou=IEB,ou=domain,dc=domain,dc=org"
    Call MapIt3
Case "LDAP://ou=Users,ou=huston,ou=IEB,ou=domain,dc=domain,dc=org"
    Call MapIt4
Case "LDAP://ou=Users,ou=lafa,ou=IEB,ou=domain,dc=domain,dc=org"
    Call MapIt5
Case "LDAP://ou=Users,ou=NEW,ou=IEB,ou=domain,dc=domain,dc=org"
    Call MapIt6
End Select
End Function

Function IsAMemberOf(strDomain,strUser,strGroup)
On Error Resume Next
Set objUser=GetObject("WinNT://" & strDomain & "/" & strUser & ",user")
Set objGrp=GetObject("WinNT://" & strDomain & "/" & strGroup & ",group")

If objGrp.IsMember(objUser.ADsPath) Then
IsAMemberOf=True
Else
IsAMemberOf=False
End If 

End Function


Sub MapIt1(strDrive,strMap)
On Error Resume Next
If objfileserverO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
strMsg="There was a problem mapping drive " & UCase(strDrive) & " to " &_
strMap & VbCrLf & strHelpMsg & VbCrLf & "Error#:" & Hex(err.Number) &_
VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"OG_SystemsIntegration") Then     MapIt1 "K:","\\domain-fileserver2.domaingroup.com\Shared\SI"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"OG_BidsPropsals") Then MapIt1 "L:","\\domain-fileserver2.domaingroup.com\Shared\BIDS"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"OG_BidsGuest") Then MapIt1 "L:","\\domain-fileserver2.domaingroup.com\Shared\BIDS"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_SALES") Then MapIt1 "N:","\\domain-fileserver2.domaingroup.com\shared\sales"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"OG_Operations") Then MapIt1 "O:","\\domain-fileserver2.domaingroup.com\shared\Operations"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_Stores") Then MapIt1 "Q:","\\domain-fileserver2.domaingroup.com\shared\stores"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_Accounts") Then MapIt1 "S:","\\domain-fileserver2.domaingroup.com\shared\accounts"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_IT") Then MapIt1 "T:","\\domain-fileserver2.domaingroup.com\shared\IT"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_MIS") Then MapIt1 "V:","\\domain-fileserver2.domaingroup.com\shared\MIS"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_Archive") Then MapIt1 "W:","\\domain-fileserver2.domaingroup.com\Archive"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_INTRANET") Then MapIt1 "X:","\\domain-fileserver2.domaingroup.com\shared\intranet"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"SUP_BUSINESS") Then MapIt1 "Y:","\\domain-fileserver2.domaingroup.com\shared\Business"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt1 "P:","\\domain-fileserver2.domaingroup.com\products"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt1 "U:","\\domain-fileserver2.domaingroup.com\companyinfo"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt1 "Z:","\\domain-fileserver2.domaingroup.com\Shared\scratchpad"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"UK Engineers") Then MapIt1 "I:","\\domain.Org\shared"
End If
End Sub


Sub MapIt2(strDrive,strMap)
On Error Resume Next
If objfileserverO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
strMsg="There was a problem mapping drive " & UCase(strDrive) & " to " &_
strMap & VbCrLf & strHelpMsg & VbCrLf & "Error#:" & Hex(err.Number) &_
VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain User") Then MapIt2    "I:","\\domain.Org\shared"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"domain Leadership Team_Agings") Then MapIt2 "M:","\\domain.org\shared\Leadership Team"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"domain International Tax") Then MapIt2 "L:","\\domain.org\shared\Tax\"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"domain_NO") Then MapIt2 "V:","\\fileserver01\visma"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"abzedserver") Then MapIt2 "Q:","\\server1\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Site server5 Groups") Then MapIt2 "R:","\\server1\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"abzedserver") Then MapIt2 "S:","\\server\"
End If
End Sub


Sub MapIt3(strDrive,strMap)
On Error Resume Next
If objfileserverO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
strMsg="There was a problem mapping drive " & UCase(strDrive) & " to " &_
strMap & VbCrLf & strHelpMsg & VbCrLf & "Error#:" & Hex(err.Number) &_
VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt3 "G:","\\server2\apps"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt3 "P:","\\server2\public"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt3 "U:","\\server2\users"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt3 "X:","\\server2\groups"
End If
End Sub


Sub MapIt4(strDrive,strMap)
On Error Resume Next
If objfileserverO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
strMsg="There was a problem mapping drive " & UCase(strDrive) & " to " &_
strMap & VbCrLf & strHelpMsg & VbCrLf & "Error#:" & Hex(err.Number) &_
VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt4 "X:","\\server5"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt4 "L:","\\server4\applications"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Group 3 - r") Then MapIt4 "Y:","\\server3\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Group 3 - rw") Then MapIt4 "Y:","\\server3\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"System Maintenance - r") Then MapIt4 "Z:","\\server3\groups\System Maintenance"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"System Maintenance - rw") Then MapIt4 "Z:","\\server3\groups\System Maintenance"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Marketing") Then MapIt4 "I:","\\domain.org\shared"
End If
End Sub


Sub MapIt5(strDrive,strMap)
On Error Resume Next
If objfileserverO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
strMsg="There was a problem mapping drive " & UCase(strDrive) & " to " &_
strMap & VbCrLf & strHelpMsg & VbCrLf & "Error#:" & Hex(err.Number) &_
VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt5 "I:","\\fileserver1\Sites"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Procurement and Logistics") Then MapIt "S:","\\domain.org\shared"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt5 "V:","\\fileserver1\PRIV_"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt5 "L:","\\fileserver1\applications"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt5 "P:","\\campappfileserver1\StvPFILE"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt5 "H:","\\fileserver1\rti4"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Tier III - r") Then MapIt5 "Y:","\\server3\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Tier III - rw") Then MapIt5 "Y:","\\server3\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"System Maintenance - r") Then MapIt5 "Z:","\\server3\groups\System Maintenance"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"System Maintenance - rw") Then MapIt5 "Z:","\\server3\groups\System Maintenance"
End If
End Sub


Sub MapIt6(strDrive,strMap)
On Error Resume Next
If objfileserverO.DriveExists(strDrive) Then objNetwork.RemoveNetworkDrive(strDrive)

objNetwork.MapNetworkDrive strDrive,strMap

If Err.Number<>0 And blnShowError Then
strMsg="There was a problem mapping drive " & UCase(strDrive) & " to " &_
strMap & VbCrLf & strHelpMsg & VbCrLf & "Error#:" & Hex(err.Number) &_
VbCrLf & Err.Description
objShell.Popup strMsg,iErrorTimeOut,"Error",vbOKOnly+vbExclamation
Err.Clear
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt6 "Y:","\\server3\groups"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt6 "M:","\\server3\users"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt6 "X:","\\server3\apps"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt6 "L:","\\fileserver1\applications"
If IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,"Domain Users") Then MapIt6 "Z:","\\server3\groups\System Maintenance"
End If
End Sub
出错时继续下一步
Dim objfileserverO、objFILE、objShell、objNetwork
设置objfileserverO=CreateObject(“Scripting.FileSystemObject”)
设置objShell=CreateObject(“Wscript.Shell”)
设置objNetwork=CreateObject(“Wscript.Network”)
set objSysInfo=CreateObject(“ADSystemInfo”)
strUserDN=objSysInfo.UserName
Set objUser=GetObject(“LDAP://”&strUserDN)
strOUPath=objUser.Parent
函数GetUserOU(strOUPath)
选择Case strOUPath
案例“LDAP://ou=Users,ou=abzed,ou=domain,dc=domain,dc=org”
调用MapIt1
案例“LDAP://ou=Users,ou=huston,ou=domain,dc=domain,dc=org”
调用MapIt2
案例“LDAP://ou=Users,ou=denv,ou=IEB,ou=domain,dc=domain,dc=org”
致电MapIt3
案例“LDAP://ou=Users,ou=huston,ou=IEB,ou=domain,dc=domain,dc=org”
调用MapIt4
案例“LDAP://ou=Users,ou=lafa,ou=IEB,ou=domain,dc=domain,dc=org”
请致电MapIt5
案例“LDAP://ou=Users,ou=NEW,ou=IEB,ou=domain,dc=domain,dc=org”
请致电MapIt6
结束选择
端函数
函数IsAMemberOf(strDomain、strUser、strGroup)
出错时继续下一步
Set objUser=GetObject(“WinNT://”和strDomain&“/”和strUser&”,user”)
Set objGrp=GetObject(“WinNT://”和strDomain&“/”和strGroup&“group”)
如果objGrp.IsMember(objUser.ADsPath),则
IsAMemberOf=True
其他的
IsAMemberOf=假
如果结束
端函数
子地图1(strDrive、strMap)
出错时继续下一步
如果存在objfileserverO.drive(strDrive),则objNetwork.RemoveNetworkDrive(strDrive)
objNetwork.MapNetworkDrive strDrive,strMap
如果错误号为0和Blnshower,则
strMsg=“映射驱动器时出现问题”&UCase(strDrive)和“到”&_
strMap&VbCrLf&strHelpMsg&VbCrLf&“Error#:”&Hex(err.Number)&_
VbCrLf错误描述(&R)
objShell.Popup strMsg,iErrorTimeOut,“Error”,vbOKOnly+vb惊叹号
呃,明白了
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“OG_SystemsIntegration”),则MapIt1“K:”,“\\domain-fileserver2.domaingroup.com\Shared\SI”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“OG_BidsPropsals”),则MapIt1“L:”,“\\domain-fileserver2.domaingroup.com\Shared\BIDS”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“OG_BidsGuest”),则MapIt1“L:”,“\\domain-fileserver2.domaingroup.com\Shared\BIDS”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_SALES”),则MapIt1“N:”,“\\domain-fileserver2.domaingroup.com\shared\SALES”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“OG_操作”),则MapIt1“O:”,“\\domain-fileserver2.domaingroup.com\shared\Operations”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_Stores”),则MapIt1“Q:”,“\\domain-fileserver2.domaingroup.com\shared\Stores”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_Accounts”),则MapIt1“S:”,“\\domain-fileserver2.domaingroup.com\shared\Accounts”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_IT”),则MapIt1“T:”,“\\domain-fileserver2.domaingroup.com\shared\IT”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_MIS”),则MapIt1“V:”,“\\domain-fileserver2.domaingroup.com\shared\MIS”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_Archive”),则MapIt1“W:”,“\\domain-fileserver2.domaingroup.com\Archive”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_INTRANET”),则MapIt1“X:”,“\\domain-fileserver2.domaingroup.com\shared\INTRANET”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“SUP_BUSINESS”),则MapIt1“Y:”,“\\domain-fileserver2.domaingroup.com\shared\BUSINESS”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“域用户”),则MapIt1“P:”,“\\Domain-fileserver2.domaingroup.com\products”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“域用户”),则MapIt1“U:”,“\\Domain-fileserver2.domaingroup.com\companyinfo”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“域用户”),则MapIt1“Z:”,“\\Domain-fileserver2.domaingroup.com\Shared\scratchpad”
如果isamberof(objNetwork.UserDomain,objNetwork.UserName,“英国工程师”),则MapIt1“I:”,“\\domain.Org\shared”
如果结束
端接头
子地图2(strDrive、strMap)
出错时继续下一步
如果存在objfileserverO.drive(strDrive),则objNetwork.RemoveNetworkDrive(strDrive)
objNetwork.MapNetworkDrive strDrive,strMap
如果错误号为0和Blnshower,则
strMsg=“映射驱动器时出现问题”&UCase(strDrive)和“到”&_
strMap&VbCrLf&strHelpMsg&VbCrLf&“Error#:”&Hex(err.Number)&_
VbCrLf错误描述(&R)
objShell.Popup strMsg,iErrorTimeOut,“Error”,vbOKOnly+vb惊叹号
呃,明白了
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“域用户”),则MapIt2“I:”,“\\Domain.Org\shared”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“域领导团队”\u Agings),则MapIt2“M:”,“\\domain.org\shared\Leadership Team”
如果isamberof(objNetwork.UserDomain,objNetwork.UserName,“域国际税”),则MapIt2“L:”,“\\domain.org\shared\Tax\”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“域号”),则MapIt2“V:”,“\\fileserver01\visma”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“abzedserver”),则MapIt2“Q:”,“\\server1\groups”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“站点服务器5组”),则MapIt2“R:”,“\\server1\Groups”
如果IsAMemberOf(objNetwork.UserDomain,objNetwork.UserName,“abzedserver”),则MapIt2“S:,“\\server\”
如果结束
端接头
子地图3(strDrive、strMap)
出错时继续下一步
如果存在objfileserverO.drive(strDrive),则objNetwork.RemoveNetworkDrive(strDrive)
objNetwork.MapN
Set objSysInfo = CreateObject("ADSystemInfo")


strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)

strUserName = objUser.samAccountName

strOUPath = objUser.Parent
arrContainers = Split(strOUPath, ",")
arrOU = Split(arrContainers(0), "=")
strOU = arrOU(1)

If arrOU(1) = "OU=test2,OU=test1,OU=TestOU,DC=domain,DC=com" Then
strDrive = "\\sharename\share\share"
Set objNetwork = CreateObject("Wscript.Network")
objNetwork.MapNetworkDrive "Z:", strDrive
End If