VBScript:登錄輔助腳本

       由於普通的Domain Users沒有進行註冊表寫入及複製文件到All Users桌面的權限,因此昨天分享的登錄腳本還需要兩個輔助腳本,這兩個輔助腳本都是通過Runasspc來實現的。

     根據MVP亮亮的建議,我在腳本中適當的加入了中文的註釋,希望能夠更多的幫助到大家,如果您對VBScript有興趣,建議多去看看TechNet的腳本中心,以及Scripting Guy,這裏有更詳細以及更多的介紹。

   進入今天的正題,這兩個輔助腳本分別爲Default_Admin_Program.vbs和Special_Admin_Program.vbs,在昨天的分享中,有這樣一段代碼

  1. '省略部分代碼....  
  2.  
  3.   Case "Print-Screen-User"  
  4.          RegInfo = 1     
  5.  
  6. '省略部分代碼....  
  7.  
  8. If RegInfo = 1 Then     
  9.     wshell.Run("\\" & VCsite & "2k3dc01\netlogon\runasspc.exe /cryptfile:" & "\\" & VCSite & "2k3dc01\netlogon\Admin_Program\Special_Admin_Program.spc /quiet")     
  10.  Else                  
  11. wshell.Run("\\" & VCsite & "2k3dc01\netlogon\runasspc.exe /cryptfile:" & "\\" & VCSite & "2k3dc01\netlogon\Admin_Program\Default_Admin_Program.spc /quiet")             End If       End if

     以上代碼用於判斷當前用戶是否屬於Print-Screen-User組,如果是則執行Special_Admin_Program.vbs,否則則執行Default_Admin_Program.vbs,這兩個腳本的內容幾乎完全一致,唯一不同之處在於Special通過註冊表實現了將PrnScr鍵位映射的調整,從而失用戶無法通過該鍵來打印屏幕。

以下分別爲這兩個VBS的代碼,帶有簡單中文註釋。

 

  1. '***********************************************************************  
  2. ' Script        : Special Users Policy  
  3. ' Creation Date : 2010-07-22  
  4. ' Version       : 2.1  
  5. '***********************************************************************  
  6.  
  7.  
  8. '定義無須UsbStor安全策略的計算機列表  
  9. On Error Resume Next 
  10. Const HKEY_LOCAL_MACHINE = &H80000002  
  11. arrEnUsbStorPClist       = Array("HZPC01","HZPC02","HZPC03"_  
  12.                       "SHPC01","SHPC02",_  
  13.                   "NJPC01","NJPC02",_  
  14.                 "FZPC01","FZPC02"_  
  15.                   "XMPC01","XMPC02"_  
  16.                   "SZPC01")  
  17. '定義無需VNC安全策略的計算機列表  
  18. arrVNCNoQueryConPClist   = Array("HZPUB01","HZPUB02","HZPUB03"_  
  19.                       "SHPUB01","SHPUB02",_  
  20.                   "NJPUB01","NJPUB02",_  
  21.                   "FZPUB01","FZPUB02"_  
  22.                   "XMPUB01","XMPUB02"_  
  23.                   "SZPUB01")            
  24.                    
  25. '------------------------------------------------------------------------------------------------------------  
  26. Set WShell     = CreateObject("wscript.shell")  
  27. Set objNetwork = CreateObject("wscript.network")  
  28. Set objFSO     = CreateObject("scripting.FileSystemObject")   
  29. strComputer    = objNetwork.ComputerName  
  30. VCsite         = Left(strComputer,2)  
  31. EnableUSB      = 0  
  32. EnableVNC      = 0  
  33.  
  34. 'Copy ICA Lnk 複製ICA快捷鍵到目標計算機All user桌面  
  35. objFSO.CopyFile "\\" & VCSite & "2k3dc01\Resources\Icon\***\LinkName1.lnk","C:\Documents and Settings\All Users\桌面\",True 
  36. objFSO.CopyFile "\\" & VCSite & "2k3dc01\Resources\Icon\***\LinkName2.lnk","C:\Documents and Settings\All Users\桌面\",True 
  37. objFSO.CopyFile "\\" & VCSite & "2k3dc01\Resources\Icon\***\LinkName3.lnk","C:\Documents and Settings\All Users\桌面\",True 
  38.  
  39.  
  40. 'Disable Print Screen 通過更改PRNScr鍵位映射,達到禁用屏幕打印鍵功能  
  41. Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")  
  42. strKeyPath = "SYSTEM\CurrentControlSet\Control\Keyboard Layout" 
  43. strValueName = "Scancode Map" 
  44. arrValues = Array(&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h00,&h03,&h00,&h00,&h00,&h46,&h00,&h37,&he0,&h46,&h00,&h54,&h00,&h00,&h00,&h00,&h00)  
  45. objReg.SetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrValues  
  46.  
  47. 'USB Security Policy 遍歷arrEnUsbStorPClist數組,判斷當前計算機名稱是否在列表中,如果在,則分別寫入相應的註冊表鍵值  
  48. For lngIndex = 0 To UBound(arrEnUsbStorPClist)  
  49.     If arrEnUsbStorPClist(lngIndex) = strComputer Then 
  50.         EnableUSB = 1  
  51.         Exit For 
  52.     Else 
  53.         EnableUSB = 0  
  54.     End If 
  55. Next 
  56.  
  57. If EnableUSB =1 Then 
  58.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect","1","REG_DWORD" '禁止寫入  
  59.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start","3","REG_DWORD"                     '啓用USBStor  
  60. Else 
  61.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect","1","REG_DWORD" '禁止寫入  
  62.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start","4","REG_DWORD"                     '禁用用USBStor  
  63. End if  
  64.  
  65.  
  66. 'VNC Security Policy  
  67. For lngIndex = 0 To UBound(arrVNCNoQueryConPCList)  
  68.     If arrVNCNoQueryConPCList(lngIndex) = strComputer Then 
  69.         EnableVNC = 1  
  70.         Exit For 
  71.     Else   
  72.         EnableVNC = 0  
  73.     End If    
  74. Next 
  75.  
  76. If EnableVNC =1 Then 
  77.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryConnect","0","REG_DWORD"       '禁用VNC連接確認  
  78.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryOnlyIfLoggedOn","0","REG_DWORD"   
  79. Else   
  80.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryConnect","1","REG_DWORD"         '啓用VNC連接確認  
  81.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryOnlyIfLoggedOn","1","REG_DWORD"    
  82. End If 
  83.  
  84. 'Enable Remote Desktop 啓用RDP功能  
  85. WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections","0","REG_DWORD" 
  86.  
  87. 'Reset Terminal Services Licensing 用於解決終端服務Lincens90天過期的問題  
  88. WShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\" 
  89.  
  90. 'Disable Firewall Services 禁用系統內置Firewall服務  
  91. WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Start","4","REG_DWORD" 
  92.  
  93. 'The end 

 

 

  1. '***********************************************************************  
  2. ' Script        : Default Users Policy  
  3. ' Creation Date : 2010-07-22  
  4. ' Version       : 2.1  
  5. '***********************************************************************  
  6.  
  7.  
  8. '定義無需UsbStor安全策略的計算機列表  
  9. On Error Resume Next 
  10. Const HKEY_LOCAL_MACHINE = &H80000002  
  11. arrEnUsbStorPClist       = Array("HZPC01","HZPC02","HZPC03"_  
  12.                       "SHPC01","SHPC02",_  
  13.                   "NJPC01","NJPC02",_  
  14.                   "FZPC01","FZPC02"_  
  15.                   "XMPC01","XMPC02"_  
  16.                   "SZPC01")  
  17. '定義無需VNC安全策略的計算機列表  
  18. arrVNCNoQueryConPClist   = Array("HZPUB01","HZPUB02","HZPUB03"_  
  19.                       "SHPUB01","SHPUB02",_  
  20.                   "NJPUB01","NJPUB02",_  
  21.                   "FZPUB01","FZPUB02"_  
  22.                   "XMPUB01","XMPUB02"_  
  23.                   "SZPUB01")            
  24.                    
  25. '------------------------------------------------------------------------------------------------------------  
  26. Set WShell     = CreateObject("wscript.shell")  
  27. Set objNetwork = CreateObject("wscript.network")  
  28. Set objFSO     = CreateObject("scripting.FileSystemObject")   
  29. strComputer    = objNetwork.ComputerName  
  30. VCsite         = Left(strComputer,2)  
  31. EnableUSB      = 0  
  32. EnableVNC      = 0  
  33.  
  34. 'Copy ICA Lnk 複製ICA快捷鍵到目標計算機All user桌面  
  35. objFSO.CopyFile "\\" & VCSite & "2k3dc01\Resources\Icon\***\LinkName1.lnk","C:\Documents and Settings\All Users\桌面\",True 
  36. objFSO.CopyFile "\\" & VCSite & "2k3dc01\Resources\Icon\***\LinkName2.lnk","C:\Documents and Settings\All Users\桌面\",True 
  37. objFSO.CopyFile "\\" & VCSite & "2k3dc01\Resources\Icon\***\LinkName4.lnk","C:\Documents and Settings\All Users\桌面\",True 
  38.    
  39. 'Enable Print Screen 刪除Scanncode MAP 鍵值,從而達到啓用PRNScr鍵的功能(需重新登錄或重啓才能生效)  
  40. WShell.RegDelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\Scancode Map" 
  41.  
  42. 'USB Security Policy 遍歷arrEnUsbStorPClist數組,判斷當前計算機名稱是否在列表中,如果在,則分別寫入相應的註冊表鍵值  
  43. For lngIndex = 0 To UBound(arrEnUsbStorPClist)  
  44.     If arrEnUsbStorPClist(lngIndex) = strComputer Then 
  45.         EnableUSB = 1  
  46.         Exit For 
  47.     Else 
  48.         EnableUSB = 0  
  49.     End If 
  50. Next 
  51.  
  52. If EnableUSB =1 Then 
  53.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect","1","REG_DWORD" '禁止寫入  
  54.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start","3","REG_DWORD"                     '啓用USBStor  
  55. Else 
  56.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies\WriteProtect","1","REG_DWORD" '禁止寫入  
  57.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Start","4","REG_DWORD"                     '禁用用USBStor  
  58. End if  
  59.  
  60.  
  61. 'VNC Security Policy  
  62. For lngIndex = 0 To UBound(arrVNCNoQueryConPCList)  
  63.     If arrVNCNoQueryConPCList(lngIndex) = strComputer Then 
  64.         EnableVNC = 1  
  65.         Exit For 
  66.     Else   
  67.         EnableVNC = 0  
  68.     End If    
  69. Next 
  70.  
  71. If EnableVNC =1 Then 
  72.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryConnect","0","REG_DWORD"       '禁用VNC連接確認  
  73.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryOnlyIfLoggedOn","0","REG_DWORD"   
  74. Else   
  75.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryConnect","1","REG_DWORD"         '啓用VNC連接確認  
  76.     WShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\QueryOnlyIfLoggedOn","1","REG_DWORD"    
  77. End If 
  78.  
  79. 'Enable Remote Desktop 啓用RDP功能  
  80. WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections","0","REG_DWORD" 
  81.  
  82. 'Reset Terminal Services Licensing 用於解決終端服務Lincens90天過期的問題  
  83. WShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\" 
  84.  
  85. 'Disable Firewall Services 禁用系統內置Firewall服務  
  86. WShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Start","4","REG_DWORD" 
  87.  
  88. 'The end 

      在這兩個腳本中,您可以學習到如何使用VBScript能過WMI對註冊表進行相關的操作。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章