To edit you must be logged into the site. To login click here
WiKi: Article Discussion History Go to the site toolbox

Room Activation

From EduGeek.Net -> Wiki

Creator: FN-Greatermacnhester

Script Language: VBS

Forum topic Link: http://www.edugeek.net/forums/wiki-announcements/20471-room-activation.html#post201318

This script is a room activation script where it will only let students use a computer suite if the teacher on the front machine has activated the room. There are three parts to the script that work together. The activation script where the user activates a room, a deactivation script where the users deactivates the room and the logon script for the suite.

Activation Script:

im stafffilesource, WS, objFSO, objNetwork, RoomName, TeacherPC
Dim logday, logmonth, logyear, today, logmonthname, serverpath, filepath, filetxt
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objNetwork = CreateObject("Wscript.Network")
Set WS = CreateObject("Wscript.Shell")
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
TeacherPC = UCASE(objNetwork.ComputerName)
stafffilesource = ("C:\Documents and Settings\logoncheck\staff.txt")
 
If UCASE(objNetwork.ComputerName) = "HC-ICT1-T1" Then RoomName = "ICT 1"
If UCASE(objNetwork.ComputerName) = "HC-ICT1-T2" Then RoomName = "ICT 2"
If UCASE(objNetwork.ComputerName) = "HC-ICT1-T3" Then RoomName = "ICT 3"
If UCASE(objNetwork.ComputerName) = "HC-ICT1-T4" Then RoomName = "ICT 4"
If UCASE(objNetwork.ComputerName) = "HC-ICT1-T5" Then RoomName = "ICT 5"
 
 
bConfirm = MsgBox ("Please complete an inspection of this Computer Suite." & VBCR & "If any damage is present, please inform IT Support prior to using this suite." & VBCR & VBCR & "Should any damage occur during your lesson time, please inform" & VBCR & "IT Support of the damage including how it occured," & VBCR & "including information such as the student responsible and if it was accidental." & VBCR & VBCR & "Should damage occur during your lesson time that is not reported," & VBCR & "your department may be required to pay the repair costs involved." & VBCR & VBCR & "Please confirm that you have completed a room check" & VBCR & "and accept responisbility for the use of this room.", 4, "Room Activation")
If bconfirm=6 Then
	bConfirm = MsgBox ("Do you wish to Activate this Suite for Student Use?", 4, "Room Activation")
	If bconfirm=6 Then
		objFSO.CreateTextFile stafffilesource, True
		WS.Popup "This Suite as now been activated for Student Use.", 6, "Room Activation"
	Else
		WS.Popup "Please use Desktop Icon if you wish to Activate this Suite for Student Use.", 6, "Room Activation"
	End If
Else
	WS.Popup "Please report damage to IT Support before you continue to use this suite.", 6, "Room Activation"
End If
 
Wscript.Quit

Deactivation script

On error resume next
Dim NamingConvention, ComputerQty, StartCount, Count, TeacherPC, fileserverarea
Dim objFSO, objNetwork, WS, stafffilesource, filetxt, RoomName, fileserverfile
Dim oFSO, oTS, sClient, oWindows, oLocator, oConnection, oSys, ClientWritten
Dim logday, logmonth, logyear, today, logmonthname, serverpath, filepath, strPingResults
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objNetwork = CreateObject("Wscript.Network")
Set WS = CreateObject("Wscript.Shell")
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
stafffilesource = "C:\Documents and Settings\logoncheck\staff.txt"
 
If NOT objFSO.FileExists (stafffilesource) Then
	WS.Popup "This Suite is already deactivated for Student Use.", 6, "Room Deactiviation"
	Wscript.Quit
End If
 
Count = StartCount
 
call logthemoff
 
If ClientWritten = "TRUE" Then
End If
 
objFSO.DeleteFile (stafffilesource), TRUE
WS.Popup "This Suite has now been deactivated for Student Use.", 6, "Room Deactiviation"
WS.Popup "Please complete an inspection of this Computer Suite." & VBCR & "If any damage has been caused during your lesson, please inform IT Support with details" & VBCR & VBCR & "By Disabling this Suite you are confirming that you will report any damage that has been found.", 10, "Damage Check"
call maintenancelogreport
 
WScript.Quit


Logon script:

Dim TeacherPC, TeachPCStaffFile, stafffilesource, studentfilesource, RoomName
Dim sComputer, sUser, objNetwork, objFSO, objUser, WS, objshell
Dim logday, logmonth, logyear, today, logmonthname, serverpath, filepath, filetxt
 
Set objNetwork = CreateObject("Wscript.Network")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WS = CreateObject("Wscript.Shell")
Set objShell = CreateObject("WScript.Shell")
 
Const ForReading = 1, ForWriting = 2, ForAppending = 8
 
':::::::::::::::::::::::::::::::::::::::::::::::
':::  Use LDAP to find out account details   :::
':::::::::::::::::::::::::::::::::::::::::::::::
Set objSystemInfo = CreateObject ("AdSystemInfo")
Err.Clear
Set objUser = GetObject ("LDAP://" & objSystemInfo.UserName)
If Err.Number <> 0 Then
	MsgBox Err.Number & vbTab & Err.Description
End If
 
TeacherPC = "HC-ICT1-T1"
TeachPCStaffFile = "\\" & TeacherPC & "\" & TeacherPC & "\staff.txt"
RoomName = "ICT 1"
 
sComputer = UCASE(objNetwork.ComputerName)
sUser = lcase(objNetwork.UserName)
 
stafffilesource = "C:\Documents and Settings\logoncheck\staff.txt"	
studentfilesource = "C:\Documents and Settings\logoncheck\student.txt"
 
If IsMember ("CN=Administrators") Then call DualLogons
If IsMember ("CN=staff") Then call DualLogons
If IsMember ("CN=students") Then call StudentLogon
 
WScript.Quit
'*********************************************************************************************************************************8
 
':::::::::::::::::::::::::::::
'::: Run Student Logon Set :::
':::::::::::::::::::::::::::::
Sub StudentLogon
On error resume next
	If NOT objFSO.FileExists (TeachPCStaffFile) Then
		ShowBox "This Logon is unauthorised." & VBCR & VBCR & "Your supervising Staff Member needs to enable access to this computer," & VBCR & "before you will be able to logon on successfully.", 6
		call logmeoff
		Wscript.Quit
	End If
objFSO.CreateTextFile studentfilesource, True
End Sub
 
':::::::::::::::::::::::::::
'::: Dual Logon Accounts :::
':::::::::::::::::::::::::::
Sub DualLogons
On error resume next
	Wscript.Quit
End Sub
 
':::::::::::::::::::::::::
'::: Confirmed log off :::
':::::::::::::::::::::::::
Sub logmeoff
    'Call WMI query to collect parameters for reboot action
    Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//" & sComputer & "/root/cimv2").ExecQuery("select * from Win32_OperatingSystem"_
     & " where Primary=true") 
    Const EWX_LOGOFF = 0 
    Const EWX_SHUTDOWN = 1 
    Const EWX_REBOOT = 2 
    Const EWX_FORCE = 4 
    Const EWX_POWEROFF = 8 
        For each OpSys in OpSysSet 
            opSys.win32shutdown EWX_REBOOT + EWX_FORCE
        Next
End Sub
 
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::   CHECK WHETHER USER IS A MEMBER OF A CERTAIN GROUP   :::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function IsMember (strGroup)
	Dim objGroup
	IsMember = FALSE
	For Each objGroup In objUser.Groups
		'Message "TESTING - PLEASE IGNORE", 1, strUserName & " is a member of " & objGroup.Name & " " & objGroup.Class, 1
		strThisGroup = Replace (objGroup.Name, "CN=\", "")
		If strThisGroup = strGroup Then
			IsMember = TRUE
			Exit For
		End If
	Next
End Function

Tips:

1. I would place shortcuts to the script on the desktop of the front machine.

2. Apply the logon script to a OU of computers using loopback, you could use other methods of getting the script to run in one room.

3. In your logoff script and startup script place few lines so it deletes the staff.txt file, this stops teachers logging off and just pressing the reset button keeping the room activated.

Site Toolbox:

This page was last modified 15:29, 23 June 2008. - This page has been accessed 743 times. - Disclaimers - About EduGeek.Net -> Wiki