Hope this saves someone some time: RDP was not listening on TCP 3389 on a new server build. Followed the standard troubleshooting (verify registry, re-create RDP listener, etc). When showing hidden devices in device manager, tdtcp (tdtcp.sys) was not enabled. NIC is HP373i (Broadcom), but the tdtcp driver would not load until after I installed the HP Network Configuration Utility (NCU) + reboot. Tip your waitress.
SCOM and Nagios both do nothing — they’re just frameworks for collecting data and figuring out if it meets criteria to alert or report on. SCOM without Management Packs is like Nagios without plugins: useless. The most important part of monitoring is knowing what you want to monitor, but the documentation for hardware and software aren’t generally very specific. “Monitor the event logs for stuff with Red by them” isn’t useful. SNMP MIBs without any corresponding declaration of ‘normal’ is a start, but it’s not good. It’s time-consuming to start from scratch (even from “Best Practices” whitepapers) and try to figure out what to monitor, what’s normal, and what the severity is when things aren’t normal.
The best documentation for monitoring Microsoft products (or anything with a SCOM management pack), is the management pack. Load up a SCOM console (eval copy works fine), download the free MPViewer utility, download the management pack(s) you need, install them, then open MPViewer and view the management pack contents. Discovery is much more difficult with Nagios (an exercise for the reader), but if you’re looking for monitors and rules for 90% of use cases (eventlog id’s, service status, perfmon counters, network status), it’s pretty trivial to convert to NSClient++/NSCP checks. Someone savvy enough could probably automate a great deal of it, though I bet Microsoft’s lawyers might object….
Ever notice that the Park – Reverse – Neutral – Drive (“PRND”) in an automatic car is “paranoid” without the vowels? Also matches:
My WordPress installation sent me an email this morning, saying I was the only person with a blog who hadn’t written about heartbleed, and I only have one thing to add, really.
Heartbleed describes a bug in OpenSSL, most succinctly explained by the xkcd: Heartbleed Explanation comic. It’s a routine programming bug, but the incomprehensible aspect is that the OpenSSL authors actively worked around system malloc’s and rolled their own: to make you vulnerable that much faster (“exploit mitigation countermeasures”). Other bugs that have been logged for years are presumably being reviewed. Nothing new to add there.
But I say that critical infrastructure exploits should all have better names, though ‘heartbleed’ isn’t bad — a heartbeat function that bleeds information. But instead of rolling your own, or going by generic CVE entries, we should pre-allocate alphabetical names, like they do for hurricanes. Except I’d name them after waitresses, not just generic female names. So, instead of ‘heartbleed’ we’d start with ‘Amanda.’
- Amanda (one of my favorite waitresses)
- Betty (I don’t know a waitress named Betty, but I imagine she’d be really good).
- Chelsea (who isn’t a waitress any more; she’s a parole officer).
- Dotty (Like Betty, I don’t know a waitress named Dotty. I bet Dotty’s a good waitress, but not as good as Betty).
- and so on.
Everyone could have action plans and themed PowerPoint templates ready. Next critical infrastructure bug? Pull out the “Torie” slides, and Bob’s your uncle. That’s all I have to say. Thanks.
SCCM 2007 report to show patch status details per Update List and Collection. You can get here by drilling down 4 reports deep, individually, for hundreds or thousands of your servers, or you can just run this, throw it into Excel, and filter and munge at will. Much faster.
-- Shows all patch status details, given an Update List and a Collection. Export it to Excel and monkey with it there. -- Based off of the stock "Compliance 1 - Overall Compliance" report. DECLARE @AuthListLocalID AS INT SELECT @AuthListLocalID=CI_ID FROM v_AuthListInfo WHERE CI_UniqueID=@AuthListID SELECT fcm.Name, ps.UpdateID, ps.ID, ps.Title, ps.QNumbers, ps.LastStatusMessageIDName, ps.LastStateName, ps.AgentInstallDate, v_UpdateInfo.DatePosted As UpdateDateReleased, v_UpdateInfo.DateRevised AS UpdateDateRevised, v_UpdateInfo.InfoURL AS UpdateInfoURL, v_UpdateInfo.Description AS UpdateDescription FROM v_UpdateInfo INNER JOIN v_GS_PatchStatusEx AS ps ON v_UpdateInfo.CI_UniqueID = ps.UniqueUpdateID INNER JOIN v_FullCollectionMembership AS fcm ON ps.ResourceID = fcm.ResourceID INNER JOIN v_CIRelation cir ON cir.ToCIID= v_UpdateInfo.CI_ID INNER JOIN (v_CICategories_All INNER JOIN v_CategoryInfo ON v_CICategories_All.CategoryInstance_UniqueID = v_CategoryInfo.CategoryInstance_UniqueID AND v_CategoryInfo.CategoryTypeName = 'Company') ON v_CICategories_All.CI_ID = v_UpdateInfo.CI_ID WHERE fcm.CollectionID = @CollID AND ps.AgentInstallDate IS NULL --this shows errors only. Comment it out for reports on installed updates. AND cir.FromCIID = @AuthListLocalID AND cir.RelationType = 1 ORDER BY fcm.Name ----------- -- Create two prompts, for Update List, and Collection -- -- -- AuthListID -- Update List ID (Required) begin if (@__filterwildcard = '') select distinct CI_UniqueID as AuthListID, Title as Title from v_AuthListInfo order by Title else select distinct CI_UniqueID as AuthListID, Title as Title from v_AuthListInfo where ((CI_UniqueID like @__filterwildcard) or (Title like @__filterwildcard)) order by Title end ------- -- CollID -- Collection ID (Required) begin if (@__filterwildcard = '') select CollectionID as CollectionID, Name as CollectionName from v_Collection order by Name else select CollectionID as CollectionID, Name as CollectionName from v_Collection WHERE CollectionID like @__filterwildcard or Name like @__filterwildcard order by Name end ---
It used to be a sign of technical prowess to compose a resume in LaTeX — you wanted to take the extra effort to make a professional, beautiful document. Now, unfortunately, nobody reads printed resumes — employers just want something to copy-and-paste into a database field so they can search for whatever isolated skillset they’re looking for. Nice-looking PDF’s may not fit the bill; copying and pasting may lose all the nice ligatures. Where you mention “Office”, pasting into Word will drop the “ffi” ligature into gibberish, and you’re left with “Oce”. Unless you’re looking for a printer job, this isn’t what you want.
And, face it, almost everyone wants a Microsoft Word copy.
IT staff need to keep their resumes current, regardless of job search status. Employers may want an internal database. They may provide a bundle of resumes to prospective clients, to show off their staff competence — happened for me recently.
A lot of people have recently concluded that Markdown (in Pandoc) is an easily-maintainable and portable text format suitable for publishing resumes. For example:
Problem is that the PDF’s I’ve seen are serviceable, but they’re bug-ugly. The Microsoft Word output is nice, but you still want a decent-looking PDF.
This zip file includes a XeTeX template that I like. The Makefile also generates a Windows-formatted text file suitable for a raw copy-and-paste into online forms. Zips all the output formats into one file, so you can just email someone the whole thing. Pick one.
Name your resume something like “your_name.md” and update the “ME=” line in the Makefile to match “your_name”, run `make clean && make` and Bob’s your uncle. Thanks.
I picked up an HP t5740e thin client off eBay, as I had deployed some at a prior job. Window Embedded Standard 7 (32-bit), with 2GB RAM and 4GB flash. Set it up the way I want it, re-enable the write filter, and Bob’s your uncle. But the default HP build includes components that take up a lot of space, and I have no need for them — namely, the text-to-speech components, the natural language components, and the SAT performance tests (sample movies).
While logged in as Administrator, with the write filter disabled:
dism /online /Get-Packages
You’ll get a list of all packages installed in the running image. Find the ones you want to delete. Then delete them. Reboot.
dism /online /Get-Packages dism /online /Get-PackageInfo /packagename:WinEmb-Natural-Language~31bf3856ad364e35~x86~~6.1.7601.17514 dism /online /Remove-Package /PackageName:WinEmb-Accessibility~31bf3856ad364e35~x86~~6.1.7601.17514 dism /online /Remove-Package /PackageName:WinEmb-Natural-Language~31bf3856ad364e35~x86~~6.1.7601.17514 dism /online /Remove-Package /PackageName:WinEmb-Speech-LP-ENU~31bf3856ad364e35~x86~~6.1.7600.16385 dism /online /Remove-Package /PackageName:WinEmb-Speech~31bf3856ad364e35~x86~~6.1.7601.17514 dism /online /Remove-Package /PackageName:WinEmb-Diagnostics-Performance~31bf3856ad364e35~x86~~6.1.7601.17514
Went to extract email addresses from different Outlook .pst’s and other exported files to import into LinkedIn. Any email client will export to text files.
To extract email addresses from Outlook, try this Visual Basic script. That’s not just a Contacts export; it extracts Sender addresses from email messages.
Throw everything into one file. Then extract email addresses, as:
$ egrep -io '[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]+' < input.txt | tr "[:upper:]" "[:lower:]" | sort -u >output.txt
What perverse incentives exist to prevent Sun/Oracle from streamlining Java installations on Windows? They have FAQ items that have been unresolved for years. Don’t tell me you can’t reproduce them; I can. You’d think that routine professional curiosity would impel them to troubleshoot a live customer issue. Sheer laziness.
I had a workstation today that would not install the 6.0_update32 JRE, getting the error “error 2753 regutils.dll”.
Sun/Oracle’s ‘troubleshooting’ is worthless. Nobody else’s was any help, either, though. JavaRa gave it a good try. (Seriously, you just have a comprehensive list of registry keys and files/directories to delete. That’s all.)
So, fire up procmon, include “msiexec.exe” and see what pops up….
Simple enough. The installer thinks there’s another conflicting existing installation:
Delete the registry key (and subkeys):
So, why can’t Sun/Oracle release a utility to clean up all traces of Java? Laziness, pure and simple. This has been a pain for admins for years. Fix your installer.
cf the .NET Framework Cleanup Tool
The SAP ATP (Available To Promise) server caches availability checks in the export/import buffer, replacing database calls to RESB and VBBE.
Don’t get me started…. It’s amazing that Operations Research / Optimization / Contraint Satisfaction have come so far ( the Holy Grail of Computing ), yet so very few IT personnel even know about it….
DISCLAIMER – I DON’T DO C. And my Perl isn’t great, either.
I routinely browse the openbsd-cvs mailing list, and I saw this easy openbsd-cvs bug fix (“Fix a stupid bug in tcpdump print-bgp.c“) the other night when doing some really late-night, partial-involvement sysadmin work. So I decided to pass the time (“stay awake”) by doing a regex exercise to find similar patterns in the OpenBSD source tree.
Here’s how to handle tables returned from SAP, with PHP+SOAP.
Out of high school, I worked in a nursing home, in the diatetic department [which means "kitchen"]. I washed dishes and set up the tables for the residents.
Lillian was an old woman. She had liver spots the size of quarters. She had Coke-bottle glasses [Literally. They were thick.]. She was diabetic and had one leg amputated above her knee, and she was, of course, in a wheelchair. She was a very sweet woman, but her faculties had left her, for the most part, and she wasn’t too keen about what was going on.
Her husband John was an old, overall-wearing farmer, and he came in every day before lunch. He’d wait while the nurses assistants got Lillian ready for lunch, sitting out by Lillian’s table. He’d help her eat lunch, and then he’d spend the day with her. She’d nap, or watch the kids come in for piano recitals, or play Bingo, or get her fingernails done, or roll her wheelchair around, or nap, or just watch Lawrence Welk, or just spend the afternoon doing nothing.
John helped Lillian eat supper, and when the nurses assistants came to take her to bed, John took his van and went home.
One day, John was sitting out at the lunch table, waiting for the assistants to bring Lillian out, and one of the other women, Lenora, asked John, “John, you know she would never know if you didn’t come. You have so many other things you could be doing. Why on earth do you come here every day?”
And John said, “Because I said, ‘For better, or for worse.’ And I meant it.”
Well, Kristi, I said for better or for worse, and I meant it. Happy 15th anniversary. We’ll see who’s pushing who around the nursing home, later…..