Content Type
Profiles
Forums
Events
Everything posted by CoffeeFiend
-
XP64 vs XP32 vs Vista64 vs Vista32
CoffeeFiend replied to iceangel89's topic in Windows XP 64 Bit Edition
Most people who quote benchmarks to support their "evidence" Vista is slow, resort to gaming benchmarks. But that hardly means anything. Vista has a new driver architecture (brand new, non-mature drivers which weren't exactly the most optimized nor the best, period), on top of a new architecture with things like aero glass and desktop composition (which by itself changes how stuff is drawn in the first place i.e. memory buffer), with a new version of DirectX that's brand new and all. WAY too many factors changed, it's an apples to oranges comparison here, if you want real-life speed comparisons. And most such benchmarks were pre-SP1 too. I'd say overall performance is within 5% or so of XP's on 99% of everyday tasks. Actually, check some non-graphics related benchmarks (sisoft sandras's , everest's, etc) and you'll see most are pretty much within 1%. Plenty of other benchmarks show that even the RTM as about as fast as XP. And if you look around, you'll even find benchmarks that puts Vista as faster than XP on some things, like file copy operations. I for one noticed deleting thousands of small files with Vista is several times faster than XP. With XP, you select the files, hit delete, then you wait.... wait... keep waiting... wait some more, and when you wake up, it asks to delete them, and does it. With vista, it done deleting files WAY before XP even gets around to ask. Granted, you might not delete tons of tiny files everyday, but it goes to show how the performance isn't exactly as bad as most people put it. And like some articles quoting actual experts on the subject (Mark Russinovich in this case) say "Vista's file copy dialog box goes away when the cache is committed, while under XP the copy dialog goes away while the committal is still pending. In other words XP is coded to appear fast." For full facts and explanations, visit his most excellent blog -- article here. I can only disagree here. I wouldn't know the first thing about in-game responsiveness, but when it comes to general system responsiveness/speed, Vista performs no worse than XP does on this box. Definitely not sluggish at all. I do a LOT of very intensive task everyday (lots of encoding, heavy usage of vmware server and workstation, playing high def movies in H.264, a fair bit of photoshop use, etc) and heavy multitasking, and I've noticed no difference at all between Vista SP1 and XP (any SP) when it comes to speed/responsiveness. -
Well, if you did that, you'd be left with a script that's basically identical to mine. The only real differences, are the messages. Here's the same script again, with your new messages const HKLM = &H80000002 strComputer = "." Set objWMI=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Internet Explorer" strValueName = "Version" objWMI.GetStringValue HKLM, strKeyPath,strValueName,strValue intIEVers = CInt(Left(strValue, InStr(strValue, ".")-1)) Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colItems = objWMI.ExecQuery("Select * from Win32_OperatingSystem") For each elem in colItems intSP = elem.ServicePackMajorVersion Next if intIEVers < 7 and intSP = 3 then msgbox "IE 7 not found! Service Pack 3 Found! No further action is needed." elseif intIEVers < 7 and intSP < 3 then msgbox "IE 7 not found! Service Pack 3 not found! Please install Service Pack 3." elseif intIEVers > 6 and intSP < 3 then msgbox "IE 7 found! Service Pack 3 NOT found! Please go to Control Panel>Add/Remove Programs and remove Internet Explorer 7 and then install Service Pack 3." elseif intIEVers > 6 and intSP = 3 then msgbox "IE 7 and Service Pack 3 were found. You need to go to Control Panel>Add/Remove Programs and remove Service Pack 3 before you can remove Internet Explorer 7. Once completed, reinstall Service Pack 3." else msgbox "Unable to determine configuration." end if (also removed the line with blnBadIEVers -- had no use for it, went for actual version checks instead of using the boolean for the conditional statements) @jaclaz: totally. At a VERY strict minimum, it should work on IE as well as Firefox (that's at least 90% of users out there), but when you have it working on IE and FF, usually there's very little extra work required to test (and make updates) for Opera, Konqueror, Safari (for those poor guys with fruity computers ) and others. Usually that means standard compliant markup (that works with FF, Opera and all the others), and a IE-specific style sheet or such. I've been a permanent Firefox user for YEARS too (secure, fast, and all them GREAT extensions: the web dev toolbar, firebug, DOM inspector, etc etc) Anything IE 6 - only is single-platform/windows-only, and even limiting which version of windows can use it (windows only, but even then not all versions!). And that prevents you from updating to a not as sucky version of that browser for your other needs -- you're just stuck with an older version the poorest browser there is (IMO) Edit: oops, just noticed quoting my posts or copy/pasting from them removed backslashes, very strange... Fixed!
-
Like I said before... Looks like you're still trying to do it (in your last post). However, the script I wrote does EXACTLY what you asked for (it's tested). If you're doubting Thomas and don't trust the conditional statements, try using combinations of intSP = 2 or intSP = 3, and intIEVers = 6 or intIEVers = 7 (or even intIEVers = 8) just before the if's. You'll see exactly how it behaves for each scenario. Adding an OS check would be a good idea though, unless all your boxes run XP. Absolutely. Nowadays, IE7 has a far bigger market share than IE6 and is still on the rise. And it's been out for a good while now (close to 2 years). There's just no excuse for not having updates/fixes by now, especially when it should only be minor changes required to the web apps in question. Similarly, there's no excuse nowadays for most web apps to not support non-IE browsers. Usually that just means they're using non standard compliant markup that only renders OK in IE, which is very sloppy at best. Some companies seemingly need to work on supporting their products a LOT better... And IE8 will be out soon, and it's not gonna get any better then. And Vista users can't downgrade to crappy IE 6 either, and Vista is quickly gaining market share too... The only stupid web app I've had the displeasure to see in the last few years that was IE-only, was the web interface for Remedy (thanks to the use of ActiveX junk).
-
A LOT of such hangs on old computers are due to motherboards with bad caps, open the case, and see if the tops of the caps are bulging, as well as due to faulty and aging PSUs. Also, you might want to check your error logs for anything suspicious, and make sure your drivers are all the latest WHQL versions. When it hangs, does pressing caps lock toggle the light on the keyboard (assuming it has one), or is it responsive to pings? (there's hard and soft hangs, trying to confirm which kind it is) Try configuring your registry to generate manual crashes (to get crash dumps), i.e. HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll, new DWORD, value = 1 (I've never seen anyone else use that reg tweak on their installs besides me, or the symbol path for that matter). Then when it hangs, hold the right CTRL key down, and double tap scroll lock. (there's also the possibility of booting in debug mode, and debugging the crashed box over serial or firewire with WinDbg, but that requires good system/debugging knowledge, and being setup to do that...) On the other hand, I can't say I've been very lucky when it comes to VIA chipsets and stability. Haven't had one in a while though (burn me once...)
-
How clean up old compuers in Active Directory?
CoffeeFiend replied to realized's topic in Windows 2000/2003/NT4
There is no easy/straightforward way that I know of. What we do, is use the domain login log files, and process those to keep the last logon dates for every computer. You must ensure your users log off once in a while too, not just lock their workstations (else no login shows, and they get deleted). Then anything past a certain date gets removed. -
No more typos But there still remain some other issues. One thing I just thought of, is he wants computers named D-serial or M-serial Your script will likely rename some laptops to P-serial (Portable), L-serial (Laptop), N-serial (Notebook), S-serial (Sub-Notebook), D-serial (if on a docking station) and perhaps even H-serial (Handheld), depending on the value of the ChassisType property. Similarly desktops could be named L-serial (Low Profile Desktop), M-serial (Mini Tower) which is what he wanted to name laptops(!), T-serial (Tower), etc. And still, the script remains XP-only, and only works if your computers are part of a workgroup (doesn't work with domains) which is a serious limitation. And there's nothing you can do about the countless computers without a serial number in the DMI tables of the SMBIOS. wsname will let you rename without any script at all, as intended, with he /N:$CHASSIS[0]-$SERIALNUM argument. It's been time tested by a LOT of people, bugfixed and all. And it works on *every* version of windows (i.e. 9x, NT, and the still fairly popular win2k). And it works even if your computers are part of a domain (most enterprise computers would be). It also has plenty of other handy functions like logging, it integrates nicely with disk imaging/sysprep solutions, can set other infos, etc. Should you decide to rename based on mac addresses (when you find out more than half your computers don't have a serial number), then it can do that too, using these arguments /RDF:macaddytoname.txt /DFK:$MAC and a properly formatted simple text file (macaddyhere = correspondingname). It even has a mechanism to ignore certain types of network adapters for that purpose. I like scripting as much as the next guy, but when there's a specialized utility that already does this in a better way, why bother?
-
It does ask for the password. Everything works as intended. I just had a look again. Opening a simple 1.5MB pdf file, Foxit Reader uses 10268KB ram (private bytes/commit size), whereas AcroRd32.exe (latest vers of acrobar reader) uses 39572KB -- so 4x as much ram. Acrobat Reader also used about double the CPU time to launch, sucks about twice as much CPU cycles just sitting there idle, did about twice as many I/O reads, 18x the writes, nearly 3x as many page faults, etc. Just saying, Foxit is a LOT more optimized for speed/performance.
-
He TOTALLY hit the nail on the head! Windows is already plenty "modular" for most people's tastes. You can already stop services you don't want, and there's add/remove features too. You can regsvr32 /u some unnecessary components. And then there's nlite and vlite for extremists. And if you need a very specialized stripped down to the bone OS for special purposes, there's XP embedded. Just what else do some people expect? The only thing I can think of that they don't let you easily remove is IE (nlite will do it...), and their awful media player -- but then again, just look at the total non-popularity of the "N" versions of windows, and you'll already see people DON'T want such features-removed crippled OS'es, it just doesn't sell. On the other hand, developers, from small ISVs to big corps would have to test for the presence of various components (e.g. IE, for it's ActiveX controls), making installers more complex, take longer, have more conditions, and then force people to install them anyway. Otherwise every program would come up with their alternative to the feature that possibly wouldn't be there, spending time and money reinventing "the wheel". And with each vendor shipping their own version of "the wheel" (for the microsoft one is optional and might not be installed, and they sure won't want to try to support 2 different ones either), you will be stuck with 50 other different wheel-like contraptions from various vendors, that each has their own bugs, quirks, vulnerabilities, and need their own patches. Each "wheel like contraption" would use their share of disk space (more binaries to install) and memory (more private bytes, less shareable ones), using more of both in the end, which kind of defeats the whole point of it. It just goes against basic ideas like code reuse. You can be sure all developers would be *so* happy about that (I can already see that being the OS taking the most time to have apps updated to work with, if ever). It sounds like extra complexity, and extra configuration overhead too -- something businesses and admins would sure love! And power users would sure love to be nickel and dimed for every feature too. And even end users are going to love either have apps not work because of missing features (I can already hear them say "windows sucks"), or have lots of popups telling them to install the missing features -- kind of like this: you click on a shortcut, and it pops up "would you like to install tcp/ip stack?", then 5 minutes later "would you like to install http protocol handler?" then a couple later "would you like to install the html rendering module?", etc (sounds like fun!) It would be the worst thing ever. I can't really think why they'd go that way at all. Server core made sense for servers (no GUI at all, headless servers, so a bit less overhead), even though server core is kind of crippled. But it's not like you're gonna want a GUI-less headless desktop. And again, with the ridiculously low sales of the Windows N series, the world showed us they DON'T want crippled featureless OS'es: "XP N sales represent 0.005 percent (1/20,000th of one percent) of overall XP sales in Europe. No PC manufacturers have ordered or preinstalled Windows XP N on PCs."
-
A few issues... The fix: ObjReName.Rename Var1, StrPassword, StrUser Next... If ObjSN.SerialNumber = strComputer Then You're testing if the computer is named by its serial number alone, which is not the format you're actually trying to rename to (might be a total non-issue, as long as you didn't go around naming your PCs by serial # alone first) Next... If SN.SerialNumber = "" Then fix: If ObjSN.SerialNumber = "" Then Next... If ObjSN.SerialNumber = "" Then and If Len(ObjSN.SerialNumber) => 1 Then failed to take in account that a lot of PCs w/o a serial number return a 1 character string, consisting of a single space (0x20, 32 dec), this would force the most part of our desktops to be renamed as "D- " and laptops as "L- " (thankfully it doesn't work, due to the trailing space). StrPassword and StrUser are empty too (not null but empty), not sure if that would even work, depends what it transforms the empty values into before making the API call -- a 0 length string or a null (haven't tried, too lazy!) Next... If ErrCode = 0 Then ErrCode is empty, so it falsely says it has been renamed, even when it fails. (try running: If varthatdoesntexist = 0 Then MsgBox "nice!" -- nice eh?) Perhaps you meant to use Err, but that won't catch errors of WMI classes' methods, you need to do something like: intResult = ObjReName.Rename (Var1, StrPassword, StrUser) (Yes, NOW parentheses are required, and don't forget intResult needs to be dim'ed since you're using option explicit) Here, intResult returns 87 indicating it actually failed. Also, the rename method of the Win32_ComputerSystem class has limited OS support (hence why you made your script for XP only perhaps), and it will break domain memberships too (not fun) because it has to be renamed in there too! (unless it's smart enough to throw an error message and fail instead), making the script unusable for most businesses. For this reason alone, it's better to use the wsname utility, which handles all that stuff (i.e. domain memberships), and will accomplish this task (assuming your serial #s aren't blank), without a script at all i.e. using the /N:$CHASSIS[0]-$SERIALNUM argument, free of bugs too. And that's ignoring that a large portion of computers (unless you only buy Dell) don't have the serial # filled in their BIOS in the first place, making this age-old problem not quite that easily solvable. More often than not, it's done from a list of mac addresses <-> computer name table, mainly because that never fails. (you just have to retrieve the mac addresses of your PCs first, along with their current names, with yet another script) Also, not totally sure why you're using functions in a linear program flow (main calls ComputerType right under it, which then calls ComputerSerialNumber right under it, then returns from ComputerSerialNumber to ComputerType, which immediately returns to main...). And them functions are only called once (might be a reused snippet, that would explain it) Edit: typo
-
Then the script should work. You could try having both Gateways there in the config though, like such: Dim arrGateways(1) arrGateways(0) = "192.168.1.1" arrGateways(1) = "192.168.1.2" Where 192.168.1.1 and 192.168.1.2 are the addresses of both your gateways, but I'm not 100% sure if windows will auto-switchover if one fails (we don't have redundant gateways, never tried, or looked into it much for that matter). You might wanna look at MS Article ID's 128978 and 171564.
-
It's definitely a better solution, if it runs. I saw things about some machines needing an old special ISA network card and such, not sure what kind of hardware or hardware access it needs, so dunno if using vmware is possible.
-
That is both a simple and a complicated problem at once. Ping'ing is trivial (you use the Win32_PingStatus WMI class, or if you have older OS'es i.e. win2k and below, then you have have to call ping.exe and parse the text output). As for the gateways, you can enumerate them (string DefaultIPGateway[]; property of the class), and set it with the SetGateways method of the same class. All good so far. Now the hard part: how do you determine which NIC to use it against if it has more than one? (this box has 4) A quick and dirty script (5 minute job, could be a lot nicer), that works more or less blindly, and tries to set it on all NICs: On Error Resume Next strComputer = "." Dim arrGateways(0) arrGateways(0) = "192.168.1.1" Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colNicConfigs = objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each objNicConfig In colNicConfigs If Not IsNull(objNicConfig.DefaultIPGateway) Then strDefaultIPGateway = Join(objNicConfig.DefaultIPGateway) Set colPings = objWMIService.ExecQuery ("SELECT * FROM Win32_PingStatus WHERE Address = '" & strDefaultIPGateway & "'") For Each objPing in colPings If objPing.StatusCode <> 0 Then objNicConfig.SetGateways(arrGateways) End If Next Else 'gateway is not set! uncomment next line to force set it 'objNicConfig.SetGateways(arrGateways) End If Next Change the gateway IP from 192.168.1.1 to whatever you need to set it to. You can also make the array bigger, and add more values to it if you need more than one gateway. Anything else just ask.
-
Ouch. Probably won't find many replacements for that. It might be a good idea to look for a dirt cheap P3 on craigslist or such just for that purpose then.
-
Out of curiosity, what CAD app is it? There might be ways to get it installed for now (or you can look for an old/cheap spare computer for it), in which case you're still stuck using win98 on that box. Eventually, you're just going to have to upgrade (say, if 98se can't install on whatever newest hardware, for lacking support for whatever hardware). Also, did you try to run it in compatibility mode? There might be a free solution (like QCad community edition), or cheaper (not 1500$) ones like ProgeCAD and others (many based on intellicad) that would do the job even better.
-
AutoIt isn't exactly the best/most universal/most well known scripting kit. It's meant mostly to automate button clicks and such, which a LOT of ppl see as a last resort. And it needs the program installed to run scripts, whereas WSH is already installed on most PCs. With most network admin types (windows world, not linux), vbscript is pretty much the de facto standard, slowly being replaced by PowerShell. There are no console messages with vbscript (using wscript -- as long as you didn't force it to use cscript). Yzöwl: Likely, he wants a messagebox popup for the end-users, and only one of them, hence all the nested if's. But yeah, my script blindly checked for SP and not OS like I said before (assuming he uses only XP) Also, opening \root\cimv2\Applications\MicrosoftIE throws an exception here, hence why I went with the other method (reading from registry directly). Screenshot of debug session in VS:
-
And because YOU don't use the feature, and that such a feature uses RAM, it shouldn't be there for everyone else? Yeah right. That explains why 99% of new versions of 99% of apps use more RAM -- sloppy programming! There sure must be an awful lot of sloppy developers out there. Who's surprised a 200$ PC would sell? (even if it's a P3 class CPU with 512MB ram) , from a place where most shoppers don't really know what they're buying no less. What I really wonder is, what percentage of those run Windows now? 95%? And "selling as hot cakes" probably means FAR less units sold there in a year, than Dell shipped in a single day (I've seen ppl mention 10000 total, a VERY small amount when you look at the big picture). Walmat also doesn't sell them in-store anymore either because of poor sales. Oh ya, and the only guy I know with a Eee PC, runs Vista on it
-
We just can't guess why it does that (no HTTP logs or anything). Are you on someone else's network? In a country where they do filtering of your connection? Old version of flash with a bug? ... All we can do is guess.
-
Care to back up that "fact" with solid evidence? Developers make software for platforms with a large user base, because there's where the money is. If 90% of users were still using windows 3.11, we'd code for it, support or not. Win9x having < 1% of a install base is why, not support. In some cases, they did. Doesn't mean they'd do the inverse again. Wishful thinking. And dual licenses and selling support is a huge part of how companies live off of making software for linux regardless. Hardware vendors already offer solutions with Linux, but no one is buying. People want their windows apps, so they buy a Windows PC. Business/servers represent FAR more than 1% of computers, and Sun servers aren't quite that common no. We do have a handful of Linux boxes here and there, but they're outnumbered about 100:1 by Win 2003 boxes. It's like that for most companies I've seen (if you put aside the cheap LAMP hosting companies, where it's mostly linux) Eh? Where exactly did I mention the Vista GUI was great? Or that Aero Glass (which I don't use currently) uses reasonable video resources? Right, I haven't! Compiz Fusion runs FAR better on sh*t onboard Intel GMA 950 video than Aero Glass does on a 100$ vid card. You're trying to put words in my mouth there, and saying I'm the one digging myself in a hole, funny! In fact, that's my main deception with Vista (2nd one being the lack of a SSH-like console, for which I now use CopSSH and PowerShell remoting), I had expected Aero Glass to be somewhat closer to Compiz Fusion. But it basically lacks almost everything CF has, and there still aren't any viewports or such. Drivers? Certainly not. Stability? Both are plenty stable... Networking? Both work fine (altough Linux's is admittedly superior, I do use linux for NAT/DHCP/DNS, 6to4 tunnelling + radvd, squid + ad blocker, etc). Linux only has DIFFERENT issues. It's not better than windows, just better suited at other tasks, and the apps available for it are vastly different. Not. A lot of linux apps much younger than 10yo just won't run on linux for various reasons (glibc changes, etc). And there is no stable ABI either. Right. And you try to run a modern distro with KDE or such on your old 2000-vintage Win98 box. It'll be slow as molasses too. And not running on 10 year old hardware means fundamentally flawed exactly how? It doesn't HAVE to.
-
The point was, they ALL inherit stuff from older/other OS'es, be it code or otherwise. How's that any different? You take the old and modify it a bit. But just because you decided so, editing plans makes it a new plan, but editing code doesn't make it new code? Do you keep a list of everything where making small evolutionary changes makes it new or not? Say, I open house plans in autocad, and move a window to the left by one foot, this is a new house somehow, but if i open the source code for some GUI, and move a button 50 pixels over, then now it isn't new? It's a double standard if anything. Makes no sense to me. It's the EXACT same thing. Both are updates on a prior design, and selling products based on that still makes it a new product regardless of what the product may be. It DOES more for most users (ease of use, new features, etc), but maybe you just don't notice it... Just like cluberti mentionned. I've never seen anyone, or heard of anyone with such a belief. But ~99% of new apps do use more RAM. What makes it great is the new features. Extra resource usage is just something we more or less expect to happen with every new version (new features take resources). FF3 is an exception here, their main savings comes from not keeping all the images uncompressed in memory, which was due to a poor design decision in the first place (the kind most systems haven't done)
-
Just upload it on rapidshare or what not, and paste the link here.
-
So you want to force SP3 as well? As in must be BOTH IE < 7 AND SP3? Ok... const HKLM = &H80000002 strComputer = "." Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootdefault:StdRegProv") strKeyPath = "SoftwareMicrosoftInternet Explorer" strValueName = "Version" objWMI.GetStringValue HKLM, strKeyPath,strValueName,strValue intIEVers = CInt(Left(strValue, InStr(strValue, ".")-1)) if intIEVers > 6 then blnBadIEVers = true else blnBadIEVers = false Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!" & strComputer & "rootcimv2") Set colItems = objWMI.ExecQuery("Select * from Win32_OperatingSystem") For each elem in colItems intSP = elem.ServicePackMajorVersion Next if intIEVers < 7 and intSP = 3 then msgbox "no further action needed" elseif intIEVers < 7 and intSP < 3 then msgbox "please install sp3" elseif intIEVers > 6 and intSP < 3 then msgbox "remove ie7 then install sp3" else msgbox "remove sp3, then remove ie7, reinstall sp3" end if Anything else... just ask. (Normally I use the .wsf format, and I sign them, and add a few comments) <Edit> PowerShell version of the same, should anyone care: $MachineName = "." $SP = (Get-WmiObject -Class win32_OperatingSystem -namespace "rootCIMV2" -ComputerName $MachineName).ServicePackMajorVersion $IE = (Get-ItemProperty 'HKLM:SoftwareMicrosoftInternet Explorer').Version.Split(".")[0] if ($IE -lt 7 -and $SP -ge 3) { write-host "Everything OK!" } elseif ($IE -lt 7 -and $SP -lt 3) { write-host "Install SP3" } elseif ($IE -ge 7 -and $SP -lt 3) { write-host "Uninstall IE7" } elseif ($IE -ge 7 -and $SP -ge 3) { write-host "Uninstall SP3 then uninstall IE7" } else { write-host "This case shouldn't ever happen" } It's a lot nicer and more concise, but you do need PowerShell installed (if you want MessageBoxes instead of text, then use the .popup method of the script.shell object) </Edit>
-
You can't do If strValue >= "7" Then strValue is a string, 7 should be an integer, but you wrote it as a string comparison... Doesn't work like that. How about this? const HKLM = &H80000002 strComputer = "." Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv") strKeyPath = "Software\Microsoft\Internet Explorer" strValueName = "Version" objWMI.GetStringValue HKLM, strKeyPath,strValueName,strValue intIEVers = CInt(Left(strValue, InStr(strValue, ".")-1)) if intIEVers > 6 then blnBadIEVers = true else blnBadIEVers = false Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colItems = objWMI.ExecQuery("Select * from Win32_OperatingSystem") For each elem in colItems intSP = elem.ServicePackMajorVersion Next if intIEVers < 7 then msgbox "Evrything OK!" elseif intSP < 3 then msgbox "IE " & CStr(intIEVers) & " Found! Please Go To Control Panel>Add/Remove Programs and Remove It." else msgbox "IE " & CStr(intIEVers) & " and SP" & CStr(intSP) & " Found! Please Go To Control Panel>Add/Remove Programs and Remove It." end if This checks for IE vers > 6 and blindly SP > 2 (regardless of if it's win2k, xp, or vista -- assuming all your boxes run XP here) SP3 might have been installed before IE7 though, in which case, one shouldn't have to remove SP3.
-
Office password protection has always been a joke. It's trivial to remove (for older versions, just overwrite the right bytes in the header with 0's, document security with the newer ones, you unzip the doc, open it, remove the sheetProtection XML tags or such, save, rezip it, done!) As for .pdf passwords, not sure. Never seen a password protected .pdf file. Does Foxit PDF Creator have the feature? No idea. Does the Foxit Reader support password protected PDF files? No idea either. Attach a small password protected PDF file (of a blank page or whatever) along with the password, and I'll see if it can open it. I personally have no use for a fancy $450 app to generate a basic PDF once a month.