<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Carter Griffin</title><link>https://blog.grifflab.org/</link><description>Recent content on Carter Griffin</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 11 Nov 2026 09:00:00 -0700</lastBuildDate><atom:link href="https://blog.grifflab.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Searching every GPO by the path GPMC shows you (and the DLL hunt it took to get there)</title><link>https://blog.grifflab.org/2026/11/11/searching-every-gpo-by-gpmc-path/</link><pubDate>Wed, 11 Nov 2026 09:00:00 -0700</pubDate><guid>https://blog.grifflab.org/2026/11/11/searching-every-gpo-by-gpmc-path/</guid><description>&lt;p&gt;Pretty much every hardening guide, CIS benchmark, vendor KB and pentest report tells you to change a GPO the same way:&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Go to &lt;strong&gt;Computer Configuration &amp;gt; Policies &amp;gt; Windows Settings &amp;gt; Security Settings &amp;gt; Account Policies &amp;gt; Kerberos Policy&lt;/strong&gt; and set &lt;strong&gt;Maximum lifetime for service ticket&lt;/strong&gt; to 600 minutes.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;Cool. So I have 2,000 GPOs, which ones set that and what are they set to?&lt;/p&gt;&#10;&lt;p&gt;GPMC won&amp;rsquo;t tell you, you just click through GPOs one at a time until you find it or give up. &lt;code&gt;Get-GPOReport -ReportType Xml&lt;/code&gt; does get you the data, but here&amp;rsquo;s what that exact setting looks like in the XML:&lt;/p&gt;</description></item><item><title>Azure Devops + Internal Nuget server for powershell module publishing</title><link>https://blog.grifflab.org/2026/02/08/azure-devops-internal-nuget-server/</link><pubDate>Sun, 08 Feb 2026 20:26:33 -0700</pubDate><guid>https://blog.grifflab.org/2026/02/08/azure-devops-internal-nuget-server/</guid><description>&lt;p&gt;Recently, I found myself needing to distribute code to any windows server host in our environment such that any relevant account local to any host would be able to reliably run my code. Before traversing the internet to figure out how to do this, I considered a couple of low hanging options -&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Home the modules in some network-accessible file share&lt;/li&gt;&#10;&lt;li&gt;Just push the module out to each target host via work pipeline&#10;&lt;ul&gt;&#10;&lt;li&gt;generic psremoting, ansible, etc&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;Push module to public psgallery (lol)&lt;/li&gt;&#10;&lt;li&gt;Home modules in fileshare and deploy to all targets via gpo&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;The first option, while valid, didn&amp;rsquo;t feel robust enough for our environment - versioning would be dependent on a local git repo at best, and I could not reliably pin old versions without duplicating repo version structure in persistent storage.&lt;/p&gt;</description></item><item><title>About</title><link>https://blog.grifflab.org/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://blog.grifflab.org/about/</guid><description>&lt;p&gt;I&amp;rsquo;m Carter. I do identity engineering and platform engineering for infrastructure at scale, which these days means a lot of Kubernetes, Active Directory, domain administration and hardening. This is where I write up things that were annoying to figure out, so they&amp;rsquo;re less annoying for the next person.&lt;/p&gt;&#10;&lt;p&gt;Code lives on &lt;a href="https://github.com/cartergriffin"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>