pfl
Members-
Posts
43 -
Joined
-
Last visited
Content Type
Forums
News
20th
EduGeek EDIT Conference
Blogs
Everything posted by pfl
-
My first port of call would be to note the time of when these applications close and cross match them with the times in event viewer on the machine, look at the Application events and see if anything is shown around the time, It will give you an event ID which will help you troubleshoot why they are closing / crashing
-
Now that firewalledreplit has been broken for over 2 weeks im intrigued in how other people have implemented python in their school environment. I'm tempted to go down the route of an immutable VM but we still have hardware that will struggle, has anyone managed to get this working in Windows Sandbox? What's the prefered IDE to use? Thanks
-
I'm sure I created an example of reading/ writing and appending to files in replit before.... it was a while ago ... let me see if i can find it... https://replit.com/@Mr-PP5/Writing-to-a-text-file#main.py This is from 2 years ago to show the reading and writing of files in an online ide There's some good examples I create a while ago how to interact with sql lite which our ICT teaching staff used for their lessons
-
If you want to split the document at every header 1 and use the header as the fileneame but also want to include the table under each header 1, use the following (This has been tested with a simple table & header 1 text): Sub SplitDocumentByHeading1() Dim originalDoc As Document Dim newDoc As Document Dim para As Paragraph Dim rng As Range Dim title As String Dim saveFolderPath As String ' Set the folder path to save the new documents saveFolderPath = "\\SAM-FS-02\staffhome$\jwalsh\MCAS\" ' Set the original document Set originalDoc = ActiveDocument ' Loop through each paragraph in the document For Each para In originalDoc.Paragraphs ' Check if the paragraph is a Heading 1 If para.Style = "Heading 1" Then ' Get the Heading 1 text as the document title ' Set the header range starting from the paragraph Set headerRange = para.Range ' Extend the range to include the entire header content headerRange.Expand Unit:=wdParagraph Set tableRange = headerRange.Next(wdTable) ' Copy the header range headerRange.Copy ' Create a new document Set newDoc = Documents.Add newDoc.Range.FormattedText = para.Range.FormattedText ' Copy the table range tableRange.Copy ' Paste the table into the new document Set newdocrange = ActiveDocument.Content newdocrange.Collapse Direction:=wdCollapseEnd newdocrange.Paste ' Set the range to include the entire new document Set rng = newDoc.Range ' Find and remove the page breaks in the new document With rng.Find .Text = "^m" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With ' Save and close the new document in the specified folder with the title as the file name title = Split(para.Range.Text, vbCr)(0) For i = 1 To Len(StrNoChr) title = Replace(title, Mid(StrNoChr, i, 1), "_") Next title = title & ".docx" newDoc.SaveAs2 saveFolderPath & title, FileFormat:=wdFormatDocumentDefault newDoc.Close ' Reset the range to the original document Set rng = originalDoc.Range End If Next para ' Clean up objects Set newDoc = Nothing Set originalDoc = Nothing ' Notify the user when the splitting process is complete MsgBox "Document has been split by Heading 1." End Sub
-
Please can you try the following (the below worked for me, When the save dialog failed I noticed it was passing the vbcr in the filename - below gets rid of it, also you were missing the trailing '\' in your folder path) Note - All this does is split the document at the Paragraph 1 formating, saves it as a new document with the paragraph 1 filename including the paragraph 1 text in the newly saved split document): Sub SplitDocumentByHeading1() Dim originalDoc As Document Dim newDoc As Document Dim para As Paragraph Dim rng As Range Dim title As String Dim saveFolderPath As String ' Set the folder path to save the new documents saveFolderPath = "\\SAM-FS-02\staffhome$\jwalsh\MCAS\" ' Set the original document Set originalDoc = ActiveDocument ' Loop through each paragraph in the document For Each para In originalDoc.Paragraphs ' Check if the paragraph is a Heading 1 If para.Style = "Heading 1" Then ' Get the Heading 1 text as the document title ' Create a new document Set newDoc = Documents.Add newDoc.Range.FormattedText = para.Range.FormattedText ' Set the range to include the entire new document Set rng = newDoc.Range ' Find and remove the page breaks in the new document With rng.Find .Text = "^m" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With ' Save and close the new document in the specified folder with the title as the file name title = Split(para.Range.Text, vbCr)(0) For i = 1 To Len(StrNoChr) title = Replace(title, Mid(StrNoChr, i, 1), "_") Next title = title & ".docx" newDoc.SaveAs2 saveFolderPath & title, FileFormat:=wdFormatDocumentDefault newDoc.Close ' Reset the range to the original document Set rng = originalDoc.Range End If Next para ' Clean up objects Set newDoc = Nothing Set originalDoc = Nothing ' Notify the user when the splitting process is complete MsgBox "Document has been split by Heading 1." End Sub
-
The LastWriteTime should be correct, I found an example that I have slightly modified to traverse a directory of subfolders and files displaying all results in a two column table ("Full Name, Last Write Time") I've set my time ranges to be in months, only displaying files and folders that are older then 30 months but less than 60 months (AddMonths can be changed to other increments if needed eg AddYears,AddDays or AddHours) $table_properties = @{Expression={$_.Fullname};Label="Full Name";width=195}, @{Expression={$_.LastWriteTime};Label="Last Write Time";width=350} Get-ChildItem -Path 'c:\temp\' -recurse -Filter *.* -include *.* | ? {$_.LastWriteTime -lt (Get-Date).AddMonths(-30) }| ? {$_.LastWriteTime -gt (Get-Date).AddMonths(-60)} | Sort-Object -Property LASTWRITETIME -Descending | Format-Table $table_properties Don't forget to change the path 'C:\temp\' its just an example path i used for testing.
-
I can confirm this running powershell with -version 2 (which is the lowest version the parameter will go down to) shows the errors you are seeing. Running the above on powershell 5 or 7 works correctly. There are examples of version 1 form timers but i would try and stay away from them and try and concentrate moving away from windows vista.
-
This is due to mixing BAT commands and VBS, the ECHO command on your line 7 (Which creates the VBS script) gets broken as soon as it sees the quotation marks which makes & vbCrLF break. using the ^ character before every quotation and & escapes the character allowing the ECHO command to pipe it into the VBS file correctly. The below is what you are looking for. @echo off SETLOCAL SET _prompt=%1 ::Create the VBS script with an echo statement: ECHO Wscript.Echo Inputbox(^"Please select^" ^& vbCrLf ^& ^"1. Email backup^"^& vbCrLf ^& ^"2. Document backup^"^& vbCrLf ^& ^"3. Offsite backup^"^& vbCrLf ^& ^"4. System File check %_prompt%^",^"Utilities Menu^")>%TEMP%\~input.vbs :s_GetInput :: Run the vbScript and save the output FOR /f "delims=/" %%G IN ('cscript //nologo %TEMP%\~input.vbs') DO set _string=%%G :: Delete the VBS file DEL %TEMP%\~input.vbs if '%_string%'=='1' goto 1 if '%_string%'=='2' goto 2 if '%_string%'=='3' goto 3 if '%_string%'=='4' goto 4 if '%_string%'=='' goto end :1 start "" "E:\My Documents\Downloaded\Programs\Securityemail.exe" goto end :2 start "" "E:\My Documents\Downloaded\Programs\securitycopy.exe" goto end :3 start "" "E:\My Documents\Downloaded\Programs\SecureOffsite.exe" goto end :4 start "" "E:\My Documents\Downloaded\Programs\SFCProc.exe" goto end :end Let me know if this helps Thanks
-
Unfortunatley the above doesn't work for us, Students here are assigned a chromebook and utilise on-site and off-site filtering which is provided by an extension. For this extension to work our web filter / proxy has a separate network to allow this extension to work and to also segregate the traffic from our internal traffic. Chromebooks are usually given a managed network at device level but the student with assigned chromebooks also need this other ssid so their assigned chromebooks filter correctly, trouble is these students have the tendancy to not bring their devices in so end up using classroom devices which means the user assigned managed network profile follows them on to these class devices, no matter what form of ssid blocking I use at device level the user based cloud policy always overrides this. If there was a setting for changing conenction priority or if the setting for ssid bloacking was set at device level and enforced at device level (instead of user session based) this would solve the above issue. Thanks
-
@jthompson Even stranger This bug post (The last post) https://bugs.chromium.org/p/chromium/issues/detail?id=837205 "2) user vs device -> all network settings you can modify on the Networks page under "General settings (Chromebook only)" are per-device, including the new block list for wifis. They are part of the GlobalNetworkConfiguration type (https://chromium.googlesource.com/chromium/src/+/main/components/onc/docs/onc_spec.md#globalnetworkconfiguration-type if you want to read the details), which is present for the device policy only. You can not specify that list as per-user restriction. You should set these values on OUs that contain devices." Indicates that yet again this is a device setting EDIT: updated bug url https://issuetracker.google.com/issues/256513725 Also displays the block SSID setting is device level although the posts above do show it as being applied at user level only Wish i didn't even start looking at this now! https://chromium.googlesource.com/chromium/src/+/main/components/onc/docs/onc_spec.md#globalnetworkconfiguration-type GlobalNetworkConfiguration type The GlobalNetworkConfiguration contains settings which apply to all of the networks that the device may connect to. The client supports this only in device-level policy; the client-side ONC validator fails if it appears in user policy. To avoid bricking devices, these policies will only be enforced in user sessions. The login screen ignores these policies and may still be used for fetching new policy or logging in. A Help Center article warns admins of the implications of mis-using this policy for Chrome OS. So if the above is correct my understanding is , Yes its device level settings BUT only enforced in a user based session (surely this is classed as "User Policy"?) My question is... why does my black listed SSID still allow connection due to it being allowed at user policy level. What i thought was a simple solution to a problem we had is now causing me a headache! All i want to do is block an SSID for an OU ! (im actually considering collating a list of mac addresses and creating a deny ACL on our SSID - might cause me less stress then these gsuite policies!)
-
Thats what i thought BUT the blocked ssid setting has a header "General settings (Chromebook only)" which to me indicates device settings? Edit: Maybe i jumped the gun in thinking this was device only , especially with chromebook only being specified, it might just mean Chromebook "User" setting only.
-
Hi all, Just after some advice, we have a wireless network configured at user level for BYOD devices what I would like to do is block this wireless network for a certain OU Using the global network config i have added the SSID to the blocked SSID list and can see this being applied at device level to the chromebook, unfortunatley (I believe due to policy overrides) the user policy for the network is applied and the SSID can be connected to on a device in the OU where the blocked SSID is being applied. https://support.google.com/chrome/a/answer/9037717?hl=en details the order of policy settings being applied. I can see on the chromebook the policy for the blocked ssid is set as "Source = Cloud, Applies to = Device, Level = Mandatory" When the settings are exported as a JSON and viewed I can also see the user level network being applied as well. Source = Cloud, Applies to = User, Level = Mandatory. My order of policy application is set as default (which is Machine > machine cloud > OS user > Chrome profile) How can I make my device level SSID blocking over ride the user setting? From my understanding anything set at device level shouldn't be overwritten by the user policies? Just for testing purposes I added my mobile hotspot SSID to the blocked list and that worked but this was not a managed network set at user level. Any help would be appreciated. Thanks Edit: Ive now tested my SSID connecting from the login screen where no user policies are being applied so only device level setting should be set at this level, it still lets me connect to the blacklisted SSID even though its no longer a "Managed" network, the blocking of SSID is done via string to Hex and ive reversed the hex i can see in the JSON and it converts back to the correct SSID. Oddly even though blocked SSID setting is device only it only applies once a user is logged in, my hotspot only gets blocked when a user logs in, my needed blocked SSID still does not get blocked.
-
Does anybody know the built in url for instigating chromes "inspect" element? With wild card blocking right clicking and inspecting a page does not work (im guessing its a url block) Dev tools is enabled and I can get inspect to work while url blocking is in place I can view any errors in realtime. Thanks
-
Thanks again, that is a new list that i have not seen but unfortunaltey all those URLs I have already added, my exception list is now growing very big!
-
Thanks for the reply, after reading my post i now realise it was poorly explained. I want to only allow students access to google apps with no other access to any other website or URLs Ive managed to partially achieve this by wildcarding ("*") the setting for blockedurls at the device level and then excepting the needed google urls But its messy, im still hitting hurdles with some signin screens being blocked.
-
Afternoon all, Just after a little bit of advice, we have quite a few managed chromebooks and was wondering if anybody here has managed to successfully restrict them in a way where only google apps are allowed. We have a few students who go off task easily, restricting them to google apps and no other websites would be benficial. I have managed to achieve this partially by url blocking at a device level , url excepting the google urls that are needed but it feels messy, the blocking restricts a lot of the chromebook system pages (which im slowly unblocking) Any advice would be greatly apreciated Thanks!
-
Smoothwall cloud filter outage?
pfl replied to SpaceInvader83's topic in Internet Related/Filtering/Firewall
Tested this morning seems to be working as intended -
Smoothwall cloud filter outage?
pfl replied to SpaceInvader83's topic in Internet Related/Filtering/Firewall
Yep down for me too, Smoothwall online chat replied with Sorry for the Inconvinence, We are experiencing an outage that seems to be internal to Microsoft Azure. The cloud portal is unavailable for all products. We are investigating an ongoing login issue to our cloud portal. We will report you once we have more information. -
Sumdog IOS app and smoothwall
pfl replied to Sheridan's topic in Internet Related/Filtering/Firewall
Hi Sheridan, Did you ever get to the bottom of this? We too have whitelisted sumdog.com and having the exact same symptoms. Thanks -
Hi all, Apologies for the late response, I now use this system in 2 primary schools and a secondary school, I have added more features to the admin back end and added some GDPR functionality (search by visitor, export visitor, forget visitor, same for pupils as well) lots of code cleanup full logging with event ids My only frustration is the visitor front end does need manual intervention if it doesn't scale correctly on the screen (luckily not much is needed to do this), I do want to re-write the frontend to automatically scale correctly at some point. There still isn't any automated way to package this up but this will be my next step Let me go through my code and see if i have left any comments in there that shouldn't be and any personally identifiable data and ill zip it up and host it somewhere for you all to try...please bear in mind that this was a project of mine and i have no coding experience apart from i have taught myself to do this so you may find better ways of doing what i have done.
-
We too use a similar login and logout script for user trackability, this then gets wrote into a mysql database, added some WMI requests as well (eg disk details, OS type and build , freespace as a percentage,current ip address, cpu and ram details, if the logged on user has local admin rights) my dashboard then shows me last 12 logins and last 12 logouts, username and time details and full searching (by hostname or username) has come in useful many times when a student has logged into a staff laptop or has gained local admin rights.
-
As long as it does the job and is stable... doesn't really matter what it looks like! Are you going to shell Windows to load your application full screen?
-
I'm currently in the final stages of writing a visitor sign in system based on php / html5 and mysql. So far i have Visitor sign in Staff Sign in Pupil Sign in Visitor signs in, accepts site AUP, fills in personal details and who they want to see, they then have a photo taken, signature captured and the person they want to see is then emailed with photo of visitor and name. Visitor signs out with either the QR code (just point it at the built in webcam) or the unique visitor id number. Sticker badge is then printed off (brother QL-570) with personal detail, who they are seeing and id number and qr code for signing out purposes. staff can sign in and out using an rfid id badge, self enrolment if badge isnt recognised (manual signin and out with 4 digit pin or admin can do this manually through the admin back end) parents can sign in /out their child they fill in a pupil form, select the year they are in then class and then teacher, the teacher is then emailed. All options can be set in the admin end, so disable photo taking, signature taking etc. admin user can manually sign visitors in advanced. force sign out visitors, reprint badges. fire alarm when activated through the admin end emails out a list of visitors currently signed in and also sends a register to the default printer. admin users have a personal profile so can also reset their own passwords. auto sign out of visitors,staff and pupils (pupils get archived off into another table for auditing purposes) (screenshot of admin end) (screenshot of visitor frontend) (aup) (on screen keyboard) At a glance the admin end shows last 8 sign outs and last 8 current signed in visitors / staff with various options for searching who is signed in / out. The visitor frontend has configurable options eg site title, logo etc. The only requirements so far is that it needs to be run in chrome kiosk mode (this allows auto printing for the badge creation) windows (this could easily change, it uses windows temp folder to hold temp image creation) apache and mysql (the options table needs to be in antelope compatibility mode version mysql version > 5.5 not barracuda < mysql vers 5.5) I'm hoping that it should be finished in a week or so but would gladly let people try it once the code is a little cleaned up? Thanks ps it has now been installed for a while and has been working great!
-
Just a quick update, Staff rfid badge enrolment now saves a webcam image of that member of staff in the database so can be easily identifiable from the admin dashboard. Small script to backup the mysql database (bat file included in the admin folder so a task schedule in windows can be created) Small report page on pupil sign in and outs showing how many pupils per reason for that day and also over the last 7 days general tidying up of code and admin layout changes...... ..... almost finished!
-
I'm currently in the final stages of writing a visitor sign in system based on php / html5 and mysql. So far i have Visitor sign in Staff Sign in Pupil Sign in Visitor signs in, accepts site AUP, fills in personal details and who they want to see, they then have a photo taken, signature captured and the person they want to see is then emailed with photo of visitor and name. Sticker badge is then printed off with personal detail, who they are seeing and id number and qr code for signing out purposes. staff can sign in and out using an rfid id badge, self enrolment if badge isnt recognised (manual signin and out with 4 digit pin or admin can do this manually through the admin back end) parents can sign in /out their child they fill in a pupil form, select the year they are in then class and then teacher, the teacher is then emailed. All options can be set in the admin end, so disable photo taking, signature taking etc. admin user can manually sign visitors in advanced. force sign out visitors, reprint badges. fire alarm when activated through the admin end emails out a list of visitors currently signed in and also sends a register to the default printer. admin users have a personal profile so can also reset their own passwords. auto sign out of visitors,staff and pupils (pupils get archived off into another table for auditing purposes) (screenshot of admin end) At a glance the admin end shows last 8 sign outs and last 8 current signed in visitors / staff with various options for searching who is signed in / out. The visitor frontend has configurable options eg site title, logo etc. The only requirements so far is that it needs to be run in chrome kiosk mode (this allows auto printing for the badge creation) windows (this could easily change, it uses windows temp folder to hold temp image creation) apache and mysql. I'm hoping that it should be finished in a week or so but would gladly let people try it once the code is a little cleaned up? Thanks
- 30 replies
-
- 12
-
