Category: Work

  • Halfway Ninja

    There comes a point in every major product migration (and let’s not talk about the fact that this is the second of this exact kind of migration we’ve done in six years) when you’re fully in the thick of it and you realize that you’re at that magical, meaningful turning point: There are more of [thing] in the new system than remain in the old system.

    We hit that point today in our migration from ConnectWise Automate to NinjaOne. 1200+ agents in the latter, fewer than 1200 remain in the former. (And it’s a safe bet that some of those 1100-or-so are zombie agents which haven’t checked in for a while, and many of those probably won’t before this is all over. Oh well!)

    Considering that I’ve been the one doing 99% of the work, I’m glad to see that this project is finally on the downslope. Hopefully by the end of January it’ll be finished. Mind you… we have our several largest and most finicky clients remaining to move. Starting with any of them simply wasn’t an option. So, here comes some real fun.

    Still. It feels good to hit this milestone.

  • On-Condition-Al

    I’m not going to go into all the boring technical details, but today I faced an immediate need to change a particular local account password across hundreds of machines, ASAP. For all the computers still in our old management system, that was easy (albeit tedious) since I’ve already built the rigging for that, years ago.

    In the new system, though? The one we’ve only started migrating clients to in the last few weeks? I had nothing.

    By pure luck, however, earlier in the morning I’d found a way to use Conditions in Policies to trigger scripted actions on a faster timetable than the “once per day at a precise time” scheduling option otherwise available. Handy! Thus I incorporated the technique into the password-change system. The flow goes something like this:

    1. Create a new Custom Field, single line of text, to be populated by the password change script once the needed steps are completed. Value will be in ‘YYYYMMDD’ format, so 20241108 for today’s event.
    2. Create the script that does the thing. Test it. Test it some more. Fix the things that turn out to be wrong once you put it into production. Hmm, wait, I’m getting ahead of myself. Anyway.
    3. Go into the Policy for the type of system (Windows Workstation, for instance) that you need to do this for. Add a Condition, which is the mechanism for triggering an alert state. Set it to see if the new Custom Field value is not set to the current day’s event value, and if the condition “triggers” then have it run the script.

    And weirdly enough, that’s all there is to it. For future events all I have to do is edit the script to change the local account password and update the Custom Field with a new event value, then set the Policy’s Condition to look for that event value. As machines check in online and “trigger” the Condition, the script will run. Fully automated.

    This is the fun part of my job. Mind you, having to do it under high-pressure conditions in a hurry took a lot out of me today, but… I did get it done.

  • Case Opened. Case Closed.

    In February I ran into a tricky problem having to do with tracking the movement of agents in our RMM (“Remote Management & Monitoring”) system. I opened a ticket (01916099 just for the sake of record-keeping) with the vendor.

    I updated the ticket in April asking if anyone was going to get back to me.

    I updated the ticket in May asking if anyone was going to get back to me.

    Along the way I pinged our account rep who insisted someone would get back to me.

    Today? More than eight entire months later? Someone got back to me.

    We sincerely apologize for the inconvenience. I will be closing this case now.

    Fern, from the FREIREN anime, eloquently expressing the same reaction I had, only far more calmly.

    Fine, fine customer support they’ve got over at [redacted]. Lovely. Their ticketing system won’t even let me reopen the ticket, despite a button being labeled for such. And they wonder why clients are jumping to other vendors’ products.

  • What’s starting, when, exactly?

    If I had to see this, then so do you.

    Arrows added via screenshot utility for emphasis. Names NOT changed to protect the guilty.

    A few minutes ago I received a marketing email in my work account from SkyKick, an outfit that does some cloud-related stuff related to Microsoft’s cloud offerings, like migrating email from local Exchange to Microsoft 365. We do business with them so actually blocking them would be counterproductive (supposedly), fine, whatever.

    But. At 4-something in the afternoon (the day before, and a federal holiday no less) I have a very, very hard time believing that they have a webinar starting 2 hours from right now. Especially since the start time is also clearly stated as 11 o’clock (Eastern, because the entire business world operates on US Eastern Time, right?) tomorrow.

    All I can figure is that somehow it being 6pm Eastern right now is translating to… two business hours before 11am Eastern tomorrow? I guess? Dunno, seems wibbly-wobbly timey-wimey to me.

    Not that I care. They’d have to pay me serious money to get me in attendance for a Microsoft Copilot (hawk, spit) presentation. Yuck.

  • PowerShell Fun: MX and SPF Lookup

    I don’t talk about work very often here, mainly because there’s not much to talk about. Every day’s a mix of new challenges and the same old song & dance… and the dance usually involves backups, somehow.

    Today, though, I dug in on a request to at least partially automate the task of retrieving and storing certain information about email domains in our client base. What better way to do that then with some PowerShell tinkering?

    (Don’t answer that question. I know there are better ways, for various values of “better.” PS is the toolkit I need to use for work-specific reasons, let’s leave it at that, shall we? Play nice.)

    (more…)
  • I Just Wanna Download

    It shouldn’t have been this difficult.

    (more…)