Jump to content

FeralAI

Members
  • Posts

    13
  • Joined

  • Last visited

Everything posted by FeralAI

  1. Bugger- very sad may have to go and read them all again
  2. If you think that girl cubs sulk for ages, you should see how long the rivalries can last once they get upto the Scout section....sheesh! I have to remind some of my scouts about certain points of the scout law at times.
  3. As requested by Danp, here is the solution for my problem.... Issue: Students are on a mandatory profile in a windows 7 environment, this means they have no local user profile on the PCs. If they open a file from web mail (using IE as it's the only thing available), they invariable enable editing, then work on the file without saving it to thier file storage location!! When they save later on they tend not to do 'save as' (and believe me we have told them lots to do that). By default IE stores any document in the IE temp folder on the profile. If you don't have a profile on the PC then the files are deleted when you log off......cue wailing students "I worked for hours on it and now it's lost!!!" Solution: I have enable a log off script in GPO to run a .vbs, this in turn calls a powershell script to save the files. Seems complicated - yes but it works and if you set the powershell script to run at log off it run as the student, who don't have execution rights.The VB script also waits until the powershell code has completed before it ends, this makes sure that the files have been copied over. VB code on error resume next '-----initialize------------------------------------------- const overwriteExisting = true const forceRemoval=true const forceDelete=true const updateProfile=true set objshell=wscript.createobject("wscript.shell") set objnet=wscript.createobject("wscript.network") Set objFSO=wscript.createObject("Scripting.FileSystemObject") '------run copy----------------------------------- objShell.run("powershell -executionpolicy bypass -noexit -file \\yourfilelocationhere\netlogon\filesavetemp.ps1") WaitForIdle ".", "powershell", "3" Sub WaitForIdle(strComputer, strProcessName, intIdleSec) Dim bolIdle : bolIdle = False Dim objWMIService : Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Dim strObjKeyPath : strObjKeyPath = "Win32_PerfRawData_PerfProc_Process.Name='" & strProcessName & "'" Dim objPerfInstance : Set objPerfInstance = objWMIService.get(strObjKeyPath) Dim intPercProcTime1 : intPercProcTime1 = objPerfInstance.PercentProcessorTime Dim intProcTimeStamp1 : intProcTimeStamp1 = objPerfInstance.TimeStamp_Sys100NS Dim intElemCount : intElemCount = CInt(intIdleSec) - 1 ReDim arrProcPercents(intElemCount) Dim i : i = 0 Dim PercentProcessorTime, arrTemp, intPercProcTime2, intProcTimeStamp2 Do While Not bolIdle WScript.Sleep 1000 Set objPerfInstance = objWMIService.get(strObjKeyPath) intPercProcTime2 = objPerfInstance.PercentProcessorTime intProcTimeStamp2 = objPerfInstance.TimeStamp_Sys100NS If (intProcTimeStamp2 - intProcTimeStamp1) = 0 Then WScript.Echo "Error, probably " & strProcessName & " not found running" Exit Do Else PercentProcessorTime = ((intPercProcTime2 - intPercProcTime1) _ / (intProcTimeStamp2 - intProcTimeStamp1)) ' WScript.Echo FormatPercent(PercentProcessorTime) ' add value to array arrProcPercents(i) = FormatPercent(PercentProcessorTime) ' if the number of seconds have been met then check the array If i = (intElemCount) Then ' look at the array and filter for values of 0.00% arrTemp = Filter(arrProcPercents, "0.00%") ' if the array size of the filtered and the original is the same then ' all the values for the time specified where 0.00% If UBound(arrTemp) = intElemCount Then ' set bolIdle = True to exit the Do...Loop bolIdle = True End If ' if all the values where not 0.00% then reset the counter and ' array index to update i = 0 Else ' increment the counter/array index i = i + 1 End If End If intPercProcTime1 = intPercProcTime2 intProcTimeStamp1 = intProcTimeStamp2 Loop End Sub The Powershell script....this checks who the user is and then checks to see if they have a folder created yet (forward planning FTW - next years intake are automatically catered for), then it copies the temp files to the folder....but only the ones you specify, so we don't fill yp your servers with all the images and stuff from IE $strUser = $env:username $path = "\\yourfileserver\saved\$strUser" if(!(test-path -Path $path)) { new-item -Path $path -type directory } get-childitem "C:\users\TEMP.COLLEGE*\AppData\local\microsoft\windows\Temporary Internet Files\content.IE5\*\*" -include @("*.docx","*.ppt","*.xlsx","*.doc","*.csv","*.xls","*.pptx","*.pub") -force -recurse | where-object { (-not $_.PSIsContainer) -and ($_.LastWriteTime -lt (get-date).AddDays(+60)) } | Copy-item -Destination "\\yourfileserver\saved\$strUser" -recurse -force I know the code is not overly clean on either one but I was rushed slightly
      • 2
      • Thanks
  4. Yes unfortunately you do have to give them full permissions on that folder, otherwise it just does not want to work. It's a bit shoddy really. The test taker special account is easy to implement , just remember to disable the account in AD when not needed.
  5. I have the ESM_Test_Centre installed on the management server, that is fine, but if you use the server for other things, such as in my case IFS, which runs through an IIS service, then the two cannot run at the same time. I have to stop the IFS service before the ESM will run correctly. So - folder+ESM = good ESM+IIS = not so good folder+IIS = ok but then we end up using 2 machines hope that helps
  6. Actually - it's not too bad now - we have it setup and it gives me no trouble what so ever!
×
×
  • Create New...