Technology Solutions for Everyday Folks

Tagged with 'automation'

Implementing Certificate Authority Authorization

During the foray into fixing up the Let's Encrypt root certificate expiration bits for my affected bot host, while using the helpful SSL Server Test tool, I discovered the "new" (not really new) Certificate Authority Authorization (CAA) DNS record.

Read More

Keeping the Wireless On - Script the Reconnect

Electric arc between two plasma globes

In our classroom fleet, almost all devices are wireless-only for their network access. This as a design is great for mobility and flexibility and the user experience but presents its own set of very unique challenges on the technical side. At various times and for a wide range of reasons, we encounter the situation where devices "lose" their wireless/Wi-Fi connection. Resolution usually involves dispatching a tech to the space or walking a user through, under most circumstances, simply "reconnecting" to the proper SSID.

Read More

Breaking the Chain: An Edge Case of Let's Encrypt Root Certificate Expiration

It's been written about and announced for some time—the forthcoming expiration of the DST Root CA X3 certificate. The good news for most folks is that it's not a big deal. And that, I thought, also included me. For the most part, this has panned out to be true.

Read More

Whoops! Cleaning up Mistakes via API

Gif with "I've made a huge mistake" as caption.

Posting again after kind of a lengthy break. It's summertime, and for lots of disparate reasons I've queued up topics but haven't had the ambition or taken the time to write them all out. So today we get a tale of automation mistakes and the subsequent cleanup.

Read More

Reinstalling reCAPTCHA

In the last post I wrote about finally cutting off the comments feature due to an abundance of spam.

For about two days, this was successful...

Read More

A Twitter Bot for Dad Jokes

About a month ago, I discovered this gem of a tweet:

Read More

Git-ting the hang of Hooks

Several months ago I made the decision to finally use Git to manage a more complex "legacy" web application project that I inherited over a decade ago and continue to maintain. Years ago when migrating the web application to a new hosting stack, I ported the development/test and production sites into their own Git repositories. Thanks to the magic of GitHub, it made the actual migration to a new host pretty simple in that the migration itself (save for the database bits) was more or less a simple git clone action.

Read More

My First Twitter Bot: A Journey into Twitter's API

Dancing Robot

Sometime around Thanksgiving/November 2020, I formalized the idea that I would actually build a Twitter bot for the sake of novelty and as an experiment/learning exercise. One night at suppertime, we discussed what might be cool as a bot and those ideas are still on the list as possibilities for the future. Ultimately, I settled on a bot idea that built on some things I've used in the past (Google API) so I wouldn't have to learn All The Things in addition to building a bot and figuring out the Twitter API.

Read More

Exporting Legacy/Archival Emails with Google Apps

At work, we've had a number of folks retire over the last 18 months, and a number of those folks are holders of some significant institutional knowledge and memories. Recently I had the opportunity to work with one of these individuals as they prepared to both hand off information to others, which led me to recall several conversations I've had with my Libraries/archives friends about preserving the "right" subsets of digital messages such as email.

Read More

My Incremental Certbot Panacea

I've written about Certbot more than any other topic in the last 24 months or so, in part because it's been an interesting adventure for me both in helping to demystify SSL certificates, but also because it's been an evolving and incremental process to Make It Better. The first post I'd written in February of 2019 talked about using a web service to generate a Let's Encrypt certificate...good for 90 days...for free.

Read More

Automating Certbot: A Recap of My Journey

Long winding road

Over the last two months, I've shared what amounts to a four-part "series" of posts walking through my journey of using Certbot for SSL certificate management, with the primary challenge being not having the traditional root-level access on the web server. Those posts are, in order:

Read More

Certbot in Manual Mode with Script Hooks

If you've been following along in the mini series, I've gone over the details of using Certbot in manual mode, then bolting some simple scripts together to improve the process of generating and managing certs, all done with a bit of magic thanks to our old friend key authenti

Read More

Improving Manual Certbot Domain Validation

In my second post about using Certbot in manual mode, I address some of the 'pain points' from the first post: namely the process of scripting together some of the bits to create/renew a certificate and otherwise requiring fewer individual commands be entered (or remembered).

Read More

Moving to Certbot with Let's Encrypt

This is the first post in a short series of posts about automating what one can in an environment that might not support full-automation with Certbot and Let's Encrypt. Technically it's the second post as the first was geared toward setting up key authentication between systems, something that's leveraged significantly in this series.

Read More

Quick Tests of WQL Queries

Recently I was working on a clean-up/improvement project in the MEMCM (SCCM) console which required some WQL query work and updates. In particular, I was fiddling with some collection queries to segment some areas for a process improvement project coming up. That's intentionally vague, because the 'why' in this case doesn't really matter. What does matter is that I needed WQL to give me proper results.

Read More

Auto-Power On Dell Workstation

Cartoon characters join together with "Let's Power Up!" as a caption.

As we begin another academic year, this time in a pandemic, we're providing more virtual/remote desktop access to computer lab and public-access workstations for those in need. We're starting by using the machines taken out of general service due to physical distancing requirements. These workstations are still powered on, but we've removed their keyboards, mice, and fiddled with their monitor configurations (along with basic signage) indicating they are not in service (at the console/in person).

Read More

Formulas in CSV Files

Bad Magic Trick with a ladle for cooking

A while back I received a call for assistance in helping to streamline an inherited process. In this particular case, an individual had created a complex (but necessary) process to essentially transform and move data between disparate systems. The employee(s) responsible for creating this process had since left, but the process remained and needed to be manually done often enough that it was painful enough for the person now responsible for the process to ask for assistance.

Read More

Setting Up Key Authentication

Hands playing with a set of keys on a ring.

While I was preparing to write an upcoming post about moving directly to certbot from SSLForFree now that they've merged with ZeroSSL, I realized that I'd not actually ever written a post about one of the components I use all the time, including for my new certbot process: public key authentication.

Read More

Pushing Data Into Google Sheets Sheets (Yes, Multiples)

Screenshot of basic sheet including multiple tabs/sheets (Excel)

If you recall from the last tech post about pushing data directly into Google Sheets, I promised a follow-up regarding the process of adding multiple sheets worth of data to a given parent sheet.

Read More

Programmatically Push Data to Google Sheets

Screenshot of a very basic CSV file of gibberish test data

I've written in the past about the ability to ship files to Google Drive via its REST API and PHP, which is a super-cool process in and of itself. In the last few months, I've been moving more and more of our internal data shipping processes to Google Shared Drives for ease of end user access. As folks started working remotely, moving data to Google has solved several support burdens regarding access and such.

Read More

Character-Perfect Fixed Width Import Files

Flintstones Cartoon Sewing Machine

One of my springtime projects at work was to button up a recently-refreshed process to transmit some billing data between systems. By 'recently-refreshed,' I mean 'finally made a process whereby a human doesn't have to manually generate a file which had been the de-facto process for the better part of twelve years. Due to the cascading effects of some staff turnover in the unit in question, IT was brought into the loop to help find a better way to work this process.

Read More

TRIM-ming up for Summer

Trimming a hedge with lawnmower attached to tractor loader

Not really TRIM-ming for summer, but taking the opportunity to briefly write about Rule #1 when dealing with unknown (or incoming) data.

Sanitize. Thy. Inputs.

Without going into great detail (as it doesn't matter at the end of the day), last week I encountered a vendor that apparently doesn't know how to do this very well. Or at all. What ultimately transpired is the complete failure of a reasonably-routine change process to capture a critical failure in production.

Read More

Visual Customizations for Windows 10 in OSD

Windows logo

As we work through the tail-end of our Windows 7 fleet (January 14, 2020 is coming if you haven't heard...), I've found myself rolling a different type of hammer process for the last of the "upgrades." This past week as I was tweaking what amounts to an in-place update (by way of wipe and load) for Windows 7 to Windows 10, I was reminded of how Past Me was indeed awesome (and inspired) since this simple script with all the various background and image sizes still works in Windows 10 19XX deployments.

Read More

Collection Variables in SCCM Task Sequences

Hello my name is {X} tag

As I've mentioned a number of times in previous posts, on our campus we perform a roughly-annual refresh of multi-user workstations across the institution. This 'multi-user' scope includes machines in classrooms, computer labs, open learning spaces, conference rooms, and so forth.

Read More

Environment Context Troubleshooting

Dashed and dotted lines

Broken Context(s). The story of my weekend project.

Due to a number of reasons, mostly well outside my direct control, I spent part of this weekend working through the application and task sequence refresh process for our multi-user workstations...which will need to be finished by August 27.

Read More

Dynamically Created Anchor HREFs

Multiple Arows Crossing Paths

Back in the day, namely before Javascript and jQuery were really a thing, the idea of dynamically creating an anchor's HREF attribute required some serious magic and behind-the-scenes wizardry. Or something like Flash. Those were not the days...

A Bit of Background

Several years ago, during a client's web app rebuild/refresh, I decided to clean up some of the gnarly baggage behind their reporting mechanism.

Read More

Auto-Determine Primary IP Address

IPv4 address representation in dotted-decimal notation

One of the things I've baked into our production task sequence for "multi-user devices" is a secondary way to automatically determine a device's use case while in the WinPE stage. The primary, preferred way to determine use case is by the use of SCCM collection variables, but those require a known object (in the proper collection) to function as designed. Thus, for all rebuilds of known devices, the use case is figured out by collection variable.

Read More

Batch Ship Data to Google Team Drive

Moving Data

A few weeks ago, I wrote a brief bit about capturing webcam images. This post expands on the initial process: specifically, what to do with the images once procured.

Read More

Capturing Your Internet-Connected Webcam Images

Puppet bird with binoculars

Over the years, we've had a few public Internet-connected cameras pointing at various places around campus. We've used them for publicity and other purposes since the mid-1990's, and starting in around 2010 would sometimes be called upon to create a sort of time-lapse video of activity from one of said cameras.

Read More

Windows Scheduled Tasks with Powershell

Mechanical Mathematical Calculator

As I struggled to find looked for inspiration for this week's post, I wound up looking within...oddly enough as I was reconfiguring my email out of office response (the below is what I had for my time at MMS):

Read More

MMS: Drinking From the Fire Hose

Drinking from the fire hose

I spent last week at MMSMOA, a conference I cannot recommend enough for anyone working in the Microsoft/Windows/Systems Management space. The main event, held at the Radisson Blu Mall of America, is a solid four-and-a-half days of deep technical material, networking, sharing, and more!

Read More

Performance Can Matter

Performance Measure

I've had this written down as a topic suggestion for some time, and to balance/counter my post a couple weeks ago regarding performance, there's absolutely another side to that coin.

Read More

Does the Performance Matter?

Does it matter?

Back around 2015 or so, I wrote a simple Powershell script which basically re-populates Active Directory (AD) group membership based on data procured from our central systems. Two primary AD groups in particular are synchronized to our print management system, PaperCut, which pre-provisions accounts and access so folks handling monetary transactions don't have to create accounts, etc.

Read More

It's Presentation Season!

Wizardry

As I mentioned a month ago, I've taken the opportunity to commit to more speaking/presentation engagements than ever before, in an attempt to better inspire folks and do more technical evangelism. It just happens to be that I have three things lined up in as many months!

Read More

Auto-Transpose Data

Geeks and Repetitive Tasks Graph

Many years ago, an individual in our office retired and the position was not replaced. For several reasons, this was an appropriate decision: the landscape of IT and our localized service portfolio had, for lack of a better phrase, stabilized. Our team was more often innovating in ways involving or prioritizing partnerships over custom builds or infrastructure requirements. We were appropriately consuming centralized services made available as a commodity.

Read More

Auto-Generate OSD Computer Name

Typos Happen

Last summer while re-designing and upgrading our primary task sequence for the "multi-user devices" in our fleet (computer labs, learning spaces, etc.), I decided to tackle what had become a bit of a perennial problem: device naming.

Read More