Files
website/wiki/current/projects/logongui.txt
2022-01-29 08:10:28 +09:30

154 lines
6.9 KiB
Plaintext
Executable File

====== Windows Logon Script GUI ======
===== 1. Introduction =====
The logon GUI is a VB.net application designed to run shell scripts or programs and display their progress in a GUI. Initially I just planned to update my old HTA Logon scripts but soon discovered that a Logon GUI would look more professional and provide the end user with just enough information to be informed if the logon process was a success. See [[mantis>66|Ticket #66]].
===== 2. How it Works =====
The Logon GUI is added as a users logon script, either by using Group Policy or the Logon Script within the Users Profile Tab the script will run when a user logs on. The GUI will load before the desktop and call each of the four pre-designated scripts simultaneously. As each script runs and when they provide feedback, the GUI will update the progress bars accordingly.\\ The Logon GUI will as a minimum, run for seven seconds. there is a two second pause before script processing starts and a further five second pause after all scripts complete.
==== 2.1 Progress Bars ====
The progress bars are an indication of how far each stage of the logon process has come; generally the bar will be blue. The following table denotes the colours available.
^ Script Code ^ Colour ^ Explaination ^
| 0 | Blue | Normal |
| 1 | Red | Error |
| 2 | Orange | Warning |
| 3 | Light Gray | No Script Found |
==== 2.2 Features ====
- Provide feedback to users by changing colour of the progress bars.(Assists admins to quickly fault find.)
- Automatic exit after five minutes. regardless of if the shell scripts have finished processing. (This will stop script errors from locking the logon at the GUI)
===== 3. Scripts =====
Any command line script that outputs to the command line will work with this GUI((As soon as I extend it past VBScripts.)). The scripts are stored in the same path as the LogonGUI executable.
==== 3.1 Pre-defined Script Names ====
The following script names can be used for the Logon GUI(( Supported File Extensions: .vbs (VB Script) )).
- NetworkDrives
- UserProfile
- Other
- SOECheck
==== 3.2 Output String ====
The script that runs must output a correctly formatted string. This string provides information to update the GUI accordingly and without a valid output string the GUI may freeze or crash.\\ Example Script output for the Logon GUI:
5-,-32-,-0-,-Finished mapping G Drive
Output Key
| Example | | 5 | -,- | 25 | -,- | 0 | -,- | StartedLogon |
^ Key ^ ^ Total \\ Commands ^ Seperator ^ Progress Level ^ Seperator ^ Error ^ Seperator ^ Message ^
| Variable Type | | Integer | -,- | Integer (< = 100) | -,- | Integer | -,- | String |
=== Total Commands ===
This is the total commands that the script is going to run and is hard coded into the script.
=== Progress Level ===
The progress bar is incremented upto a max value of 100. This value will increase each time a command runs and is stepped up to a value of 100/TotalCommands.
=== Error ===
:TODO: Not yet implemented\\
This value is an integer, if this value changes to anything other than 0 the highest number will remain and so to will the colour of the progress bar. so if the script returns a 2, the progress bar will remain the same colour as warning.
=== Message ===
The message that is placed here is what will be added to the log file. The logfile is saved to %USERPROFILE%\LogonGUI-{SCRIPTNAME}.log and gets over written every time the user logos on.
===== 4. Other info =====
==== 4.1 System Requirements ====
| **Operating System:** \\ (Tested) | Windows 7 |
| :::| Windows Server 2008 |
| **Domain Client:** | Netlogon Share on Domain Controller |
| **Standalone Client:** | Netlogon Share on the local machine |
| **Hard Drive Space:**| |
| LogonGUI: | 150kb |
| Scripts: | as Large as they are |
| .NET 2.0 Runtime Installed ||
| good understanding of scripting ||
==== 4.2 Troubleshooting ====
- **LogonGUI.exe Crashes:** generally this indicates a script error, quite possably in the script output.
- **Progress Bar Orange:** if it is only one bar then a warning command has been issued by the adjacent script, if there was a five minute delay and all progress bars went orange then one or more of the scripts failed to complete.
- **Progress Bar Light Gray:** The adjacent script was not found.
==== 4.3 Logon GUI Screenshots ====
{{:public:applications:logongui:logonguinormal.png?nolink|}}\\
Normal Operation: The progress bars look like this under normal operation. Once the applicable script is found it will step the progress bar to 3% before it commences to increment the progress bar.
{{:public:applications:logongui:logonguinoscripts.png?nolink|}}\\
No Script Found: progress bar will still complete but they will be gray in colour.
{{:public:applications:logongui:logonguiwarning.png?nolink|}}\\
Warning Demo: progress bar will change to orange.
===== 5 Download =====
This application is not freely availible and if you would like to utilise this application, for a small fee I may be able to provide it to you. Please use the contact us form at nofusscomputing.com.
==== 5.1 VBScript Template File ====
The scipt below has only been saved as a record of history. please use the [[.:logongui/script_template|new script template.]]
<WRAP download><WRAP info>This file will download with a .txt file extension. Please rename the file so it has the right extension as per the mentioned filename.</WRAP>
<file vbnet LogonGUI-Template.vbs>
'************************************************************************
' No Fuss Computing
' LogonGUI VBScript Template
'
' Created By: Jon @ No Fuss Computing
' Created on 07 Jun 2014
' Filename: LogonGUI-Template.vbs
'************************************************************************
Set objShell = Wscript.CreateObject("Wscript.Shell")
Set objNetwork = CreateObject("Wscript.Network")
Dim iProgressStep, iTotalMappings, iIncrement
' Default Integers Dont Modify!
iIncrement = 1
'SOF *******************Custom Variables**********************************
strUserName = ucase((objNetwork.UserName))
'EOF *********************************************************************
' Set Logon GUI Variables
iTotalMappings = 10 ' Change this as required
iProgressStep = 100 / iTotalMappings ' Don't Change!!
call main() ' Launch Script
Sub Main()
' Insert your code in here.
' Don't forget to use progress out after each command so the progress bar increments and the GUI doesn't Freeze!!.
End Sub ' EOF Sub Main
'
' *************************************** Functions ********************************************
'
Function ProgressOut(sMessage)
' This is a default Function Don't remove!!
Wscript.Echo(iTotalMappings & "-,-" & (iIncrement * iProgressStep) & "-,-" & sMessage)
iIncrement = iIncrement + 1
End Function
'
'********************** Your Custom Functions Below this Line **********************************
'
</file>
</WRAP>