• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Clatent

Technology | Fitness | Food

  • About
  • Resources
  • Contact

The Blog

Read-Only Friday January 13, 2023

January 13, 2023 by ClaytonT 2 Comments

Today’s Read-Only Friday is about retiring/upgrading servers. Don’t worry no changing code today, but with Server 2012R2 going end of support Oct 10, 2023, I want to make sure you are aware and prepared to do it. By no means is this the definitive guide to do it, but hope this helps you create or improve your process for upgrading servers. Right now, I’d put a reminder in your calendar so you don’t forget and that you have enough time to take action on those servers.

I know it will depend greatly on what is on the server, but first thing before doing anything is making sure you have a valid backup. I’m not just talking about that your backup server of choice says it backed it up successfully, but actually restoring the server/files needed from the backup to ensure it works. We are decommissioning it for a reason, but while going through the process we want to make sure we have a backup just in case.

Next, I’d go through the server and make sure all services/software are documented as well as any important files. Even if you have documentation, I’d double check that all of it is correct, and that someone didn’t go out of scope and install something on it without documenting it. The last thing you need is when you shutdown the server or setup the replacement server that a department can’t do their work because the product they need isn’t online anymore.

A PowerShell one liner I’d recommend is “Get-WindowsFeature | Where installed” for one computer or you could run “Get-WindowsFeature -computername serv01,serv02 | Where installed” then you could pipe it to CSV or Excel to make it easier for documentation.

Then to get all programs installed

$InstalledSoftware = Get-ChildItem "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall"

foreach($obj in $InstalledSoftware){write-host $obj.GetValue('DisplayName') -NoNewline; write-host " - " -NoNewline; write-host $obj.GetValue('DisplayVersion')}

This can be exported as well for easier documention as well.

Now that we know we have good back ups, we know what services/applications installed, and we did a once over for any out scope configs, I would ask your team to look over what you have to make sure nothing was missed. The more you do these, the less time it will take, but it’s always good to have a second set of eyes on it.

Great, with it having a second set of eyes on it, we can now build the new machine. Depending on your virtualization platform(Hoping you a test environment, if not look at AutomatedLabs), I’d create a PowerShell script to build the server, or if you have templates already, I’d use PowerShell to make the copy then configure IP and any one off applications and servers, as well as any files that would need to be on it. Make sure all windows updates are done to ensure none of them will break it. Once you have confirmed everything is working on the newer server os, you can now deploy it to production(Make sure to turn off the old one if it will cause issues). Before deploying it to production, I’d send out communication to users in case for some reason there is an issue, they will let you know right away or if there is anything they have to do on their side.

At this point I’d put all of the documentation for the new server together if you haven’t already which should be easy, as most of it is right in scripts. Once the new server has been working for a safe amount of time as it will depend on the importance of server, you can remove the old server and test server from your host(s).

I could definitely go in more depth on this, and if you have any questions on checklists or what to actually keep for documentation, let me know and I’d be glad to help out.

And yes, I know this is a Read-Only Friday topic, but most of the hard work is on the planning/documenting side which you can do on Read-Only Friday.

Tagged With: Automation, Documentation, EOL, PowerShell, Read-Only Friday, Upgrading, Windows Server

One-Liner Wednesday January 11, 2023

January 11, 2023 by ClaytonT 2 Comments

It’s Wednesday already, is that good or bad for you? Hoping it’s a good thing, and hoping todays one-liner makes it even better.

$Path = $env:TEMP; $Installer = 'chrome_installer.exe'; Invoke-WebRequest -Uri 'http://dl.google.com/chrome/install/375.126/chrome_installer.exe' -OutFile $Path\$Installer; Start-Process -FilePath $Path\$Installer -Args '/silent /install' -Verb RunAs -Wait; Remove-Item -Path $Path\$Installer

What this one-liner will do is go out and fetch chrome and silently install or update it. Then it will delete the installer after it has been installed. You could add lines for logging in case you had other software that you wanted to install after, but I feel this is a great foundation if you’ve never done it before. If you start adding logging and other features(ie. confirming it has installed), I’d definitely take it out of the one-liner format for ease of reading/troubleshooting unless for some reason you need to keep it as a one-liner.

You can do this with many applications, you just have to make sure the URI and switches(Args) are correct.

Tagged With: App Deployment, Applications, One Liner Wednesday, PowerShell

Module Monday January 9, 2023

January 9, 2023 by ClaytonT Leave a Comment

It’s another Module Monday, but this time it isn’t really a module, but a script, that I think in the future could be turned into a module with even more functionality. I came across this script when I was looking for a quick way to download Window ISOs easily. I mean, who isn’t tired of going through all the clicks just to get a Window’s ISO from Microsoft?

This script finds Windows 11 ISOs and goes all the way back to Windows 7, but hoping you don’t need those for your own sanity. It does only cover home, business, and education, but that is becauase those are the most common.

It’s so nice just type in .\fido.ps1 win 11 -rel latest and this will download the latest version of Windows 11 for you? Why not put it in a scheduled task, so you don’t have to worry about downloading the latest version? Or if you or someone on your team needs a certain version you can just type in -win 10 -rel 21H1 and you know you have the right one? It also downloads very quickly as well.

Hope this saves you as much time as it has for me!

GitHub:
Fido

Tagged With: Automation, ISO, Module Monday, PowerShell, Windows

One-Liner Wednesday January 4, 2023

January 4, 2023 by ClaytonT Leave a Comment

Today’s One-Liner Wednesday is one that is overlooked by many, but is very useful. It’s one of the basics that everyone should know or use. I’ll show you a few different options of it as a reminder for some and new knowledge for others.

Get-Help ModuleName -Online

This will give you a fully searchable web browser window for the help documentation of that module. This has helped me many times instead of trying to use the console window then all of the code you were working on is up above.

Get-Help ModuleName -ShowWindow

Does the same but opens it up in a different window that is searchable as well except it doesn’t support provider help.

Get-Help ModuleName -Examples

You would run this if you just wanted to see the examples for this module, and didn’t want to see anything else. You can do this for each of the help parameters as well if you just want one section of the help.

Get-Help -Name sql

This will search all the help articles and return any with the word SQL in it. You can use wildcards in this as well.

Get-Help about_*

This is another great one, this allows you to see all available conceptual articles, then you can pick which one you want. You can use wild cards on this as well to filter the results to more targeted information. Did you know there is an article for automatedlab_office ? Check it out and see!

Hope you found this helpful and be sure to check more out on get-help below as there is so much more it can do.

Microsoft Learn:
Get-Help

Tagged With: Help, One Liner Wednesday, PowerShell

Module Monday January 2, 2023

January 2, 2023 by ClaytonT Leave a Comment

Happy New Year! Welcome to the first Module Monday of 2023. This is also the first official Module Monday posted on here. I’ve put most of last years posts on there for easier searching. I’ll be adding other content and longer content on here, so be sure to keep checking back. I’m still updating the site, but wanted to get the blog up so I can help more people sooner. It’s not that helpful if I just store it for myself, right?

With that said, our first module for Monday Monday is ImagePlayground by Przemyslaw Klys who I have featured here before. This is a cool module where it can help you can create and read QR Codes, read/remove EXIF data, add watermarks, create/read barcodes, and so much more.

I’m so glad I found this module so soon, and can’t wait to play with it more. I see many cases that this module will be useful. A few ideas are for formatting images for documentation and/or blog posts so they are all the same, adding watermarks to each, and converting a bunch of images files to fit certain criteria depending on the site I need to upload to.

How do you see using it?

PowerShell Gallery:
ImagePlayground/0.0.4

GitHub:
ImagePlayground

Tagged With: Module Monday, PowerShell

Read-Only Friday December 30, 2022

December 30, 2022 by ClaytonT Leave a Comment

Last Read-Only Friday of the year! I’m hoping you have enjoyed these, One Liner Wednesday, and Module Monday this year. I’ve enjoyed creating them and hearing how helpful they have been for you this year. Don’t worry they will be coming back for 2023. I may be making some changes a bit, but only for the better. Are there any topics, concepts, and/or modules you’d like me to cover in 2023? I’ve already started a list, but would love your input on things you’d like to see, as I know it would help others as well.

And for today’s Read-Only Friday?? If you don’t have any deadlines you need to get done by today… just relax. Look over some documentation, check on all your systems, ensure everything is working. If everything is… take screen shots and take photos where necessary so you have a last known working configuration of each. These can save you hours of time if someone bumps a wire by accident or if a vendor moves something they shouldn’t have, you can match up to these photos/screenshots/configs and see what has changed. Other than that, enjoy your day and have a great and safe weekend!

Tagged With: Automation, PowerShell, Reporting

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 12
  • Page 13
  • Page 14
  • Page 15
  • Page 16
  • Interim pages omitted …
  • Page 20
  • Go to Next Page »

Primary Sidebar

Clayton Tyger

Tech enthusiast dad who has lost 100lbs and now sometimes has crazy running/biking ideas. Read More…

Find Me On

  • Email
  • GitHub
  • Instagram
  • LinkedIn
  • Twitter

Recent Posts

  • New EntraFIDOFinder Module Version Release!
  • Did you know there is a Giphy rating in Teams? Custom Maester Tests save the day
  • Learning ValidateSet in PowerShell: Valid Values Only
  • Teams Chat and PowerShell – How to add value!
  • EntraFIDOFinder: New Web UI and Over 70 New Authenticators

Categories

  • 365
  • Active Directory
  • AI
  • AzureAD
  • BlueSky
  • Cim
  • Dashboards
  • Documentation
  • Entra
  • Get-WMI
  • Learning
  • Module Monday
  • Nutanix
  • One Liner Wednesday
  • Passwords
  • PDF
  • Planner
  • PowerShell
  • Read-Only Friday
  • Reporting
  • Security
  • Uncategorized
  • Windows
  • WSUS

© 2026 Clatent