-
Posts
565 -
Joined
Content Type
Forums
News
20th
EduGeek EDIT Conference
Blogs
Everything posted by AlexB
-
Bit of a longshot, but if you are already using something like PCE that presents a popup every time they login, you can have some (with reference to full doc) or all of the AUP here. That way they are agreeing to the AUP every time they login. I initially hated the popup, but once it was explained it terms of a reinforcement of the policies every time they used a computer I liked the idea. PCE records the clicking of accept which has been useful in the past when a smart alec says they can't do their work because they don't agree with the AUP and we can say that they already agreed to it when they clicked on hh:mm dd/mm/yy
-
AlexB => Gendi
-
We go with single device, but to make lives easier they get mapped has separate virtual devices (mono/colour) so they don't have to fiddle with settings to print in mono to the colour printer.
-
I assume you have "thanks" disabled on the gaming forum (seems reasonable), so here is the thought
-
Dang that price is so much better than what I've been looking at. I might even be able to buy that
-
Sweet! Already paid for my copy... now trying to talk myself out of an expensive controller!
-
If you want to use a VB script you might be able to adapt this to use security groups instead of OUs ' Script to mount printers based on computer's OU ' 20/09/2010 by ACB ' Reads printers and OUs from a printers.ini file specified in the printers.ini file ' printers.ini file is set by the strINIFile variable strINIFile = "\\printers.ini" ' Default print server is read from the ini file in the [settings] section from the "server" key ' The computer's OU is then read from the [printers] section as a comma separated string ' The first entry in the printer string is used as the default printer ' If the OU is not found no error is returned and no additional printers are mapped ' There must be no spaces between printer share names in the comma separated string ' Custom printers (printers from different print servers) are read from the [custom] section ' The result from the [custom] section provides a comma separated string containing "print server, share name" ' Custom printers are currently set to be the default. ' The must be no space after the comma after the server name in the comma separated string ' Finally any other network printers are removed (rather than removing all network printers and reconnecting, this saves time) ' The variable boolRemoveOtherPrinter can be set to false to remove this functionality boolRemoveOtherPrinter = true Set objSysInfo = CreateObject("ADSystemInfo") strName = objSysInfo.ComputerName arrComputerName = Split(strName, ",") arrOU = Split(arrComputerName(1), "=") strComputerOU = arrOU(1) strPrintServer = ReadIni( strINIFile, "settings", "server") Set objDictionary = CreateObject("scripting.dictionary") ' ******************** ' ******************** ' Temp fix to remove all printers first 'RemoveOtherPrinters ' ******************** ' ******************** HandleComputers Function HandleComputers() ' ********************* ' Read and mount printers for computer's OU strPrinters = ReadIni( strINIFile, "printers", strComputerOU) listPrinters = Split(strPrinters, ",") if UBound(listPrinters) >= 0 then MapPrinter listPrinters(intX), true For intX = 1 To UBound(listPrinters) MapPrinter listPrinters(intX), false Next end if ' ********************* ' ********************* ' Look for custom printers strCustomPrinter = ReadIni( strINIFile, "custom", strComputerOU) listCustomPrinters = Split(strCustomPrinter, ",") if UBound(listCustomPrinters) = 1 then ' string has correct format MapPrinterCustom listCustomPrinters(1), listCustomPrinters(0), true end if ' ********************* ' ********************* ' Look for printers for everyone strEvPrinters = ReadIni( strINIFile, "everyone", "Printers") listEvPrinters = Split(strEvPrinters, ",") if UBound(listEvPrinters) >= 0 then For intX = 0 To UBound(listEvPrinters) MapPrinter listEvPrinters(intX), false Next end if ' ********************* ' ********************* ' Remove other network printers if boolRemoveOtherPrinter then RemoveOtherPrinters end if ' ********************* End Function ' ********* ' Functions ' ********* Function MapPrinter(strPrinter,boolDefault) Set objNetwork = CreateObject("WScript.Network") if StrComp("local",strPrinter,1) <> 0 then MapPrinterCustom strPrinter, strPrintServer, boolDefault end if End Function Function MapPrinterCustom(strPrinter,strServer,boolDefault) Set objNetwork = CreateObject("WScript.Network") strFullPath = UCase("\\" & strServer & "\" & strPrinter) DebugPopup("Mounting:" & strFullPath) objNetwork.AddWindowsPrinterConnection strFullPath if boolDefault then objNetwork.SetDefaultPrinter strFullPath end if DebugPopup("Mounted:" & strFullPath) objDictionary.Add strFullPath, strPrinter End Function Function IsInList(list, value) IsInList = false For i = 0 To UBound(list) if UCase(list(i)) = UCase(value) then IsInList = true end if next End Function Function RemoveOtherPrinters() Dim objPrinters, intDrive, intNetLetter ' This is the heart of the script ' Here is where objPrinters enumerates the mapped drives Set objNetwork = CreateObject("WScript.Network") Set objPrinters = objNetwork.EnumPrinterConnections strNoDelete = ReadIni( strINIFile, "nodelete", "Printers") listNoDelete = Split(strNoDelete, ",") If objPrinters.Count <> 0 Then For i = 0 to objPrinters.Count - 1 Step 2 If Left(ucase(objPrinters.Item(i+1)),2) = "\\" Then 'if not listNoDelete.Contains(objPrinters.Item(i+1)) then if not IsInList(listNoDelete, objPrinters.Item(i+1)) then if not objDictionary.Exists(UCase(objPrinters.Item(i+1))) Then DebugPopup("Leftover: " & objPrinters.Item(i+1)) objNetwork.RemovePrinterConnection objPrinters.Item(i+1) end if end if end if Next end if End Function ' e.g. RemovePrinter "\\server\printer" Function RemovePrinter(strPrinter) DebugPopup("Removing " & strPrinter) Set objNetwork = WScript.CreateObject("WScript.Network") objNetwork.RemovePrinterConnection strPrinter, true, true End Function Function ReadIni( myFilePath, mySection, myKey ) ' This function returns a value read from an INI file ' ' Arguments: ' myFilePath [string] the (path and) file name of the INI file ' mySection [string] the section in the INI file to be searched ' myKey [string] the key whose value is to be returned ' ' Returns: ' the [string] value for the specified key in the specified section ' ' CAVEAT: Will return a space if key exists but value is blank ' ' Written by Keith Lacelle ' Modified by Denis St-Pierre and Rob van der Woude Const ForReading = 1 Const ForWriting = 2 Const ForAppending = 8 Dim intEqualPos Dim objFSO, objIniFile Dim strFilePath, strKey, strLeftString, strLine, strSection Set objFSO = CreateObject( "Scripting.FileSystemObject" ) ReadIni = "" strFilePath = Trim( myFilePath ) strSection = Trim( mySection ) strKey = Trim( myKey ) If objFSO.FileExists( strFilePath ) Then Set objIniFile = objFSO.OpenTextFile( strFilePath, ForReading, False ) Do While objIniFile.AtEndOfStream = False strLine = Trim( objIniFile.ReadLine ) ' Check if section is found in the current line If LCase( strLine ) = "[" & LCase( strSection ) & "]" Then strLine = Trim( objIniFile.ReadLine ) ' Parse lines until the next section is reached Do While Left( strLine, 1 ) <> "[" ' Find position of equal sign in the line intEqualPos = InStr( 1, strLine, "=", 1 ) If intEqualPos > 0 Then strLeftString = Trim( Left( strLine, intEqualPos - 1 ) ) ' Check if item is found in the current line If LCase( strLeftString ) = LCase( strKey ) Then ReadIni = Trim( Mid( strLine, intEqualPos + 1 ) ) ' In case the item exists but value is blank If ReadIni = "" Then ReadIni = " " End If ' Abort loop when item is found Exit Do End If End If ' Abort if the end of the INI file is reached If objIniFile.AtEndOfStream Then Exit Do ' Continue with next line strLine = Trim( objIniFile.ReadLine ) Loop Exit Do End If Loop objIniFile.Close Else WScript.Echo strFilePath & " doesn't exists. Exiting..." Wscript.Quit 1 End If End Function Function DebugPopup(strMessage) 'Set WshShell = CreateObject("WScript.Shell") 'WshShell.Popup strMessage, , , 64 End Function
-
I would have pressed thanks, but I appear to have lost the button...
-
We have a very simple vb script that takes input of the program to run, the reference name and any arguments which inserts an entry into a database with the username, time, computer and reference name and then launches the app. It requires updating all shortcuts to call the vb script, but works for us.
-
I found the remove and readd too slow. Ended up writing a vbs script that reads an ini file to assign printers based on OU. 1. It starts by not removing anything. 2. It goes through and tries to add each printer from the ini and records them in a list (If they are already added, it does nothing) 3. It then gets the list of installed network printers, compares it to the list made in 2 and removes the ones not in the list. This way, most times, the script does nothing and users get their printers very quickly. On the rare occasions it needs to add or remove printers it only does the bare minimum.
-
Specific to Smoothwall: We have safety mode cookie enabled and Google do seem to have taken the ban hammer to a ton of videos over the summer. However, one thing we don't do is https inspection for staff, meaning that the cookie doesn't get applied to https traffic. We tell our staff to add the 'S' when they find a video they want to play and can't due to SafetyMode. This has the added benefit of still preventing accidental playing of videos that might not be appropriate while providing a quick and simple way round it.
-
Without going into details, deployment.config is probably where you want to look Deployment Configuration File and Properties
-
We've been having calibration issues (11.4 with IE11 installed) for the last few months of the summer and this term. Haven't found any solution, but interesting to hear others are experiencing issues. Guess I'll keep an eye on this thread. We've install 14 on one heavy user to see how that works out, but as stated above, not a long term solution without coughing up more cash.
-
I could be wrong, but I think multicast only kicks in once the OS copy starts, regardless of booting from USB or PXE
-
Do you have Multicast enabled? I've found things can run very slowly if multicast is enabled, but the switches aren't allowing it.
-
Alternatively, you may already have DMARC and/or SPF records and have changed your SMTP server causing blacklisting
- 11 replies
-
- backscatterer
- help
-
(and 2 more)
Tagged with:
-
Have you considered looking into DMARC and SPF records. It may be that a spam group is sending pretending to be your domain and causing the blacklisting. Having DMARC and SPF records should help reduce this and may prevent future blacklisting
- 11 replies
-
- backscatterer
- help
-
(and 2 more)
Tagged with:
-
We've been having a really strange issue lately that has been stopping users printing and nothing has been showing in the server logs for papercut. It may have nothing to do with your issue, but I thought I'd mention it to be checked. We were using HP universal 5.6.5 PCL5 driver, but when users clicked the printer properties while printing (not from printers and devices) they only got 2 tabs, none of the expected 7 or so tabs. When a user only got 2 tabs nothing ever seemed to "arrive" at the server and the client displayed nothing (no failure or success messages). I updated to 5.9.0 and the problems seems to have gone away and we have all the tabs in the print properties again. Like I said, probably not related, but worth a check... Forgot to say, we had been using 5.6.5 for over a year without issue, but since September it has started having issues...
-
Depending on how much you want to automate you can skip absolutely everything, including press f12 (but risky). Just briefly, configuring skipping f12 is in the WDS setting, not MDT. You can skip the initial login screen and selecting keyboard language by editing bootstrap.ini (In GUI, edit Bootstrap.ini in Rules tab). The keyboard below is English UK [settings] Priority=Default [Default] DeployRoot=\\xxxx.yyyy.zzzz\DeploymentShare$ SkipBDDWelcome=YES KeyboardLocalePE=0809:00000809 UserID=xxxxx UserDomain=xxxx UserPassword=xxxxx All the rest is covered by CustomSettings.ini (or Rules tab in GUI) I know some of this has been covered above, but as I'm posting my whole CustomSettings.ini I can't help that. All regional setting are English UK. The one catch I found was the computer name. There are other ways to do this, like a database, but for us, almost all imaging just uses the computer's existing name. So the UserExit=UserExit.vbs and OSDComputername=#GetOfflineComputername()# lines use a vb script to find the computer's name and then use it. The UserExit.vbs goes into the Scripts folder in the deployment share. (attached) [settings] Priority=Default Properties=MyCustomProperty [Default] UserExit=UserExit.vbs OSDComputername=#GetOfflineComputername()# SkipBDDWelcome=YES OSInstall=YES OrgName="xxxx" FullName="yyyy" SkipTimeZone=YES TimeZone=085 TimeZoneName=GMT Standard Time SkipLocaleSelection=YES GeoID=0XF2 UserLocale=en-gb KeyboardLocale=0809:00000809 SkipUserData=YES SkipCapture=YES DoCapture=NO UserDataLocation=NONE SkipAppsOnUpgrade=YES SkipProductKey=YES SkipBitLocker=YES DeploymentType=NEWCOMPUTER DoNotCreateExtraPartition=YES SkipAdminPassword=YES AdminPassword=xxxx ;ComputerName=yyyy In theory you don't need to specify a join account. However, I found that if I skipped the display of join domain then it didn't work unless I the specified a join account too. SkipDomainMembership=YES JoinDomain=xxxx.yyyy.zzzz DomainAdmin=xxxx DomainAdminDomain=xxxx.yyyy.zzzz DomainAdminPassword=yyyy This is just a simple example of how you could branch based on Architecture (or something else). There are other ways to do this. Otherwise just take one of these sections and include it in the [Default] section. Subsection=%Architecture% [X86] SkipTaskSequence=YES TaskSequenceID=W7_SP1 SkipApplications=YES Applications001={1182ad04-4c82-46fc-94b7-10d00cb47d7b} StagingOU=OU=newcomputers,OU=yyy,OU=zzz,DC=xxx,DC=yyy,DC=zzz MachineObjectOU=OU=newcomputers,OU=yyy,OU=zzz,DC=xxx,DC=yyy,DC=zzz SkipFinalSummary=YES FinishAction=RESTART SkipComputerName=YES SkipSummary=YES [X64] SkipTaskSequence=YES TaskSequenceID=W7_SP1_X64 SkipApplications=YES Applications001={53130268-7b94-4a7e-98bf-64f90bc51511} StagingOU=OU=newcomputers_x64,OU=yyy,OU=zzz,DC=xxx,DC=yyy,DC=zzz MachineObjectOU=OU=newcomputers_x64,OU=yyy,OU=zzz,DC=xxx,DC=yyy,DC=zzz SkipFinalSummary=YES FinishAction=RESTART SkipComputerName=YES SkipSummary=YES The MachineObjectOU is only used if the computer did not previously exist in the AD, otherwise the existing OU is used. As you can see this skips everything and leaves the computer at the ctrl+alt+del screen at the end. UserExit.vbs
-
He's leaving on a jet plane....Bye-bye Ric
AlexB replied to Dos_Box's topic in General EduGeek News/Announcements
Good luck out there, new and different is always fun -
The python files that your users are going to be saving are usually plain text and very small. I'll be impressed if one of them manages to write 1MB of code over the 2 year course. (Python is generally not compiled, but instead 'run' by using the interpreter)
-
Google apps Lost admin access unable to reset password
AlexB replied to woodham's topic in Cloud Services
There is meant to be a domain verification method. Mentioned here https://support.google.com/a/answer/33561?hl=en, links to here https://support.google.com/a/answer/47283 Guess it works the same way as when you register. -
Google apps Lost admin access unable to reset password
AlexB replied to woodham's topic in Cloud Services
I'd try ringing them Customer Support ? Google Apps for Business | United Kingdom -
Possible the webserver you installed got put on port 8080, so the address would be http://localhost:8080/xibo Worth a shot...
-
Also, before you start, check with your County. In Warwickshire, at least, they keep all building plans on file. I usually receive a vector PDF.
