VBScript:登錄腳本

     今日與一些朋友調侃起各自的部門名稱,有的IT部已經被用戶公認爲“挨踢”部,甚至有的IT部的分機號碼都已被設置爲119,  不知有多少ITPro被淪落爲“救火員”,成就了傳說中的“挨踢”, 業務與IT部門之間的哪些微秒之外到底在哪裏?
 
     今天要與大家分享的是AD用戶在登入時執行的腳本,設置的位置位於AD用戶屬性的Logon Script處。因爲該功能涉及到部分註冊表的寫入,因此根據條件判斷通過Runasspc工具來分別運行兩個輔助腳本,這兩個腳本,明天與大家分享。
 
     有關Runasspc的用法,請參考官方網站(德國工藝,五星保證)。
 
       該腳本指在爲多家分支機構的用戶提供通用的基本設置功能,包括自動增加和設置默認打印機,Citrix ICA快捷鍵、基本的截屏、USB和VNC等等的安全控制。
     
      腳本存儲位置:\\Domain\Netlogon
 
 
  1. '*************************************************  
  2. ' Script : Users Logon Script   
  3. ' Last Modified : 2010-07-27   
  4. ' Version : 2.0   
  5. '**************************************************  
  6. On Error Resume Next      
  7.  
  8. ' CN Branch Printer      
  9. Const nBranch  = 10   
  10. Const nPRN    = 5   
  11. Const nDept    = 5   
  12.  
  13. Const HZ    = 0   
  14. Const SH    = 1   
  15. Const NJ    = 2   
  16. Const FZ    = 3   
  17. Const XM    = 4   
  18. Const JN    = 5      
  19. Const SZ    = 6   
  20. Const CQ    = 7      
  21.  
  22.  
  23. Const CR    = 0   
  24. Const HR    = 1   
  25. Const IT    = 2   
  26. Const AC    = 3   
  27. Const OM    = 4   
  28.  
  29.  
  30. ReDim arrBranch(nBranch - 1)   
  31.   arrBranch(0)    = "HZ"   
  32.   arrBranch(1)    = "SH"   
  33.   arrBranch(2)    = "NJ"   
  34.   arrBranch(3)    = "FZ"   
  35.   arrBranch(4)    = "XM"   
  36.   arrBranch(5)    = "JN"   
  37.   arrBranch(6)    = "SZ"   
  38.   arrBranch(7)    = "CQ"   
  39.  
  40.  
  41. ReDim arrBWPRN(nBranch - 1 , nDept - 1)   
  42. ReDim arrCOPRN(nBranch - 1 , nDept - 1)   
  43. ReDim arrDePRN(nBranch - 1 , nDept - 1)   
  44.  
  45. arrBWPRN(HZ,0)      = "\\hz2k3dc01\BWPrn1"   
  46. arrBWPRN(HZ,1)      = "\\hz2k3dc01\BWPrn2"   
  47. arrCOPRN(HZ,0)      = ""   
  48. arrDePRN(HZ,CR)    = 1   
  49. arrDePRN(HZ,HR)    = 1   
  50. arrDePRN(HZ,IT)    = 1   
  51. arrDePRN(HZ,AC)    = ""   
  52. arrDePRN(HZ,OM)    = ""   
  53.  
  54. arrBWPRN(SH,0)      = "\\SH2k3dc01\BWPrn1"   
  55. arrBWPRN(SH,1)      = "\\SH2k3dc01\BWPrn2"   
  56. arrCOPRN(SH,0)      = "\\SHPUB235\BWPrn3"   
  57. arrDePRN(SH,CR)    = ""   
  58. arrDePRN(SH,HR)    = ""   
  59. arrDePRN(SH,IT)    = ""   
  60. arrDePRN(SH,AC)    = ""   
  61. arrDePRN(SH,OM)    = ""   
  62.  
  63. arrBWPRN(NJ,0)      = "\\NJ2k3dc01\BWPrn1"   
  64. arrBWPRN(NJ,1)      = "\\NJ2k3dc01\BWPrn2"   
  65. arrCOPRN(NJ,0)      = ""   
  66. arrDePRN(NJ,CR)    = ""   
  67. arrDePRN(NJ,HR)    = ""   
  68. arrDePRN(NJ,IT)    = ""   
  69. arrDePRN(NJ,AC)    = ""   
  70. arrDePRN(NJ,OM)    = ""   
  71.  
  72. arrBWPRN(FZ,0)      = "\\FZ2k3dc01\BWPrn1"   
  73. arrBWPRN(FZ,1)      = "\\FZ2k3dc01\BWPrn2"   
  74. arrBWPRN(FZ,2)      = "\\FZPUB235\BWPrn3"   
  75. arrCOPRN(FZ,0)      = "\\FZPUB235\COPrn1"   
  76. arrDePRN(FZ,CR)    = ""   
  77. arrDePRN(FZ,HR)    = ""   
  78. arrDePRN(FZ,IT)    = ""   
  79. arrDePRN(FZ,AC)    = ""   
  80. arrDePRN(FZ,OM)    = ""   
  81.  
  82. arrBWPRN(XM,0)      = "\\XM2k3dc01\BWPrn1"   
  83. arrBWPRN(XM,1)      = "\\XM2k3dc01\BWPrn2"   
  84. arrBWPRN(XM,2)      = "\\XMPUB235\BWPrn3"   
  85. arrCOPRN(XM,0)      = ""   
  86. arrDePRN(XM,CR)    = ""   
  87. arrDePRN(XM,HR)    = ""   
  88. arrDePRN(XM,IT)    = ""   
  89. arrDePRN(XM,AC)    = ""   
  90. arrDePRN(XM,OM)    = ""   
  91.  
  92. arrBWPRN(JN,0)      = "\\JN2k3dc01\BWPrn1"   
  93. arrBWPRN(JN,1)      = "\\JN2k3dc01\BWPrn2"   
  94. arrCOPRN(JN,0)      = "\\JNPUB235\BWPrn3"   
  95. arrDePRN(JN,CR)    = ""   
  96. arrDePRN(JN,HR)    = ""   
  97. arrDePRN(JN,IT)    = ""   
  98. arrDePRN(JN,AC)    = ""   
  99. arrDePRN(JN,OM)    = ""   
  100.  
  101. arrBWPRN(SZ,0)      = "\\SZ2k3dc01\BWPrn1"   
  102. arrBWPRN(SZ,1)      = "\\SZ2k3dc01\BWPrn2"   
  103. arrBWPRN(SZ,2)      = "\\SZPUB235\BWPrn1"   
  104. arrCOPRN(SZ,0)      = "\\SZPUB235\coPrn1"   
  105. arrDePRN(SZ,CR)    = 1   
  106. arrDePRN(SZ,HR)    = ""   
  107. arrDePRN(SZ,IT)    = ""   
  108. arrDePRN(SZ,AC)    = 1   
  109. arrDePRN(SZ,OM)    = 1   
  110.  
  111. arrBWPRN(CQ,0)      = "\\CQ2k3dc01\BWPrn1"   
  112. arrBWPRN(CQ,1)      = "\\CQ2k3dc01\BWPrn2"   
  113. arrCOPRN(CQ,0)      = "\\CQPUB235\BWPrn3"   
  114. arrDePRN(CQ,CR)    = ""   
  115. arrDePRN(CQ,HR)    = ""   
  116. arrDePRN(CQ,IT)    = ""   
  117. arrDePRN(CQ,AC)    = ""   
  118. arrDePRN(CQ,OM)    = ""   
  119.  
  120.  
  121. '----------------------------------------------------------------  
  122.  
  123. Set WShell = CreateObject("wscript.shell")      
  124. Set objNetwork = CreateObject("wscript.network")      
  125. Set objFSO = CreateObject("scripting.FileSystemObject")      
  126. Set objSysInfo  = CreateObject("ADSystemInfo")   
  127.  
  128. strComputer = objNetwork.ComputerName      
  129. UserName = objNetwork.UserName      
  130. VCsite  = Left(strComputer,2)   
  131. RegInfo = 0   
  132.       
  133. If InStr(1,strComputer,"2K3",1) > 0    Then   
  134.                 WScript.Quit      
  135. Else      
  136.      'Add Printer and set defualt Printer      
  137.         strUserPath = "LDAP://" & objSysInfo.UserName      
  138.         Set objUser = GetObject(strUserPath)      
  139.         For Each strGroup In objUser.Memberof      
  140.                strGroupPath = "LDAP://" & strGroup      
  141.                 Set objGroup = GetObject(strGroupPath)      
  142.                 strGroupName = objGroup.CN      
  143.          nSiteCode = GetSiteCode(VCSite)   
  144.  
  145.        Select Case strGroupName       
  146.          'Add    Black and White Printer      
  147.          Case VCSite & "-Printer Users"      
  148.            For lngIndex = 0 to nBranch -1   
  149.              If arrBWPRN(nSiteCode, lngIndex) <> "" then   
  150.                 objNetwork.AddWindowsPrinterConnection arrBWPRN(nSiteCode,lngIndex)   
  151.              End If   
  152.            Next   
  153.  
  154.              'Add Color Printer      
  155.          Case VCSite & "-Colour Printer Users"      
  156.            For lngIndex = 0 to nBranch -1   
  157.              If arrCOPRN(nSiteCode, lngIndex) <> "" then   
  158.                objNetwork.AddWindowsPrinterConnection arrCOPRN(nSiteCode,lngIndex)   
  159.              End If   
  160.           Next   
  161.               
  162.          Case "Print-Screen-User"   
  163.            RegInfo = 1   
  164.                       
  165.        End Select          
  166.      Next   
  167.  
  168.     'set defualt Printer      
  169.          strDept     = Left(objUser.DisplayName,4)   
  170.          nDeptCode = GetDeptCode(strDept)   
  171.               
  172.      If nDeptCode < 99 and arrDePRN(nSiteCode, nDeptCode) <> "" Then   
  173.        objNetwork.SetDefaultPrinter arrBWPRN(nSiteCode, arrDePRN(nSiteCode, nDeptCode))   
  174.      ElseIf arrDePRN(nSiteCode, nDeptCode) = "" Then   
  175.        objNetwork.SetDefaultPrinter arrBWPRN(nSiteCode, 0)   
  176.      End If   
  177.                
  178.          'Map Network Drive      
  179.           objFSO.CreateFolder "\\" & Vcsite & "2k3dc01\Personal_Folder$\" & UserName      
  180.           objNetwork.MapNetworkDrive "P:","\\" & Vcsite & "2k3dc01\Personal_Folder$\" & UserName      
  181.           objNetwork.MapNetworkDrive "R:","\\" & VCsite & "2k3dc01\dept$"      
  182.           objNetwork.MapNetworkDrive "S:","\\" & VCsite & "2k3dc01\scan$"      
  183.               
  184.  
  185.           'Set & Delete Regsitry Key Value              
  186.           If RegInfo = 1 Then      
  187.              wshell.Run("\\" & VCsite & "2k3dc01\netlogon\runasspc.exe /cryptfile:" & "\\" & VCSite & "2k3dc01\netlogon\Admin_Program\Special_Admin_Program.spc /quiet")   
  188.           Else   
  189.              wshell.Run("\\" & VCsite & "2k3dc01\netlogon\runasspc.exe /cryptfile:" & "\\" & VCSite & "2k3dc01\netlogon\Admin_Program\Default_Admin_Program.spc /quiet")   
  190.           End If                      
  191. End If   
  192.  
  193. GetSiteCode() GetSiteCode(strSite)   
  194.   For lngIndex = 0 To nBranch -1   
  195.     if strSite = arrBranch(lngIndex) then   
  196.       GetSiteCode = lngIndex   
  197.     End if   
  198.   Next   
  199. End Function   
  200.  
  201. GetDeptCode() GetDeptCode(strDept)   
  202.   Select Case Mid(strDept,3,2)   
  203.       
  204.   Case "CR"   
  205.     GetDeptCode = 0   
  206.   Case "HR"   
  207.     GetDeptCode = 1   
  208.   Case "IT"   
  209.     GetDeptCode = 2   
  210.   Case "AC"   
  211.     GetDeptCode = 3   
  212.   Case "OM"   
  213.     GetDeptCode = 4   
  214.   Case Else   
  215.     GetDeptCode = 99   
  216.        
  217.   End Select   
  218. End Function 
 
 
  
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章