![User banner](https://programming.dev/pictrs/image/c187c47a-6a9b-4cc0-99b6-16e5754fafcf.jpeg)
If I understand correctly, the signatures generated by PuTTY aren’t perfectly random, so if someone got a hold of a bunch of keys from a server, they could figure out the pattern. It takes about 60 keys. This affects not just PuTTY, but also FileZilla, WinSCP, TortoiseGit, and TortoiseSVN.
In other words if you have NIST P-521 keys, or any others using 521-bit ECDSA, you should revoke them and generate new key pairs. After you update your software.
I installed some security cameras around my house and set up Shinobi using an old PC. Unfortunately the PC is too old to use the built-in detectors in Shinobi. So, I took my first dive into playing around with some image detectors.
I wrote some python to download the daily recording from old PC to a newer one with a 3080 GPU. Then checks the videos for people. It will then trim the videos to only include times were there are people in frame. It cut my the storage requirements by over 95%.
If you are like me and have multiple machines you work on with different profiles, it can be difficult to remember which profile contains which functions. So, I wrote a quick function that will dis…
![Display Profile Functions](https://lemmy.blahaj.zone/pictrs/image/c64cce5d-528f-4ffb-ac41-e933cede89c9.png?format=webp&thumbnail=256)
If you are like me and have multiple machines you work on with different profiles, it can be difficult to remember which profile contains which functions. So, I wrote a quick function that will display all the functions for me on start up.
This script contains functions to help you identify potential runbooks still using Run As accounts. - Find-AutomationRunAsAccounts.ps1
![This script contains functions to help you identify potential runbooks still using Run As accounts.](https://programming.dev/pictrs/image/f332b4f0-532e-498d-a2f9-ead584e82a07.png?format=webp&thumbnail=256)
Azure Automation Run As Account will retire on September 30, 2023 and will be replaced with Managed Identities. Before that date, you'll need to migrate your runbooks to use managed identities.
However, just the presence of a Run As account doesn’t mean a it is being used. Often these were just created during the automation account provisioning. This script help to determine if you are using the Run As account by search through the runbooks to find references to the Run As Account actually being called. Then finds the last time the runbook was executed. If no date is returned, then the runbook has not executed in the last 30 days.
For some reason their API would not return anything for assembly. I was curious to see where it would rank too,
Apparently it due to an issue with Kotlin - https://github.com/code-golf/code-golf/issues/151#issuecomment-1126266250
![the background blur](https://programming.dev/pictrs/image/12945cdf-824c-4458-9701-4f481b83a661.png?thumbnail=256&format=webp)
![](https://programming.dev/pictrs/image/12945cdf-824c-4458-9701-4f481b83a661.png?thumbnail=1024&format=webp)
I was looking at code.golf the other day and I wondered which languages were the least verbose, so I did a little data gathering.
I looked at 48 different languages that had completed 79 different code challenges on code.golf. I then gathered the results for each language and challenge. If a "golfer" had more than 1 submission to a challenge, I grabbed the most recent one. I then dropped the top 5% and bottom 5% to hopefully mitigate most outliers. Then came up with an average for each language, for each challenge. I then averaged the results across each language and that is what you see here.
For another perspective, I ranked each challenge then got the average ranking across all challenges. Below is the results of that. !
Disclaimer: This is in no way scientific. It's just for fun. If you know of a better way to sort these results please let me know.
Enums were introduced to PowerShell in version 5.0 and can be used as a simple way to validate script and parameter input.
Go beyond comment-based help. Bring your own module and learn how to create the documentation to support it.
Announcements!
- Desired State Configuration (DSC) Planning Update \ A fun and informative blog post sharing the exciting plans and roadmap for Desired State Configuration (DSC), including plans for compatibility, transparency, cross-platform support, and more.
Blogs, Articles, and Posts
- Find enabled local Group Policy settings with rsop.msc and PowerShell \ When it comes to GPO troubleshooting, you might want to find settings that are configured by local Group Policy. With rsop.msc, a graphical tool is available for this purpose. However, it is generally more efficient to generate a report using gpresult.exe and evaluate it with PowerShell.
- Your Getting Started Guide to PowerShell Approved Verbs \ Discover how to get started with PowerShell Approved Verbs to make sure your scripts and code is top-notch in this ATA Learning tutorial!
- How to optimize and speed up your PowerShell scripts \ My best practices, tips and tricks working with PowerShell This is a blog post that is not deeply technical. I will not go deep into the tips and tricks, because you will learn this automatically when you have more experience & when you are ready. I have a seperate blog post about best practices, tips … Continue reading How to optimize and speed up your PowerShell scripts
- PowerShell Advanced Functions: Cmdlet Bindings and Parameters \ Part 1 of this series on advanced PowerShell functions introduces the key concepts, including cmdlet bindings and common parameters like ErrorAction.
Projects, Scripts, and Modules
- Announcing PowerShell Crescendo 1.1.0-RC1
\
This RC contains several community requested features and fixes including improved support for PSScriptAnalyzer, improvements to error handling, and the addition of
ExcludeAsArgument
property. - Using the Microsoft Graph PowerShell SDK to Generate a Mailbox Traffic Report \ Microsoft 365 makes it easy for administrators to get mail activity usage data for users. However, if you want to know which domains are sending most mail, you need to do some work. In this article, we cover how to use cmdlets from the Microsoft Graph PowerShell SDK to create reports about user mail activity over time and the traffic sent by different domains.
- ServerCertificateValidationCallback (or rather, collector) for .NET Core \ ServerCertificateValidationCallback (or rather, collector) for .NET Core - Get-WebCertificate.ps1
- About Colors.md \ When I'm having a bad day, I can spend hours just fiddling with colors and recursion. Today I wrote an HslEnumerator class which is fun because if you output it to the PowerShell terminal it just goes on producing colors forever:
- Get-AadJoinInformation.ps1 \ Get Azure AD (Entra ID) Join Information without dsregcmd
Books, Media, and Learning Resources
- From Cloud to Console: Harm Veenstra’s PowerShell Perspectives \ We had a cool chat with Harm Veenstra, the guy behind powershellisfun.com. We got into some neat PowerShell stuff like Out-ConsoleGridView and the -PassThru parameter. Harm also gave us the lowdown on when to quit the cloud and spilled the beans on running his blog. Plus, he shared how he keeps up with the quick mojo of the tech world. Tune in for a fun and laid-back tech talk!
Community
- Unlocking PowerShell Magic: Different Approach to Creating ‘Empty’ PSCustomObjects \ Today I saw an article from Christian Ritter, "PowerShell: Creating an "empty" PSCustomObject" on X that got me curious. Do people create empty objects like Christian proposes? I want to offer an alternative to Christian's article, which uses OrderedDictionary and converts to PSCustomObject.
- Simplifying Creation of Empty PowerShell PSCustomObjects using Custom Functions \ Creating an empty PSCustomObject in PowerShell is a common task, but the traditional approach can be verbose and repetitive. In this blog post, I'll walk you through a more structured and efficient way to achieve this using functions and property definitions.
Fun
- PSQuizMaster \ A module for creating and running quizzes to learn PowerShell - GitHub - jdhitsolutions/PSQuizMaster: A module for creating and running quizzes to learn PowerShell
Check out psweekly.dowst.dev for all past editions as well as a searchable archive.
Biggest things I'm seeing is CVE-2023-21709 for Exchange requires a PowerShell script to be run after patching. Also, CVE-2023-29328/29330 for Teams affect all devices (Windows, Mac, iOS, and Android).
Blogs, Articles, and Posts
- Create a Hyper-V VM to run pfSense with a PowerShell script \ In this blog post, you’ll learn how to use a PowerShell script to create a Hyper-V virtual machine (VM) toContinue Reading
- Function cannot be created because function capacity 4096 has been exceeded for this scope \ I had a long day today when my long-running script (10 hours) gave me weird errors with Microsoft Graph for Teams. Finally, I solved my mistakes and reran the hand to see if the report would be complete this time. Surprisingly, it gave me an error I'd never seen before. "Function cannot be created because function capacity 4096 has been exceeded for this scope". The error is at least weird because it's shown on a production server where I've just a handful of PowerShell modules installed, and I've never seen it on my development machine where I've over 200 modules.
- Things I use most in my PowerShell scripts \ Looking back at the scripts I created the last year, certain things always come back in most of them. In this blog post, I will show you a few and explain them.
- Find Who Created a User Account in Microsoft 365 | Audit User Creations \ In Microsoft 365, user accounts act as gateways to access resources. Unauthorized or suspicious user creations can lead to severe consequences, such as data breaches and compromises in sensitive information. Admins play a critical role in safeguarding organizational data by […]
- Ask Jeff July 2023 \ Well, this has been a whirlwind month. I hope you accomplished much and still had time to learn a thing or two. As has been the custom here, let’s wrap up with grab bag of tips and suggestions.
Projects, Scripts, and Modules
- Programmatically generate resource names with Bicep and Azure Naming Tool V2 \ RIf you’ve ever found yourself exhausted from manually using the aznaming tool through the UI to generate resource names, fret not! I’ve been there, and...
- PowerShell: Report On-Premises Active Directory Accounts that are Synchronized with Azure AD Connect \ Organizations that subscribe to Microsoft 365 and also have on-premises IT infrastructure, tend to synchronize accounts from their local Active
- Text 2 Video Narrator \ This PowerShell script allows you to create videos from specially formatted text files using Amazon Polly for text-to-speech conversion. The script reads the input text file, generates PowerPoint slides with appropriate content, and then exports them as video files. The process involves the use of AWS Polly for voice synthesis and the AWS CLI configured with a user having rights to Polly.
- One-Liner Wednesday August 2, 2023 \ Have you ever needed to create multiple 365 Groups/Security/Distribution at one time?
- Powershell Scripts for Hackers and Pentesters \ Basic of Windows Systems (history, methods , tricks) Windows Pentest Methods, Common ports/services, Basic commands Scipts (Ping-Play, Enumeration, Silent Installer) and more
- Azure Blob Storage Archive and Rehydration Management \ I've developed a PowerShell Module for managing the rehydration process of archived blobs in Azure. This script allows you to verify the status of blobs listed in a given file, determine whether they are in an 'Archive' state, and provides visibility on their rehydration status.
- PowerBits \ A collection of useful, time-saving tools for working with Microsoft Power BI
Community
- Björn Sundling. From PowerShell Developer to MVP: An Unfiltered Journey \ In our latest PowerShell Podcast, we invited Microsoft MVP Björn Sundling, on a riveting journey from being a PowerShell developer to securing Azure DevOps repositories. With a passion for speaking seeded from his first year at PSConfEU 2015, his road to the podium wasn’t easy. The podcast was peppered with a detailed discussion on the automated scanner project PSSecretScanner. Offering insights into development technologies, this episode is a whirlwind tour of community involvement and encompasses his love of sharing knowledge.
Fun
- Become the TEC 2023 PowerShell Script-Off Champion \ The TEC 2023 PowerShell Challenge Champion will be known after three rounds of frenetic script coding at The Experts Conference in Atlanta on September 19, 2023. Competitors will need a working knowledge of Microsoft 365 PowerShell, including Exchange Online, Teams, and Azure AD. Being able to think on your feet and come up with working solutions to problems is possibly a more important attribute than coding genius.
Events
- Experts Line Australia \ September 19-20 - Early bird pricing ends Aug 9th
Check out psweekly.dowst.dev for all past editions as well as a searchable archive.
Blogs, Articles, and Posts
- Reconnecting Pages with Language Variations After Copying Them with ShareGate \ Have you ever copied pages with language variations using ShareGate and ended up with a mess? Don’t worry, check out my blog post to learn how to reconnect your pages with PowerShell in a snap.
- Microsoft Office 365: How to disable the automatic creation of Online Meetings in Outlook \ In this blog post I will show how to disable the automatic creation of an online meeting in Outlook. The default behavior is the following:
- Check if TPM chip is present and enabled and retrieve version with PowerShell \ A Trusted Platform Module (TPM) chip is a specialized hardware component that provides security-related functions and serves as a secure root of trust for a computing system. It is a microcontroller that is integrated into a computer’s motherboard or added as a discrete component.
- PowerShell Out-ConsoleGridView and F7History \ I saw these two console tools for PowerShell in my newsfeed, and I like them :) This blog post will show you what they are and how they work.
- Automate Backups for Azure Table Storage with Azure Function App \ If you’ve ever used Azure Table Storage you’ve probably wondered – where is the backup option?!! I mean, you can back up SQL server or NoSQL databases, and you can back up storage blobs and Azure files, so why not table storage? Microsoft do not provide any native backup solution for Azure table storage
- 10 Popular PowerShell Tips and Tricks in 2023 \ This midyear roundup of our most-read PowerShell articles contains tutorials and best practices.
- Implementing a Code Search: Indexing Git Repositories using PowerShell (Part 2) \ This article shows how to use Elasticsearch and ASP.NET Core to implement a Code Search Service.
Projects, Scripts, and Modules
- One-Liner Wednesday July 26, 2023 \ Ever needed to check a computer or server and see how much disk space is being used?
- Orchestrating 1Password with PowerShell \ Over two years ago I authored a PowerShell Module that enabled the automation of 1Password. I created the module because I wanted to be able to:
- Unveiling a new version of M365Documentation PowerShell Module: Creating Markdown Documentation with Ease \ The Microsoft 365 community has a reason to rejoice as a new release of the M365Documentation PowerShell module was published PowerShellGallery.com. With the latest update, users can now create comprehensive documentation in Markdown format, complete with an intuitive table of contents. This feature has been highly anticipated and requested by Read more
- PS Protector: PowerShell Module Builder \ PS Protector is a small Windows utility that simplifies converting your PowerShell .psm module file(s) into Windows .NET dynamic-link library (DLL) assemblies.
Books, Media, and Learning Resources
- PowerShell Automation and Scripting for CyberSecurity: Hacking and Defense for Red and Blue Teamers \ Take your cybersecurity skills to the next level with this comprehensive guide to PowerShell security! Whether you're a red or blue teamer, you'll gain a deep understanding of PowerShell's security capabilities and how to use them.
Community
- Culture, Mentoring, and Tech: A Talk with Glen Sarti \ In this episode of the PowerShell Podcast, Glen leads us on the journey of his wide-ranging career, sharing stories about his beginnings in the Powershell world and addressing his brave decision to move across the globe for his dreams. He unravels the complex world of DevOps, recounts experiences from his first talk on “DevOps, Desktop, and Odd Socks,” and offers valuable insights into building effective mentoring relationships. At the heart of the episode is his take on driving cultural change within organizations and his compelling comparison of technical versus social skills in the tech industry. This episode encapsulates numerous nuggets of wisdom from Glen, adding value and insights for listeners at all stages of their tech career.
Fun
- Posh v0.1.1 \ Posh is a PowerShell module that makes PowerShell more fun to work with.
Check out psweekly.dowst.dev for all past editions as well as a searchable archive.
Some of my favorites:
The book I wrote. When I first talked with the publisher he asked, "what skills would you look for in someone who wants to do your job?" And that's the premise I stuck with writing it.
I feel down a rabbit hole, a few years ago wonder the same thing about C#. Here is what I found.
- C# was developed in 2000 as a successor to C++. Doubling the ++ to a #.
- C++ was developed in the early 80s as a successor to C. Adding plus (+) to a name was a common way of indicating it was an enhancement. Also ++ is the incrementing operator for C.
- C was developed in the early 70s as a successor to the B programming language. C comes after B.
- B was developed in 1969 and was derived from the BCPL language. Basically, B was a stripped down version of BCPL.
- BCPL (Basic Combined Programming Language) was developed in 1967 and was a designed as an simpler version of CPL.
- CPL (Combined Programming Language) was developed in the early 60s at Cambridge. The original name was "Cambridge Programming Language" but was changed to Combined when it was published jointly with the University of London.
Interesting. As someone who mainly deals in PowerShell, this is very similar to the Where-Object clause and could save me some headaches when I need to work in Python.
From personal experience, it seems like things outside of your normal listening don't affect too much. At least in my case, my daughter making me play the Encanto soundtrack 250,000 times hasn't affected my weekly or daily playlists.
This article is a brief introduction designed to raise awareness about the *-AzConfig cmdlets in Azure PowerShell. These cmdlets, introduced in the Az …
That's pretty similar with what happened with me and the train. Kept getting random drops from a plant. I went out to investigate and everything tested perfect and the network was staying up. That was until a freight train rolled by. Turns out AT&T had run the line by shoving a piece of PVC through the gravel between two cross-ties, then running the cable through it.
I've actually had an excavator take out my network. I've also had networks taken out by forklift, train, and a semi-truck towing three other semi-trucks.
![](https://programming.dev/pictrs/image/d83c40ef-abb6-45f5-83df-d81a60b5e014.jpeg?format=webp&thumbnail=512)
YouTube Video
Click to view this content.
![](https://programming.dev/pictrs/image/68bfd353-8cab-4433-9578-140e4f12b058.jpeg?format=webp&thumbnail=512)
YouTube Video
Click to view this content.
A PowerShell module for interacting with Lemmy. Contribute to mdowst/Lemmy-PowerShell development by creating an account on GitHub.
![GitHub - mdowst/Lemmy-PowerShell: A PowerShell module for interacting with Lemmy](https://lemmy.ml/pictrs/image/768f95cf-4a19-4bac-98ce-b20fc613f14a.png?format=webp&thumbnail=256)
I have seen a lot of calls around Lemmy for more moderation tools. I have been working on Lemmy PowerShell module for a few weeks now, and I went ahead and released a preview version with multiple moderation tools now available. The module has the ability to perform the following tasks using a simple command line tool:
- Search posts and comments
- Remove a post
- Remove a comment
- Lock and unlock posts
- Add and remove moderators
- Create new posts and comments
You can get started now by installing the module through the PowerShell gallery.
Install-Module Lemmy-preview Import-Module Lemmy-preview
If you are not familiar with PowerShell, I've include detailed instruction in the GitHub repo with lots of example. https://github.com/mdowst/Lemmy-PowerShell
If you run into any issues please let me know either here or by submitting an Issue to the repo.
A PowerShell module for interacting with Lemmy. Contribute to mdowst/Lemmy-PowerShell development by creating an account on GitHub.
![GitHub - mdowst/Lemmy-PowerShell: A PowerShell module for interacting with Lemmy](https://programming.dev/pictrs/image/60c80676-089f-481f-a2fe-d3895f5ec443.png?format=webp&thumbnail=256)
I have seen a lot of calls around Lemmy for more moderation tools. I have been working on Lemmy PowerShell module for a few weeks now, and I went ahead and released a preview version with multiple moderation tools now available. The module has the ability to perform the following tasks using a simple command line tool:
- Search posts and comments
- Remove a post
- Remove a comment
- Lock and unlock posts
- Add and remove moderators
- Create new posts and comments
You can get started now by installing the module through the PowerShell gallery.
Install-Module Lemmy-preview Import-Module Lemmy-preview
If you are not familiar with PowerShell, I've include detailed instruction in the GitHub repo with lots of example. https://github.com/mdowst/Lemmy-PowerShell
If you run into any issues please let me know either here or by submitting an Issue to the repo.
Updated Git: A powerful PowerShell wrapper for git that lets you extend git, automate multiple repos, and output git as objects. - GitHub - StartAutomating/ugit: Updated Git: A powerful PowerShell ...
![GitHub - StartAutomating/ugit: Updated Git: A powerful PowerShell wrapper for git that lets you extend git, automate multiple repos, and output git as objects.](https://programming.dev/pictrs/image/3b5d76cf-d66b-4f88-bdf2-992e5f9d8d7e.png?format=webp&thumbnail=256)
This is a pretty neat tool that allows you to use regular git commands, but captures the output as a PowerShell objects. This allows you to use the power of PowerShell pipelines to enhance your git experience.
A couple of examples: ```
Count logs by author
git log | Group-Object GitUserEmail -NoElement | Sort-Object Count -Descending ```
```
Delete all branches except the current and main
git branch | Where-Object -Not IsCurrentBranch | Where-Object BranchName -NotIn 'main', 'master' | git branch -d ```
Basically every Windows sysadmin is indebted to Mark Russinovich and SysInternals. Fortunetly, PowerToys has come a long way because I'm pretty sure sysinternals haven't been updated since Windows XP.
Important updates on Azure AD Graph and PowerShell module timeline and future.
![Important: Azure AD Graph Retirement and Powershell Module Deprecation](https://programming.dev/pictrs/image/5f36b0a3-dcc0-413a-927e-343010b26d08.jpeg?format=webp&thumbnail=256)
What happens to PowerShell scripts using Azure AD, Azure AD-Preview, or MS Online modules on June 30, 2023?
There will be no impact to PowerShell scripts using these legacy modules on or after June 30, 2023. They will continue to function and be supported until deprecation announcement.
What happens to PowerShell scripts using Azure AD, Azure AD-Preview, or MS Online modules after March 30, 2024?
We plan to deprecate Azure AD, Azure AD-Preview, and MS Online PowerShell modules on March 30, 2024. After this date, the only support offered for these PowerShell modules will be support in migrating to Microsoft Graph PowerShell SDK. Only security fixes will be offered for these PowerShell modules after deprecation is announced. Once these modules are deprecated, they will continue to work for a minimum of six (6) months before being retired.
I've been using WordPress on Bluehost for a few years. I'm looking to move to something like Jekyll. Pretty much everything I get from WordPress can be done with a like JavaScript and Jekyll. There are plenty of examples out there of building it off of GitHub actions.
I also do NOT recommend Bluehost. I was having issues with my site going down for no reason a while back. I contacted their support to see what was going on and they told me it wasn't on their end. And guess what, it was on their end. Ended up catching the guy in a lie. Just been trying to find the time to move everything off of them.
PowerShell Weekly is a hand curated list of PowerShell news, blogs, scripts, etc. that I discover each week and feel are worth passing on. In other words it is not just me reporting everything with a PowerShell hashtag.
There is nothing to sign-up for and there are no ads. It's just my little way of giving back to the community. I also do not accept any sponsored content, but I do take recommendations and suggestions from the community, so feel free to send things my way.
I try to get it published by 9 am US central time (2 pm UTC) each and every Friday. (Expect for the week between Christmas and New Years, I give myself that week off)
It has been going strong for 4 years now and the entire back catalog is searchable and tagged with categories, authors, and timeframes.
Been there. I've written some slick code in a weekend that has run great for years. I've also spent 2 hours trying to get a button lined up properly.
I kind of do both. I have a powerful desktop with 4 monitors. I can't stand working on a single laptop screen unless I'm traveling. And I also want to keep work separate. So, I have my laptop sitting next to my PC and I just RDP into it. This way all 4 screens are work only stuff when I'm working. Then at the end of the day I can just disconnect the session and have my personal stuff. I also have ADHD, so I try not never leave the work session during work times. I've been working from exclusively for about 6 years now and it has been the best system I've tried.
I come from the windows world with a strong background in PowerShell, and this article perfectly described my experiences with Python.
I spent 2 weekends trying to get JupyterHub up and running with the dotnet interactive kernels. And it all came down to ensuring that the right packages got installed at the right levels. Between the system, conda, and pyenv. And this is not the first time I've run into such problems.
I know it said anaconda is the worst offender, but honestly I wish there was a similar solution for PowerShell. I love the self-contained environments. It makes experimenting so much quicker and easier. But there is a learning curve.
And he right. I got so frustrated trying to figure out pip vs conda vs conda-forge vs pip3 vs pipx. For someone who only casually delves in python, it can be real off-putting.
However, nothing to me is more frustrating than running into package XYZ updated and now package ABC won't load. XYZ now requires python 3.10, but ABC can only run on 3.9 and below, etc. I have rage quit more than a few projects over stuff like that.
So, as someone who only dabbles in python, my number one suggestion is to use requirements files and put version number requirements in them. And if your project has some out of the ordinary combination and you use conda, provide a brief rundown of how to install and enable it. Those few lines in your readme could make all the difference for python noobs/hacks like me.
I've used ChatGPT and Copilot to help with PowerShell in the past. For the most part I've found it, okay. But I can definitely see how that could happen. I've had a few instances where is tried giving me cmdlets that don't exist. This means it is just taking pieces of code from someone else's project and not understanding how it all fits together. So, if I search that cmdlet there is no telling the number of results I could get from good, bad, or irrelevant sources. It would be better if it told you where that code came from. Then I could look at the original source and see if they created custom functions that these AI are considering to be built-in cmdlets.
Might have to do with u/rmayayo not announcing or really saying anything
![pwshguy](https://programming.dev/pictrs/image/68854cbf-ee20-46f5-903c-b53bfcdfb437.jpeg?format=webp&thumbnail=64)
Father, author, blogger, enthusiast of all things PowerShell and automation. http://linktr.ee/mdowst