2011-02-03 44 views
2

現在Active Directoryサーバーから現在のユーザー情報を読み取るスクリプトで作業しています。nadは、Groupsに必要なプリンタを確認します。VBS内の一致する文字列

我々はそうのような文字列でグループ名と一致しようとしている機能 InStrに建て使用して、周りを取得するために苦労した問題に遭遇してきた

cn=GG_RoomA1,dc=Security Group cn=GG_RoomA2,dc=Security Group ... 

この文字列はGG_Room13

まで上昇し

  • を次のように
    'EDC Room A1 
    If InStr(strGroup, lcase(GG_RoomA1)) Then 
        objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA1_P002765" 
        objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA1_P002765" 
    End if 
    

    変数ですstrGroup |グループ

  • GG_RoomA1の大きな文字列が設定された定数であるとあるが、あなたはまた、GG_RoomA1を取得するGG_RoomA10グループの場合は、あなたのメンバーということであるcn=cn=GG_RoomA1

問題の価値を持っています。

たちは具体的には以下の要素を持つ唯一のグループと一致することができる方法は、全体のコードはここにある、

あります。

Option Explicit 
'On error resume next 
'Declare Variables 
Dim objNetwork, objUser, CurrentUser, strGroup, objFSO, Printers, i 

'Declare Constant Groups for Printer Locations 
Const GG_RoomA1 = "cn=GG_RoomA1" 
Const GG_RoomA2 = "cn=GG_RoomA2" 
Const GG_RoomA4 = "cn=GG_RoomA4" 
Const GG_RoomA6 = "cn=GG_RoomA6" 
Const GG_RoomA7 = "cn=GG_RoomA7" 
Const GG_RoomA8 = "cn=GG_RoomA8" 
Const GG_Room_CopiersA6_A8 = "cn=GG_Room_CopiersA6-A8" 
Const GG_RoomA9 = "cn=GG_RoomA9" 
Const GG_RoomA10 = "cn=GG_RoomA10" 
Const GG_RoomL1 = "cn=GG_RoomL1" 
Const GG_RoomL7 = "cn=GG_RoomL7" 
Const GG_RoomL9 = "cn=GG_RoomL9" 
Const GG_RoomC1 = "cn=GG_RoomC1" 
Const GG_RoomC3 = "cn=GG_RoomC3" 
Const GG_Room2 = "cn=GG_Room2" 
Const GG_Room3 = "cn=GG_Room3" 
Const GG_Room4_5 = "cn=GG_Room4&5" 
Const GG_Room6 = "cn=GG_Room6" 
Const GG_Room8_9 = "cn=GG_Room8&9" 
Const GG_Room10L = "cn=GG_Room10L" 
Const GG_Room10R = "cn=GG_Room10R" 
Const GG_Room11 = "cn=GG_Room11" 
Const GG_Room12 = "cn=GG_Room12" 
Const GG_Room12A = "cn=GG_Room12A" 
Const GG_Room12B = "cn=GG_Room12B" 
Const GG_Room13 = "cn=GG_Room13" 
Const GG_Room14_15 = "cn=GG_Room14&15" 
Const GG_Room16 = "cn=GG_Room16" 
Const GG_Room17 = "cn=GG_Room17" 
Const GG_Room_FRAnnexeA = "GG_Room_FRAnnexeA" 
Const GG_Room_FRAnnexeB = "GG_Room_FRAnnexeB" 
Const GG_Room_FRAnnexeC = "GG_Room_FRAnnexeC" 
Const GG_Room_FR02 = "GG_Room_FR02" 
Const GG_Room_FR05 = "GG_Room_FR05" 
Const GG_Room_FR10 = "GG_Room_FR10" 
Const GG_Room_FR11 = "GG_Room_FR11" 
Const GG_Room_FR13 = "GG_Room_FR13" 
Const GG_Room_FR14 = "GG_Room_FR14" 
Const GG_Room_FR16 = "GG_Room_FR16" 
Const GG_Room_Ruiz = "GG_Room_Ruiz" 
Const GG_Room_NLAdmin = "GG_Room_NLAdmin" 
Const GG_Room_NLManagers = "GG_Room_NLManagers" 
Const GG_Room_NLShared = "GG_Room_NLShared" 
Const GG_Room_NLSupport = "GG_Room_NLSupport" 
Const GG_Room_Shepwell = "GG_Room_Shepwell" 

Set objNetwork = CreateObject("WScript.Network") 
Set objUser = CreateObject("ADSystemInfo") 
Set CurrentUser = GetObject("LDAP://" & objUser.UserName) 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
strGroup = LCase(Join(CurrentUser.MemberOf)) 

'Remove all Network printers but not local printers 

Set Printers = objNetwork.EnumPrinterConnections 

For i = 0 to Printers.Count - 1 Step 2 

    If Left(ucase(Printers.Item(i+1)),2) = "\\" Then 
     'WScript.Echo Printers.Item(i+1) 
     objNetwork.RemovePrinterConnection Printers.Item(i+1) 
    End If 
Next 

'EDC Room A1 
If InStr(strGroup, lcase(GG_RoomA1)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA1_P002765" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA1_P002765" 
End if 

'EDC Room A2 
If InStr(strGroup, lcase(GG_RoomA2)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA2_P002280" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA2_ARM207" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA2_P002280" 
End if 

'EDC Room A4 
If InStr(strGroup, lcase(GG_RoomA4)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA4_P002012" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA4_P002175" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA4_P000169" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA4_P002874" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA4_P002012" 
End if 

'EDC Room A5 and A6 
If InStr(strGroup, lcase(GG_RoomA6)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA5_P001710" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA5_P000640" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA6_P002821" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA6_MX3100N" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA6_P002821" 
End if 

'EDC Room A7 
If InStr(strGroup, lcase(GG_RoomA7)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA7_P000804" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA7_P002241" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA7_ARM350" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA7_P002241" 
End if 

'EDC Room A8 
If InStr(strGroup, lcase(GG_RoomA8)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA8_P001720" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA8_P002820" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA8_P002861" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA8_MX550U" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA8_P002820" 
End if 

'EDC Room A6-A8 Copiers 
If InStr(strGroup, lcase(GG_Room_CopiersA6_A8)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA6_MX3100N" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA8_MX550U" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA7_ARM350" 
End if 

'EDC Room A9 
If InStr(strGroup, lcase(GG_RoomA9)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA9_P002011" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA9_P002819" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA9_P002819" 
End if 

'EDC Room A10 
If InStr(strGroup, lcase(GG_RoomA10)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA10_P002827" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA6_MX3100N" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA10_P002827" 
End if 

'EDC Room L1 
If InStr(strGroup, lcase(GG_RoomL1)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL1_IRC2880" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL1_P000474" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL1_P002420" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmL1_P002420" 
End if 

'EDC Room L7 
If InStr(strGroup, lcase(GG_RoomL7)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL7_P002603" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL7_P002260" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL7_MX363N" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmL7_P002603" 
End if 

'EDC Room L9 
If InStr(strGroup, lcase(GG_RoomL9)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmL9_P000930" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmL9_P000930" 
End if 

'EDC Room C1 
If InStr(strGroup, lcase(GG_RoomC1)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmC1_P000476" 
'objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\???" 
'objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\???" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmC1_P000476" 
End if 

'EDC Room C3 
If InStr(strGroup, lcase(GG_RoomC3)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmC3_P002828" 
'objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\???" 
'objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\???" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmC3_P002828" 
End if 

'EDC Room 2 
If InStr(strGroup, lcase(GG_Room2)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm2_P000229" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRM2_P000442" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm2_P000229" 
End if 

'EDC Room 3 
If InStr(strGroup, lcase(GG_Room3)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm3_P001736" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm3_P001736" 
End if 

'EDC Room 4 & 5 
If InStr(strGroup, lcase(GG_Room4_5)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm4&5_P000751" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRM4&5_P001904" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm4&5_P000751" 
End if 

'EDC Room 6 
If InStr(strGroup, lcase(GG_Room6)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm6_P002806" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRM6_P002562" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm6_P002806" 
End if 

'EDC Room 8 & 9 
If InStr(strGroup, lcase(GG_Room8_9)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm8&9_P001775" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm8&9_P001775" 
End if 

'EDC Room 10L 
If InStr(strGroup, lcase(GG_Room10L)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm10_P002379" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm10_P002380" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm10_P002764" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm10_P002380" 
End if 

'EDC Room 10R 
If InStr(strGroup, lcase(GG_Room10R)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm10_P002379" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm10_P002380" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm10_P002764" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm10_P002379" 
End if 

'EDC Resource Room (Room 11) 
If InStr(strGroup, lcase(GG_Room11)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm11_MX4501N" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm11_MX700U" 
End if 

'EDC Room 12 
If InStr(strGroup, lcase(GG_Room12)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm12_P002224" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm12_P002224" 
End if 


'EDC Room 12A 
If InStr(strGroup, lcase(GG_Room12A)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm12A_P000786" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm12A_P000792" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm12A_P000786" 
End if 

'EDC Room 12B 
If InStr(strGroup, lcase(GG_Room12B)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm12B_P002781" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm12B_P002781" 
End if 

'EDC Room 13 
If InStr(strGroup, lcase(GG_Room13)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm13_P001784" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm13_P002818" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm13_P002818" 
End if 

'EDC Room 14 & 15 
If InStr(strGroup, lcase(GG_Room14_15)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRM14&15_P002782" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm14&15_P002782" 
End if 

'EDC Room 16 
If InStr(strGroup, lcase(GG_Room16)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm16_P001360" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm16_P001512" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm16_P001512" 
End if 

'EDC Room 17 
If InStr(strGroup, lcase(GG_Room17)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm17_P001045" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRm17_P001936" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm16_P001512" 
End if 


'Field Road Admin 
'IS THIS NEEDED - IS FR16 the same thing 
'If InStr(strGroup, lcase(GG_Room???)) Then 
'objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAdmin_P000230" 
'objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAdmin_P000525" 
'objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRm16_P001512" 
'End if 

'Field Road AnnexeA SEN 
If InStr(strGroup, lcase(GG_Room_FRAnnexeA)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexe_P002809" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexe_P002805" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexeSEN_ARM256" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRAnnexe_P002805" 
End if 

'Field Road AnnexeB DISABILITY 
If InStr(strGroup, lcase(GG_Room_FRAnnexeB)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexe_P002312" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexeDIS_ARM256" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRAnnexe_P002312" 
End if 

'Field Road AnnexeC LAC 
If InStr(strGroup, lcase(GG_Room_FRAnnexeC)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexeLAC_P000991" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAnnexeLAC_P001050" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRAnnexeLAC_P001050" 
End if 

'Field Road FR02 
If InStr(strGroup, lcase(GG_Room_FR02)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRMain_MX3100N" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRMain_MX363N" 
End if 


'Field Road FR05 
If InStr(strGroup, lcase(GG_Room_FR05)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRMain_P002436" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRMain_P002436" 
End if 

'Field Road FR10 
If InStr(strGroup, lcase(GG_Room_FR10)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRm10_P000438" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRRm10_P000438" 
End if 


'Field Road FR11 
If InStr(strGroup, lcase(GG_Room_FR11)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRm11_P002013" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRRm11_P002013" 
End if 


'Field Road FR13 
If InStr(strGroup, lcase(GG_Room_FR13)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRm13_P001049" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRRm13_P001049" 
End if 


'Field Road FR14 
If InStr(strGroup, lcase(GG_Room_FR14)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRm14_P001041" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRRm14_P001041" 
End if 


'Field Road FR16 
If InStr(strGroup, lcase(GG_Room_FR16)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAdmin_P000230" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRAdmin_P000525" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRAdmin_P000230" 
End if 

'Field Road RUIZ 
If InStr(strGroup, lcase(GG_Room_Ruiz)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRuiz_P001072" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRuiz_P001867" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\FRRuiz_MX283N" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\FRRuiz_P001867" 
End if 

'New Leaf Admin 
If InStr(strGroup, lcase(GG_Room_NLAdmin)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCNL_IRC3580" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCNL_P002871" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCNL_P002871" 
End if 

'New Leaf Managers 
If InStr(strGroup, lcase(GG_Room_NLManagers)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCNL_P002306" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCNL_P002206" 
End if 

'New Leaf Shared 
If InStr(strGroup, lcase(GG_Room_NLShared)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCNL_IRC3580" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCNL_IRC3580" 
End if 

'New Leaf Support 
If InStr(strGroup, lcase(GG_Room_NLSupport)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCNL_P002016" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCNL_P002016" 
End if 

'Shepwell 
If InStr(strGroup, lcase(GG_Room_Shepwell)) Then 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\SHEP_P000436" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\SHEP_P002017" 
objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\SHEP_P002017" 
objNetwork.SetDefaultPrinter "\\edw-sr-img\SHEP_P000436" 
End if 


Dim answer 
answer=MsgBox("Printer Script is Complete!",0,"Confirmation") 


'End Printer Script 
WScript.Quit 

答えて

2

これを行うには

If InStr(LCase(strGroup), LCase(GG_RoomA1 & ",")) Or LCase(Right(strGroup, Len(GG_RoomA1))) = LCase(GG_RoomA1) Then 
+0

おそらく、私よりも優れた解決策ですが、私は問題を単純化しました! –

+0

@トム:おそらく、私はまだ少し混乱しています。だから、ロバートの同僚が私たちの答えについて何を言っているのかを待たなければならないと思うでしょう。 –

+0

yea私はVB、btについて私はそれが辞書とかなりまともな文字列比較関数を持っているから、彼は現在昼食に戻っているので、病気を知っているだろうから私は文字列を確認する必要がありますグループ名は常に '、'で始まります。良い解決策も+1 – RobertPitt

2

私はこの権利を理解していれば、あなたは可能性があり、文字列があります。

GG_RoomA10 

または

GG_RoomA1 

をそして、あなたは一つだけにマッチしたいが、それならばRoomA1と一致しませんRoomA10です。

あなたは試みることができる:

'Matches A1 but not A10 
If InStr(strGroup, lcase(GG_RoomA1)) AND NOT InStr(strGroup, lcase(GG_RoomA10)) 

を。これは、次のような結果を返します:

"GG_RoomA1" = true 
"GG_RoomA10" = false 
"GG_RoomA1/GG_RoomA10" = false 

彼らは相互に独立している場合、IEは、同じ文字列で表示されることはありませんので、あなたが優れています行く。同じ文字列で表示される場合は、もう少し複雑になります。

あなたのコードのデザインは、通常、悪いデザインを示しています。このデザインボードに戻ってみるとよいでしょう(IE、DB接続はありますか?)。 ifとnotの全負荷は維持するのが難しいでしょう。コンマは、右の部屋の文字列の後ろにあります場合にのみ一致するように

If InStr(LCase(strGroup), LCase(GG_RoomA1 & ",")) Then 

:あなたがあなたのIfを変えることができるように、すべての客室には、その背後にカンマを持っているように見えるグループ文字列を見ると

+0

コードは、彼が助けを私の方を向いている別の大学で行われた、私は、VBScriptについて見当もつかないし、それは私がそのようななどの辞書やループなどのアイデアを説明するための長いプロセスだったが、彼はこのように述べ彼が持っている唯一の問題であり、彼がそれを過ぎることができれば、彼は幸せになるでしょう。 – RobertPitt

+0

質問によれば、部屋13まで行くので、11,12,13でないことも変えなければなりません。 –

+0

私たちは、「GG_RoomA1/GG_RoomA10」が「true」を返すはずだと思ったので、私たちはこの質問を誤解しました。しかし、今私は確信していません... –

0

より良い方法は、一度にグループ1を処理するためにFor Eachを使用することであるのではなく頼っ:、または最後の部屋では、次の組み合わせを行うことができ、それの後ろにカンマを持っていない場合部分文字列メソッド。

Set objNetwork = CreateObject("WScript.Network") 
Set objUser = CreateObject("ADSystemInfo") 
Set CurrentUser = GetObject("LDAP://" & objUser.UserName) 

For Each strGroup in CurrentUser.MemberOf 
    strGroupPath = "LDAP://" & strGroup 
    Set objGroup = GetObject(strGroupPath) 
    strGroupName = objGroup.CN 

    ' Set up printers based on group 
    If strGroupName = "GG_RoomA1" Then 
     objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA1_P002765" 
     objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA1_P002765" 
    End If 

    If strGroupName = "GG_RoomA2" Then 
     objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA2_P002280" 
     objNetwork.AddWindowsPrinterConnection "\\edw-sr-img\EDCRmA2_ARM207" 
     objNetwork.SetDefaultPrinter "\\edw-sr-img\EDCRmA2_P002280" 
    End If 

    'TODO: Handle other groups 
Next