<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Blog</title><link>https://evotec.xyz/blog/</link><description>Technical articles, tutorials, and insights on PowerShell, .NET, Active Directory, and enterprise IT automation.</description><atom:link href="https://evotec.xyz/blog/index.xml" rel="self" type="application/rss+xml" /><item><title>Inspect and convert mixed Office archives with PSWriteOffice</title><link>https://evotec.xyz/blog/inspect-and-convert-mixed-office-archives-pswriteoffice/</link><description>Inspect a mixed document archive before converting iWork, OneNote, and scanned PDF files, and keep a useful record of what changed.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/inspect-and-convert-mixed-office-archives-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>Automation</category><category>iwork</category><category>ocr</category><category>Office</category><category>officeimo</category><category>onenote</category><category>pdf</category><category>PowerShell</category><category>provenance</category><category>pswriteoffice</category><category>security</category></item><item><title>Compose PDF reports and automate page workflows with PSWriteOffice</title><link>https://evotec.xyz/blog/automate-pdf-reports-and-page-workflows-pswriteoffice/</link><description>Build a PDF report from PowerShell, then add forms, attachments, page changes, extraction, or redaction without mixing every job into one command.</description><pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/automate-pdf-reports-and-page-workflows-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>officeimo</category><category>pdf</category><category>powershell</category><category>pswriteoffice</category><category>reporting</category></item><item><title>ChartForgeX: deterministic charts, topology, and report visuals for .NET</title><link>https://evotec.xyz/blog/chartforgex-deterministic-dotnet-visuals/</link><description>Why I built ChartForgeX, how its .NET model produces charts and topology without a browser, and which rendering surface to choose.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/chartforgex-deterministic-dotnet-visuals/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>.NET</category><category>chartforgex</category><category>charts</category><category>Development</category><category>dotnet</category><category>reporting</category><category>svg</category><category>topology</category></item><item><title>ImagePlayground: image automation that stays in PowerShell</title><link>https://evotec.xyz/blog/imageplayground-powershell-image-automation/</link><description>Use PowerShell to resize images, create QR codes, review metadata, and build charts or composed graphics with ImagePlayground.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/imageplayground-powershell-image-automation/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>automation</category><category>charts</category><category>image-processing</category><category>imageplayground</category><category>powershell</category><category>qr-code</category></item><item><title>PowerBGInfo 2.x: support-ready Windows backgrounds from PowerShell</title><link>https://evotec.xyz/blog/powerbginfo-support-ready-windows-backgrounds/</link><description>Build and deploy Windows backgrounds that show the machine details a user or support technician actually needs.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/powerbginfo-support-ready-windows-backgrounds/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>automation</category><category>desktop</category><category>powerbginfo</category><category>powershell</category><category>support</category><category>windows</category></item><item><title>Move data between databases, CSV, and Excel with DbaClientX and PSWriteOffice</title><link>https://evotec.xyz/blog/move-data-between-databases-and-excel-dbaclientx-pswriteoffice/</link><description>Move database rows through CSV or Excel, bring reviewed changes back safely, and choose the right PowerShell data shape for each step.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/move-data-between-databases-and-excel-dbaclientx-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>Databases</category><category>dbaclientx</category><category>excel</category><category>mailozaurr</category><category>officeimo</category><category>powershell</category><category>pswriteoffice</category><category>sql-server</category></item><item><title>Turn HTML tables into Excel workbooks with PSParseHTML and PSWriteOffice</title><link>https://evotec.xyz/blog/turn-html-tables-into-excel-workbooks-psparsehtml-pswriteoffice/</link><description>Parse useful tables from an HTML page and turn them into native Excel workbooks from either PowerShell or C#.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/turn-html-tables-into-excel-workbooks-psparsehtml-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>excel</category><category>htmltinkerx</category><category>officeimo</category><category>powershell</category><category>psparsehtml</category><category>pswriteoffice</category><category>Reporting</category></item><item><title>Build a review-ready Word executive report from PowerShell</title><link>https://evotec.xyz/blog/build-word-executive-report-pswriteoffice/</link><description>Create a Word report from PowerShell that managers can navigate, review, edit, and approve after the script has finished.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/build-word-executive-report-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>officeimo</category><category>powershell</category><category>pswriteoffice</category><category>reporting</category><category>word</category></item><item><title>Build an editable PowerPoint service brief from PowerShell</title><link>https://evotec.xyz/blog/build-powerpoint-service-brief-pswriteoffice/</link><description>Build an editable PowerPoint briefing from PowerShell without turning every slide into a long list of coordinates.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/build-powerpoint-service-brief-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>officeimo</category><category>powerpoint</category><category>powershell</category><category>presentations</category><category>pswriteoffice</category><category>Reporting</category></item><item><title>Build an Excel operational dashboard from PowerShell</title><link>https://evotec.xyz/blog/build-excel-operational-dashboard-pswriteoffice/</link><description>Build a multi-sheet Excel dashboard from PowerShell that people can filter, review, and continue editing after it is generated.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/build-excel-operational-dashboard-pswriteoffice/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>dashboard</category><category>excel</category><category>officeimo</category><category>powershell</category><category>pswriteoffice</category><category>Reporting</category></item><item><title>Power Apps - How to Work Around the appres://blobmanager issue</title><link>https://evotec.xyz/blog/powerapps-work-around-the-appres-blobmanager-issue/</link><description>Work around appres://blobmanager issue when saving a file to SharePoint from Power Apps using Power Automate </description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/powerapps-work-around-the-appres-blobmanager-issue/</guid><dc:creator>Mateusz Szewczyk</dc:creator><category>automation</category><category>Power Apps</category><category>Power Automate</category><category>Power Platform</category><category>SharePoint</category></item><item><title>How to contribute a post to evotec.xyz</title><link>https://evotec.xyz/blog/how-to-contribute-to-evotec-blog/</link><description>A beginner-friendly guide to writing and submitting a practical article for evotec.xyz.</description><pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate><guid>https://evotec.xyz/blog/how-to-contribute-to-evotec-blog/</guid><dc:creator>Przemyslaw Klys</dc:creator><category>Community</category><category>contributions</category><category>Documentation</category><category>evotec</category><category>github</category><category>markdown</category><category>tutorial</category></item><item><title>Supercharging Your Network Diagnostics with Globalping for NET</title><link>https://evotec.xyz/blog/supercharging-your-network-diagnostics-with-globalping-for-net/</link><description>Ever wondered how to run network diagnostics like Ping, Traceroute, or DNS queries from probes scattered across the globe? Enter Globalping.NET, a powerful library that makes it effortless to interact with the Globalping API using C#. Whether you’re debugging latency issues or exploring packet routes, this library has you covered.</description><pubDate>Sun, 15 Jun 2025 19:52:52 GMT</pubDate><guid>https://evotec.xyz/blog/supercharging-your-network-diagnostics-with-globalping-for-net/</guid><category>.NET Products</category><category>csharp</category><category>globalping</category><category>library</category></item><item><title>Automating Network Diagnostics with Globalping PowerShell Module</title><link>https://evotec.xyz/blog/automating-network-diagnostics-with-globalping-powershell-module/</link><description>Are you tired of manually running network diagnostics like Ping, Traceroute, or DNS queries? The Globalping PowerShell Module is here to save the day! With its easy-to-use cmdlets, you can automate measurements from probes distributed across the globe.</description><pubDate>Sun, 15 Jun 2025 19:52:50 GMT</pubDate><guid>https://evotec.xyz/blog/automating-network-diagnostics-with-globalping-powershell-module/</guid><category>PowerShell</category></item><item><title>Enhanced Dashboards with PSWriteHTML – Introducing InfoCards and Density Options</title><link>https://evotec.xyz/blog/enhanced-dashboards-with-pswritehtml-introducing-infocards-and-density-options/</link><description>Discover new features in the PSWriteHTML PowerShell module – including New-HTMLInfoCard, improved layout controls with the -Density parameter, and customizable shadows for clean, modern dashboards and reports.</description><pubDate>Wed, 04 Jun 2025 13:54:28 GMT</pubDate><guid>https://evotec.xyz/blog/enhanced-dashboards-with-pswritehtml-introducing-infocards-and-density-options/</guid><category>css</category><category>html</category><category>js</category><category>PowerShell</category><category>pswritehtml</category><category>reporting</category></item><item><title>Mastering Active Directory Hygiene: Automating SIDHistory Cleanup with CleanupMonster</title><link>https://evotec.xyz/blog/mastering-active-directory-hygiene-automating-sidhistory-cleanup-with-cleanupmonster/</link><description>Security Identifier (SID) History is a useful mechanism in Active Directory (AD) migrations. It allows users and groups in a new domain to retain access to resources that still rely on permissions from the old domain. However, once migrations are completed, these historical SIDs can become clutter, posing both security and administrative challenges. While it’s best to remove unnecessary SID History as soon as you’re done migrating, many environments skip this step. Over time, decommissioned or broken trusts make cleanup more difficult, and domain objects can accrue so many old entries that you lose track of what is still required.</description><pubDate>Sun, 16 Mar 2025 18:47:45 GMT</pubDate><guid>https://evotec.xyz/blog/mastering-active-directory-hygiene-automating-sidhistory-cleanup-with-cleanupmonster/</guid><category>Active Directory</category><category>activedirectory</category><category>cleanup</category><category>powershell</category></item><item><title>Upgrade Azure Active Directory Connect fails with unexpected error</title><link>https://evotec.xyz/blog/upgrade-azure-active-directory-connect-fails-with-unexpected-error/</link><description>Today, I made the decision to upgrade my test environment and update the version of Azure AD Connect to the latest one. The process is usually simple: download a new MSI, run it, click next a few times, enter the credentials for your Global Admin, and you’re finished. However, this time, I encountered an error.</description><pubDate>Wed, 02 Oct 2024 12:17:34 GMT</pubDate><guid>https://evotec.xyz/blog/upgrade-azure-active-directory-connect-fails-with-unexpected-error/</guid><category>azure ad</category><category>azure adconnect</category><category>error</category><category>errors</category><category>Office 365</category><category>office365</category></item><item><title>Mastering Active Directory Hygiene: Automating Stale Computer Cleanup with CleanupMonster</title><link>https://evotec.xyz/blog/mastering-active-directory-hygiene-automating-stale-computer-cleanup-with-cleanupmonster/</link><description>Have you ever looked at your Active Directory and wondered, “Why do I still have computers listed that haven’t been turned on since World Cup 2016?” Yeah, we’ve all been there. Keeping AD clean and up-to-date is like trying to organize your garage—it’s easy to put off until it becomes a total mess.</description><pubDate>Sun, 25 Aug 2024 13:14:39 GMT</pubDate><guid>https://evotec.xyz/blog/mastering-active-directory-hygiene-automating-stale-computer-cleanup-with-cleanupmonster/</guid><category>active directory</category><category>ad</category><category>cleanup</category><category>intune</category><category>microsoft entra</category><category>powershell</category></item><item><title>Active Directory Replication Summary to your Email or Microsoft Teams</title><link>https://evotec.xyz/blog/active-directory-replication-summary-to-your-email/</link><description>Monitor Active Directory replication with Repadmin summaries delivered to email or Microsoft Teams so failures surface without manual checks.</description><pubDate>Wed, 17 Apr 2024 19:25:32 GMT</pubDate><guid>https://evotec.xyz/blog/active-directory-replication-summary-to-your-email/</guid><category>active directory</category><category>powershell</category><category>replication</category></item><item><title>Syncing Global Address List (GAL) to personal contacts and between Office 365 tenants with PowerShell</title><link>https://evotec.xyz/blog/syncing-global-address-list-gal-to-personal-contacts-and-between-office-365-tenants-with-powershell/</link><description>Hey there! Today, I wanted to introduce you to one of the small but excellent module I’ve created called the O365Synchronizer. This module focuses on synchronizing contacts and users. If you’ve ever been tasked with synchronizing Global Address Lists (GAL) across different Office 365 tenants or just wanted to sync GAL with user mailboxes so they can access contacts directly on their phones, this tool is for you.</description><pubDate>Sun, 03 Dec 2023 16:32:13 GMT</pubDate><guid>https://evotec.xyz/blog/syncing-global-address-list-gal-to-personal-contacts-and-between-office-365-tenants-with-powershell/</guid><category>api</category><category>exchange</category><category>microsoft graph</category><category>office 365</category><category>powershell</category></item><item><title>Active Directory Health Check using Microsoft Entra Connect Health Service</title><link>https://evotec.xyz/blog/active-directory-health-check-using-microsoft-entra-connect-health-service/</link><description>Active Directory (AD) is crucial in managing identities and resources within an organization. Ensuring its health is pivotal for the seamless operation of various services. Today, I decided to look at Microsoft Entra Connect Health (Azure AD Connect Health) service, which allows monitoring Azure AD Connect, ADFS, and Active Directory. This means that under a single umbrella, you can have an overview of three services health. But is it worth it?</description><pubDate>Sun, 08 Oct 2023 14:36:57 GMT</pubDate><guid>https://evotec.xyz/blog/active-directory-health-check-using-microsoft-entra-connect-health-service/</guid><category>Active Directory</category><category>Azure</category><category>azure ad</category><category>health checks</category><category>microsoft entra</category><category>powershell</category></item><item><title>Seamless HTML Report Creation: Harness the Power of Markdown with PSWriteHTML PowerShell Module</title><link>https://evotec.xyz/blog/unlocking-seamless-html-report-creation-harness-the-power-of-markdown-with-pswritehtml-powershell-module/</link><description>In today’s digital age, the ability to create compelling and informative HTML reports and documents is a crucial skill for professionals in various fields. Whether you’re a data analyst, a system administrator, a developer, or simply someone who wants to present information in an organized and visually appealing manner, having the right tools at your disposal can make all the difference. That’s where the PSWriteHTML PowerShell module steps in, offering an array of possibilities to suit your reporting needs.</description><pubDate>Sun, 03 Sep 2023 16:59:27 GMT</pubDate><guid>https://evotec.xyz/blog/unlocking-seamless-html-report-creation-harness-the-power-of-markdown-with-pswritehtml-powershell-module/</guid><category>css</category><category>html</category><category>markdown</category><category>powershell</category><category>powershell module</category><category>pswritehtml</category></item><item><title>How to Efficiently Remove Comments from Your PowerShell Script</title><link>https://evotec.xyz/blog/how-to-efficiently-remove-comments-from-your-powershell-script/</link><description>As part of my daily development, I create lots of code that I subsequently comment on and leave to ensure I understand what I tried, what worked, and what didn’t. This is my usual method of solving a problem. Sure, I could commit it to git and then look it up, and I do that, but that doesn’t change my behavior where I happen to have lots of “junk” inside of my functions that stay commented out. While this works for me, and I’ve accepted this as part of my process, I don’t believe this should be part of the production code on PowerShellGallery or when the code is deployed.</description><pubDate>Sun, 20 Aug 2023 15:43:09 GMT</pubDate><guid>https://evotec.xyz/blog/how-to-efficiently-remove-comments-from-your-powershell-script/</guid><category>cleanup</category><category>comment</category><category>powershell</category><category>remove</category><category>script</category></item><item><title>Unlocking PowerShell Magic: Different Approach to Creating ‘Empty’ PSCustomObjects</title><link>https://evotec.xyz/blog/unlocking-powershell-magic-different-approach-to-creating-empty-pscustomobjects/</link><description>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.</description><pubDate>Thu, 10 Aug 2023 09:27:32 GMT</pubDate><guid>https://evotec.xyz/blog/unlocking-powershell-magic-different-approach-to-creating-empty-pscustomobjects/</guid><category>conversion</category><category>hashtable</category><category>ordereddictionary</category><category>powershell</category><category>pscustomobject</category></item><item><title>Report Active Directory Accounts that are Synchronized with Azure AD</title><link>https://evotec.xyz/blog/report-active-directory-accounts-that-are-synchronized-with-azure-ad/</link><description>I was scrolling X (aka Twitter) today and saw this blog post, “PowerShell: Report On-Premises Active Directory Accounts that are Synchronized with Azure AD Connect” by Kevin Trent. I like reading blog posts as I tend to learn some new things and see how people tend to solve their problems.</description><pubDate>Mon, 07 Aug 2023 13:21:18 GMT</pubDate><guid>https://evotec.xyz/blog/report-active-directory-accounts-that-are-synchronized-with-azure-ad/</guid><category>active directory</category><category>ad</category><category>azure ad</category><category>microsoft graph</category><category>powershell</category></item><item><title>Function cannot be created because function capacity 4096 has been exceeded for this scope</title><link>https://evotec.xyz/blog/function-cannot-be-created-because-function-capacity-4096-has-been-exceeded-for-this-scope/</link><description>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.</description><pubDate>Tue, 01 Aug 2023 06:22:34 GMT</pubDate><guid>https://evotec.xyz/blog/function-cannot-be-created-because-function-capacity-4096-has-been-exceeded-for-this-scope/</guid><category>aliases</category><category>errors</category><category>functions</category><category>limits</category><category>powershell</category><category>windows powershell</category></item><item><title>Connect-MgGraph: Keyset does not exist</title><link>https://evotec.xyz/blog/connect-mggraph-keyset-does-not-exist/</link><description>If Connect-MgGraph works interactively but fails in a scheduled task with 'Keyset does not exist', the certificate is usually installed in the wrong store or the task identity cannot access the private key.</description><pubDate>Thu, 20 Jul 2023 07:07:41 GMT</pubDate><guid>https://evotec.xyz/blog/connect-mggraph-keyset-does-not-exist/</guid><category>connet-mggraph</category><category>graph</category><category>graph-sdk</category><category>microsoft graph</category><category>powershell</category></item><item><title>Strengthening Password Security in Active Directory: A PowerShell-Powered Approach</title><link>https://evotec.xyz/blog/strengthening-password-security-in-active-directory-a-powershell-powered-approach/</link><description>PasswordSolution uses the DSInternals PowerShell module to gather Active Directory hashes and then combines that data into a prettified report. If you have ever used DSInternals, you know that while very powerful, it comes with raw data that is hard to process and requires some skills to get it into a state that can be shown to management or security.</description><pubDate>Sun, 28 May 2023 14:40:25 GMT</pubDate><guid>https://evotec.xyz/blog/strengthening-password-security-in-active-directory-a-powershell-powered-approach/</guid><category>active directory</category><category>ad</category><category>dsinternals</category><category>html</category><category>password quality</category><category>passwordsolution</category><category>powershell</category><category>scan</category><category>security</category><category>Windows</category></item><item><title>Track Ubiquiti Unifi Stock, and get notified of changes</title><link>https://evotec.xyz/blog/simplify-notifications-about-ubiquiti-unifi-stock/</link><description>I am a pretty big fan of Ubiquiti and their Unifi products line. Whether it’s network equipment or their camera systems, Unifi Protect, I have it all, and I’m pretty happy with how it works. However, over the last two years, some of their stocks in the store were very hard to find. For example, I’ve searched for Unifi Protect G4 Doorbell Pro for over six months. I’ve tried local shops all around Europe, even in the Ubiquiti Europe store, to never found any of them.</description><pubDate>Sun, 16 Apr 2023 15:04:57 GMT</pubDate><guid>https://evotec.xyz/blog/simplify-notifications-about-ubiquiti-unifi-stock/</guid><category>notifications</category><category>powershell</category><category>stock</category><category>tracker</category><category>ubiquiti</category><category>unifi</category><category>windows</category></item><item><title>Free Microsoft Azure/Office365 Fundamentals Training starting February 6th 2023</title><link>https://evotec.xyz/blog/microsoft-fundamental-free-training-starting-february-6th-2023/</link><description>Being a Microsoft MVP has quite a few benefits. You get to be part of unique offers that help you enhance your knowledge even further. Microsoft Learning team decided to provide free training on Microsoft Fundamentals for MVPs and the Microsoft community, so I’m sharing this with you! Starting next week, Microsoft will run each activity from 9 AM to 5 PM Eastern Standard Time (EST) or 15:00 to 23:00 in Europe (CET).</description><pubDate>Sat, 04 Feb 2023 10:03:56 GMT</pubDate><guid>https://evotec.xyz/blog/microsoft-fundamental-free-training-starting-february-6th-2023/</guid><category>azure</category><category>free</category><category>o365</category><category>office 365</category><category>training</category></item><item><title>Upload and Download files from Azure Blob Storage using Connection String</title><link>https://evotec.xyz/blog/upload-and-download-files-from-azure-blob-storage-using-connection-string/</link><description>They say there is a first time for everything. For me, it’s how to download and upload files to Azure Blog Storage using Connection String. Recently I was given Connection String, Container name and had to download some files from Azur Blog Storage. After some research and trying Connect-AzAccount, I found that the proper way to go is thru New-AzStorageContext.</description><pubDate>Wed, 18 Jan 2023 19:13:24 GMT</pubDate><guid>https://evotec.xyz/blog/upload-and-download-files-from-azure-blob-storage-using-connection-string/</guid><category>az.storage</category><category>azure ad</category><category>azure blob storage</category><category>download</category><category>powershell</category><category>upload</category></item><item><title>PowerBGInfo – PowerShell alternative to Sysinternals BGInfo</title><link>https://evotec.xyz/blog/powerbginfo-powershell-alternative-to-sysinternals-bginfo/</link><description>When I created ImagePlayground, I thought about how to show its usefulness to the general community. On how to deliver what PowerShell can do. Then I saw on some forum people asking BGInfo to expand and allow running PowerShell scripts so that the data on the BGInfo Wallpaper can be gathered from PowerShell rather than VBS. I thought this was a great idea to create BGInfo using PowerShell without the necessity of using BGInfo at all.</description><pubDate>Sun, 01 Jan 2023 15:51:00 GMT</pubDate><guid>https://evotec.xyz/blog/powerbginfo-powershell-alternative-to-sysinternals-bginfo/</guid><category>bginfo</category><category>desktop manager</category><category>module</category><category>powerbginfo</category><category>powershell</category><category>wallpaper</category><category>windows</category></item><item><title>Image Manipulation, Image Resize, Image Combine and more with PowerShell</title><link>https://evotec.xyz/blog/image-manipulation-image-resize-image-combine-and-more-with-powershell/</link><description>ImagePlayground is a PowerShell module that works in PowerShell 5.1 and PowerShell 7+. It works partially on Linux and should work on macOS, except for charts. That means it’s partially cross-platform, but the end goal is to make it work fully on all platforms. So what can this module do?</description><pubDate>Sun, 01 Jan 2023 15:50:41 GMT</pubDate><guid>https://evotec.xyz/blog/image-manipulation-image-resize-image-combine-and-more-with-powershell/</guid><category>.net</category><category>.NET Products</category><category>bar code</category><category>combine</category><category>convert</category><category>exif data</category><category>grayscale</category><category>image</category><category>image manipulation</category><category>linux</category><category>macos</category><category>net core</category><category>net framework</category><category>net standard</category><category>powershell</category><category>qr code</category><category>watermark</category><category>xplat</category></item><item><title>Easy way to send emails using Microsoft Graph API (Office 365) with PowerShell</title><link>https://evotec.xyz/blog/easy-way-to-send-emails-using-microsoft-graph-api-office-365-with-powershell/</link><description>Send Office 365 emails from PowerShell through Microsoft Graph API with Mailozaurr, using a simpler approach than raw Send-MgUserMail.</description><pubDate>Sun, 09 Oct 2022 13:27:27 GMT</pubDate><guid>https://evotec.xyz/blog/easy-way-to-send-emails-using-microsoft-graph-api-office-365-with-powershell/</guid><category>Azure Application</category><category>emails</category><category>Exchange</category><category>graph api</category><category>microsoft graph</category><category>oauth2</category><category>office 365</category><category>powershell</category><category>send-emailmessage</category><category>send-mailmessage</category><category>smtp</category></item><item><title>Adaptive Cards with Tables and Linebreaks in Microsoft Teams</title><link>https://evotec.xyz/blog/adaptive-cards-with-tables-and-linebreaks-in-microsoft-teams/</link><description>PSTeams is a PowerShell module that helps simplify sending notifications to Microsoft Teams via Incoming webhooks. It’s easy to use and doesn’t require playing with JSON. Since version 2.0, it started to support Adaptive Cards; in version 2.1, I’ve added the ability to mention people. Today I’m introducing an easy way to send data as a table and a quick way to add a line break.</description><pubDate>Sun, 21 Aug 2022 16:07:01 GMT</pubDate><guid>https://evotec.xyz/blog/adaptive-cards-with-tables-and-linebreaks-in-microsoft-teams/</guid><category>adaptive cards</category><category>microsoft teams</category><category>office 365</category><category>powershell</category><category>teams</category></item><item><title>Working with VirusTotal from PowerShell</title><link>https://evotec.xyz/blog/working-with-virustotal-from-powershell/</link><description>Work with VirusTotal from PowerShell to scan files, URLs, domains, and IP addresses, and reduce false positives on released modules.</description><pubDate>Wed, 10 Aug 2022 18:25:07 GMT</pubDate><guid>https://evotec.xyz/blog/working-with-virustotal-from-powershell/</guid><category>api</category><category>powershell</category><category>restapi</category><category>security</category><category>virus</category><category>virus total</category></item><item><title>Reporting group membership for critical Active Directory groups</title><link>https://evotec.xyz/blog/reporting-group-membership-for-critical-active-directory-groups/</link><description>I work a lot with Active Directory-related tasks. One of the tasks is to know the group membership of critical Active Directory Groups such as Domain Admins, Enterprise Admins, Schema Admins, Event Log Readers, and a few others that are a bit less known. As I did it, I got bored of typing the group names repeatedly and decided that enough was enough and there must be an easier way for me to do that.</description><pubDate>Sun, 07 Aug 2022 11:57:28 GMT</pubDate><guid>https://evotec.xyz/blog/reporting-group-membership-for-critical-active-directory-groups/</guid><category>active directory</category><category>ad</category><category>group membership</category><category>groups</category><category>nested groups</category><category>powershell</category><category>Windows</category></item><item><title>Finding duplicate DNS records by IP Address using PowerShell</title><link>https://evotec.xyz/blog/finding-duplicate-dns-records-by-ip-adress-using-powershell/</link><description>In my earlier blog post, I showed you a way to find duplicate DNS entries using PowerShell, but the focus was on finding duplicate entries based on hostname. But what if you would like to find duplicate entries based on IP Addresses? This was the question I was asked on Reddit, and I thought it was a legitimate request, so today’s focus will be on transposing table output from earlier functions to present data differently.</description><pubDate>Tue, 26 Jul 2022 17:23:53 GMT</pubDate><guid>https://evotec.xyz/blog/finding-duplicate-dns-records-by-ip-adress-using-powershell/</guid><category>active directory</category><category>dns</category><category>DNSServer</category><category>duplicates</category><category>powershell</category></item><item><title>Finding duplicate DNS entries using PowerShell</title><link>https://evotec.xyz/blog/finding-duplicate-dns-entries-using-powershell/</link><description>Today’s blog post is about Active Directory-integrated DNS and how to find duplicate entries. By duplicate, I mean those where one DNS name matches multiple IP addresses. While some duplicate DNS entries are expected, in other cases, it may lead to problems. For example, having a static IP assigned to a hostname that later on is also updated with dynamic entries.</description><pubDate>Sun, 24 Jul 2022 16:48:21 GMT</pubDate><guid>https://evotec.xyz/blog/finding-duplicate-dns-entries-using-powershell/</guid><category>active directory</category><category>ad</category><category>dns</category><category>DNSServer</category><category>powershell</category></item><item><title>OfficeIMO – Free cross-platform Microsoft Word .NET library</title><link>https://evotec.xyz/blog/officeimo-free-cross-platform-microsoft-word-net-library/</link><description>OfficeIMO is a free cross-platform .NET library for creating Word documents with Open XML SDK while hiding much of the low-level plumbing.</description><pubDate>Sun, 12 Jun 2022 16:14:01 GMT</pubDate><guid>https://evotec.xyz/blog/officeimo-free-cross-platform-microsoft-word-net-library/</guid><category>c#</category><category>csharp</category><category>docx</category><category>microsoft office</category><category>Office 365</category><category>officeimo</category><category>Windows</category><category>word</category></item><item><title>Reading IIS logs with PowerShell</title><link>https://evotec.xyz/blog/reading-iis-logs-with-powershell/</link><description>Today I was reading Twitter, as I am pretty addicted to technology news when Adam Bacon mentioned that he’s surprised that no one has rebuilt IIS Parser as pure PowerShell. While this is not entirely true, and some modules can do some parsing, I decided to try my luck. While doing it from scratch in PowerShell is possible, I opted to use an external C# library that does all the heavy lifting and is optimized for speed.</description><pubDate>Sat, 04 Jun 2022 19:47:08 GMT</pubDate><guid>https://evotec.xyz/blog/reading-iis-logs-with-powershell/</guid><category>iis</category><category>iis-server</category><category>logs</category><category>powershell</category><category>Windows</category></item><item><title>PowerShell – Comparing advanced objects</title><link>https://evotec.xyz/blog/powershell-comparing-advanced-objects/</link><description>Compare nested and advanced PowerShell objects more reliably by flattening complex structures before visual diffing and review.</description><pubDate>Mon, 28 Feb 2022 16:22:25 GMT</pubDate><guid>https://evotec.xyz/blog/powershell-comparing-advanced-objects/</guid><category>compare</category><category>html</category><category>powershell</category><category>pssharedgoods</category><category>pswritehtml</category></item><item><title>PowerShell – Converting advanced object to flat object</title><link>https://evotec.xyz/blog/powershell-converting-advanced-object-to-flat-object/</link><description>PowerShell language allows you to work and build complicated objects. There are multiple ways to save them, such as XML or JSON, but sometimes using them is impossible or inadequate. Sometimes you want to use HTML or CSV or any other single dimension output.</description><pubDate>Sun, 27 Feb 2022 14:57:20 GMT</pubDate><guid>https://evotec.xyz/blog/powershell-converting-advanced-object-to-flat-object/</guid><category>convert</category><category>export-csv</category><category>office 365</category><category>powershell</category><category>pswritehtml</category></item><item><title>Office 365 Health Service using PowerShell</title><link>https://evotec.xyz/blog/office-365-health-service-using-powershell/</link><description>Use PowerShell and Microsoft Graph to collect Office 365 service health data after the legacy communications API retirement.</description><pubDate>Mon, 14 Feb 2022 17:48:15 GMT</pubDate><guid>https://evotec.xyz/blog/office-365-health-service-using-powershell/</guid><category>documentation</category><category>health</category><category>office 365</category><category>powershell</category><category>pswindocumentation</category><category>pswritehtml</category><category>reporting</category></item><item><title>Difference between GetTempFileName() and GetRandomFileName() that got my ass kicked</title><link>https://evotec.xyz/blog/difference-between-gettempfilename-and-getrandomfilename-that-got-my-ass-kicked/</link><description>Today’s story is about me making assumptions on how things work based on the method’s name. As the blog post says, I want to focus on two similar methods – GetTempFileName() and GetRandomFileName(), when using PowerShell. Still, since those methods are .NET based, it applies to a whole range of other languages – C#, F#, VisualBasic, and all others that I’ve never used.</description><pubDate>Mon, 24 Jan 2022 18:51:13 GMT</pubDate><guid>https://evotec.xyz/blog/difference-between-gettempfilename-and-getrandomfilename-that-got-my-ass-kicked/</guid><category>.net</category><category>c#</category><category>powershell</category><category>Windows</category></item><item><title>Mentioning users in notifications using PSTeams PowerShell Module</title><link>https://evotec.xyz/blog/mentioning-users-in-notifications-using-psteams-powershell-module/</link><description>Microsoft Teams over the last few years have grown into an excellent and flexible tool for both small and big companies. Having the ability to chat with users, store files or have all sorts of data in one place makes it easy and functional. Of course, it has its fair share of issues, but it’s getting better. One of the cool features of Microsoft Teams is being able to send notifications to Microsoft Teams Channels using WebHook Notifications. In the beginning, this feature was pretty limited, but after a few years, it got much better with support for Adaptive Cards, List Cards, Hero Cards, Thumbnail Cards, and Office 365 Connector Card.</description><pubDate>Sun, 16 Jan 2022 19:08:52 GMT</pubDate><guid>https://evotec.xyz/blog/mentioning-users-in-notifications-using-psteams-powershell-module/</guid><category>Azure AD</category><category>microsoft teams</category><category>office 365</category><category>powershell</category><category>psteams</category></item><item><title>Finding duplicate SPN with PowerShell</title><link>https://evotec.xyz/blog/finding-duplicate-spn-with-powershell/</link><description>Duplicate SPNs aren’t very common but can happen in any Active Directory as there’s no built-in way that tracks and prevent duplicate SPN’s. One has to either know all SPN’s in the environment, track them or check each time whether it already exists or not. Things get more complicated with larger Active Directory environments as people change, new apps are added, old apps are forgotten, but SPNs prevail.</description><pubDate>Tue, 07 Dec 2021 15:32:01 GMT</pubDate><guid>https://evotec.xyz/blog/finding-duplicate-spn-with-powershell/</guid><category>active directory</category><category>ad</category><category>adessentials</category><category>forest</category><category>powershell</category><category>spn</category><category>testimo</category></item><item><title>Solving typo problems with Fuzzy Search in PSWriteHTML</title><link>https://evotec.xyz/blog/solving-typo-problems-with-fuzzy-search-in-pswritehtml/</link><description>One of the everyday use cases with PSWriteHTML is to create a simple view of PowerShell data in a table. While PowerShell comes with a built-in cmdlet ConvertTo-Html, it’s basic in its functionality. It makes an HTML representation of PowerShell data, but it brings no CSS, JavaScript, or other functionality. While for some use cases, it’s enough, the other times, you need to make an effort to make it usable.</description><pubDate>Mon, 29 Nov 2021 18:53:28 GMT</pubDate><guid>https://evotec.xyz/blog/solving-typo-problems-with-fuzzy-search-in-pswritehtml/</guid><category>css</category><category>fuzzysearch</category><category>html</category><category>javascript</category><category>js</category><category>out-htmlview</category><category>powershell</category><category>pswritehtml</category><category>reporting</category></item><item><title>Active Directory Domain Services could not replicate the directory partition – The replication operation encountered a database error</title><link>https://evotec.xyz/blog/active-directory-domain-services-could-not-replicate-the-directory-partition-the-replication-operation-encountered-a-database-error/</link><description>If you ever encounter an error while trying to create a new domain within a forest saying, “The replication operation encountered a database error,” it makes you sweat a bit. Your brain tells you it will be a nightmare to fix, do I have proper backups to make it happen, and the question “why now” shows up.</description><pubDate>Sun, 28 Nov 2021 14:38:20 GMT</pubDate><guid>https://evotec.xyz/blog/active-directory-domain-services-could-not-replicate-the-directory-partition-the-replication-operation-encountered-a-database-error/</guid><category>active directory</category><category>dcdiag</category><category>dfs</category><category>domain</category><category>forest</category><category>forest replication</category><category>PowerShell</category><category>testimo</category><category>Windows</category></item><item><title>Configuring Office 365 settings using PowerShell – The non-supported way</title><link>https://evotec.xyz/blog/configuring-office-365-settings-using-powershell-the-non-supported-way/</link><description>Use O365Essentials to read and change Microsoft 365 admin settings from PowerShell when the official modules do not expose them.</description><pubDate>Sun, 26 Sep 2021 15:12:35 GMT</pubDate><guid>https://evotec.xyz/blog/configuring-office-365-settings-using-powershell-the-non-supported-way/</guid><category>Azure</category><category>Azure AD</category><category>graph api</category><category>microsoft graph</category><category>microsoft office 365</category><category>module</category><category>o365essentials</category><category>office 365</category><category>powershell</category><category>powershellgallery</category></item></channel></rss>