#190248 - 2008-10-22 08:06 PM
Re: Hi, All - (Where do i Post a Full Script I want to Share)
[Re: Indigo]
|
Indigo
Fresh Scripter

Registered: 2008-10-01
Posts: 34
|
YAY!!! V.2 is finished! haha I am a Tad Pumped about it. Looks cleaner, and Seemingly runs smoother.
I only 2 options disabled at the moment. Auto Rebooting:
If Exist ($RS_Logs + "\" + $Computer + ".SentEmail.txt")
@CRLF + $Computer + " Is being rebooted.." + @CRLF
;Shutdown ($computer, "Please Save Your Work, This System Is Being Rebooted in 1 min.",60,1,1)
Else
This Section Below Sends a Net Send Message to the Machine when a users isn't logged in, so the next time they log in they will get a Net Send message telling them to reboot.
If checkusers($_User,$_Userstoskip) = -1 ; Makes sure certian users don't get emails.
Shell $_Email
Else
; ***** Shell '%compsec% net send \\$_System "Alert Notice: This system has been turned on for $systemup days please reboot!, Thanks IT"'
Endif
To Get both of these options working you need to UnComment them.
Well with no Further Adue Here is V.2 
; ===========================================================================================
;
; Title: Windows XP Reboot of network clients
; Author: Indigo
; Description: Sends out emails at 7 Days, and Reboots at 10
; Version: .2
;
; ===========================================================================================
; == Seting Kixtart Options ==
$Rc = SetOption('Explicit', 'Off')
$Rc = SetOption('NoVarsInStrings', 'On')
$Rc = SetOption('NoMacrosInStrings', 'On')
$Rc = SetOption('WrapAtEOL', 'On')
Break on
; == Declaring Variables. ==
Dim $DontReboot ; == Systems that won't be rebooted
Dim $UserstoSkip ; == Users that will be skipped
Dim $EmailServer ; == The Hostname of the Email Server
Dim $EmailSufix ; == The "company.com" in the Email addresses
Dim $RS_Logs ; == The Log Location \\server\share\path\
Dim $IT_Email ; == The Administrator Email
Dim $Rc ; == Return Code for Kixtart Options
Dim $Computers ; == An Array that holds all the Computers Comnetview gathers
Dim $Computer ; == Each Compuer in Computers
Dim $Online ; == Systems Online / Not Online
Dim $Winver ; == Windows Version
Dim $WMICheck ; == WmiCheck pass/fail
Dim $Uptime ; == Uptime in Days IE. 10
Dim $Kixlib ; == Kix Library location
; == Kixlib Defined ==
$Kixlib = "\\Server\Share\Path" ; Define Where your Kixtart Lib is here Do not place a trailing \
; === Includes all Udfs needed for this script ===
Call $Kixlib + "\Comnetview.udf"
Call $Kixlib + "\WmiUptime.udf"
Call $Kixlib + "\Translatename.udf"
Call $Kixlib + "\Ping.udf"
Call $Kixlib + "\FnWMIloggedin.udf"
Call $Kixlib + "\WMIConfirm.udf"
; == Intializing Computer & User Special Consideration Veriables == ***** Variables below must be changed to needed Values ******
$DontReboot = "Computer Name Here" , "Computer Name Here" ; Computers to Be Skipped
$Userstoskip = "User Name Here","User Name Here" ; Users to be Skipped
$EmailServer = "Email Server Host Name" ; HostName of Email Server
$EmailSufix = "Email Suffix" ; Sufix of Email Address Company.com
$RS_Logs = "\\server\share\path" ; Don't use the trailing \ because it won't work right
$IT_Email = "Admin@company.com" ; Email Address of System Admin or Group
; == Clears Log Files If Script has been run before == **********************************************************
del $RS_Logs + "\Systems_UpTime.txt"
del $RS_Logs + "\Systems_Offline.txt"
$computers = COMNetView() ; == Locates computers on the network
CLS
For Each $computer in $computers
$online = Ping($computer,0,0,1) ; == Ping confirms computer online
If $online = "1"
$winver = ReadValue("\\" + $computer + "\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName")
If $winver = "Microsoft Windows XP"
$WMICheck = WMIConfirm($computer)
If $WMICheck <> 0
$UpTime = WMIuptime($computer)
$Userloggedin = GetloginName($Computer)
; == Displays Current System Information
CLS
"System: " + $Computer +" (Online)" + @CRLF
"OS: (" $Winver ")" + @CRLF
"User: " + $Userloggedin + @CRLF
"Uptime: " + $Uptime[0] + " Days" + @CRLF
; --------------------------------------
If len(ltrim($Uptime[0])) <> 0 ; == Checks digit value of Uptime to see if it is 0
or not
If Systemcheck($Computer,$DontReboot) = -1 ; == Checks to make sure system isn't in the
Protected list
If $Uptime[0] >= 7
If RedirectOutput ($RS_Logs + "\Systems_UpTime.txt") = 0
$Userloggedin = GetloginName($computer)
? $computer + "'s Uptime is: " + $Uptime[0] + " Days. " + $Userloggedin ?
$ = RedirectOutput("")
EndIf
EndIf;
Select
Case $Uptime[0] >= 0 and $Uptime[0] < 7
If Exist ($RS_Logs + "\" + $computer + ".SentEmail.txt")
"Email Tag File found Deleting .... < 7 " + @CRLF
del $RS_Logs + "\"+ $computer + ".SentEmail.txt"
Endif
@CRLF
Case $Uptime[0] >= 7 and $UpTime[0] < 10
"System is being processed." + @CRLF
WriteEmail($computer,$Uptime[0],$RS_Logs)
SendEmail($Userloggedin,$Computer,$Uptime[0],$EmailServer,$IT_Email,$EmailSufix,$RS_Logs,$Userstoskip,0)
"Writing Log File, and Sending Email >= 7 And < 10 " + @CRLF
Case $Uptime[0] >= 10
If Exist ($RS_Logs + "\" + $Computer + ".SentEmail.txt")
@CRLF + $Computer + " Is being rebooted.." + @CRLF
;Shutdown ($computer, "Please Save Your Work, This System Is Being Rebooted
in 1 min.",60,1,1)
Else
"Writing Log File, and Sending Email >= 10 " + @CRLF
WriteEmail($computer,$Uptime[0],$RS_Logs)
SendEmail($Userloggedin,$Computer,$Uptime[0],$EmailServer,$IT_Email,$EmailSufix,$RS_Logs,$Userstoskip,0)
Endif
Endselect
Else
@CRLF + "System Is In The Protected List..(Skipping)" + @CRLF
EndIf
Else
@CRLF + "Uptime Check Failed!!! (Skipping & Logging)" + @CRLF + "Logfile: " + $RS_Logs +
"\System_UptimeChck_Failed.txt" + @CRLF
If RedirectOutput ($RS_Logs + "\System_UptimeChck_Failed.txt") = 0
"Uptime on: " + $computer + " Failed!!" + @CRLF
$ = RedirectOutput("")
EndIf
EndIf
Else
$computer + " was skipped & Logged for review. WmiReturn Code: " + $WMICheck + @CRLF
If RedirectOutput ($RS_Logs + "\Errorlog.txt") = 0
$computer + "'s Error Code is " + @error + " - " + @SERROR + @CRLF
"This system was skipped & Logged for review. WmiReturn Code: " + $WMICheck + @CRLF
$ = RedirectOutput("")
EndIf
Endif
EndIf
Else
If RedirectOutput ($RS_Logs + "\Systems_Offline.txt") = 0
$computer ?
$ = RedirectOutput("")
EndIf
Endif
Next
; ----- System Reboot Email with attached System Uptimes Log -----
SendEmail($Userloggedin,$Computer,$Uptime[0],$EmailServer,$IT_Email,$EmailSufix,$RS_Logs,$Userstoskip,1)
; ================== Functions Below This Point ====================
;----- This function just checks to make sure we don't reboot a pc that needs to stay up. --
Function Systemcheck($_Chkcomputer,$_DontReboot)
; == Declaring Variables
Dim $_Result ; Holds the Result of the calculation
Dim $_Chkcomputer ; Computer to be checked
Dim $_DontReboot ; Global Variable Transfered to Function.
$_Result = 0
$_Chkcomputer = TRIM(LCASE($_Chkcomputer))
$_Result = Ascan($_DontReboot,$_Chkcomputer,0)
$Systemcheck = $_Result
EndFunction
; ---- Removes invalid email users ----
Function checkusers($_Users,$_Userstoskip)
; == Declaring Variables
Dim $_Result ; Holds the Result of the calculation
Dim $_Chkuser ; User to be checked
Dim $_Users ; User passed to function (raw)
Dim $_Userstoskip ; Global Variable Transfered to Function.
$_Result = 0
$_Chkuser = TRIM(LCASE($_Users))
$_Result = Ascan($_Userstoskip,$_Users,0)
$Checkusers = $_Result
EndFunction
;----- Pulls in the user that is logged into X machine ----------------------------
Function GetloginName($_Chkcomputers)
; == Declaring Variables
Dim $_Usrloggedin ; User Logged into current system in current format Domain\Username
Dim $_Username ; Just username by itself
$_Usrloggedin = fnWMILoggedin (1,$_Chkcomputers) ; == Current user logged in. Remove ' ' around $_Chkcomputers may be needed
$_Usrname = substr ($_Usrloggedin,6) ; == Removes "Domain\" Domain. May need to look into a different way to
shorten
If len(ltrim($_Usrloggedin)) = 0 ; == Checks for a 0 digit value assigned to user, if it did (User not logged) in is Returned.
$_Unli = "(User Not Logged In)"
$Getloginname = $_Unli
Return
Endif
$Getloginname = $_Usrname
EndFunction
;----- Sends an email to the user whos system has been up for more than 7 days, and sends email to administrator.
Function SendEmail($_User,$_System,$_Systemup,$_EmailServer,$_IT_Email,$_EmailSufix,$_RS_Logs,$_Userstoskip,$_AdminEmail)
; == Declaring Variables
Dim $_User ; User to be emailed
Dim $_System ; Hostname of current system
Dim $_Systemup ; Uptime of Current system
Dim $_Unli ; Defined as (User Not Logged In) - Incase user isn't logged in
Dim $_EmailSufix ; Global Variable Transfered to Function.
Dim $_IT_Email ; Global Variable Transfered to Function.
Dim $_RS_log ; Global Variable Transfered to Function.
Dim $_Email ; Building Block Variable for Sending Emails.
; Through a Variable for On/Off maybe setup a Debug Admin Feature, so only admin is emailed
$_Email = 'bmail'
$_Email = $_Email + ' -s '
$_Email = $_Email + $_EmailServer
$_Email = $_Email + ' -f ' + $_IT_Email
If $_AdminEmail = 1
$_Email = $_Email + ' -t ' + $_IT_Email
$_Email = $_Email + ' -a ' + '"Systems That need to be rebooted"'
$_Email = $_Email + ' -m ' + $_RS_Logs + '\Systems_uptime.txt'
Else
$_Email = $_Email + ' -t ' + $_IT_Email ; Change this back t $_User so it sends the email to the user.
$_Email = $_Email + ' -a ' + '"(System Reboot Needed!) Uptime: ' + $_Systemup + ' Days."'
$_Email = $_Email + ' -m ' + $_RS_Logs + '\' + $_System + '.SentEmail.txt'
EndIf
If checkusers($_User,$_Userstoskip) = -1 ; Makes sure certian users don't get emails.
Shell $_Email
Else
;Shell '%compsec% net send \\$_System "Alert Notice: This system has been turned on for $systemup days please reboot!, Thanks IT"'
Endif
EndFunction
;----- Writes the email file that is included in the body of the email sent. ------------
Function WriteEmail($_Computer,$_Uptime,$_RS_Logs)
; == Declaring Variables
Dim $_Computer ; Hostname of Current System
Dim $_Uptime ; Uptime of Current System
Dim $_RS_Logs ; Handles Log locations
If RedirectOutput ($_RS_Logs + "\"+ $_Computer + ".SentEmail.txt",1) = 0 ; == Creates a Log File to indicate the sending of an email.
@CRLF $_Computer + "'s Uptime is: " + $_Uptime + " Days."
@CRLF
@CRLF "This is the Body of the Email that will be sent... Fill it in with whatever you want."
@CRLF
$ = RedirectOutput("")
EndIf
EndFunction
|
|
Top
|
|
|
|
Client Reboot Script / Sends out Email warnings) Version .6
|
Indigo
|
2008-10-20 06:44 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-20 07:21 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Lonkero
|
2008-10-20 09:04 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-20 09:08 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-20 09:15 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Lonkero
|
2008-10-20 09:19 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-20 09:21 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 01:39 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 02:12 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
NTDOC
|
2008-10-21 02:38 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 04:12 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-21 03:55 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 04:02 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-21 04:46 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 05:11 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-21 08:09 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 09:03 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-21 10:31 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 10:52 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-22 05:57 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-22 08:06 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Lonkero
|
2008-10-22 09:12 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-22 09:16 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Lonkero
|
2008-10-22 09:20 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-22 09:34 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Mart
|
2008-10-23 09:16 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 03:10 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-23 03:27 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 04:47 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 04:59 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Mart
|
2008-10-23 05:01 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 05:02 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 05:07 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Allen
|
2008-10-23 05:20 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 05:41 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Kdyer
|
2008-10-23 05:45 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 06:16 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Kdyer
|
2008-10-23 06:53 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-23 08:00 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-23 09:39 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-27 04:13 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-27 04:21 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-27 04:32 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-27 04:34 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-27 04:41 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-28 08:06 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-28 08:14 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-29 04:40 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-29 04:47 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-29 04:57 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-29 05:05 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-29 05:52 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-30 04:23 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-28 08:24 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Lonkero
|
2008-10-28 10:03 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-28 10:10 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Mart
|
2008-10-27 04:25 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Gargoyle
|
2008-10-23 04:54 PM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 12:47 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Glenn Barnas
|
2008-10-21 12:53 AM
|
Re: Hi, All - (Where do i Post a Full Script I want to Share)
|
Indigo
|
2008-10-20 09:00 PM
|
|
Moderator: Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart
|
0 registered
and 657 anonymous users online.
|
|
|