OPTION EXPLICIT
Dim objNet, strComputer, objWMI, colitems, objItem, fso, Shell
If Instr(1, WScript.FullName, "CScript", vbTextCompare) = 0 Then
Shell.Run "cscript """ & WScript.ScriptFullName & """", 1, False
WScript.Quit
End If
Set objNet = WScript.CreateObject("WScript.Network")
WScript.StdOut.Write "Hi " & objNet.UserName & ". Welcome to the World" & _
" of Scripting and Automation. You have connected to " & objNet.UserDomain & "/" & objNet.ComputerName & _
" and running "
Call OS()
WScript.StdOut.Write "operating system. You are running your script from "
Call Directory()
WScript.StdOut.Write "and the path is "
Call Path()
WScript.StdOut.Write "The team members are: "
WScript.Echo "Brent Wright, 100424357"
WScript.Echo "Matthew Alex, 100428584"
WScript.Echo "Kameron Chan, 100373050"
WScript.Echo "Joshua Boyer, 100427919"
Function Menu()
Dim choice
WScript.StdOut.Write "Administration Scripting - Durham College" & vbCrLf
WScript.StdOut.Write "------------------------------------------" & vbCrLf
WScript.StdOut.Write vbCrLf & "A - Desktop Management" & vbCrLf
WScript.StdOut.Write "B - Logon and Logoff" & vbCrLf
WScript.StdOut.Write "C - User Management" & vbCrLf
WScript.StdOut.Write "D - Disk Management" & vbCrLf
WScript.StdOut.Write "E - Utilites" & vbCrLf
WScript.StdOut.Write "Q - Quit from the menu" & vbCrLf
WScript.StdOut.Write "Enter your selection: "
choice = WScript.StdIn.ReadLine
Select Case choice
Case "a","A" 'Brent Wright
WScript.Echo ""
WScript.Echo ""
Call functionA()
Case "b","B" 'Kameron Chan
WScript.Echo ""
WScript.Echo ""
Call functionB()
Case "c","C" 'Brent Wright
WScript.Echo ""
WScript.Echo ""
Call functionC()
Case "d","D" 'Josh Boyer
WScript.Echo ""
WScript.Echo ""
Call functionD()
Case "e","E" 'Kameron Chan/Matthew Alex
WScript.Echo ""
WScript.Echo ""
Call functionE()
Case "q","Q"
Call functionQ()
End Select
End Function
Call Menu()
Function functionA() 'Brent Wright
Dim selectionA, objNet
Set objNet = CreateObject("WScript.Network")
WScript.StdOut.Write "DeskTop Management" & vbCrLf
WScript.StdOut.Write "----------------------" & vbCrLf
WScript.StdOut.Write "A - Desktop Settings" & vbCrLf
WScript.StdOut.Write "B - Shortcuts" & vbCrLf
WScript.StdOut.Write "C - Events" & vbCrLf
WScript.StdOut.Write "D - Scheduled Tasks" & vbCrLf
WScript.StdOut.Write "Q - Exit to Main Menu" & vbCrLf
WScript.StdOut.Write "What is your selection? "
selectionA = WScript.StdIn.ReadLine
Select Case selectionA
Case "a","A"
WScript.Echo ""
WScript.Echo ""
Call aDesktop()
Case "b","B"
WScript.Echo ""
WScript.Echo ""
Call aShortcut()
Case "c","C"
WScript.Echo ""
WScript.Echo ""
Call aEvent()
Case "D"
WScript.Echo ""
WScript.Echo ""
Call aTasks()
Case "Q"
WScript.Echo ""
WScript.Echo ""
Call Menu()
Case else
WScript.Echo "error"
WScript.Echo ""
WScript.Echo ""
End Select
Call Menu()
WScript.Echo ""
End Function
'Call functionA() 'End Brent
Function functionB() ' Kameron Chan /Matthew Alex
Dim menuchoice, ans', WScript
'Set WScript = CreateObject ("WScript.Shell")
ans = "y"
'do
WScript.Echo "1. Restart a computer"
WScript.Echo "2. Logon script"
WScript.Echo "3. Logoff script"
WScript.Echo "4. Shutdown a computer"
WScript.Echo "5. Exit to the Main menu"
WScript.StdOut.WriteLine "Please choose an option: "
menuchoice = WScript.StdIn.ReadLine
'loop while ans = "y"
Select Case menuchoice
Case "1"
option1()
ans = "n"
Case "2"
option2()
ans = "n"
Case "3"
option3()
ans = "n"
Case "4"
option4()
ans = "n"
Case "5"
ans = "n"
Call Menu()
Case Else
WScript.Echo "You did not insert a value corresponding with a menu option"
ans = "y"
End Select
End Function
'Call functionB()
Function functionC() 'Brent Wright
Dim selectionC
WScript.StdOut.Write "A - Create a Group" & vbCrLf
WScript.StdOut.Write "B - Create Users" & vbCrLf
WScript.StdOut.Write "C - List Users" & vbCrLf
WScript.StdOut.Write "D - List Groups" & vbCrLf
WScript.StdOut.Write "E - Delete User" & vbCrLf
WScript.StdOut.Write "F - List Inactive Users" & vbCrLf
WScript.StdOut.Write "Q - Exit to Main Menu" & vbCrLf
WScript.StdOut.Write "Enter your selection: "
selectionC = WScript.StdIn.ReadLine
Select Case selectionC
Case "a","A"
WScript.Echo ""
WScript.Echo ""
Call cGroup()
WScript.Echo ""
WScript.Echo ""
Case "b","B"
WScript.Echo ""
WScript.Echo ""
Dim group
Call cUser(group)
Case "c","C"
WScript.Echo ""
WScript.Echo ""
Call cUsersList()
Case "d","D"
WScript.Echo ""
WScript.Echo ""
Call cGroupsList()
Case "e","E"
WScript.Echo ""
WScript.Echo ""
Call cDelete()
Case "f","F"
WScript.Echo ""
WScript.Echo ""
Call cDisplayInactive()
Case "Q"
Call Menu()
WScript.Echo ""
WScript.Echo ""
End Select
Call Menu()
End Function
'Call functionC() 'End Brent
Function functionD()
dim options
dim strComputer
dim objWMIservice
dim colvolumes
dim objvolume
dim oXL
dim i
dim freespace(30)
dim j
dim volname(30)
dim volsize(30)
dim freespaceperc(30)
Dim fso
Dim ObjFolder
Dim ObjFiles
Dim ObjFile
WScript.Echo "A - Display Drive Size and Store in Excel doc"
WScript.Echo "B - Display Folder Properties and locate folders over 10mb"
WScript.Echo "Z - Exit to Main Menu"
WScript.StdOut.Write "Option: "
options = WScript.StdIn.ReadLine
'function declarations
Select Case options
case "A"
drivesize()
case "B"
folderprop()
case "Z"
WScript.Quit
End Select
End Function
'Call functionD()
Function functionE()
'Variables are global
dim suboption, menuoption
WScript.Echo "1. Math Game"
WScript.Echo "2. Dictionary"
WScript.Echo "3. Software"
WScript.StdOut.Write "Choose an option: "
menuoption = WScript.StdIn.ReadLine
Select Case menuoption
Case 1
option1()
Case 2
option2()
Case 3
option3()
End Select
Call Menu()
End Function
'Call functionE()
'Math Game
Function option1()
dim h,s,e
WScript.Echo "What is 5 * 5 + 20 / 5?"
WScript.Echo "H - Help me S - Solve E - Exit"
suboption = WScript.StdIn.ReadLine
Select Case ucase(suboption)
Case "H"
help()
Case "S"
solve()
Case "E"
WScript.Quit
End Select
End Function
Function help()
dim objword, objdoc, objselection
Set objWord = CreateObject("Word.Application")
objWord.Caption = "Test Caption"
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Font.Name = "Arial"
objSelection.ParagraphFormat.Alignment=1
objSelection.Font.Underline= true
objSelection.Font.Size = "12"
objSelection.TypeText "Equipment Cost"
objSelection.Font.Underline= false
objSelection.TypeParagraph()
objSelection.ParagraphFormat.Alignment=0
objSelection.TypeText"10 * 10 + 15 / 3"
WScript.Sleep 2000
objSelection.TypeParagraph()
objSelection.TypeText"100 + 5"
WScript.Sleep 2000
objSelection.TypeParagraph()
objSelection.TypeText"105"
WScript.Sleep 2000
objSelection.TypeParagraph()
objDoc.SaveAs("C:\Scripts\finalprojectmathgame.docx")
WScript.Sleep 3000
objWord.Quit
'menu()
End Function
Function solve()
dim mathans, wshshell
WScript.Echo "Please enter your answer: "
mathans = WScript.StdIn.ReadLine
if mathans = 29 then
'menu()
else
set WshShell = WScript.CreateObject("WScript.Shell") ' invoke applications
WshShell.Run "calc"
WshShell.AppActivate "Calculator" ' activate the calculator
WScript.Sleep 1000
WshShell.SendKeys "%2"
WshShell.SendKeys "5{*}"
WScript.Sleep 2000
WshShell.SendKeys "5"
WScript.Sleep 2000
WshShell.SendKeys "{+}"
WScript.Sleep 2000
WshShell.SendKeys "20{/}"
WScript.Sleep 2000
WshShell.SendKeys "5"
WScript.Sleep 2000
WshShell.SendKeys "{ENTER}"
WScript.Sleep 2500
wshshell.SendKeys "%{F4}"
menu()
End If
End Function
'Dictionary
Function option2()
WScript.Echo "How would you like to modify the server detials list?"
WScript.Echo "A - Add L - List D - Delete E - Exit"
suboption = WScript.StdIn.ReadLine
End Function
Dim objDict
Set objDict = CreateObject("Scripting.Dictionary")
' fill the items in the dictionary
function DisplayServerDetails(ObjDict)
Select Case ucase(suboption)
Case "A"
addentry()
Case "L"
display()
Case "D"
delentry()
Case "E"
WScript.Quit
End Select
end function
Function functionQ() 'Josh Boyer
dim array(9)
Array(0)="Thank you for running this program"
Array(1)="Have a good summer! Program exited."
Array(2)="We hope you enjoyed our program."
Array(3)="Program exited. Thank you."
Array(4)="We appreciate that you ran the program."
Array(5)="This program was made by: Joshua Boyer, Kameron Chan, Matthew Alex and Brent Wright."
Array(6)="All of these options were made using VBScript."
Array(7)="Thank you. Have a great summer."
Array(8)="Please use this program again."
Array(9)="Thank you for executing this VBScript."
Randomize
Wscript.Echo array(Int(rnd*10))
Wscript.Sleep 2000
WScript.Quit
End Function
Function aDesktop 'Brent Wright
Dim WshShell, wallpaper, sleepTime, FSO, HKEY_CURRENT_USER
HKEY_CURRENT_USER = &H80000001
WScript.StdOut.Write "Enter the path for the picture you want to use: "
wallpaper = WScript.StdIn.ReadLine
sleepTime = 30000
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
WScript.Sleep sleepTime
WshShell.Run "%windir%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters", 1, False
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
ValueName = "ScreenSaveTimeout"
strValue = "300"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
Set WshShell = Nothing
End Function
Function aShortcut 'Brent Wright
Dim MyShortcut, URL, favourite, deleted,objStartFolder
Dim objFolder, colFiles, objFile, confirm, WSHShell, Link
Dim objNet, FSO
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set objNet = CreateObject("WScript.Network")
MyShortcut = "C:\Users\" & objNet.username & "\Desktop\Computer Management.LNK"
Set Link = WSHShell.CreateShortcut(MyShortcut)
Link.TargetPath = ("C:\Windows\System32\compmgmt.msc")
Link.WorkingDirectory =("C:\Windows\System32")
Link.WindowStyle = 4
Link.Save
WScript.StdOut.Write "Enter your website URL: "
URL = WScript.StdIn.ReadLine
Set favourite = WSHShell.CreateShortcut("C:\Users\" & objNet.UserName & "\Favorites\favourite.url")
favourite.TargetPath = URL
favourite.Save
WScript.StdOut.Write "Enter a shortcut to delete: "
deleted = WScript.StdIn.ReadLine
WScript.StdOut.Write "Do you want to delete the shortcut?[Y/N]"
confirm = WScript.StdIn.ReadLine
if confirm = "Y" then
FSO.DeleteFile deleted
elseif confirm = "N" then
WScript.Echo "Not deleted"
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Users\" & objNet.Username & "\Desktop"
Set objFolder = FSO.GetFolder(objStartFolder)
Wscript.Echo objFolder.Path
Set colFiles = objFolder.Files
For Each objFile in colFiles
If UCase(FSO.GetExtensionName(objFile.name)) = "LNK" Then
Wscript.Echo objFile.Name
End If
Next
Wscript.Echo
End Function
Function aEvent ' Brent Wright
Dim objEvent, ScriptContext, text, FSO, WshShell, strCommand
Dim objWMIService, colLogFiles, objLogFile, errBackupLog
Dim colLoggedEvents, loggedevent
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
strCommand = "eventcreate /T Error /ID 100 /L Shortcuts /D " & _
Chr(34) & "Shortcut Created" & Chr(34)
WshShell.Run strcommand
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery _
("SELECT * FROM Win32_NTEventLogFile WHERE LogFileName='Application'")
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("c:\scripts\application.evt")
If errBackupLog <> 0 Then
Wscript.Echo "The Application event log could not be backed up."
Else
objLogFile.ClearEventLog()
End If
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Security)}!\\" & strComputer & "\root\cimv2")
Set colLoggedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where Logfile = 'Security' and CategoryString='Account Management'")
For each loggedEvent in colLoggedEvents
Set text = FSO.OpenTextFile("account_events.txt", 8)
text.WriteLine "Security Events: " & loggedEvent.Name
text.Close
Next
End Function
Function aTasks 'Brent Wright
Dim source, destination, copy, FSO, objWMIService, objNewJob, JobID, errJobCreated, colScheduledJobs, objJob
Set FSO = CreateObject("Scripting.FileSystemObject")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create _
("c:\defrag.bat", "********220000.000000-300", _
True , 16, , True, JobId)
If errJobCreated <> 0 Then
Wscript.Echo "Error: Task creation failed"
Else
Wscript.Echo "Task created successfully"
End If
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create _
("c:\backup.bat", "********220000.000000-300", _
True , 16, , True, JobId)
If errJobCreated <> 0 Then
Wscript.Echo "Error: Task creation failed"
Else
Wscript.Echo "Task created successfully"
End If
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colScheduledJobs = objWMIService.ExecQuery _
("Select * from Win32_ScheduledJob")
For Each objJob in colScheduledJobs
Wscript.Echo "Caption: " & objJob.Caption
Wscript.Echo "Command: " & objJob.Command
Wscript.Echo "Days of Month: " & objJob.DaysOfMonth
Wscript.Echo "Days of Week: " & objJob.DaysOfWeek
Wscript.Echo "Description: " & objJob.Description
Wscript.Echo "Elapsed Time: " & objJob.ElapsedTime
Wscript.Echo "Install Date: " & objJob.InstallDate
Wscript.Echo "Interact with Desktop: " & objJob.InteractWithDesktop
Wscript.Echo "Job ID: " & objJob.JobID
Wscript.Echo "Job Status: " & objJob.JobStatus
Wscript.Echo "Name: " & objJob.Name
Wscript.Echo "Notify: " & objJob.Notify
Wscript.Echo "Owner: " & objJob.Owner
Wscript.Echo "Priority: " & objJob.Priority
Wscript.Echo "Run Repeatedly: " & objJob.RunRepeatedly
Wscript.Echo "Start Time: " & objJob.StartTime
Wscript.Echo "Status: " & objJob.Status
Wscript.Echo "Time Submitted: " & objJob.TimeSubmitted
Wscript.Echo "Until Time: " & objJob.UntilTime
Next
WScript.Echo ""
WScript.Echo ""
End Function
Function option1() 'Kameron Chan
dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 0"
End Function
Function option2() 'Kameron Chan
Dim objNetwork, objNet, colDrives, i, objWMIService, colPrinters
Set objNetwork = CreateObject("WScript.Network")
WScript.Echo "Hi" & objNetwork.UserName & ", Welcome to Windows." 'welcome message
Set objNet = CreateObject("Wscript.Network")
Set colDrives = objNetwork.EnumNetworkDrives
For i = 0 to colDrives.Count-1 Step 2
objNetwork.RemoveNetworkDrive colDrives.Item(i) 'deletes mapped drives
Next
Set objNet = CreateObject("WScript.Network")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
'adds three drives
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "S:", "PATH"
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "J:", "PATH"
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "R:", "PATH"
'removes printers
For Each objPrinter in colPrinters
If objPrinter.Attributes And NETWORK Then
strPrinter = objPrinter.Name
objNet.RemovePrinterConnection strPrinter
End If
Next
' readd printers and part d
objNetwork.AddWindowsPrinterConnection "\\server\H134"
objNetwork.AddWindowsPrinterConnection "\\server\SW214"
objNetwork.AddWindowsPrinterConnection "\\server\B221"
objNetwork.SetDefaultPrinter "\\Server\B221"
'part e
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objNetwork = CreateObject("WScript.Network")
Set colPrinters = objNetwork.EnumPrinterConnections
' list all the drives
wscript.echo "Current Mapped Paths"
Set colDrives=objFSO.Drives
For Each Drive In colDrives
WScript.Echo "Path: " & Drive.Path
WScript.Echo String(20,".") & vbCRLF
Next
' print only the printer names
wscript.echo "Current Printer Assignments: " & colPrinters.Count/2 &vbCRLF
For i = 1 to colPrinters.Count - 1 Step 2
wscript.echo colPrinters.Item(i)
Next
' Part f
Set objNetwork = CreateObject("Wscript.Network")
Set objShell = WScript.CreateObject("WScript.Shell")
strComputer = objNetwork.ComputerName
strUser = objNetwork.UserName
isAdministrator = false
'Checks to see if current user is a admin sets isadministrator variable accordingly
Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
For Each objUser in objGroup.Members
If objUser.Name = strUser Then
isAdministrator = true
End If
Next
If isAdministrator Then
Wscript.Echo strUser & " is a local administrator."
objNetwork.AddWindowsPrinterConnection "\\server\B221" 'adds printer
objShell.Run "NET TIME" 'synchronizes time
'Turn off the wallpaper setting
objShell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", ""
objShell.RegWrite "HKCU\Control Panel\Colors\Background", "255 255 255" 'Sets wall paper to white
Else
Wscript.Echo strUser & " is not a local administrator."
End If
' PART G Retrieve computers IP address
' strComputer = "."
' Set objWMIService = GetObject( _
' "winmgmts:\\" & strComputer & "\root\cimv2")
' Set colNics = objWMIService.ExecQuery _
' ("Select * From Win32_NetworkAdapter " _
' & "Where NetConnectionID = " & _
' "'Local Area Connection'")
' For Each objNic in colNics
' Set colNicConfigs = objWMIService.ExecQuery _
' ("ASSOCIATORS OF " _
' & "{Win32_NetworkAdapter.DeviceID='" & _
' objNic.DeviceID & "'}" & _
' " WHERE AssocClass=Win32_NetworkAdapterSetting")
' For Each objNicConfig In colNicConfigs
' For Each strIPAddress in objNicConfig.IPAddress
' Wscript.Echo "IP Address: " & strIPAddress
' Next
' Next
' Next
End Function
Function option3() 'Kameron Chan
Const NETWORK = 22
Dim objNetwork, objNet, objWMIService, colPrinters, strComputer, strPrinter, objPrinter
Set objNet = CreateObject("WScript.Network")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
For Each objPrinter in colPrinters
If objPrinter.Attributes And NETWORK Then
strPrinter = objPrinter.Name
objNet.RemovePrinterConnection strPrinter
End If
Next
objNetwork.RemoveNetworkDrive "J:"
Set objNetwork = CreateObject("WScript.Network")
MsgBox("Hi" & objNetwork.UserName & ", You will be logged out soon")
End Function
Function option4() 'Kameron Chan
dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "C:\WINDOWS\system32\shutdown.exe -t 0"
End Function
Function cGroup() 'Brent Wright
Dim group, colAccounts, objGroup, groupPass
group = InputBox("Enter the name of a group to create: ")
strComputer = "."
Set colAccounts = GetObject("WinNT://" & strComputer & "")
if lcase(trim(colAccounts.Name)) = lcase(trim(group)) then
WScript.Echo "The group is already created"
else
Set objGroup = colAccounts.Create("group", group)
objGroup.SetInfo
End If
End Function
Function cUser(group) 'Brent Wright
Dim user, pass, colAccounts, objUser, objGroup, newgroup, replacer, objNet
Set objNet = CreateObject("WScript.Network")
'newgroup = cGroup(groupPass)
newgroup = group
Do until user = "NOMORE"
WScript.StdOut.Write "Enter a username: "
user = WScript.StdIn.ReadLine
if not user = "NOMORE" then
WScript.StdOut.Write "Enter a password: "
pass = WScript.StdIn.ReadLine
end if
strComputer = "."
Set colAccounts = GetObject("WinNT://" & strComputer & "")
Set objUser = colAccounts.Create("user", user)
Do until Len(pass) <= 8
if Len(pass) <= 8 then
objUser.SetPassword pass
objUser.SetInfo
else
WScript.Echo "That password is invalid."
WScript.StdOut.Write "Enter a password: "
pass = WScript.StdIn.ReadLine
End If
Loop
Loop
strComputer = "."
Set objGroup = GetObject("WinNT://" & objNet.ComputerName & "/" & newgroup)
For each objUser in colAccounts
Set objUser = GetObject("WinNT://" & objNet.ComputerName & "/" & user)
objGroup.Add(objUser.ADsPath)
Next
End Function
Function cUsersList 'Brent Wright
Dim FSO, colAccounts, strComputer, text, objUser, create
Set FSO = CreateObject("Scripting.FileSystemObject")
Set create = FSO.CreateTextFile("c:\scripts\user_list.txt")
Set create = nothing
strComputer = "."
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("user")
For Each objUser In colAccounts
Wscript.Echo objUser.Name
Set text = FSO.OpenTextFile("c:\scripts\user_list.txt", 8)
text.WriteLine "Users: " & objUser.Name
text.Close
Next
End Function
Function cGroupsList 'Brent Wright
Dim strComputer, colAccounts, objGroup, FSO, text, doc
Set FSO = CreateObject("Scripting.FileSystemObject")
Set doc = FSO.CreateTextFile("c:\scripts\groups.docx")
Set doc = nothing
strComputer = "."
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("group")
For Each objGroup In colAccounts
Wscript.Echo objGroup.Name
Set text = FSO.OpenTextFile("c:\scripts\groups.docx", 2)
text.WriteLine "Groups: " & objGroup.Name
text.Close
Next
End Function
Function cDelete() 'Brent Wright
Dim objComputer, delete, confirm, objNet
Set objNet = CreateObject("WScript.Network")
WScript.StdOut.Write "What user do you want to delete? "
delete = WScript.StdIn.ReadLine
WScript.StdOut.Write "Are you sure[Y/N]"
confirm = WScript.StdIn.ReadLine
Set objComputer = GetObject("WinNT://" & objNet.ComputerName & "")
if confirm = "Y" then
objComputer.Delete "user", delete
else
WScript.Echo "Operation Aborted"
End If
End Function
Function cDisplayInactive() 'Brent Wright
strComputer = "."
Dim flag, colAccounts, objUser
Const ADS_UF_ACCOUNTDISABLE = &H0002
Set colAccounts = GetObject("WinNT://" & strComputer & "")
colAccounts.Filter = Array("user")
For Each objUser In colAccounts
if objUser.UserFlags and ADS_UF_ACCOUNTDISABLE then
Wscript.Echo objUser.Name
WScript.Echo ""
else
end if
Next
WScript.Echo ""
WScript.Echo ""
End Function
Function OS() 'Brent Wright
strComputer = "."
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem",,48)
For Each objItem in colItems
Wscript.Echo objItem.Caption
Next
End Function
Function Directory() 'Brent Wright
Set Shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Shell.CurrentDirectory = FSO.GetParentFolderName(Wscript.ScriptFullName)
WScript.Echo Shell.CurrentDirectory
End Function
Function Path() 'Brent Wright
Dim pathing
Set fso = CreateObject("Scripting.FileSystemObject")
pathing = fso.GetAbsolutePathName("finalmenu.vbs")
WScript.Echo pathing
End Function
Function addentry()
Dim SERVER, DOMAIN, LOCATION, TOTALSIZE, USERS, STATICIP, COST
Const SERVERDICT = 0
Const DOMAINDICT = 1
const LOCATIONDICT = 2
const TOTALSIZEDICT = 3
const USERSDICT = 4
const STATICIPDICT = 5
Const COSTDICT = 6
Dim objDict
Set objDict = CreateObject("Scripting.Dictionary")
WScript.StdOut.Write "Enter server name: "
SERVER = WScript.StdIn.ReadLine
WScript.StdOut.Write "Enter domain name: "
DOMAIN = WScript.StdIn.ReadLine
WScript.StdOut.Write "Enter location: "
LOCATION = WScript.StdIn.ReadLine
WScript.StdOut.Write "Enter total disk size(GB): "
TOTALSIZE = WScript.StdIn.ReadLine
WScript.StdOut.Write "Enter total users: "
USERS = WScript.StdIn.ReadLine
WScript.StdOut.Write "Enter static IP: "
STATICIP = WScript.StdIn.ReadLine
WScript.StdOut.Write "Enter cost: "
COST = WScript.StdIn.ReadLine
Dim strItemAdd(7)
Dim strKey
' Populate the list, using phone number as the key.
' Add values to temp array, then add temp array to dictionary.
strItemAdd(SERVERDICT) = SERVER
strItemAdd(DOMAINDICT) = DOMAIN
strItemAdd(LOCATIONDICT) = LOCATION
strItemAdd(TOTALSIZEDICT) = TOTALSIZE
strItemAdd(USERSDICT) = USERS
strItemAdd(STATICIPDICT) = STATICIP
strItemAdd(COSTDICT) = COST
' key is Server Name
strKey = strItemAdd(SERVERDICT)
' add to the dictionary where strItemAdd is an array
objDict.Add strKey, strItemAdd
'menu()
End Function
function display()
Dim n,keys,k,v,i,strItemRead, objdict
n = objDict.Count
keys = objDict.Keys()
for i=0 to n-1
k = keys(i)
If objDict.Exists(k) Then
strItemRead = objDict.Item(k)
Wscript.echo vbNewLine & _
"Server Name : " & strItemRead(0) & vbNewLine & _
"Domain Name : " & strItemRead(1) & vbNewLine & _
"Location : " & strItemRead(2) & vbNewLine & _
"Total Disk Size: " & strItemRead(3) & vbNewLine & _
"Total Users : " & strItemRead(4) & vbNewLine &_
"Static IP: " & strItemRead(5) & vbNewLine & _
"Cost: " & strItemRead(6) & vbNewLine
End If
next
End function
Function delentry()
End Function
'Software
Function option3()
WScript.Echo "What would you like to do?"
WScript.Echo "1. List installed software"
WScript.Echo "2. Delete software"
WScript.Echo "3. Install software"
suboption = WScript.StdIn.ReadLine
Select Case suboption
Case "1"
listsoftware()
Case "2"
delsoftware()
Case "3"
installsoftware()
End Select
end function
Function listsoftware()
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
dim strcomputer, strkey, strentry1a, strentry1b, strentry2,strentry3,strentry4,strentry5, obj reg, strsubkey, arrsubkeys
strComputer = "."
strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strEntry1a = "DisplayName"
strEntry1b = "QuietDisplayName"
strEntry2 = "InstallDate"
strEntry3 = "VersionMajor"
strEntry4 = "VersionMinor"
strEntry5 = "EstimatedSize"
Set objReg = GetObject("winmgmts://" & strComputer & _
"/root/default:StdRegProv")
objReg.EnumKey HKLM, strKey, arrSubkeys
WScript.Echo "Installed Applications" & VbCrLf
For Each strSubkey In arrSubkeys
intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _
strEntry1a, strValue1)
If intRet1 <> 0 Then
objReg.GetStringValue HKLM, strKey & strSubkey, _
strEntry1b, strValue1
End If
If strValue1 <> "" Then
WScript.Echo VbCrLf & "Display Name: " & strValue1
End If
objReg.GetStringValue HKLM, strKey & strSubkey, _
strEntry2, strValue2
If strValue2 <> "" Then
WScript.Echo "Install Date: " & strValue2
End If
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
strEntry3, intValue3
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
strEntry4, intValue4
If intValue3 <> "" Then
WScript.Echo "Version: " & intValue3 & "." & intValue4
End If
objReg.GetDWORDValue HKLM, strKey & strSubkey, _
strEntry5, intValue5
If intValue5 <> "" Then
WScript.Echo "Estimated Size: " & Round(intValue5/1024, 3) & " megabytes"
End If
Next
End Function
Function delsoftware()
dim strcomputer, software, colSoftware, objWMIService, objSoftware
strComputer = "."
WScript.Echo "What software would you like to remove?"
software = WScript.StdIn.ReadLine
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
Set colSoftware = objWMIService.ExecQuery _
("Select * from Win32_Product " _
& "Where Name =" & software)
For Each objSoftware in colSoftware
objSoftware.Uninstall()
Next
End Function
Function installsoftware()
End Function
function drivesize()
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colVolumes = objWMIService.ExecQuery("Select * from Win32_Volume")
For Each objVolume in colVolumes
Set oXL = Wscript.CreateObject("Excel.Application")
' Ensure that its visible to the end-user
oXL.Visible = TRUE
' Add a workbook
oXL.WorkBooks.Add
For i=0 to colVolumes.Count-1
freespace(i) = objVolume.FreeSpace / 1024
freespaceper(i) = objVolume.FreeSpacePercent
volname(i) = objVolume.VolumeName
volsize(i) = objVolume.VolumeSize / 1024
Next
j = i + 2
oXL.Cells(1,1).Value = "Drive name:"
oXL.Cells(2,1).Value = "Volume size:"
oXL.Cells(3,1).Value = "Free space:"
oXL.Cells(1,j).Value = volname(i)
oXL.Cells(2,j).Value = volsize(i)
oXL.Cells(2,j).Value = freespace(i)
Next
For i = 0 to colVolumes.Count-1
If freespaceper > 29 then
WScript.Echo "Volume name: " & volname(i)
Else
WScript.Echo "All drives have less than 30% free space"
End If
Next
end function
function folderprop()
dim foldername, i, colFolders
WScript.Echo "Please enter a folder name(absolute path): "
foldername = WScript.StdIn.ReadLine
Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjFolder = fso.GetFolder(foldername)
Set ObjFiles = ObjFolder.Files
For Each ObjFile In ObjFiles
WScript.Echo ObjFile.Name & String(50 - Len(ObjFile.Name), " ") & ObjFile.Path
Next
dim foldernames(100), drivename
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery("Select * from Win32_Directory")
For Each objFolder in colFolders
for i = 0 to colFolders.Count - 1
foldernames(i)=objFolder.Name
Next
Next
WScript.Echo "Please enter the drive name: "
drivename = WScript.StdIn.ReadLine
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(drivename)
foldersizemb = objFolder.Size * 1024
if foldersizemb > 9 then
for i = 0 to colFolders.Count - 1
WScript.Echo "Folder name: " & foldernames(i)
Next
End If
end function