DPenfold
Members-
Posts
84 -
Joined
-
Last visited
Content Type
Forums
News
20th
EduGeek EDIT Conference
Blogs
Everything posted by DPenfold
-
PS C:\WINDOWS\system32> $Users = Import-Csv -Path "C:\TEMP\New folder (2)\tempUser.csv" | ForEach-Object {$_.user_list} $Groups = Import-Csv -Path "C:\TEMP\New folder (2)\tempTeam.csv" | ForEach-Object {$_.group_id} Foreach ($group in $groups) { foreach ($User in $Users) {Add-TeamUser -GroupId $group -Role Owner -user $User}} Works, for each team in Team CSV will add all users from User CSV @DaveTheTech and @tri_94 thank you so much for the help!
-
So I tried this with an earlier inporter code (CSV to aray) $Users = Import-Csv -Path "C:\TEMP\New folder (2)\tempUser.csv" | ForEach-Object {$_.user_list} $Groups = Import-Csv -Path "C:\TEMP\New folder (2)\tempTeam.csv" | ForEach-Object {$_.group_id} Foreach ($group in $groups) { foreach ($User in $Users){ Write-host "Add-TeamUser -GroupId $group -Role Owner -user $User"}} and the result; PS C:\WINDOWS\system32> $Users = Import-Csv -Path "C:\TEMP\New folder (2)\tempUser.csv" | ForEach-Object {$_.user_list} $Groups = Import-Csv -Path "C:\TEMP\New folder (2)\tempTeam.csv" | ForEach-Object {$_.group_id} Foreach ($group in $groups) { foreach ($User in $Users){ Write-host "Add-TeamUser -GroupId $group -Role Owner -user $User"}} Add-TeamUser -GroupId 00000000-0000-0000-0000-00000000000 -Role Owner -user DPenfold@email Add-TeamUser -GroupId 00000000-0000-0000-0000-00000000000 -Role Owner -user TestStaff@email PS C:\WINDOWS\system32> (obviously changed group ID and email etc.) looks like itswhat I need, I'll test now with out "wrtie-host"
-
I realised that before but it complicates things when trying to things on the fly for allot of groups/users, I had one where I was adding heads of years to various form groups per year etc. which is why I wanted to do it where it goes through two list, two CSV is fine to do
-
yes (I do have one CSV with both lists but don't think this would work), but what you said is what I want to do I had used this line of code; Import-Csv -Path C:\TEMP\TEMP\tempTeam.csv | ForEach-Object {Add-TeamUser -GroupId $_.group_id -Role Owner -user USEREMAIL} For the code that promps me for username etc.
-
Hope someone can help me out as I'm hitting brick wall and it doesn't help my powershell knowledge is vary limited; I'm looking to import a list of users to multiple teams, idealy from CSV file (2 sperate list either one CSV or 2 CSV), but I'm getting few issues; I can't tell the script to read the two lists seperatly (either from 1 CSV File or 2 CSV files), it reads each row as a single line Only ways I can get it working is either add list of users one team at a time by editing the line to specifically state what group ID or using visual basic input box prompting the user to enter in username and then adding that user to list of teams (not bad for one offs etc.) I thought about using a double for each (nesting I think it's called?) but that doesn't work as stated above it reads the row data as a single line, or i can't figure out how tell the script; for this group add the list of users, next group and add the list of users etc. sorry if my explination is confusing, mix of tired and dylexia.
-
Could you send me the code from config file (you can send the whole thing or just the part with the resources/booking equipment) it might be an issue there, is the "4 Maths Resources" the same as anything else (despite the name/location)?
-
Might be a double booking some where? what is it mean to look like? (Can you edit the image to show what it is meant too look like?)
-
Home Access Plus+ iOS App - Request For Testers
DPenfold replied to Stuajnht's topic in Home Access Plus+
Need to get my tables working on our system lol It would be good/nice to have like an hour/hour half time limit on share access etc. kids are always forgetting to log out of things =\ -
Home Access Plus+ iOS App - Request For Testers
DPenfold replied to Stuajnht's topic in Home Access Plus+
All is good here, even able to deploy it via Apple's Profile Manager ! Thanks for taking the time to creating this. Also sent you PM about something else -
Hi I was wondering if any one knows of a way to run two Booking Systems within HAP? I have seen it being done but I have no idea how to get it to work. Basically we've been asked to add more items (meeting rooms, mini buses etc.) to our booking system but there isn't any flexibility with our timetables (we have 1h15m lessons) so we can't really add them, however we could use a different booking system for these items but I have no idea how to run two within hap. I have suggested to keep with Outlook/Office 365's calendars because you get complete flexibility but they are quite keen to use HAP as everyone can easily access, use and understand it. Any help/suggestions are welcome, thanks!
-
HAP email notifications for room bookings not working
DPenfold replied to The_IT_Guy's topic in Home Access Plus+
We (IT Team) wasn't getting any emails but there booker/teacher were getting emails. Also like previously mentioned they were going to the deleted folder, might be good idea to check there If anything else come to mind I'll let you know but chances are someone else here on the board will be more ideal. -
Home Access Plus+ iOS App - Request For Testers
DPenfold replied to Stuajnht's topic in Home Access Plus+
Unfortunately we are running only one email for the iCloud/Apple ID so we can track the ipads easily however I may send you my personal and work accounts as I can use them on my phone and my/testing iPad . -
Home Access Plus+ iOS App - Request For Testers
DPenfold replied to Stuajnht's topic in Home Access Plus+
I would have to agree, it's be really great so far but we're limited to only 10 (TestFlight limitations) would be great to get it to all iPads more so now with people actually stating to use MS Apps etc. -
HAP email notifications for room bookings not working
DPenfold replied to The_IT_Guy's topic in Home Access Plus+
I had some success today! Hopefully other too; I've modified the SMTP Settings on HAP Enable: ON Address: sjw-bham-sch-uk.mail.protection.outlook.com (we're with office 365 - for any one else change the first part to your school domain address replace dots with dashes) Port: 25 SSL: ON SMTP User: (email you wish to use eg:) [email protected] SMTP Password: (Password for above email address) From (Name): Bookings From (Email): (email you wish to use eg:) [email protected] With these settings I get (as the booker) an email in my junk mail, if I move it to inbox it becomes 'safe' and creates calendar ready for me to 'accept' Hope this works for others too however I still need to find away to send admin email too (even if we have to make [email protected] a shared mailbox to prevent clogging up calendar etc.) Good luck -
Audio CD Script 'Open Audio CDs on VLC, created by David Penfold (Birmingham, UK) 2016'This Freeware scriping, you are welcome to make alterations though I'd like to ask to let me know as I am still'learning VB Scripting ([email protected])'Search/Find #InstallVLC if you need to change the installation path of VLC'Variable needed to check Drive letter for optical driveConst DriveTypeCDROM = 4Set oFS = Wscript.CreateObject("Scripting.FileSystemObject")Set oDrives = oFS.Drives 'Loop thru A-Z. If found, exit early'Paths to both x64 & x86 versioni of VLC stored into a variablePatchx64 = chr(34) & "C:\Program Files\VideoLAN\VLC\vlc.exe" & chr(34) & " dvd:///"Patchx86 = chr(34) & "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" & chr(34) & " dvd:///"'ObjectsSet fso = CreateObject("Scripting.FileSystemObject")Set shl = CreateObject("WScript.Shell")Set WshShellx64CD = CreateObject("WScript.Shell")Set WshShellx86CD = CreateObject("WScript.Shell") For Each Drive in oDrives 'Identifies Drive letter for optical drive If Drive.DriveType = DriveTypeCDROM Then ODD = Drive.DriveLetter End If Next'Checks if ODD is Blank (If there is a DVD/CD Drive)If ODD = "" Then'Gives error message if no drive foundMsgBox "No DVD/CD Drive found, please make sure it is connected or contact the ICT Technicians",16,"No DVD/CD Drive found"'If drive found continues with opening VLCElse 'Checks if path exists, depending the corresponding IF Statement will commence exists = fso.FileExists("C:\Program Files (x86)\VideoLAN\VLC\vlc.exe") 'If x86 path exists then Opens VLC in this path and open Disc as DVD if (exists) then 'Uses stored drive letter variable then stores it in VLC variable VLCX86 = Patchx86 & ODD & ":/" 'Runs command using the newly created variable (Opens VLC depending on previous commands) Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run VLCX86 Set oShell = Nothing' 'If x64 path exists then Opens VLC in this path and open Disc as DVD Else 'Checks if path exists, depending the corresponding IF Statement will commence exists = fso.FileExists("C:\Program Files\VideoLAN\VLC\vlc.exe") 'If x86 path exists then Opens VLC in this path and open Disc as DVD if (exists) then 'Uses stored drive letter variable then stores it in VLC variable VLCX64 = Patchx64 & ODD & ":/" 'Runs command using the newly created variable (Opens VLC depending on previous commands) Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run VLCX64 Set oShell = Nothing' 'If x64 nor x86 path exists then Displays Error Message Else 'Gives error message if no drive found 'MsgBox "No VLC Media Player Found, please contact the ICT Technicians",16,"No VLC Media Player found" 'Option Explicit 'Will ask user if they wish to install VLC result = MsgBox ("No VLC Media Player Found, Do you wish to install the VideoLAN Client (VLC) Media Player? Otherwise please contact the ICT Technicians", vbYesNo + 32 , "VLC Media Player not found!") 'Actions based on user result Select Case result 'Actions if User selected to install VLC Case vbYes 'Path to VLC Installation .exe (Change if needed! #InstallVLC) VLCInstallPath = "\\App1\apps$\SOFT\VLC\2.2.4\vlc-2.2.4-win32.exe" 'Path and command for silent install of VLC VLCInstall = chr(34) & VLCInstallPath & chr(34) & " /language=en_GB /S" Dim objShell,grouplistD,ADSPath,userPath,listGroup On Error Resume Next set objShell = WScript.CreateObject( "WScript.Shell" ) 'Calls the isMember function with the specified group to see if the current user is a member of that group. If isMember("Domain Admins") Then 'Test command/MsgBox if user is a memeber of Domain Admin 'MsgBox EnvString("username") & " is member of the Domain Admins on " & EnvString("userdomain"),64,"Admin User?" ' Do something here if they are a member of the group 'Displays VLC instal .exe path to Domain Admins (incase of error) and gives option to cancel result = MsgBox ("The Current VLC Installation Path is - " & VLCInstallPath & " - Do you wish to continue with the installation?",1 + 64,"VLC Install Location") 'Command to end script if cancel is selected Select Case result Case vbOk MsgBox "You have chosen to install the VLC Media Player, Please wait a few minutes as this will be done quietly in the background. Thank You!" ,64,"Installing VLC Media Player" Case vbCancel MsgBox "You have chosen to cancel the installation!",48,"Cancelled installation!" WScript.quit() End Select 'Temp install command for Domain Admins Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run VLCInstall Set oShell = Nothing WScript.quit() Else 'Test command/MsgBox if user is not a memeber of Domain Admin 'MsgBox EnvString("username") & " is not member of the Domain Admins on " & EnvString("userdomain"),48,"Admin User?" ' Do something here if they are not a member of the group 'MsgBox "You have chosen to install the VLC Media Player, Please wait a few minutes as this will be done quietly in the background. Thank You!" ,64,"Installing VLC Media Player" MsgBox EnvString("username") & " does not have Adminisistrator previlages to install VLC Media Player, Please contact the ICT Technicians for support" ,48,"Not an Admin User?" ' Do something here if they are not a member of the group WScript.quit() End If 'Following not my script, used to determin is member of domain admins on Active Directory ' ***************************************************** 'This function checks to see if the passed group name contains the current ' user as a member. Returns True or False Function IsMember(groupName) If IsEmpty(groupListD) then Set groupListD = CreateObject("Scripting.Dictionary") groupListD.CompareMode = 1 ADSPath = EnvString("userdomain") & "/" & EnvString("username") Set userPath = GetObject("WinNT://" & ADSPath & ",user") For Each listGroup in userPath.Groups groupListD.Add listGroup.Name, "-" Next End if IsMember = CBool(groupListD.Exists(groupName)) End Function ' ***************************************************** ' ***************************************************** 'This function returns a particular environment variable's value. ' for example, if you use EnvString("username"), it would return ' the value of %username%. Function EnvString(variable) variable = "%" & variable & "%" EnvString = objShell.ExpandEnvironmentStrings(variable) End Function ' ***************************************************** 'Set oShell = WScript.CreateObject ("WScript.Shell") 'oShell.run VLCInstall 'Set oShell = Nothing 'Actions if User selected not to install VLC Case vbNo MsgBox "You have chosen not to install VLC Media Player!",48,"Not to install VLC Media Player" End Select End IF End IFEnd IF[/Code] [b][u]DVD Script[/u][/b] [code]'Open Audio CDs on VLC, created by David Penfold (Birmingham, UK) 2016'This Freeware scriping, you are welcome to make alterations though I'd like to ask to let me know as I am still'learning VB Scripting ([email protected])'Search/Find #InstallVLC if you need to change the installation path of VLC'Variable needed to check Drive letter for optical driveConst DriveTypeCDROM = 4Set oFS = Wscript.CreateObject("Scripting.FileSystemObject")Set oDrives = oFS.Drives 'Loop thru A-Z. If found, exit early'Paths to both x64 & x86 versioni of VLC stored into a variablePatchx64 = chr(34) & "C:\Program Files\VideoLAN\VLC\vlc.exe" & chr(34) & " dvd:///"Patchx86 = chr(34) & "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" & chr(34) & " dvd:///"'ObjectsSet fso = CreateObject("Scripting.FileSystemObject")Set shl = CreateObject("WScript.Shell")Set WshShellx64CD = CreateObject("WScript.Shell")Set WshShellx86CD = CreateObject("WScript.Shell") For Each Drive in oDrives 'Identifies Drive letter for optical drive If Drive.DriveType = DriveTypeCDROM Then ODD = Drive.DriveLetter End If Next'Checks if ODD is Blank (If there is a DVD/CD Drive)If ODD = "" Then'Gives error message if no drive foundMsgBox "No DVD/CD Drive found, please make sure it is connected or contact the ICT Technicians",16,"No DVD/CD Drive found"'If drive found continues with opening VLCElse 'Checks if path exists, depending the corresponding IF Statement will commence exists = fso.FileExists("C:\Program Files (x86)\VideoLAN\VLC\vlc.exe") 'If x86 path exists then Opens VLC in this path and open Disc as DVD if (exists) then 'Uses stored drive letter variable then stores it in VLC variable VLCX86 = Patchx86 & ODD & ":/" 'Runs command using the newly created variable (Opens VLC depending on previous commands) Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run VLCX86 Set oShell = Nothing' 'If x64 path exists then Opens VLC in this path and open Disc as DVD Else 'Checks if path exists, depending the corresponding IF Statement will commence exists = fso.FileExists("C:\Program Files\VideoLAN\VLC\vlc.exe") 'If x86 path exists then Opens VLC in this path and open Disc as DVD if (exists) then 'Uses stored drive letter variable then stores it in VLC variable VLCX64 = Patchx64 & ODD & ":/" 'Runs command using the newly created variable (Opens VLC depending on previous commands) Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run VLCX64 Set oShell = Nothing' 'If x64 nor x86 path exists then Displays Error Message Else 'Gives error message if no drive found 'MsgBox "No VLC Media Player Found, please contact the ICT Technicians",16,"No VLC Media Player found" 'Option Explicit 'Will ask user if they wish to install VLC result = MsgBox ("No VLC Media Player Found, Do you wish to install the VideoLAN Client (VLC) Media Player? Otherwise please contact the ICT Technicians", vbYesNo + 32 , "VLC Media Player not found!") 'Actions based on user result Select Case result 'Actions if User selected to install VLC Case vbYes 'Path to VLC Installation .exe (Change if needed! #InstallVLC) VLCInstallPath = "\\App1\apps$\SOFT\VLC\2.2.4\vlc-2.2.4-win32.exe" 'Path and command for silent install of VLC VLCInstall = chr(34) & VLCInstallPath & chr(34) & " /language=en_GB /S" Dim objShell,grouplistD,ADSPath,userPath,listGroup On Error Resume Next set objShell = WScript.CreateObject( "WScript.Shell" ) 'Calls the isMember function with the specified group to see if the current user is a member of that group. If isMember("Domain Admins") Then 'Test command/MsgBox if user is a memeber of Domain Admin 'MsgBox EnvString("username") & " is member of the Domain Admins on " & EnvString("userdomain"),64,"Admin User?" ' Do something here if they are a member of the group 'Displays VLC instal .exe path to Domain Admins (incase of error) and gives option to cancel result = MsgBox ("The Current VLC Installation Path is - " & VLCInstallPath & " - Do you wish to continue with the installation?",1 + 64,"VLC Install Location") 'Command to end script if cancel is selected Select Case result Case vbOk MsgBox "You have chosen to install the VLC Media Player, Please wait a few minutes as this will be done quietly in the background. Thank You!" ,64,"Installing VLC Media Player" Case vbCancel MsgBox "You have chosen to cancel the installation!",48,"Cancelled installation!" WScript.quit() End Select 'Temp install command for Domain Admins Set oShell = WScript.CreateObject ("WScript.Shell") oShell.run VLCInstall Set oShell = Nothing WScript.quit() Else 'Test command/MsgBox if user is not a memeber of Domain Admin 'MsgBox EnvString("username") & " is not member of the Domain Admins on " & EnvString("userdomain"),48,"Admin User?" ' Do something here if they are not a member of the group 'MsgBox "You have chosen to install the VLC Media Player, Please wait a few minutes as this will be done quietly in the background. Thank You!" ,64,"Installing VLC Media Player" MsgBox EnvString("username") & " does not have Adminisistrator previlages to install VLC Media Player, Please contact the ICT Technicians for support" ,48,"Not an Admin User?" ' Do something here if they are not a member of the group WScript.quit() End If 'Following not my script, used to determin is member of domain admins on Active Directory ' ***************************************************** 'This function checks to see if the passed group name contains the current ' user as a member. Returns True or False Function IsMember(groupName) If IsEmpty(groupListD) then Set groupListD = CreateObject("Scripting.Dictionary") groupListD.CompareMode = 1 ADSPath = EnvString("userdomain") & "/" & EnvString("username") Set userPath = GetObject("WinNT://" & ADSPath & ",user") For Each listGroup in userPath.Groups groupListD.Add listGroup.Name, "-" Next End if IsMember = CBool(groupListD.Exists(groupName)) End Function ' ***************************************************** ' ***************************************************** 'This function returns a particular environment variable's value. ' for example, if you use EnvString("username"), it would return ' the value of %username%. Function EnvString(variable) variable = "%" & variable & "%" EnvString = objShell.ExpandEnvironmentStrings(variable) End Function ' ***************************************************** 'Set oShell = WScript.CreateObject ("WScript.Shell") 'oShell.run VLCInstall 'Set oShell = Nothing 'Actions if User selected not to install VLC Case vbNo MsgBox "You have chosen not to install VLC Media Player!",48,"Not to install VLC Media Player" End Select End IF End IFEnd IF Sorry EduGeek Fourm (coding) kinda messed up the structure of the code it may be easier to download the zip file:(
-
Hi all, Earlier this year I’ve created a VBA (Visual Basic) script to run DVD/Audio CDs on VLC, this was to help members of staff at our school open audio cds and dvds with ease. Often we would get calls about playing discs so I tried to simplify this as best as I could so classes would not be disrupted/delayed. Now the staff selects a shortcut from the desktop (either “Play Audio CD” or “Play DVD”) and it open disc in VLC Player. The script itself does the following; Checks if you have an optical drive (an error message would display if one is not found) It stores the drive letter for later use Checks which version of VLC (x86/x64 bit) is currently installed (an error message will display if one is not found and for domain users it would ask if you wish to install VLC) It then creates the appropriate run command (using the drive letter, correct program path and which media type the disc to open audio/dvd) It the runs the created run command VLC will open the disc currently in optical drive in the correct media (depending on which shortcut selected) I will put the code below (too large for this post so I'd post it in the next post) but I have also attached a zipped [ATTACH=CONFIG]39802[/ATTACH] to make things easier for anyone, it will contain the following; X2 Shortcuts (some editing needed) x2 Icon files (optional, you can create your own at https://iconverticons.com/) x2 vba scripts (one for Audio one for DVDs - very minor editing needed) x1 read me.txt file explain what will need editing to work on your network If you have any issues or suggestions please do let me know and I’d be happy to help best as I can, I’m still learning VBA so I’d like to ask if you make any adjustments to the script (other than what is suggested) please do let me know as I’d like to see and learn from the changes you made, thanks . If I get any suggestions I'll add name and thanks here
-
[ms office - 2013] Excel Spreadsheet Assistance
DPenfold replied to davidsonh's topic in Office Software
Here you go Like I said I've only made changes to the Calendar View sheet. Hopefully it is what you wanted, if not (stuff not working etc.) let me know which bits with an explanation what it's meant to do and I'll see what I can do Attendance tracker1.xlsx Best of luck -
[ms office - 2013] Excel Spreadsheet Assistance
DPenfold replied to davidsonh's topic in Office Software
Hi Sorry if you have this sorted but I think I've kinda solve your issue if you're interested (no worries if not ) however need to double check though. I've managed to get on the calendar view sheet to show; September - 2011 ¦ \/ September - 2012 (see image) If this is how you wanted it then I can either send you over the modified excel or more easily what i did (make it little easier on future use/changes etc.) however my only fear is the changes it might make on other area of the spreadsheet (I'm not knowledgeable on leave days etc.) lol Hope this helps -
ActiveCell.FormulaR1C1 = "='" & test & "'!R[-1]C" ( Test = (Variable) referencing Sheet name ) Solved my problem xD Above is the code that worked until the next 30 set of cells then it would start causing issues. Simple fix, remove 'R1C1' from the formula command (if that the right way of labeling it lol) not it will work as the following; ActiveCell.Formula = "='" & test & "'!A2" Works pretty much how I want/need it Thanks to all who pitched in ideas worth while to test them out as they may come in handy in the future
-
Think I'm little more confused by that (could be the fact I that I end up doing all my maths calculations via excel lol) I'll have a think about it and see what i can do as I thought about doing equations to predict the cell reference etc. but thought the should have been an easier way doing so. Keep you updated if I have a solution with your suggestion thanks either way . @Steve21 After replying and uploading the excel I'm little worried you may be little confused with what i'm trying to achieve (more so with the coding issue detailed here) etc. so let me know if it's not straight forward and need me pointing you to the right location .
-
Sorry for the late reply Not used Mod operator before nor refno so I'll have to look into it, thank you I'll will attach now testing - inputbox.xlsm(remove me and .txt).txt just remove the brackets and '.txt' extension as forum didn't like the marco format of the excel file any input would be appreciated as all knowledge i learn from these excel projects have comes in handy when i use them for work etc. If you're busy and/or unable then don't worry
-
Having little trouble with this coding, I'm doing I can get it working, slightly, however it brought a big flaw and google isn't much; Here is an example; ActiveCell.FormulaR1C1 = "='" & test & "'!R[-1]C" ( Test = (Variable) referencing Sheet name ) The Result would be (In Cell A3) "=Sheet1!A2" Which for the first 30 cells (A3-A32) is great, however when I come to next 30 cells A33-A62 (and so on etc.) I want it to 'restart' so the result would be (in A33) "=Sheet2!A2" however with the current line of code it comes up as (in A33) "=Sheet2!A32" which references nothing. I've tried manually entering the the cell reference (in to a combined string variable) and predefined ranges as variable but sadly vba doesn't like it. I need it to show "=Sheet1!A2" so using stuff like indirect doesn't really help as later on in coding I have format changes etc. If anyone can shed some light on this that would be great, or if I not explained it well above (in a rush) let me know an I'll rewrite it . Thanks in advance
-
I deploy them as a profile along with the wifi settings so when we enroll them to our profile manager we don't have to enter the wifi settings at the start up wizard. It's easier this way as we can full customize them, if done via profile manager the images/icons are messed up for some weird reason; cropping issue, even if I use the exact sizes as detailed on apple's website. I encountered the issue with settings today, did a test worked great added more (inc. settings) and it failed, had to undo the home-screen layout settings thinking it was that, my only guess it's a fail safe in case something goes wrong you can at least access the settings (we were gonna add/remove settings 'app' if and when we needed to access it.
-
This is a big help thank you!
-
Awesome I'll save that code for future use ! Only thing now I'm trying to do (URL Rewrite wise) is to hide/mask the address under https://folders.schooldomain.com/ or https://folders.schooldomain.com/hap/ lol
