none
依Group來連線網路磁碟機的Lgoin Script出現錯誤訊息 RRS feed

  • 問題

  • DC: Windows2003Server
    Client: WindowsXP SP2
    Login Script Name: Login_Script.vbs


    Const Accounting_GROUP     = "cn=Accounting"
    Const Dispatch_GROUP         = "cn=Dispatch"

    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
    strGroups = LCase(Join(CurrentUser.MemberOf))

    If InStr(strGroups, Accounting_GROUP) Then
      wshNetwork.MapNetworkDrive "G:","\\FileServer\Accounting\Share\"

    ElseIf InStr(strGroups, Dispatch_GROUP) Then
      wshNetwork.MapNetworkDrive "G:", \"\\FileServer\Dispatch\Share\"

    End If


    User位於Dispatch群組中, 直接連線\\FileServer\Dispatch\Share到G槽是OK的
    但是直接在Client端執行Login_Script.vbs就出現


    錯誤: 型態不符合: 'Join'
    程式碼: 800A000D


    請教一下, 為什麼每次都會出現這個錯誤訊息呢???

     

     

    2007年2月1日 上午 09:26

解答

  • If UBound(CurrentUser.MemberOf) - LBound(CurrentUser.MemberOf) > 0 Then
     strGroups = LCase(Join(CurrentUser.MemberOf))
    Else
     strGroups = LCase(CurrentUser.MemberOf)
    End If

    試試看,我沒試過。

    2007年2月14日 上午 06:01

所有回覆

  • 測試了一陣子發現,

    User只加入一個Group

    -- strGroups = LCase(Join(CurrentUser.MemberOf))  <==== 出現錯誤訊息(錯誤: 型態不符合: 'Join' )

    -- strGroups = LCase(CurrentUser.MemberOf)  <==== 正常執行Script

     

    User加入了一個Group以上 (ex:加入兩個Group)

    -- strGroups = LCase(Join(CurrentUser.MemberOf))  <==== 正常執行Script

    -- strGroups = LCase(CurrentUser.MemberOf)  <==== 出現錯誤訊息(錯誤: 型態不符合: 'Join' )

     

    結論:

    Login User只加入一個Group就不能加Join

    Login User加入兩個Group以上就一定要加Join

    請教各位老師, 為什麼會這樣呢???

    因為環境User有加入一個Group的也有加入2-3個Group的, 所以不知怎麼辦??

    2007年2月8日 上午 09:54
  • If UBound(CurrentUser.MemberOf) - LBound(CurrentUser.MemberOf) > 0 Then
     strGroups = LCase(Join(CurrentUser.MemberOf))
    Else
     strGroups = LCase(CurrentUser.MemberOf)
    End If

    試試看,我沒試過。

    2007年2月14日 上午 06:01