Do you have photos and videos that you have taken over the years that are scattered all over the place? Do you want to have all your photos and videos organized? Do you want all your photos and videos to have a standardized naming scheme? If you answered YES to these questions, then this is the post for you. In this post, I will provide you with the PowerShell code and examples for how to use the Media Sync script. The Media Sync script utilizes the Shell.Application COM object to gather file metadata. Only files that have a picture or video metadata type will be processed. The script uses the date taken for pictures and the media created metadata fields to organize the photos and videos. If there is no date taken or media created available for a given file, the script will use the modify date instead. The script also ensures that you won’t have any duplicate files by checking the file hashes of the two files in question. If the script detects duplicate files, it will only keep one copy of the file. There are also tools included to help you cleanup unwanted files or folders, delete empty directories and find duplicate files. The script has a simple menu driven PowerShell GUI similar to what I did in a previous post
. The Media Sync PowerShell script provides the following features:
This article is an attempt at describing some of my thought process when building functions. By functions I mean a command that you can execute after importing a module. I am not referring to running a script that accepts parameters and input. Having a task to complete for a function is of course the first objective. Once an idea is in mind I like to write as much as the Help section first as possible as this helps me outline and plan what I am going to do.
[vc_row][vc_column][vc_column_text]
The DevOps Collective INC is pleased to announce the return of the PowerShell + DevOps Global Summit in April of 2021.
The 2021 event will be a little bit different than those in years past, as this event will be all virtual, hosted in late April 2021. We assure you that this will not be another multi-day webinar! We will do our best to make sure you have the best experience possible. **
What does that mean for attendees?
But as soon as I started creating PowerShell modules that was more than just small time projects, I had to step up the production quality. As soon as I had written some tests, I wanted to have those tests run every time I did a pull request. This helps me catch bugs before publishing the new version of my module, and saves me from a ton of stress.
In this post, we are going to setup NetNeighbor Watch on a Raspberry Pi. NetNeighbor Watch can keep an eye on your network and send you an email when a new host is discovered. NetNeighbor Watch is done completely in PowerShell. The results are very similar to those of arpwatch. NetNeighbor Watch is for anyone that wants more visibility into the wireless or wired devices on their network. We will also setup a weekly email report with all of the known hosts on your network. In this post, I will walk you through the entire process of setting this up from scratch on a Raspberry Pi, lets get started!
Do you have PowerShell code that you reuse in your scripts over and over? Do you have server names hard coded in variables? Are you using a text file or CSV file to import server names? Do you find yourself only utilizing one server out of a cluster of servers to make your PowerShell commands? These are the questions I asked myself and the answer used to be YES. In this post, I will go over how you can store your infrastructure server information in a SQL database and call that data from a custom PowerShell module. By utilizing this method, you can expect the below benefits:
Managing Citrix tags can be a long painful process if done the traditional way through Citrix Studio, that is what drove me to PowerShell for this task. Citrix Studio is a great tool, but it can be very time consuming especially if you have to do bulk tag actions. Citrix tags can be used in several methods, but I have focused on desktop tagging. This post will cover the following scenarios:
Over the years, I have supported and created multiple types of GUIs. I finally decided a few years ago to create a very simple menu driven PowerShell GUI. I wanted something that was very powerful yet very simple to maintain. I really enjoy automating manual administrative tasks, so that is what drove this project in the first place. Before I created the menu driven PowerShell GUI, I had directories and directories of very specific scripts to do specific tasks. I decided to standardize and consolidate all of those scripts into one menu driven PowerShell GUI. By doing this, I took the guess work out of determining which PowerShell script to run for a given task. This has greatly helped my colleagues know exactly what to run and how. Feel free to check it out for yourself at my site:
SpiderZebra.com
. While you’re there, you can take a look at a few of my other related posts:
Some of you may be familiar with the Plaster PowerShell module. This slick tool lets you build out a new module in seconds. Actually, Plaster can be used to scaffold a framework for any type of project. You can install the current version from the PowerShell Gallery. However, the project has been in limbo for a while with no updates or progress. After discussions with the PowerShell Team about the module, a decision was made to transfer ownership to the PowerShell community. We’re happy to report that the Plaster repository is now under the auspices of PowerShell.org. The GitHub repo, including pull requests and issues, can now be found at https://github.com/PowerShellOrg/Plaster. It will take some time to get re-organized and work through the backlog of issues and pull requests. Although it is possible that we’ll simply zero out things like pull requests and start with a fresh slate. The basic functionality of the module should work just fine in its current state. Enough members of the PowerShell community recognize the value in the Plaster module which is why this transfer was made. And frankly, this is one of PowerShell.org’s primary purposes: to serve the community. In this case, Microsoft had a languishing asset that needed more attention than what they could provide. Which is exactly where PowerShell.org fits in. We can step in providing the resources and in the end contribute back to the community. A big thank you to Steve Lee at Microsoft for making this possible.