Jump to content

ChrisMiles

Members
  • Posts

    410
  • Joined

  • Last visited

Everything posted by ChrisMiles

  1. Disabling simple LDAP binds has the potential to break a load of stuff or it may not break anything, depends what you have installed that uses ldap binds to integrate with Active Directory. It shouldn't break any Windows clients though. I suggest you do as the message suggests and enable additional logging so you can see what is connecting in that way before considering whether or not to disable them.
  2. These problems can happen very often with certain services that use winhttp rather than iehttp to access the internet, I had the problem with RDP. Winhttp has seperate proxy settings, it does not use the IE ones. You can set the proxy for winhttp using netsh: Using the WinHTTP Proxy Configuration Utility
  3. Not sure if this will help: Upgraded to IE7 & WMP11, now videos download instead of stream
  4. Computer Configuration > Policies > Administrative Templates > Network > Link-Layer Topology Discovery Use "Turn on Mapper I/O (LLTDIO) Driver" to disable for all profiles to prevent the machine from picking up other computers. Use "Turn on Responder (RSPNDR) Driver" to disable for all profiles to prevent the machine from being picked up by other computers. I know why you want to do this, but just for the record, it shouldn't be strictly necessary. There are plenty of other ways for a non-privileged user account to acquire a list of computers. This is not a substitute for properly securing your network enabled devices. If there is something users can access using network browsing they shouldn't be able to access then the problem is not with network browsing.
  5. When dealing with virtual servers, I have always believed it is most sensible to allocated only what resources are required and then run everything on its own machine. Sure, its more of a pain to patch lots of windows boxes, but having a dedicated box for everything makes backups and restores easier, reduces impact of errors and downtime, things like that.
  6. My reply wasn't aimed at your solution, just a comment on my experience with trying to create the redirected folders manually rather than letting windows do it at logon. Home folders aren't the same thing as using folder redirection and don't work the same way.
  7. I found that if you create the folders manually folder redirection fails for some reason, may have been permissions related but in the end I used a custom application to move their files from another location at logon. I suppose you could use a script.
  8. I've has this with certain computer models before. The problem is caused by the fact that AD logon scripts run too early most of the time before the desktop is even loaded. To fix it I made a separate script with the resolution command in and used GPP to make a registry entry in HKCU\Software\Microsoft\Windows\CurrentVersion\Run to run the script. These run after the desktop has loaded and fixed my problems with setting the resolution. I suggest using a smart script that only runs the program when the resolution isnt correct.
  9. Computer settings do not apply on user login, they apply on startup so I would guess there is another setting in the policy or something. Try disabling the user configuration settings on that group policy and see if it still does it.
  10. Ok guys, thanks I'll have to look into whether or not we can live with only 4 ports, although I guess there is no reason why I couldn't set up two separate 8 port trunks in this case, if one is going to be disabled by spanning tree anyway but it would mean putting in additional cabling.
  11. Hi Guys, I am wondering if anyone knows if it's possible using ProCurve switches (3500yl-48Gs to be specific) to split one end of a trunk across two switches, for redundancy's sake. So for example, you'd have an 8 port trunk set up on one switch with 4 ports each going to two other switches with 4 port trunks configured. I've done a lot of googling on the topic and the HP documentation doesn't seem to mention this scenario at all so I'm not hopeful but if anyone knows... Thanks.
  12. When you say you want to force Basic theme, do you really just want to disable Aero as in the transparency stuff etc? Because you can set the following setting to disable it and make it look the same as with Basic theme: User Configuration > Admin Templates > Windows Components > Desktop Window Manager > Do not allow desktop composition
  13. You can use powershell on your file server and run the following in the root of your home drives folder: $recycleBins = Get-ChildItem "$RECYCLE.BIN" -Recurse -Force foreach ($recycleBin in $recycleBins) { $recycleBin.Delete($true) }
  14. If they know a password to a domain admin account, I think changing the password is the least disastrous thing they could do... they could also delete everything out of AD, remove all your files, use adsi edit to break you whole domain! Best not to tell them
  15. If you still have problems, move your script to C:\Windows\Setup\Scripts\SetupComplete.cmd and remove the synchronous commands.
  16. You want to set the following group policy: User Configuration > Administrative Templates > Microsoft Outlook 2010 > Account Settings > Exchange > Automatically configure profile based on Active Directory Primary SMTP address
  17. You can't just upload an image into fog, you must properly prepare windows to be installed on a new computer by running sysprep prior to the upload. There are several posts in this forum where I and others explain in detail how to accomplish this.
  18. From a quick google search, you must have exchange 2007 sp3 installed to run it on 2008 r2. So best make sure its installed first.
  19. Err cant you just remove the old proxy settings? You should not use the default domain policy for applying non-default policies, create new policy objects for your custom policy settings and link them only where they should be applied. Applying policies at the domain level and then trying to override them complicates things for you and is generally going to slow down application at the client level.
  20. You don't need sysprep to "log onto the machine" as you put it, it is simply that sysprep requires that you MUST create an admin account during sysprep so if you don't do it in the xml file it asks you manually. The correct way to get this working is to have sysprep create a temporary admin account and then delete it afterwards, rather than trying to use the normal admin one or anything. To achieve this you require the following as part of your unattended xml file (obviously you will probably already have the section for the Microsoft-Windows-Shell-Setup component in your oobe section so just merge in the UserAccounts part: temppassword true TempAdmin Administrators TempAdmin Then, in your actual image add a file C:\Windows\Setup\Scripts\SetupComplete.cmd with the following command: net user TempAdmin /delete You wont have any problems if you do this.
  21. The script is specific to our school, sims and AD configuration so I'd rather not make it public domain this time. Needless to say though, it really isn't hard and I can tell you where/how to get the data from sims using sql queries if you want.
  22. I use an automatic powershell script which runs every night that reads on-roll student data directly from sims, creates users accounts, home folders with permissions, mailboxes etc for new students and automatically archives the files and mail of old students and then deletes them. Its fully automated and can even handle and implement name changes because it stores admission numbers and upns in AD which it uses to compare users, no csv files or user interaction needed. There are products available for sims which do something similar but they're not cheap and not as customisable as a powershell script so I wrote my own. We also have powershell scripts for bulk import of users from csv etc in case its needed, its not hard at all to work with csvs in powershell as has been mentioned already.
  23. I use a program call nircmd in conjunction with a vbs script on logon to set resolutions based on which OU a computer is in, the groups a user is in etc. So for my VI students I add them to a special group in AD and it sets the resolution when they log in. Const studentComputersDN = "OU=Student Computers,OU=Curriculum,OU=Computers,OU=SomePlace School,DC=someplace,DC=local" Const teacherComputersDN = "OU=Teacher Computers,OU=Curriculum,OU=Computers,OU=SomePlace School,DC=someplace,DC=local" Const textilesDN = "OU=Textiles,OU=Classrooms,OU=Student Computers,OU=Curriculum,OU=Computers,OU=SomePlace School,DC=someplace,DC=local" Set objADSystemInfo = CreateObject("ADSystemInfo") strUser = "LDAP://" & objADSystemInfo.UserName strComputerDN = GetComputerDN intCurrentBPP = GetCurrentBPP 'Set resolution by OU If Right(strComputerDN, Len(studentComputersDN)) = studentComputersDN Then SetDisplaySettings 1024, 768, 32, 60 ElseIf Right(strComputerDN, Len(teacherComputersDN)) = teacherComputersDN Then SetDisplaySettings 1024, 768, 32, 60 Else 'MsgBox "Not setting resolution because the computer " & strComputerDN & " is not in a recognised OU." End If 'Set resolution by group If IsMemberOfADGroup(strUser, "CN=640x480 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then SetDisplaySettings 640, 480, intCurrentBPP, 60 ElseIf IsMemberOfADGroup(strUser, "CN=800x600 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then SetDisplaySettings 800, 600, intCurrentBPP, 60 ElseIf IsMemberOfADGroup(strUser, "CN=1024x768 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then SetDisplaySettings 1024, 768, intCurrentBPP, 60 ElseIf IsMemberOfADGroup(strUser, "CN=1280x1024 Resolution,OU=Resolutions,OU=Groups,OU=SomePlace School,DC=someplace,DC=local") Then SetDisplaySettings 1280, 1024, intCurrentBPP, 60 Else 'SetDisplaySettings 1024, 768, intCurrentBPP, 60 'MsgBox "Not setting resolution because the user " & strUser & " is not in a resolution group." End If '**********************************************************************' ' SetDisplaySettings ' '**********************************************************************' ' If necissary, sets the display settings to those specified. ' '**********************************************************************' Function SetDisplaySettings(intWidth, intHeight, intBPP, intHz) If Not IsCurrentDisplaySettings(intWidth, intHeight, intBPP, intHz) Then strCmd = "\\someplace.local\NETLOGON\Programs\nircmd\nircmdc.exe setdisplay " & intWidth & " " & intHeight & " " & intBPP & " " & intHz Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run strCmd End If End Function '**********************************************************************' ' IsCurrentDisplaySettings ' '**********************************************************************' ' Compares the specified display settings with the current config. ' '**********************************************************************' Function IsCurrentDisplaySettings(intWidth, intHeight, intBPP, intHz) Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_VideoController") intCurrentWidth = 0 intCurrentHeight = 0 intCurrentBPP = 16 intCurrentHz = 0 For Each objItem in colItems intCurrentWidth = objItem.CurrentHorizontalResolution intCurrentHeight = objItem.CurrentVerticalResolution intCurrentBPP = objItem.CurrentBitsPerPixel intCurrentHz = objItem.CurrentRefreshRate Next If Not IsNumeric(intCurrentBPP) Then intCurrentBPP = 16 End If If intCurrentWidth = intWidth And intCurrentHeight = intHeight And intCurrentBPP = intBPP Then IsCurrentDisplaySettings = True Else IsCurrentDisplaySettings = False End If End Function '**********************************************************************' ' GetCurrentBPP ' '**********************************************************************' ' Gets the display's current display bits per pixel. ' '**********************************************************************' Function GetCurrentBPP() Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * From Win32_VideoController") intBPP = 16 For Each objItem in colItems intBPP = objItem.CurrentBitsPerPixel Next If Not IsNumeric(intBPP) Then intBPP = 16 End If GetCurrentBPP = intBPP End Function '**********************************************************************' ' GetComputerDN ' '**********************************************************************' ' Gets the DN of the current computer. ' '**********************************************************************' Function GetComputerDN() Const ADS_NAME_INITTYPE_GC = 3 Const ADS_NAME_TYPE_NT4 = 3 Const ADS_NAME_TYPE_1779 = 1 Set objWMIService = GetObject("Winmgmts:\\.\root\cimv2") Set wshNetwork = CreateObject("WScript.Network") Set objTrans = CreateObject("NameTranslate") Set objADSystemInfo = CreateObject("ADSystemInfo") Set colItems = objWMIService.ExecQuery("Select * From Win32_ComputerSystem") For Each objItem in colItems strDomainDnsName = objItem.Domain Next Set colItems = objWMIService.ExecQuery("Select * From Win32_NTDomain Where DnsForestName = '" & strDomainDnsName & "'") For Each objItem in colItems strDomainNetbiosName = objItem.DomainName Next objTrans.Init ADS_NAME_INITTYPE_GC, "" objTrans.Set ADS_NAME_TYPE_NT4, strDomainNetbiosName & "\" & wshNetwork.ComputerName & "$" GetComputerDN = objTrans.Get(ADS_NAME_TYPE_1779) End Function '**********************************************************************' ' IsMemberOfADGroup ' '**********************************************************************' ' Gets the members of the specified group (strGroupDN) and checks for ' ' the existance of the specified user (strUserDN). ' '**********************************************************************' Private Function IsMemberOfADGroup(strUserDN, strGroupDN) Set objUser = GetObject(strUserDN) arrMembers = GetMembers(strGroupDN) bolFound = False For Each strMember in arrMembers If strMember = objUser.ADsPath Then bolFound = True Exit For End If Next IsMemberOfADGroup = bolFound End Function '**********************************************************************' ' GetMembers ' '**********************************************************************' ' Calls GetMembersRecurse on the specified group. ' '**********************************************************************' Private Function GetMembers(strGroupDN) Set dicProcessedGroups = CreateObject("Scripting.Dictionary") Set dicMembers = CreateObject("Scripting.Dictionary") dicProcessedGroups.Add "LDAP://" & strGroupDN, 1 GetMembersRecurse "LDAP://" & strGroupDN, dicProcessedGroups, dicMembers GetMembers = dicMembers.Keys End Function '**********************************************************************' ' GetMembersRecurse ' '**********************************************************************' ' Gets the members of the specified group (strGroupDN), adds the user ' ' members to the members dictionary (dicMembers), adds the group to ' ' the dicProcessedGroups dictionary and calls GetMembersRecurse on ' ' each group member in turn only if it does not appear in the ' ' dicProcessedGroups dictionary. ' '**********************************************************************' Private Function GetMembersRecurse(strGroupDN, dicProcessedGroups, dicMembers) Set objGroup = GetObject(strGroupDN) For Each objMember in objGroup.Members If objMember.Class = "group" Then If Not dicProcessedGroups.Exists(objMember.ADsPath) Then dicProcessedGroups.Add objMember.ADsPath, 1 GetMembersRecurse objMember.ADsPath, dicProcessedGroups, dicMembers End If Else If Not dicMembers.Exists(objMember.ADsPath) Then dicMembers.Add objMember.ADsPath, 1 End If End If Next End Function
  24. I've been developing database drive applications for 15 years and this is how I'd see a student doing it to satisfy the requirements using access, make of it what you will. I cant think of any other way to do it that doesn't involve writing vbs code which I assume you don't teach your students.ACExam.zip
  25. Why does it? Seems like a general lack of understanding in database driven application development to me. So long as all UI components display the student ID in the format requested, why does it matter if its actually held in a database field or not. Surely thats a design choice that should be left to the student. Your list of requirements says absolutely nothing about the underlying data structure, surely the test is to see if the students can decide a way to achieve what is asked (ie the data entry form in the specified format). By restricting them to one solution, and not even a very good solution, you reduce the worth of the test to basically can the student remember which buttons to press. Anyway an ID like that is fundamentally flawed and would never be employed in a real world application.. What happens if the person's name changes? Should their ID change, or not? If not, doesn't that basically remove any usefulness of employing a name as part of the ID? I also think the fact that none of your teachers know how to do it is pretty telling as to the validity of it. Where is the educational benefit? It's just the blind leading the blind.
×
×
  • Create New...