<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on wporter.org</title>
    <link>https://wporter.org/posts/</link>
    <description>Recent content in Posts on wporter.org</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Wed, 23 Sep 2026 21:00:00 +0000</lastBuildDate>
    <atom:link href="https://wporter.org/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Granting a principal API access to a single SharePoint site with Sites.Selected permissions - Graph API and PowerShell</title>
      <link>https://wporter.org/granting-a-principal-api-access-to-a-single-sharepoint-site-with-sites.selected-permissions-graph-api-and-powershell/</link>
      <pubDate>Wed, 23 Sep 2026 21:00:00 +0000</pubDate>
      <guid>https://wporter.org/granting-a-principal-api-access-to-a-single-sharepoint-site-with-sites.selected-permissions-graph-api-and-powershell/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;When granting a principal access to anything, it&amp;rsquo;s best practice to scope that access down as much as possible. As of 2026, the only way to avoid granting full access to &lt;em&gt;every&lt;/em&gt; SharePoint site to your application when you need to access &lt;em&gt;some&lt;/em&gt; SharePoint data is to use the Sites.Selected Graph permission. Unfortunately, to grant Sites.Selected access to SharePoint Online, you&amp;rsquo;ll need to make API requests; this permission is not available through the Entra app registration admin interface. You&amp;rsquo;ll also need to create the read/write permission on the SharePoint site you want the application to have access to (Sites.Selected permissions are an implicit deny; the &amp;rsquo;exclusions&amp;rsquo; are applied to the SharePoint site and also cannot be modified through the web interface).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Offline domain join - djoin.exe</title>
      <link>https://wporter.org/offline-domain-join-djoin.exe/</link>
      <pubDate>Wed, 09 Sep 2026 20:00:00 +0000</pubDate>
      <guid>https://wporter.org/offline-domain-join-djoin.exe/</guid>
      <description>&lt;p&gt;&lt;code&gt;djoin&lt;/code&gt; allows you to join devices to Active Directory with a provisioning blob (a text file) that is generated somewhere with line-of-sight to a DC, then used anywhere (on an online or offline Windows image). This means you can:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;skip authentication &lt;em&gt;on the target device&lt;/em&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;helps reduce privileges required on the endpoint - no longer need an account with permission to create the computer object to sign into the endpoint&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;join devices while they&amp;rsquo;re offline (e.g., at a remote site, or in a staging location without connectivity to the domain)&lt;/li&gt;&#xA;&lt;li&gt;join devices during provisioning without the need to save credentials capable of &lt;em&gt;many&lt;/em&gt; or arbitrary domain joins&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;An offline domain-joined machine will still require line-of-sight to a domain controller for initial user authentication, Group Policy processing, Kerberos, certificate enrollment, et cetera.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Attach a physical disk to a QEMU VM</title>
      <link>https://wporter.org/attach-a-physical-disk-to-a-qemu-vm/</link>
      <pubDate>Sat, 13 Jun 2026 20:00:00 +0000</pubDate>
      <guid>https://wporter.org/attach-a-physical-disk-to-a-qemu-vm/</guid>
      <description>&lt;p&gt;My desktop&amp;rsquo;s Windows install broke today. As I already had a Fedora install on another disk, it was simplest to boot the Windows install as a VM and fix it that way.&lt;/p&gt;&#xA;&lt;p&gt;Write a Libvirt-format XML device definition, e.g., in the file &amp;ldquo;nvme1n1.xml&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Note the &lt;code&gt;bus=&#39;sata&#39;&lt;/code&gt;. I&amp;rsquo;m booting a Windows VM from a second disk in the system that doesn&amp;rsquo;t have VirtIO drivers.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tee nvme1n1.xml &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; EOT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;&amp;lt;disk type=&amp;#39;block&amp;#39; device=&amp;#39;disk&amp;#39;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    &amp;lt;driver name=&amp;#39;qemu&amp;#39; type=&amp;#39;raw&amp;#39;/&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    &amp;lt;source dev=&amp;#39;/dev/disk/by-id/nvme-Samsung_SSD_980_PRO_2TB_S6B0NL0T921654N&amp;#39;/&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;    &amp;lt;target dev=&amp;#39;vda&amp;#39; bus=&amp;#39;sata&amp;#39;/&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;&amp;lt;/disk&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOT&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, attach the disk to the VM:&lt;/p&gt;</description>
    </item>
    <item>
      <title>RHCSA: Pass!</title>
      <link>https://wporter.org/rhcsa-pass/</link>
      <pubDate>Mon, 25 May 2026 14:30:00 +0000</pubDate>
      <guid>https://wporter.org/rhcsa-pass/</guid>
      <description>&lt;p&gt;Been quiet for the past few weeks because I&amp;rsquo;ve been busy with work and studying for my RHCSA. Took it today, 5/25. Wound up being easier than I thought. PASS, with 300/300. On to the next one!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Managing password aging with /etc/login.defs, passwd, and chage</title>
      <link>https://wporter.org/managing-password-aging-with-/etc/login.defs-passwd-and-chage/</link>
      <pubDate>Mon, 11 May 2026 19:15:00 +0000</pubDate>
      <guid>https://wporter.org/managing-password-aging-with-/etc/login.defs-passwd-and-chage/</guid>
      <description>&lt;p&gt;We can use the &lt;code&gt;/etc/login.defs&lt;/code&gt; file and &lt;code&gt;chage&lt;/code&gt; command to manage password aging for users on an EL system.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;/etc/login.defs&lt;/code&gt; controls defaults for new users - namely, the &lt;code&gt;PASS_MAX_DAYS&lt;/code&gt;, &lt;code&gt;PASS_MIN_DAYS&lt;/code&gt;, &lt;code&gt;PASS_MIN_LEN&lt;/code&gt;, and &lt;code&gt;PASS_WARN_AGE&lt;/code&gt; parameters:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Password aging controls:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&#x9;PASS_MAX_DAYS&#x9;Maximum number of days a password may be used.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&#x9;PASS_MIN_DAYS&#x9;Minimum number of days allowed between password changes.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&#x9;PASS_MIN_LEN&#x9;Minimum acceptable password length.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&#x9;PASS_WARN_AGE&#x9;Number of days warning given before a password expires.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;PASS_MAX_DAYS&#x9;99999&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;PASS_MIN_DAYS&#x9;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;PASS_WARN_AGE&#x9;7&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# this is in here too, but is generally ignored &amp;amp; controlled by PAM&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;PASS_MIN_LEN&#x9;8&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;These values are added to the user&amp;rsquo;s &lt;code&gt;/etc/shadow&lt;/code&gt; entry at creation time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Determining which filesystems are present on mounted or unmounted volumes</title>
      <link>https://wporter.org/determining-which-filesystems-are-present-on-mounted-or-unmounted-volumes/</link>
      <pubDate>Sat, 09 May 2026 22:30:00 +0000</pubDate>
      <guid>https://wporter.org/determining-which-filesystems-are-present-on-mounted-or-unmounted-volumes/</guid>
      <description>&lt;h2 id=&#34;lsblk&#34;&gt;lsblk&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;lsblk -f&lt;/code&gt; will show you a list of devices, partitions, their corresponding filesystem type, available/used space, and mountpoints.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ lsblk -f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;NAME FSTYPE FSVER LABEL  UUID                                 FSAVAIL FSUSE% MOUNTPOINTS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sda&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─sda1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─sda2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│    vfat   FAT16        2205-C8D2                               191M     4% /boot/efi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├─sda3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│    xfs                 6df325af-1779-4165-a6cd-78fe83c18aab    745M    22% /boot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─sda4&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     xfs                 99bf1bf0-97c8-472e-9e64-fc4fee387b2b    7.4G    15% /&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sr0  iso966 Jolie cidata 2026-04-09-17-29-07-00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;file&#34;&gt;file&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;file --special-files --dereference&lt;/code&gt; (&lt;code&gt;-sL&lt;/code&gt;) will give you information on a partition/LV&amp;rsquo;s filesystem or the MBR on a disk. Can be used on mounted or unmounted partitions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting default file permissions with umask</title>
      <link>https://wporter.org/setting-default-file-permissions-with-umask/</link>
      <pubDate>Sat, 09 May 2026 22:30:00 +0000</pubDate>
      <guid>https://wporter.org/setting-default-file-permissions-with-umask/</guid>
      <description>&lt;p&gt;&lt;code&gt;umask&lt;/code&gt; is a shell command that sets the value that controls which file permissions are set by default.&lt;/p&gt;&#xA;&lt;p&gt;The OS starts with the set of maximum allowed permissions (&lt;code&gt;777&lt;/code&gt; for directories, &lt;code&gt;666&lt;/code&gt; for files, as the execute bit is required to traverse directories, but is only required to execute files - something you probably don&amp;rsquo;t want by default) and the umask bitmask is applied to remove permissions.&lt;/p&gt;&#xA;&lt;p&gt;For example:&lt;/p&gt;&#xA;&lt;p&gt;The default &lt;code&gt;umask&lt;/code&gt; is 022, which means files are created with mode 644 by default (and directories are created with mode 755).&lt;/p&gt;</description>
    </item>
    <item>
      <title>NTP - chrony and timedatectl</title>
      <link>https://wporter.org/ntp-chrony-and-timedatectl/</link>
      <pubDate>Sat, 09 May 2026 20:15:00 +0000</pubDate>
      <guid>https://wporter.org/ntp-chrony-and-timedatectl/</guid>
      <description>&lt;p&gt;On EL systems, the &lt;code&gt;chrony&lt;/code&gt; NTP client and server is used to synchronize the system&amp;rsquo;s time.&lt;/p&gt;&#xA;&lt;p&gt;The configuration file is &lt;code&gt;/etc/chrony.conf&lt;/code&gt;; the &lt;code&gt;chronyc&lt;/code&gt; and &lt;code&gt;timedatectl&lt;/code&gt; commands can be used to monitor the chrony daemon and configure the system clock, respectively.&lt;/p&gt;&#xA;&lt;p&gt;The default configuration typically point chrony at a NTP pool (distro-specific). Pools are defined with the &lt;code&gt;pool&lt;/code&gt; configuration line:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cat /etc/chrony.conf &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep pool&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Use public servers from the pool.ntp.org project.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Please consider joining the pool (https://www.pool.ntp.org/join.html).&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pool 2.almalinux.pool.ntp.org iburst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Servers are defined with the &lt;code&gt;server&lt;/code&gt; configuration line instead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Archival/compression utilities on Linux</title>
      <link>https://wporter.org/archival/compression-utilities-on-linux/</link>
      <pubDate>Sat, 09 May 2026 20:10:00 +0000</pubDate>
      <guid>https://wporter.org/archival/compression-utilities-on-linux/</guid>
      <description>&lt;p&gt;There are five main archival utilities available on most Linux systems:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;tar&lt;/li&gt;&#xA;&lt;li&gt;gzip&lt;/li&gt;&#xA;&lt;li&gt;xz&lt;/li&gt;&#xA;&lt;li&gt;bzip2&lt;/li&gt;&#xA;&lt;li&gt;zip&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;tar creates uncompressed archives; it was originally intended for use creating tape backups, but now finds usage anywhere you&amp;rsquo;d like to turn a bunch of files into one file. Files are stored linearly in the tarball, so it&amp;rsquo;s very cheap (computationally) to work with tar archives.&lt;/p&gt;&#xA;&lt;p&gt;tar archives are often combined with a compression utility, which is where the &lt;code&gt;tar.xz&lt;/code&gt;, &lt;code&gt;tar.gz&lt;/code&gt;, &lt;code&gt;tar.bz2&lt;/code&gt; files come from. On *nix platforms we tend to have separate archival utilities (like tar, used for turning a set of files or directory into a single file) and compression utilities (e.g., gzip, bzip2, xz, used to reduce the amount of disk space a file uses), in contrast to the Windows approach of a single tool for both (e.g., &lt;code&gt;zip&lt;/code&gt;, &lt;code&gt;rar&lt;/code&gt;, &lt;code&gt;7z&lt;/code&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working with SELinux (RHCSA-level)</title>
      <link>https://wporter.org/working-with-selinux-rhcsa-level/</link>
      <pubDate>Sat, 09 May 2026 18:15:00 +0000</pubDate>
      <guid>https://wporter.org/working-with-selinux-rhcsa-level/</guid>
      <description>&lt;h2 id=&#34;references&#34;&gt;References&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_selinux/index&#34;&gt;The Red Hat SELinux documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.fedoraproject.org/en-US/quick-docs/selinux-getting-started/&#34;&gt;The Fedora SELinux documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://opensourcewatch.beehiiv.com/p/everything-wanted-know-selinux-afraid-run&#34;&gt;Open Source Watch SELinux primer&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.gentoo.org/wiki/SELinux&#34;&gt;The Gentoo SELinux documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;RHCSA v10 EX-200 exam objectives:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Manage security (5 of 8)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Set enforcing and permissive modes for SELinux&lt;/li&gt;&#xA;&lt;li&gt;List and identify SELinux file and process context&lt;/li&gt;&#xA;&lt;li&gt;Restore default file contexts&lt;/li&gt;&#xA;&lt;li&gt;Manage SELinux port labels&lt;/li&gt;&#xA;&lt;li&gt;Use boolean settings to modify system SELinux settings&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;We&amp;rsquo;re going to go a bit past this and touch on users, roles, and senstivity in addition to managing file contexts.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Working with journald</title>
      <link>https://wporter.org/working-with-journald/</link>
      <pubDate>Mon, 20 Apr 2026 22:15:00 +0000</pubDate>
      <guid>https://wporter.org/working-with-journald/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s briefly dig into &lt;code&gt;systemd-journald&lt;/code&gt; and go over the what, the why, and the how!&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-journald&#34;&gt;What is journald?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;systemd-journald&lt;/code&gt; is a logging service bundled with &lt;code&gt;systemd&lt;/code&gt;. It provides a number of nice extra features past simple plaintext log entries (a la syslog) including, but not limited to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;journald uses binary storage, with fully indexed data for better (much faster) search&lt;/li&gt;&#xA;&lt;li&gt;supports compression&amp;hellip; though it&amp;rsquo;s per entry, so it&amp;rsquo;s pretty useless&#xA;&lt;ul&gt;&#xA;&lt;li&gt;per-entry compression is fine for large individual entries, but Linux log messages are typically quite small and small strings don&amp;rsquo;t compress nearly as well as a large block of text, made up of, say, mostly redundant log entries would.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;structured logging is enforced&lt;/li&gt;&#xA;&lt;li&gt;access control, by default&lt;/li&gt;&#xA;&lt;li&gt;automatic log rotation&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Generally, the output of any systemd unit is sent to the journal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Links and inodes!</title>
      <link>https://wporter.org/links-and-inodes/</link>
      <pubDate>Sun, 19 Apr 2026 19:00:00 +0000</pubDate>
      <guid>https://wporter.org/links-and-inodes/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s talk about links!&lt;/p&gt;&#xA;&lt;h2 id=&#34;inodes&#34;&gt;inodes&lt;/h2&gt;&#xA;&lt;p&gt;But first, we&amp;rsquo;ll need to go over the concept of &lt;strong&gt;inodes&lt;/strong&gt;. These are an essential data structure Unix filesystems that store the attributes (metadata, permissions) and block locations for a particular file or directory.&lt;/p&gt;&#xA;&lt;p&gt;These &amp;ldquo;index&amp;rdquo; nodes allow the kernel to find the file contents from the inode number - conceptually, think of reading memory from a memory address. An inode contains a &amp;ldquo;disk address&amp;rdquo; in an easily parsable data structure, with metadata information slapped on. The kernel can read the inode and quickly figure out where to go to read the contents of a file off the disk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>RHCSA/EL10 - bootloader, initramfs, kernel arguments, resetting the root password, oh my</title>
      <link>https://wporter.org/rhcsa/el10-bootloader-initramfs-kernel-arguments-resetting-the-root-password-oh-my/</link>
      <pubDate>Sat, 18 Apr 2026 15:00:00 +0000</pubDate>
      <guid>https://wporter.org/rhcsa/el10-bootloader-initramfs-kernel-arguments-resetting-the-root-password-oh-my/</guid>
      <description>&lt;p&gt;RHCSA study part 1: the bootloader, initramfs, and the first problem! Let&amp;rsquo;s reset a root password! Don&amp;rsquo;t worry. We won&amp;rsquo;t get too distracted&amp;hellip; I promise&amp;hellip;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The lab environment used in this post consists of GenericCloud AlmaLinux 10 machine(s) running on a Proxmox VE cluster.&#xA;For info about the environment, &lt;a href=&#34;https://wporter.org/pve/ceph-hyperconverged-cluster-build/ceph-performance-tuning/&#34;&gt;see the build log&lt;/a&gt;.&#xA;To get your hands on the GenericCloud base images, &lt;a href=&#34;https://repo.almalinux.org/almalinux/10/cloud/x86_64/images/&#34;&gt;go to repo.almalinux.org&lt;/a&gt;.&#xA;To set up a Proxmox VE template from a GenericCloud base image as I&amp;rsquo;ve done here, &lt;a href=&#34;https://wporter.org/creating-a-cloud-init-vm-template-for-almalinux-10-on-proxmox-ve/&#34;&gt;see this post&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux md RAID benchmarks on 4 Kioxia PM5s</title>
      <link>https://wporter.org/linux-md-raid-benchmarks-on-4-kioxia-pm5s/</link>
      <pubDate>Sat, 18 Apr 2026 14:30:00 +0000</pubDate>
      <guid>https://wporter.org/linux-md-raid-benchmarks-on-4-kioxia-pm5s/</guid>
      <description>&lt;p&gt;I had access to some machines with a load of brand new Kioxia PM5 (read-intensive SAS3) SSDs, so after finishing my production benchmarking I decided to grab some academic numbers to follow up on &lt;a href=&#34;https://wporter.org/linux-md-raid-layouts/&#34;&gt;my prior &lt;code&gt;md&lt;/code&gt; RAID layouts writeup&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll be benchmarking just four drives here, as the PCIE 3.0x8 HBA they&amp;rsquo;re hooked up to is a limiting factor for anything wider. These drives really could use a NVME interface (that&amp;rsquo;s what the CM5 is!)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux md RAID layouts</title>
      <link>https://wporter.org/linux-md-raid-layouts/</link>
      <pubDate>Sat, 11 Apr 2026 21:15:00 +0000</pubDate>
      <guid>https://wporter.org/linux-md-raid-layouts/</guid>
      <description>&lt;p&gt;I was working on setting up some big mdadm RAID arrays, so I had to do some reading up on RAID layouts to make sure I was setting them up correctly. The result? This nice (if I say so myself) write-up! Yes, I went a little overboard.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re &lt;em&gt;not&lt;/em&gt; familiar with RAID levels, let&amp;rsquo;s go just deep enough:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RAID 0 = &lt;strong&gt;blocks &amp;ldquo;striped&amp;rdquo; across all drives for best performance, no redundancy&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Calling this RAID isn&amp;rsquo;t strictly accurate.. it&amp;rsquo;s not redundant at all!&lt;/li&gt;&#xA;&lt;li&gt;Blocks of data are distributed between all member disks. This means excellent performance (both writes and reads can be highly parallelized).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;RAID 1 = &lt;strong&gt;blocks &amp;ldquo;mirrored&amp;rdquo; between all drives for redundancy&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mirrors one drive to n replicas. As such, you only get the capacity of a single drive.&lt;/li&gt;&#xA;&lt;li&gt;Dumb mirror. Very simple, very fast reads (if you throw enough threads at it, you can read from n drives simultaneously), but writes will never be faster than one drive.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;RAID 4 = &lt;strong&gt;one dedicated parity (redundancy) drive, data striped between the rest of the drives.&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;One drive is reserved for redundancy. Parity data is all kept on one drive.&lt;/li&gt;&#xA;&lt;li&gt;Parity bytes are an XOR combination of data bytes (e.g., P = a XOR b XOR c XOR d XOR e - you can figure out what &amp;ldquo;a&amp;rdquo; was given b, c, d, e and P) which is how you get redundancy without a mirror. This is called &amp;ldquo;erasure coding&amp;rdquo; - you can reconstruct missing data if you know exactly which blocks are gone. If a drive fails, you know which blocks are gone.&lt;/li&gt;&#xA;&lt;li&gt;As parity data lives on one dedicated drive, performance of the array is limited by that drive.&lt;/li&gt;&#xA;&lt;li&gt;Because RAID4 (and 5, and 6) rely on parity, small I/O is punished. If you write a small chunk, you can&amp;rsquo;t just write. You have to read the old data block, read the old parity block, XOR old data, new data, old parity to get your new parity value, write the new data block, then write the new parity block.&lt;/li&gt;&#xA;&lt;li&gt;Large sequential writes are less affected, because you don&amp;rsquo;t need to read old data - you can just dump a new set of data blocks and parity block to disk all at once.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;RAID 5 = &lt;strong&gt;single set of parity data distributed across the array, data striped between all drives&lt;/strong&gt;.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The equivalent of one drive&amp;rsquo;s capacity is reserved for redundancy. Parity data is distributed across the array.&lt;/li&gt;&#xA;&lt;li&gt;Like RAID4, but, as the parity blocks are distributed between all members, RAID5 allows more parallelism (all drives store parity and data blocks).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;RAID 6 = &lt;strong&gt;two sets of parity data distributed across the array, data striped between all drives&lt;/strong&gt;.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;The equivalent of two drives&amp;rsquo; capacity is reserved for redundancy. Parity data is distributed across the array.&lt;/li&gt;&#xA;&lt;li&gt;While RAID5 offers just one set of parity blocks, RAID 6 has traditional XOR parity blocks (the &amp;ldquo;P&amp;rdquo; parity data) &lt;em&gt;and&lt;/em&gt; a second set of parity data that&amp;rsquo;s reversible with some more advanced algebra (&amp;ldquo;Q&amp;rdquo; parity data). If you want to read about how that second set of parity data works, &lt;a href=&#34;https://igoro.com/archive/how-raid-6-dual-parity-calculation-works/&#34;&gt;check out Igor Ostrovsky&amp;rsquo;s blog post on the topic&lt;/a&gt;. He does an excellent job at explaining it.&lt;/li&gt;&#xA;&lt;li&gt;The result is that your machine can solve for the missing values using the two parity equations and live data, so you can always figure out what bytes you had on the two disks you&amp;rsquo;re able to lose.&lt;/li&gt;&#xA;&lt;li&gt;If two drives are lost and you need to use the Q parity to reconstruct, performance will suffer significantly, as every read will require reading from all surviving drives and doing relatively expensive calculations.&lt;/li&gt;&#xA;&lt;li&gt;However, if you only lose one drive and can reconstruct the missing data from the P parity algorithm or live data (e.g., only had one drive failure) the array will continue to perform relatively well.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;RAID 10 = &lt;strong&gt;striped mirrors = pairs of two drives are mirrored, then the mirrored pairs are all striped together.&lt;/strong&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Half of your drives are used for redundancy. Data is mirrored across a configurable number of members of the array (by default, 2). As such, you&amp;rsquo;ll lose at least 50% of your disk space.&lt;/li&gt;&#xA;&lt;li&gt;Simpler than erasure coding. Very fast. Works just like you&amp;rsquo;d think it does with &amp;ldquo;near&amp;rdquo; distribution, which is what is typically used. More on that later.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;ZFS and LVM support some other fun things like linear volumes or triple parity, but those are different beasts entirely.&lt;/p&gt;</description>
    </item>
    <item>
      <title>AZ-104: Pass!</title>
      <link>https://wporter.org/az-104-pass/</link>
      <pubDate>Thu, 09 Apr 2026 21:15:00 +0000</pubDate>
      <guid>https://wporter.org/az-104-pass/</guid>
      <description>&lt;h2 id=&#34;azure&#34;&gt;Azure!&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been quiet over the last month or so! Caught a bad flu and have been head-down, studying, and working on some projects at $DayJob.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve also passed the AZ-104 earlier this month with a score of ~900. This was a somewhat tricky one. The exam goes in depth into any &amp;amp; all of the objectives. You will need to use the documentation (which, thank goodness, is available) for some questions. I didn&amp;rsquo;t find any of the questions unfair but I caught at least one error on the test.&lt;/p&gt;</description>
    </item>
    <item>
      <title>An Active Directory security checklist</title>
      <link>https://wporter.org/an-active-directory-security-checklist/</link>
      <pubDate>Tue, 24 Mar 2026 21:45:00 +0000</pubDate>
      <guid>https://wporter.org/an-active-directory-security-checklist/</guid>
      <description>&lt;ul&gt;&#xA;&lt;li&gt;Use a freely available Active Directory configuration/vulnerability scanner like Purple Knight or PingCastle to get a quick assessment of the environment&amp;rsquo;s state. Purple Knight is a great tool, PingCastle.. meh.&lt;/li&gt;&#xA;&lt;li&gt;Keep the Default Domain and Default Domain Controllers policies minimal. Explicitly name your policies and consider targeting them by security group rather than at the OU level. Audit your GPOs regularly.&lt;/li&gt;&#xA;&lt;li&gt;Consider disabling AAD Connect&amp;rsquo;s Seamless SSO if you&amp;rsquo;re not using it (e.g., your machines are all hybrid joined and W10+, so they use PRTs for SSO to Entra ID instead). The SSO computer account is a threat vector.&lt;/li&gt;&#xA;&lt;li&gt;Apply the freely available Microsoft Security and Compliance Toolkit configuration baselines for your Windows client &amp;amp; server OSes.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;READ. THE. SPREADSHEETS. AND. TEST. BEFORE. PUSHING. TO. PROD.&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Consider applying the baseline for Office, too.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;If you&amp;rsquo;ve got Defender for Endpoint, deploy it. Even if you&amp;rsquo;re using another EDR agent. Deploy Defender for Endpoint in passive or EDR block mode. Defender for Endpoint is REALLY good.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Apply Defender Attack Surface Reduction rules, too, while you&amp;rsquo;re at it. They&amp;rsquo;re free bits of hardening preconfigured for you.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PATCH!! YOUR!!! STUFF!!!!!!&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Remove users from the &amp;ldquo;Operators&amp;rdquo; groups. These are often legacy leftovers from a more &amp;ldquo;consolidated&amp;rdquo; AD environment (e.g., a DC was a terminal server, and users occasionally had to restart the print spooler, so users were added to the Print Operators and Server Operators groups.. making it trivial for one to elevate to SYSTEM on a DC in the absence of other controls).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DO NOT RUN ANYTHING BUT AD DS (and DHCP) ON A DOMAIN CONTROLLER&lt;/strong&gt;.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I&amp;rsquo;ll repeat that. &lt;strong&gt;DO NOT RUN ANYTHING BUT AD DS (and DHCP) ON A DOMAIN CONTROLLER&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DO NOT USE A DOMAIN CONTROLLER AS A JUMPBOX!!!&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;If you think this is good because you&amp;rsquo;ll save money on a Windows Server license, consider the cost of rebuilding the entire environment after it gets compromised vs $800 for another Server Standard OSE. If you do this and have Server Datacenter licenses I WILL find you and I WILL slap you silly.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;STOP&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;RUNNING&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;OTHER&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;SERVICES&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ON&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DOMAIN&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;CONTROLLERS&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;Think about how much harder it would be to clean up a compromised domain versus JUST SETTING UP ANOTHER SERVER.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Disable multicast name resolution, including mDNS if your environment is using a .local TLD.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This means NetBIOS, LLMNR, and mDNS.&lt;/li&gt;&#xA;&lt;li&gt;Either disable mDNS and break Spotify/Miracast, rename your domain, or get Responder&amp;rsquo;d to death. Three options. The first two are preferred.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Phase out RC4 Kerberos encryption.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;RC4 is highly vulnerable to offline attacks (&amp;ldquo;Kerberoasting&amp;rdquo;) and will be disabled by default in July 2026.&lt;/li&gt;&#xA;&lt;li&gt;Reset the KRBTGT password twice (reset once, wait at least 10H for old tickets to expire, reset again), then audit security events 4768 &amp;amp; 4769 for encryption type 0x17/0x18 (RC4, RC4 with preauth). If you don&amp;rsquo;t see anything, turn RC4 off!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Enable Kerberos armoring (FAST).&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Encrypts pre-authentication. If in place, an attacker must first compromise a machine account to read pre-auth handshakes (making an offline attack against preauth much less worthwhile).&lt;/li&gt;&#xA;&lt;li&gt;Notably provides mutual authentication of the KDC (protecting against a MITM with a spoofed KDC), provides downgrade attack prevention, and protects the TGS exchange.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Ensure host firewalls are enabled. Restrict access to administrative services (e.g., RDP, WSMAN, SMB for the admin shares) to dedicated jump hosts/PAWs.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use PAWs on trusted hypervisors or dedicated, modern physical hardware (e.g., with a TPM and supporting hardware virtualization, so you can make use of Credential Guard) for best results. A VM is only as good as the machine hosting it.&lt;/li&gt;&#xA;&lt;li&gt;Your 8th - 10th gen Intel machines in the ewaste pile are just begging for a second life!&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Sell your customer on PKI. The security benefits are colossal and it&amp;rsquo;s a prerequisite for a lot of stuff you&amp;rsquo;ll want to do:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;LDAPS - turn off LDAP, require encryption, without LDAPS your DCs are chatting with other services in plaintext&lt;/li&gt;&#xA;&lt;li&gt;Machine cert auth for 802.1X or VPN access (maybe even machine-cert-based AOVPN for your full AD-joined environments with remote workers)&lt;/li&gt;&#xA;&lt;li&gt;TLS for your internal services&lt;/li&gt;&#xA;&lt;li&gt;SMB over QUIC&lt;/li&gt;&#xA;&lt;li&gt;PKINIT - Kerberos pre-authentication with certificates!&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Replaces the traditional AS-REQ phase. No more password hash on the wire during preauth; instead, use the public key (an X509 cert). Private key stays on your device, as with any other form of keypair auth.&lt;/li&gt;&#xA;&lt;li&gt;You should still use FAST (Kerberos armoring) to encrypt the TGS exchange.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Foundation for WHfB/passwordless strong authentication (great for the user experience)&lt;/li&gt;&#xA;&lt;li&gt;Allows you to start signing internal apps/scripts&lt;/li&gt;&#xA;&lt;li&gt;Avoid getting MITM&amp;rsquo;d when you RDP or SSH around (trusted cert = more of a guarantee that this machine is who it says it is!)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DO NOT EVER log in to a Domain Administrator on a workstation.&lt;/strong&gt; Add your Domain Admins (and any other privileged roles) to the Protected Users group so that their credentials cannot be cached and reused later.&lt;/li&gt;&#xA;&lt;li&gt;Adopt LAPS rather than creating a domain-wide admin account for your workstations - even if you &amp;ldquo;tier&amp;rdquo; the admin accounts and dedicate one to your workstations, that&amp;rsquo;s a wide blast radius.&lt;/li&gt;&#xA;&lt;li&gt;Segment your network.&lt;/li&gt;&#xA;&lt;li&gt;Treat hypervisors with even more sanctity than you do your DCs. If someone can knock over the server hosting your DC (and you don&amp;rsquo;t have confidential computing) they can read the memory of your DC and go to town.&lt;/li&gt;&#xA;&lt;li&gt;SEGMENT YOUR NETWORK!! Use firewall rules! Use deep packet inspection, MITM your traffic (SSL inspection), block all outbound by default! THIS IS A GOOD THING and worth the effort!&lt;/li&gt;&#xA;&lt;li&gt;Enforce security policy. For example, if you say &amp;ldquo;don&amp;rsquo;t sign in to workstations with a Domain Admin account&amp;rdquo; and your techs still have access to the domain admin password, they WILL sign into workstations with said Domain Admin account. Disable accounts, change passwords, and add the SeDenyLocalLogon privilege to that darn account.&lt;/li&gt;&#xA;&lt;li&gt;Consider adopting (at least &lt;em&gt;partially&lt;/em&gt; adopting) the tiered AD privilege model.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Your domain controllers are the king in the castle. DO NOT GIVE A DOMAIN ADMIN ACCOUNT AWAY by logging it in to poor old Judy&amp;rsquo;s workstation. She HAS installed or WILL install SocialSecurity.pdf.exe at some point. Somehow, despite all your efforts.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Enable and enforce SMB encryption. If this means too much overhead, fall back to just enabling SMB signing. Avoid getting MITM&amp;rsquo;d.&lt;/li&gt;&#xA;&lt;li&gt;Disable NTLM where possible, or audit and restrict it to the best of your ability.&lt;/li&gt;&#xA;&lt;li&gt;Audit and remove unnecessary SPNs.&lt;/li&gt;&#xA;&lt;li&gt;Replace traditional service accounts with MSAs and/or gMSAs for automatic password rotation.&lt;/li&gt;&#xA;&lt;li&gt;Audit ACLs on privileged AD objects. Don&amp;rsquo;t let some random account modify properties on your tier zero admin accounts.&lt;/li&gt;&#xA;&lt;li&gt;Ship your logs somewhere, configure basic alerting. I like to use VictoriaLogs and Grafana, but you can use any SIEM or log store you&amp;rsquo;d like.&lt;/li&gt;&#xA;&lt;li&gt;Alert on sensitive group membership changes.&lt;/li&gt;&#xA;&lt;li&gt;Enable PowerShell Script Block and Module logging.&lt;/li&gt;&#xA;&lt;li&gt;Disable the print spooler where it&amp;rsquo;s not needed.&lt;/li&gt;&#xA;&lt;li&gt;Remove stale AD objects regularly.&lt;/li&gt;&#xA;&lt;li&gt;Test your AD backup and restore procedure regularly.&lt;/li&gt;&#xA;&lt;li&gt;Do not synchronize privileged Active Directory identities to Microsoft Entra. ABSOLUTELY DO NOT sync a Domain Admin account to a Global Admin in M365.&lt;/li&gt;&#xA;&lt;li&gt;If hardware supports it, enable Credential Guard.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;This requires a TPM and hardware virtualization, but protects you against pass-the-hash and pass-the-ticket attacks by sandboxing credentials on your device.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Restrict dynamic DNS updates to authenticated clients to prevent &amp;ldquo;ADIDNS&amp;rdquo; (Active Directory-Integrated DNS) spoofing.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;With unauthenticated dynamic updates enabled, anyone can bump a DNS record and either break things or, perhaps worse, redirect connection attempts intended to go to a server to themselves.&lt;/li&gt;&#xA;&lt;li&gt;Consider locking this down further to specific principals (e.g., computer accounts and Domain Admins only) so Domain Users can&amp;rsquo;t make dynamic updates (by default, even with secure updates on, any authenticated user can create new DNS records, including wildcard records).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Restrict DCSync permissions.&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Accounts with &amp;ldquo;Replicating Directory Changes&amp;rdquo; and &amp;ldquo;Replicating Directory Changes All&amp;rdquo; permissions can steal password hashes by simulating Active Directory replication to a fake DC.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Finally.. consider joining your endpoints to Entra ID rather than Active Directory. Microsoft has made it quite clear that this is their new way forwards. You can still authenticate to on-prem resources with no hassle (&lt;a href=&#34;https://wporter.org/configuring-the-cloud-kerberos-trust-kerberos-sso-to-domain-resources-with-whfb-for-entra-joined-clients/&#34;&gt;see my blog post on the Cloud Kerberos Trust and getting WHfB passwordless auth to both M365 and on-premises resources from an Entra-joined client&lt;/a&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Intro to Azure Functions</title>
      <link>https://wporter.org/intro-to-azure-functions/</link>
      <pubDate>Sat, 07 Mar 2026 17:45:00 +0000</pubDate>
      <guid>https://wporter.org/intro-to-azure-functions/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Azure Functions is a &amp;ldquo;serverless&amp;rdquo; PaaS offering like AWS Lambda. Its main draw is allowing you to run event-driven code, rather than containers or virtual machines (though you can still run containers if you&amp;rsquo;d like). This &amp;ldquo;serverless&amp;rdquo; platform effectively abstracts away the underlying virtual machine/compute entirely and allows you to just run your code.&lt;/p&gt;&#xA;&lt;p&gt;And, as with any Azure product, you pay only for what you use - in this case, that means your event-driven code is only billed when it&amp;rsquo;s running (per gigabyte of memory used, per second, not VMs billed per minute.. and usually left on 24/7/365). This is in contrast to something like Azure Container Instances, which will bill you for the underlying VMs regardless of actual usage (though you can scale in and scale out, you&amp;rsquo;re still paying for the VMs).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring the cloud Kerberos trust - Kerberos SSO to domain resources with WHfB for Entra-joined clients</title>
      <link>https://wporter.org/configuring-the-cloud-kerberos-trust-kerberos-sso-to-domain-resources-with-whfb-for-entra-joined-clients/</link>
      <pubDate>Sat, 07 Mar 2026 17:30:00 +0000</pubDate>
      <guid>https://wporter.org/configuring-the-cloud-kerberos-trust-kerberos-sso-to-domain-resources-with-whfb-for-entra-joined-clients/</guid>
      <description>&lt;p&gt;The scenario: I have a hybrid AD environment (identity and password hash synchronization) with Entra-joined endpoints. I&amp;rsquo;d like to authenticate to both cloud resources and on-premise domain-joined resources (via Kerberos) with my Windows Hello keypair.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;h3 id=&#34;entra-joined-devices-authenticating-to-domain-resources&#34;&gt;Entra-joined devices authenticating to domain resources&lt;/h3&gt;&#xA;&lt;p&gt;Right out of the box, an Entra-joined workstation with a user who&amp;rsquo;s synchronized from the on-premise domain and has signed in with a password will be able to authenticate to domain resources.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating a cloud-init VM template for AlmaLinux 10 on Proxmox VE</title>
      <link>https://wporter.org/creating-a-cloud-init-vm-template-for-almalinux-10-on-proxmox-ve/</link>
      <pubDate>Thu, 26 Feb 2026 22:30:00 +0000</pubDate>
      <guid>https://wporter.org/creating-a-cloud-init-vm-template-for-almalinux-10-on-proxmox-ve/</guid>
      <description>&lt;p&gt;Just a quick example.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;vmid&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;9001&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;image_name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;AlmaLinux-10-GenericCloud-latest.x86_64.qcow2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;storage&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;local-lvm&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget https://repo.almalinux.org/almalinux/10/cloud/x86_64/images/AlmaLinux-10-GenericCloud-latest.x86_64.qcow2 -O &lt;span class=&#34;nv&#34;&gt;$image_name&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qemu-img resize &lt;span class=&#34;nv&#34;&gt;$image_name&lt;/span&gt; 32G&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qm create &lt;span class=&#34;nv&#34;&gt;$vmid&lt;/span&gt; --name &lt;span class=&#34;s2&#34;&gt;&amp;#34;almalinux-10-genericcloud&amp;#34;&lt;/span&gt; --ostype l26 &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;  --memory &lt;span class=&#34;m&#34;&gt;2048&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;&#x9;--agent &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;&#x9;--bios ovmf --machine q35 --efidisk0 &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$storage&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;:0,pre-enrolled-keys&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;&#x9;--cpu host --socket &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; --cores &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;&#x9;--net0 virtio,bridge&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;bridge0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qm &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmid&lt;/span&gt; --sata0 local-lvm:cloudinit&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qm importdisk &lt;span class=&#34;nv&#34;&gt;$vmid&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$image_name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$storage&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qm &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmid&lt;/span&gt; --scsihw virtio-scsi-single --scsi0 local-lvm:vm-&lt;span class=&#34;si&#34;&gt;${&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;vmid&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;-disk-2,discard&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;on,cache&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;writeback,iothread&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;1,ssd&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qm &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$vmid&lt;/span&gt; --boot &lt;span class=&#34;nv&#34;&gt;order&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;scsi0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qm template &lt;span class=&#34;nv&#34;&gt;$vmid&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Regenerating HTTP certs in an Elasticsearch cluster</title>
      <link>https://wporter.org/regenerating-http-certs-in-an-elasticsearch-cluster/</link>
      <pubDate>Mon, 23 Feb 2026 20:35:00 +0000</pubDate>
      <guid>https://wporter.org/regenerating-http-certs-in-an-elasticsearch-cluster/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.elastic.co/docs/deploy-manage/security/set-up-basic-security&#34;&gt;Docs&lt;/a&gt;. This requires the &amp;ldquo;minimum security setup&amp;rdquo; to be complete (Elasticsearch security must be running for SSL to be in use). The automatic initialization will do this for you.&lt;/p&gt;&#xA;&lt;p&gt;By default, initializing an Elasticsearch cluster will automatically generate some certificates for the transport and HTTP components of the Elastic application:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[root@es9-1 elasticsearch]# ls -l certs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;total 24&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-rw----. 1 root elasticsearch  1939 Dec 12 16:49 http_ca.crt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-rw----. 1 root elasticsearch 10077 Dec 12 16:49 http.p12&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-rw----. 1 root elasticsearch  5838 Dec 12 16:49 transport.p12&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[root@es9-1 elasticsearch]# pwd&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/etc/elasticsearch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After changing a node&amp;rsquo;s IP (use DNS, gosh darn it!) or hostname, you may need to regenerate its HTTP certificates, or things will permanently cease to function (Elastic uses mTLS for authentication for the cluster&amp;rsquo;s transport layer and HTTP REST API - no REST API, Elastic is very unhappy).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Performing a partial or full restore of an Elasticsearch cluster from a snapshot</title>
      <link>https://wporter.org/performing-a-partial-or-full-restore-of-an-elasticsearch-cluster-from-a-snapshot/</link>
      <pubDate>Mon, 23 Feb 2026 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/performing-a-partial-or-full-restore-of-an-elasticsearch-cluster-from-a-snapshot/</guid>
      <description>&lt;p&gt;See the docs at &lt;a href=&#34;https://www.elastic.co/docs/deploy-manage/tools/snapshot-and-restore&#34;&gt;elastic.co/docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m starting with a three-node cluster (see &lt;a href=&#34;https://wporter.org/building-out-a-test-3-node-elasticsearch-9-cluster-on-almalinux-9&#34;&gt;Deploying a three-node HA Elasticsearch 9 cluster on AlmaLinux 9&lt;/a&gt;). It consists of:&lt;/p&gt;&#xA;&lt;p&gt;3x KVM VM (4 vCPU, 16 GiB RAM, 128 GB of SSD)&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;es9-1&lt;/li&gt;&#xA;&lt;li&gt;es9-2&lt;/li&gt;&#xA;&lt;li&gt;es9-3&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;DNS is working.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve loaded the Flights &lt;a href=&#34;https://www.elastic.co/docs/manage-data/ingest/sample-data&#34;&gt;sample dataset&lt;/a&gt; to the cluster with Kibana just to have something to look at.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m adding:&lt;/p&gt;&#xA;&lt;p&gt;1x KVM VM (2 vCPU, 4 GiB RAM, 128 GB of SSD), for a snapshot repository (NFS server):&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building out a test 3-node Elasticsearch 9 cluster on AlmaLinux 9</title>
      <link>https://wporter.org/building-out-a-test-3-node-elasticsearch-9-cluster-on-almalinux-9/</link>
      <pubDate>Mon, 23 Feb 2026 20:00:00 +0000</pubDate>
      <guid>https://wporter.org/building-out-a-test-3-node-elasticsearch-9-cluster-on-almalinux-9/</guid>
      <description>&lt;h2 id=&#34;intro&#34;&gt;Intro&lt;/h2&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll be configuring a (test) three-node Elasticsearch cluster, then installing and joining Kibana, on Alma 9 hosts.&lt;/p&gt;&#xA;&lt;p&gt;Hardware:&lt;/p&gt;&#xA;&lt;p&gt;3x KVM VM (4 vCPU, 16 GiB RAM, 128 GB of SSD):&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;es9-1&lt;/li&gt;&#xA;&lt;li&gt;es9-2&lt;/li&gt;&#xA;&lt;li&gt;es9-3&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;installing-elasticsearch&#34;&gt;Installing Elasticsearch&lt;/h2&gt;&#xA;&lt;p&gt;Read the docs: &lt;a href=&#34;https://www.elastic.co/docs/deploy-manage/deploy/self-managed/installing-elasticsearch&#34;&gt;installing Elasticsearch&lt;/a&gt;, &lt;a href=&#34;https://www.elastic.co/docs/deploy-manage/deploy/self-managed/install-elasticsearch-with-rpm&#34;&gt;installing Elasticsearch with RPM&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Add the Elastic signing key to your system:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add the Elasticsearch 9.x repository to the system:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo tee /etc/yum.repos.d/elasticsearch.repo &amp;gt; /dev/null &lt;span class=&#34;s&#34;&gt;&amp;lt;&amp;lt; &amp;#39;EOT&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;[elasticsearch]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;name=Elasticsearch repository for 9.x packages&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;baseurl=https://artifacts.elastic.co/packages/9.x/yum&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;gpgcheck=1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;enabled=0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;type=rpm-md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s&#34;&gt;EOT&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that the repo&amp;rsquo;s &lt;code&gt;enabled&lt;/code&gt; property is set to &lt;code&gt;0&lt;/code&gt; so you don&amp;rsquo;t inadvertantly update Elastic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating Libvirt VMs to Proxmox VE by importing qcow2 disks to Ceph</title>
      <link>https://wporter.org/migrating-libvirt-vms-to-proxmox-ve-by-importing-qcow2-disks-to-ceph/</link>
      <pubDate>Sun, 22 Feb 2026 23:00:00 +0000</pubDate>
      <guid>https://wporter.org/migrating-libvirt-vms-to-proxmox-ve-by-importing-qcow2-disks-to-ceph/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m migrating from a Libvirt hypervisor (AlmaLinux 10) to Proxmox VE.&lt;/p&gt;&#xA;&lt;p&gt;In my case, my images are backed by a cloud-init template:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[root@3060t0 ~]# qemu-img info --backing-chain /var/lib/libvirt/images/UniFi_OS.qcow2 &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;image: /var/lib/libvirt/images/UniFi_OS.qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;file format: qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;virtual size: 32 GiB (34359738368 bytes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;disk size: 5.09 GiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cluster_size: 65536&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;backing file: /srv/iso/AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;backing file format: qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Format specific information:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    compat: 1.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    compression type: zlib&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    lazy refcounts: true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    refcount bits: 16&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    corrupt: false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    extended l2: false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Child node &amp;#39;/file&amp;#39;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    filename: /var/lib/libvirt/images/UniFi_OS.qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    protocol type: file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    file length: 6.51 GiB (6987579392 bytes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    disk size: 5.09 GiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;image: /srv/iso/AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;file format: qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;virtual size: 10 GiB (10737418240 bytes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;disk size: 439 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cluster_size: 65536&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Format specific information:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    compat: 1.1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    compression type: zlib&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    lazy refcounts: false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    refcount bits: 16&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    corrupt: false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    extended l2: false&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Child node &amp;#39;/file&amp;#39;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    filename: /srv/iso/AlmaLinux-10-GenericCloud-10.0-20250528.0.x86_64.qcow2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    protocol type: file&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    file length: 439 MiB (460062720 bytes)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    disk size: 439 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;So, before I move the VMs off this host (with the backing file on it) I had to rebase them (consolidate the backing file and changes to a new QCOW). This can be done by &amp;ldquo;converting&amp;rdquo; the current VM disk with &lt;code&gt;qemu-img&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PVE/Ceph hyperconverged cluster build/Ceph performance tuning</title>
      <link>https://wporter.org/pve/ceph-hyperconverged-cluster-build/ceph-performance-tuning/</link>
      <pubDate>Sun, 22 Feb 2026 22:00:00 +0000</pubDate>
      <guid>https://wporter.org/pve/ceph-hyperconverged-cluster-build/ceph-performance-tuning/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;This is a continuation of (and hopefully the final rebuild for) my &amp;ldquo;2025 Q4&amp;rdquo; cluster build project (yeah, I went a little past my deadline there).&lt;/p&gt;&#xA;&lt;p&gt;Long story short, I&amp;rsquo;ve been looking to eliminate single points of failure in my infrastructure (at least, where they&amp;rsquo;re easy to fix), so I wound up with three HP Z2 G4 SFF workstations (LGA 1151) and started trying to build a Proxmox (as I&amp;rsquo;m now responsible for supporting it professionally and do not have the time to figure out the perfect hypervisor That Is Not Proxmox) cluster out of them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Failing to build a Proxmox &#43; LINSTOR (DRBD) HCI cluster (ft. RDMA and ewaste!)</title>
      <link>https://wporter.org/failing-to-build-a-proxmox--linstor-drbd-hci-cluster-ft.-rdma-and-ewaste/</link>
      <pubDate>Mon, 02 Feb 2026 22:00:00 +0000</pubDate>
      <guid>https://wporter.org/failing-to-build-a-proxmox--linstor-drbd-hci-cluster-ft.-rdma-and-ewaste/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I had a machine go down the other day. It was my sole &amp;ldquo;production&amp;rdquo; hypervisor (an old crappy Optiplex) running all my stuff. Yes, my redundant DNS&amp;hellip; on one machine.&lt;/p&gt;&#xA;&lt;p&gt;So I set about fixing it. I did some reading on distributed storage (because who do you think I am? I&amp;rsquo;m not going to waste machines on making my own SAN.. at least, I won&amp;rsquo;t if I have to pay for power), scrounged through the drawers for RAM and SSDs, ordered some modest hardware, and here we are. This is (supposedly) my new production hypervisor cluster!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flash Mellanox ConnectX-3 Pro firmware (CX314A-BCCT to CX354A-FCCT)</title>
      <link>https://wporter.org/flash-mellanox-connectx-3-pro-firmware-cx314a-bcct-to-cx354a-fcct/</link>
      <pubDate>Sat, 31 Jan 2026 19:00:00 +0000</pubDate>
      <guid>https://wporter.org/flash-mellanox-connectx-3-pro-firmware-cx314a-bcct-to-cx354a-fcct/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;The ConnectX-3 Pro (MT27520) was sold in a few different configurations (e.g., dual SFP+, QSFP+, dual QSFP+, Ethernet only, Infiniband and Ethernet). However, all the ASICs are the same, so you can easily cross-flash them (It&amp;rsquo;s possible to flash VPI firmware to an Ethernet card if you want to unlock Infiniband.)&lt;/p&gt;&#xA;&lt;p&gt;You can also typically flash OEM cards to stock Mellanox firmware with little hassle.&lt;/p&gt;&#xA;&lt;p&gt;The most recent batch I purchased are CX314 Ethernet-only cards (about $10 each) so I figure I&amp;rsquo;ll crossflash them to the VPI cards before pressing them into service as IB HCAs (for that sweet, sweet RDMA).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Fluent Bit on Windows to ship event logs to VictoriaLogs</title>
      <link>https://wporter.org/using-fluent-bit-on-windows-to-ship-event-logs-to-victorialogs/</link>
      <pubDate>Wed, 14 Jan 2026 23:30:00 +0000</pubDate>
      <guid>https://wporter.org/using-fluent-bit-on-windows-to-ship-event-logs-to-victorialogs/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://docs.fluentbit.io/manual/installation/downloads/windows&#34;&gt;Windows install docs&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://docs.fluentbit.io/manual/installation/downloads/windows#can-you-manage-fluent-bit-service-using-powershell&#34;&gt;Windows service setup&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Fluent Bit is designed solely as a low-overhead forwarding agent, primarily for logs (though it does have support for metrics as well), and has a wide ecosystem of &amp;ldquo;input&amp;rdquo; and &amp;ldquo;output&amp;rdquo; plugins that permit it to be used to collect logs or metrics from a wide variety of things, then ship said logs or metrics to a wide variety of data stores (e.g., in our case, it&amp;rsquo;ll ship via a web request POSTing events to VictoriaLogs).&lt;/p&gt;</description>
    </item>
    <item>
      <title>1, 10, 25, 40 gig NIC shopping list</title>
      <link>https://wporter.org/1-10-25-40-gig-nic-shopping-list/</link>
      <pubDate>Wed, 14 Jan 2026 20:50:00 +0000</pubDate>
      <guid>https://wporter.org/1-10-25-40-gig-nic-shopping-list/</guid>
      <description>&lt;h2 id=&#34;gigabit&#34;&gt;Gigabit&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BCM5719 (quad-port Broadcom PCIe 2.0x4, ~$15, SR-IOV, VMq)&lt;/li&gt;&#xA;&lt;li&gt;BCM5720 (dual-port Broadcom PCIe 2.0x1, ~$10, SR-IOV, VMq)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Cheap OEM models of Broadcom NICs:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HP 331T (~$10 - 12)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HP 332T - BCM5720 (&amp;lt;$10, some for ~$5)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Dell 0YGCV4 (not cheap, but included for completeness, ~$15)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Note that the HPE or Dell OEM NICs (especially HPE) you may have to tape off the SMBus pins (B5 and B6, lay the card flat with the rear/ports pointed to your left and go right four, don&amp;rsquo;t tape the back pins off, label tape, kapton tape, electrical tape will work fine) on the PCI-E finger of the card to get it to boot in things that are not a server. If you do not do this, you may encounter memory errors including failure to POST or missing memory channels.&lt;/p&gt;</description>
    </item>
    <item>
      <title>IBM V7000 Expansion Module 2076-224 24SFF SAS2 disk shelves (Xyratex EB-2425-E6EBD)</title>
      <link>https://wporter.org/ibm-v7000-expansion-module-2076-224-24sff-sas2-disk-shelves-xyratex-eb-2425-e6ebd/</link>
      <pubDate>Wed, 14 Jan 2026 20:45:00 +0000</pubDate>
      <guid>https://wporter.org/ibm-v7000-expansion-module-2076-224-24sff-sas2-disk-shelves-xyratex-eb-2425-e6ebd/</guid>
      <description>&lt;p&gt;I recently decommissioned an IBM V7000 SAN (dual controller, each is commodity Xeon, probably LGA 1366, running what is, as best as I can tell, Linux with a Java webapp for management). Good riddance.&lt;/p&gt;&#xA;&lt;p&gt;I had a feeling that the disk shelves were just SAS, so I grabbed them for some science. Well, turns out, the Gen 1 IBM V7000 expansion modules are perfectly normal SAS2 disk shelves. Nothing special about them. They are white-labeled Xyratex EB-2425-E6EBD enclosures (as sold by Pure, NetApp, Dell, HPE, Cray, Seagate.. so, if you need parts, they&amp;rsquo;re very easy to find) and pretty quiet for 24x 600gb 10K spinnies per shelf. I hooked them up to a Dell H200E (LSI 2008) HBA and the disks came right up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Encrypted File System basics</title>
      <link>https://wporter.org/windows-encrypted-file-system-basics/</link>
      <pubDate>Sun, 04 Jan 2026 17:45:00 +0000</pubDate>
      <guid>https://wporter.org/windows-encrypted-file-system-basics/</guid>
      <description>&lt;p&gt;BitLocker is great, but is primarily useful for preventing tampering when the system is offline. Once your system is online, a sufficiently privileged user could write to or read from anywhere on the disk. The Encrypted File System (EFS) exists to mitigate this.&lt;/p&gt;&#xA;&lt;p&gt;EFS, a capability of NTFS (since Windows 2000) allows you to mark files or directories for transparent encryption.&lt;/p&gt;&#xA;&lt;p&gt;This is not to be confused with Windows Personal Data Encryption, an Enterprise-edition feature tied to Windows Hello for Business introduced with Windows 11, version 24H2. PDE is similar, requires Windows 11 Enterprise (e.g., M365 E3/E5) and uses WHfB keypairs rather than user certificates (and thus requires Entra join and Windows Hello logon, and thus doesn&amp;rsquo;t work via RDP).&lt;/p&gt;</description>
    </item>
    <item>
      <title>accurately generate SELinux policy with audit2allow</title>
      <link>https://wporter.org/accurately-generate-selinux-policy-with-audit2allow/</link>
      <pubDate>Tue, 09 Dec 2025 01:30:00 +0000</pubDate>
      <guid>https://wporter.org/accurately-generate-selinux-policy-with-audit2allow/</guid>
      <description>&lt;p&gt;&lt;code&gt;audit2allow&lt;/code&gt; is a powerful tool to turn a mess of SELinux audit logs into a policy that allows your application to do the stuff it needs to do. You can save time and headaches when attempting to fix SELinux access denial errors with a custom policy generated via &lt;code&gt;audit2allow&lt;/code&gt; by:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;unmasking &amp;ldquo;unimportant&amp;rdquo; events that may be preventing your service from functioning&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;semodule -DB&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;dropping SELinux into passive mode (preferably for just the specific context)&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;setenforce 0&lt;/code&gt; or &lt;code&gt;semanage permissive -a mycontext_t&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;wiping the audit log before a reproduce so you only feed &lt;code&gt;audit2allow&lt;/code&gt; what is needed&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;&amp;gt; /var/log/audit/audit.log&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;running the failing action/service/application and capturing a fresh set of events&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# disable dontaudit so *every* selinux denial is logged&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# some that the policy author thought were unimportant are probably masked&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;semodule -DB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# set selinux to &amp;#39;passive&amp;#39; mode (audit but don&amp;#39;t enforce MAC violations)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# this will let us log everything it&amp;#39;s blocking (what we need to allow)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;setenforce &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# OR set just one context passive&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# semanage permissive -a examplecontext_t&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# to later set this &amp;#34;examplecontext_t&amp;#34; context back to enforcing:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# semanage permissive -d examplecontext_t&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# clear the audit log so extra stuff doesn&amp;#39;t find its way into our generated policy&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt; /var/log/audit/audit.log&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# create audit events - run whatever is failing, e.g., systemd service &amp;#39;mybrokenservice.service&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl restart mybrokenservice&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# capture all deny avc events into a policy template&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /var/log/audit/audit.log &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; audit2allow -m mypolicy &amp;gt; mypolicy.te&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# set SELinux back to &amp;#39;enforcing&amp;#39; mode since we&amp;#39;ve probably collected our events now&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;setenforce &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# OR if you just set one context: semanage permissive -d examplecontext_t&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# reenable dontaudit so the log isn&amp;#39;t filled with junk being intentionally blocked&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;semodule -B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Audit the generated &lt;code&gt;*.te&lt;/code&gt; file (e.g., &lt;code&gt;mypolicy.te&lt;/code&gt;) to confirm you&amp;rsquo;re not allowing too much access.&lt;/p&gt;</description>
    </item>
    <item>
      <title>smartd &gt; {eml,ntfy} on Alma 9 &amp; 10, PVE 9</title>
      <link>https://wporter.org/smartd-emlntfy-on-alma-9-10-pve-9/</link>
      <pubDate>Mon, 08 Dec 2025 01:30:00 +0000</pubDate>
      <guid>https://wporter.org/smartd-emlntfy-on-alma-9-10-pve-9/</guid>
      <description>&lt;p&gt;AlmaLinux 10.1 6.12.0 on amd64 (host &amp;ldquo;3060t0&amp;rdquo;) with smartmontools 7.4&lt;/p&gt;&#xA;&lt;p&gt;Proxmox VE 9.1.1 6.17.2-1-pve on amd64 (host &amp;ldquo;800g4m0&amp;rdquo;) with smartmontools 7.4&lt;/p&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://linux.die.net/man/5/smartd.conf&#34;&gt;smartd.conf(5)&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You probably want to know when a disk fails. smartd (typically included with the smartmontools package) can tell you.&lt;/p&gt;&#xA;&lt;p&gt;If you don&amp;rsquo;t have smartmontools, get it:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install -y smartmontools&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Confirm the &lt;code&gt;smartd&lt;/code&gt; service is running:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ systemctl status smartd&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;○ smartd.service - Self Monitoring and Reporting Technology (SMART) Daemon&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     Loaded: loaded (/usr/lib/systemd/system/smartd.service; enabled; preset: enabled)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     Active: inactive (dead)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       Docs: man:smartd(8)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;             man:smartd.conf(5)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If needed, enable and start it:&lt;/p&gt;</description>
    </item>
    <item>
      <title>systemd-journal-upload on AlmaLinux</title>
      <link>https://wporter.org/systemd-journal-upload-on-almalinux/</link>
      <pubDate>Mon, 08 Dec 2025 01:00:00 +0000</pubDate>
      <guid>https://wporter.org/systemd-journal-upload-on-almalinux/</guid>
      <description>&lt;p&gt;See &lt;a href=&#34;https://www.freedesktop.org/software/systemd/man/latest/systemd-journal-remote.service.html&#34;&gt;systemd-journal-remote(8)&lt;/a&gt;, &lt;a href=&#34;https://www.freedesktop.org/software/systemd/man/latest/journal-remote.conf.html&#34;&gt;journal-remote.conf(5)&lt;/a&gt; for detailed setup instructions. Consider this a minimal config example. &lt;a href=&#34;https://github.com/hpst3r/nixos/blob/b963e38c75ae8c80320dfd9770e0691422317b20/modules/services/monitoring/agents/journald-upload.nix&#34;&gt;See this in my NixOS configuration&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;almalinux-10&#34;&gt;AlmaLinux 10&lt;/h2&gt;&#xA;&lt;p&gt;Install the &lt;code&gt;systemd-journal-remote&lt;/code&gt; package:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install -y systemd-journal-remote&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Populate the configuration file. Adjust to fit. I&amp;rsquo;m pulling all of my logs into a VictoriaLogs instance; you can use another machine running &lt;code&gt;journal-remote&lt;/code&gt; or any other log server that takes the journal-upload format.&lt;/p&gt;&#xA;&lt;p&gt;If you intend to use port 443, you&amp;rsquo;ll need to modify SELinux policy. I&amp;rsquo;ve made my VictoriaLogs server listen on the default port (19532) for systemd-journal-upload instead.&lt;/p&gt;</description>
    </item>
    <item>
      <title>basic Postfix config</title>
      <link>https://wporter.org/basic-postfix-config/</link>
      <pubDate>Mon, 08 Dec 2025 00:30:00 +0000</pubDate>
      <guid>https://wporter.org/basic-postfix-config/</guid>
      <description>&lt;p&gt;AlmaLinux 10.1 6.12.0 on amd64 (host &amp;ldquo;3060t0&amp;rdquo;) with Postfix 3.8.5-8.el10&lt;/p&gt;&#xA;&lt;p&gt;Postfix is a Mail Transfer Agent (MTA) - the component of a &amp;ldquo;mail server&amp;rdquo; that primarily handles routing and relaying email between mail servers. In other words, it is a lightweight utility capable of routing (and sending) mail.&lt;/p&gt;&#xA;&lt;p&gt;Postfix does:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Send mail&lt;/li&gt;&#xA;&lt;li&gt;Receive mail&lt;/li&gt;&#xA;&lt;li&gt;Route mail between systems&lt;/li&gt;&#xA;&lt;li&gt;Queue messages for delivery&lt;/li&gt;&#xA;&lt;li&gt;Retry failed deliveries&lt;/li&gt;&#xA;&lt;li&gt;Relay outbound mail&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Postfix doesn&amp;rsquo;t:&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOS root on (mirrored) ZFS</title>
      <link>https://wporter.org/nixos-root-on-mirrored-zfs/</link>
      <pubDate>Sun, 30 Nov 2025 11:31:00 +0000</pubDate>
      <guid>https://wporter.org/nixos-root-on-mirrored-zfs/</guid>
      <description>&lt;p&gt;NixOS 25.05 6.12.55 &lt;a href=&#34;https://github.com/hpst3r/nixos/tree/8b9e30ffb471c1001f5739c8fd05a9bd99cfd21b&#34;&gt;8b9e30f&lt;/a&gt; on amd64 (host &amp;ldquo;6028a&amp;rdquo;)&lt;/p&gt;&#xA;&lt;p&gt;Be sure to boot live media with the LTS kernel for ZFS support.&lt;/p&gt;&#xA;&lt;p&gt;For more detail about partitioning &amp;amp; ZFS params, review &lt;a href=&#34;https://wporter.org/nixos-root-on-natively-encrypted-zfs&#34;&gt;this post, derived from the NixOS wiki, where I go into more depth&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;partitioning&#34;&gt;Partitioning&lt;/h2&gt;&#xA;&lt;p&gt;Desired layout:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SSD #0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│─ /boot0 1G vfat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─ rpool 1G 100% ZFS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SSD #1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│─ /boot1 1G vfat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─ rpool 1G 100% ZFS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Fetch the ZFS package:&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOS root on (natively encrypted) ZFS</title>
      <link>https://wporter.org/nixos-root-on-natively-encrypted-zfs/</link>
      <pubDate>Sun, 30 Nov 2025 11:30:00 +0000</pubDate>
      <guid>https://wporter.org/nixos-root-on-natively-encrypted-zfs/</guid>
      <description>&lt;p&gt;NixOS 25.05 6.12.55 &lt;a href=&#34;https://github.com/hpst3r/nixos/tree/8b9e30ffb471c1001f5739c8fd05a9bd99cfd21b&#34;&gt;8b9e30f&lt;/a&gt; on amd64 (hosts = [ &amp;ldquo;p1g4&amp;rdquo; &amp;ldquo;t14g2a&amp;rdquo; ])&lt;/p&gt;&#xA;&lt;p&gt;This is derived from the content on the NixOS wiki, with a few additions for personal ease-of-use. See &lt;a href=&#34;https://wiki.nixos.org/wiki/ZFS&#34;&gt;wiki/ZFS&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll be installing NixOS 25.05 on ZFS with native encryption (passkey at boot).&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve downloaded a standard 25.05 live image from nixos.org and booted the LTS kernel (if you do not do this, you won&amp;rsquo;t have ZFS support! you can probably manually build a live image with a newer kernel and ZFS, but the live:latest images don&amp;rsquo;t have ZFS!)&lt;/p&gt;</description>
    </item>
    <item>
      <title>NixOS root on (plain) XFS</title>
      <link>https://wporter.org/nixos-root-on-plain-xfs/</link>
      <pubDate>Sun, 30 Nov 2025 11:29:00 +0000</pubDate>
      <guid>https://wporter.org/nixos-root-on-plain-xfs/</guid>
      <description>&lt;p&gt;NixOS 25.05 6.12.55 &lt;a href=&#34;https://github.com/hpst3r/nixos/tree/8b9e30ffb471c1001f5739c8fd05a9bd99cfd21b&#34;&gt;8b9e30f&lt;/a&gt; on amd64 (host &amp;ldquo;xps9380&amp;rdquo;)&lt;/p&gt;&#xA;&lt;p&gt;Example of lazy single &lt;code&gt;/&lt;/code&gt; partition setup. You could run a smaller ESP that is not also &lt;code&gt;/boot&lt;/code&gt; and lump &lt;code&gt;/boot&lt;/code&gt; into &lt;code&gt;/&lt;/code&gt; if desired, but I like to be consistent.&lt;/p&gt;&#xA;&lt;p&gt;Disk layout:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SSD #0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│─ boot 1G vfat (ESP, kernel)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│─ swap 1G 17G (16G) swapdevice&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└─ root 17G 100% XFS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo -i&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# partition disk&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;parted /dev/nvme0n1 -- mklabel gpt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;parted /dev/nvme0n1 -- mkpart ESP fat32 1MB 1G&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;parted /dev/nvme0n1 -- &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; esp on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;parted /dev/nvme0n1 -- mkpart swap linux-swap 1G 17G&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;parted /dev/nvme0n1 -- mkpart root 17G 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# helper vars for easier copypaste&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;boot&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/dev/disk/by-id/nvme-Samsung_SSD_960_EVO_250GB-part1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;swap&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/dev/disk/by-id/nvme-Samsung_SSD_960_EVO_250GB-part2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;root&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/dev/disk/by-id/nvme-Samsung_SSD_960_EVO_250GB-part3&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# enable swap&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkswap -L swap &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$swap&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;swapon &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$swap&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# format root part&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkfs.xfs &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$root&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir /mnt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$root&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; /mnt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# format boot part&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkfs.fat -F &lt;span class=&#34;m&#34;&gt;32&lt;/span&gt; -n boot &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$boot&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir /mnt/boot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$boot&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; /mnt/boot&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# gen config, if needed&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nixos-generate-config --root /mnt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# if not needed, now is a great time to clone/copy over your config&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nixos-install --root /mnt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# set the root password when prompted, then reboot to your new system&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Relevant bits of hardware configuration:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Point PVE system at a custom loopback interface to allow dynamic IPs without dependencies</title>
      <link>https://wporter.org/point-pve-system-at-a-custom-loopback-interface-to-allow-dynamic-ips-without-dependencies/</link>
      <pubDate>Sat, 29 Nov 2025 11:30:00 +0000</pubDate>
      <guid>https://wporter.org/point-pve-system-at-a-custom-loopback-interface-to-allow-dynamic-ips-without-dependencies/</guid>
      <description>&lt;p&gt;PVE 9.1.1 6.17.2-2 (2025-11-26T12:33Z) on amd64&lt;/p&gt;&#xA;&lt;p&gt;Proxmox VE&amp;rsquo;s cluster services &lt;em&gt;heavily&lt;/em&gt; rely on DNS (they need the node to resolve its hostname to a non-loopback IP address), even in a single-node scenario. This is just a byproduct of its &amp;ldquo;always-clustered&amp;rdquo;, multi-master design. This poses a problem if you&amp;rsquo;d like a self-contained, portable PVE system without dependencies on external DNS or a static network configuration (e.g., a static entry in &lt;code&gt;/etc/hosts&lt;/code&gt;, which is the default behavior).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Migrating guests between incompatible versions of QEMU</title>
      <link>https://wporter.org/migrating-guests-between-incompatible-versions-of-qemu/</link>
      <pubDate>Sat, 29 Nov 2025 01:30:00 +0000</pubDate>
      <guid>https://wporter.org/migrating-guests-between-incompatible-versions-of-qemu/</guid>
      <description>&lt;p&gt;You cannot live-migrate Libvirt VMs between different QEMU versions over SSH (sadly, since that feature is awesome). You can, however, easily perform an offline migration.&lt;/p&gt;&#xA;&lt;p&gt;I was migrating from Alma 10 to Fedora 43; your QEMU machine types may vary.&lt;/p&gt;&#xA;&lt;p&gt;First, stop the VM on the source server.&lt;/p&gt;&#xA;&lt;p&gt;Dump the configuration for the domain:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;root@machine0:~# virsh dumpxml file-pub-0.lab.wporter.org &amp;gt; file-pub-0-cfg.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Copy the VHD over (typically to /var/lib/libvirt/images), and copy the config over somewhere easily accessible (it&amp;rsquo;s just going to be used to define the VM in the new spot). &lt;code&gt;scp&lt;/code&gt; is nice and easy to use for this (and means your traffic is going over the wire encrypted).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Proxying the Proxmox VE &amp; Backup Server web UIs with NGINX</title>
      <link>https://wporter.org/proxying-the-proxmox-ve-backup-server-web-uis-with-nginx/</link>
      <pubDate>Fri, 28 Nov 2025 22:30:00 +0000</pubDate>
      <guid>https://wporter.org/proxying-the-proxmox-ve-backup-server-web-uis-with-nginx/</guid>
      <description>&lt;p&gt;PVE 9.1.1 6.17.2-2 (2025-11-26T12:33Z), PBS 4.1.0 6.17.2-1 (2025-10-21T11:55Z) on amd64&lt;/p&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://pve.proxmox.com/wiki/Web_Interface_Via_Nginx_Proxy&#34;&gt;docs (pve.proxmox.com)&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For more info on using the built-in ACME certificate renewal utilities, see &lt;a href=&#34;proxmox-ve-backup-server-built-in-acme-cert-renewal/&#34;&gt;this other post on that subject (wporter.org)&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pve&#34;&gt;PVE&lt;/h2&gt;&#xA;&lt;h3 id=&#34;simpler-maybe---reuse-the-proxmox-acme-script&#34;&gt;Simpler (maybe) - reuse the proxmox-acme script&lt;/h3&gt;&#xA;&lt;p&gt;If you want to use the built-in &lt;code&gt;/usr/share/proxmox-acme&lt;/code&gt; &amp;lsquo;requester&amp;rsquo; (managed with &lt;code&gt;pvenode&lt;/code&gt; or the web UI), omit a HTTP redirect/ACME block so NGINX doesn&amp;rsquo;t eat port 80 and just point NGINX at the &lt;code&gt;/etc/pve/nodes/hostname/pveproxy-ssl.pem&lt;/code&gt; certificate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Proxmox VE &amp; Backup Server built-in ACME cert renewal</title>
      <link>https://wporter.org/proxmox-ve-backup-server-built-in-acme-cert-renewal/</link>
      <pubDate>Fri, 28 Nov 2025 21:30:00 +0000</pubDate>
      <guid>https://wporter.org/proxmox-ve-backup-server-built-in-acme-cert-renewal/</guid>
      <description>&lt;p&gt;PVE 9.1.1 6.17.2-2 (2025-11-26T12:33Z), PBS 4.1.0 6.17.2-1 (2025-10-21T11:55Z) on amd64&lt;/p&gt;&#xA;&lt;p&gt;Relevant docs: &lt;a href=&#34;https://pve.proxmox.com/wiki/Certificate_Management&#34;&gt;Proxmox VE docs - Certificate Management&lt;/a&gt;, &lt;a href=&#34;https://pbs.proxmox.com/wiki/HTTPS_Certificate_Configuration&#34;&gt;Proxmox BS docs - HTTPS Certificate Configuration&lt;/a&gt;, &lt;code&gt;pvenode(1)&lt;/code&gt;, &lt;code&gt;proxmox-backup-manager(1)&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;If you&amp;rsquo;re using a custom ACME responder with a private (not publicly trusted) certificate, &lt;strong&gt;be sure to install your root cert&lt;/strong&gt; and &lt;code&gt;update-ca-certificates&lt;/code&gt; before trying to connect to the CA via HTTPS to request a cert.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pve&#34;&gt;PVE&lt;/h2&gt;&#xA;&lt;p&gt;Create an ACME account on the PVE box:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Renaming a standalone Proxmox node with guests</title>
      <link>https://wporter.org/renaming-a-standalone-proxmox-node-with-guests/</link>
      <pubDate>Fri, 28 Nov 2025 21:30:00 +0000</pubDate>
      <guid>https://wporter.org/renaming-a-standalone-proxmox-node-with-guests/</guid>
      <description>&lt;p&gt;PVE 9.1.1 6.17.2-2 (2025-11-26T12:33Z) on amd64&lt;/p&gt;&#xA;&lt;p&gt;Reference &lt;a href=&#34;https://pve.proxmox.com/wiki/Renaming_a_PVE_node&#34;&gt;docs&lt;/a&gt;, &lt;a href=&#34;https://forum.proxmox.com/threads/changing-hostname-and-ip-of-non-empty-pve-host.112068/&#34;&gt;this forum post&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I would really recommend shutting down your guests before doing this.&lt;/p&gt;&#xA;&lt;p&gt;Modify &lt;code&gt;/etc/hosts&lt;/code&gt; (OR your DNS record, if you&amp;rsquo;re not using the hosts file), &lt;code&gt;/etc/hostname&lt;/code&gt;, &lt;code&gt;/etc/mailname&lt;/code&gt; (if applicable), &lt;code&gt;/etc/postfix/main.cf&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sed -i &lt;span class=&#34;s1&#34;&gt;&amp;#39;s/oldname/newname/g&amp;#39;&lt;/span&gt; /etc/&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;hosts,hostname,/postfix/main.cf&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, it&amp;rsquo;s simplest to stop the cluster filesystem and edit the backing database to rename the &lt;code&gt;/etc/pve/nodes&lt;/code&gt; directory for the server.&lt;/p&gt;&#xA;&lt;p&gt;Yes, really, though fighting the cluster FS and moving, not copying, the files in mounted &lt;code&gt;/etc/pve/nodes/old&lt;/code&gt; to &lt;code&gt;/etc/pve/nodes/new&lt;/code&gt; (directory by directory - you cannot move/rename a non-empty directory on the pmxcfs, so you will have to move &lt;code&gt;/old/qemu-server/*&lt;/code&gt;, etc) should also work if this makes you squeamish.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Install a root certificate on Proxmox VE, BS, DM</title>
      <link>https://wporter.org/install-a-root-certificate-on-proxmox-ve-bs-dm/</link>
      <pubDate>Fri, 28 Nov 2025 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/install-a-root-certificate-on-proxmox-ve-bs-dm/</guid>
      <description>&lt;p&gt;Proxmox uses the system certificate store, so install your certs the same way you would on any other Debian system:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scp root-ca-a.crt root@proxmox:~&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh root@proxmox&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mv root-ca-a.crt /usr/local/share/ca-certificates/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;update-ca-certificates&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>ipmitool</title>
      <link>https://wporter.org/ipmitool/</link>
      <pubDate>Sun, 23 Nov 2025 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/ipmitool/</guid>
      <description>&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;p&gt;Configure networking:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install -y ipmitool &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; nix-shell -p ipmitool&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool lan &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ipsrc static&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool lan &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; netmask 255.255.255.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool lan &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; defgw ipaddr 0.0.0.0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool lan &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; ipaddr 192.0.2.10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool mc reset warm&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;List users:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool user list&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Set a password:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;read&lt;/span&gt; -s password&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool user &lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; password &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$password&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Get network info:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool lan6 print&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo ipmitool lan print&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Get reported power consumption:&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;ipmitool&lt;/code&gt; is a utility for interacting with system BMC/IPMI controllers/management interfaces.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Testing and stressing spinning drives</title>
      <link>https://wporter.org/testing-and-stressing-spinning-drives/</link>
      <pubDate>Fri, 21 Nov 2025 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/testing-and-stressing-spinning-drives/</guid>
      <description>&lt;h2 id=&#34;intro&#34;&gt;Intro&lt;/h2&gt;&#xA;&lt;p&gt;When purchasing spinning drives from eBay, you&amp;rsquo;ll usually want to run a torture test on them (so if they&amp;rsquo;re going to die, they die during your return window).&lt;/p&gt;&#xA;&lt;p&gt;I like to use two utilities for this:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;badblocks(8)&lt;/code&gt; is a utility to &amp;ldquo;search a device for bad blocks&amp;rdquo;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;smartmontools&lt;/code&gt; allows you to send commands to supported drives, e.g., to request that they perform a self-test.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;code&gt;badblocks&lt;/code&gt; isn&amp;rsquo;t &lt;em&gt;perfect&lt;/em&gt; for its original intended use case - e.g., it can&amp;rsquo;t tell if your drives decide to use their massive reallocation areas and have fixed bad blocks themselves, which they often will - but it does give you an easy way to generate quite a lot of I/O (of course, you could do the same thing with &lt;a href=&#34;https://github.com/axboe/fio&#34;&gt;&lt;code&gt;fio&lt;/code&gt;&lt;/a&gt; if you so please.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>USB-C laptop docks</title>
      <link>https://wporter.org/usb-c-laptop-docks/</link>
      <pubDate>Wed, 29 Oct 2025 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/usb-c-laptop-docks/</guid>
      <description>&lt;p&gt;What a mess. I miss old port replicators.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tldr&#34;&gt;TL;DR&lt;/h2&gt;&#xA;&lt;p&gt;New laptop with Thunderbolt or USB4 + want 3+ high-res displays? Dell WD22TB4 or Lenovo 40B0&lt;/p&gt;&#xA;&lt;p&gt;AMD without USB4? Lenovo 40AS, Dell WD19TB or WD19s&lt;/p&gt;&#xA;&lt;p&gt;Mac? Caldigit/OWC, or 40AS/WD19TB/WD22TB4 to save a buck. Desperate for screens? DisplayLink. It&amp;rsquo;s complicated&lt;/p&gt;&#xA;&lt;p&gt;Cheap? Dell WD19TB/Lenovo 40AC&lt;/p&gt;&#xA;&lt;h2 id=&#34;standards&#34;&gt;Standards&lt;/h2&gt;&#xA;&lt;p&gt;USB-C w/ DisplayPort alt mode and power delivery: your laptop almost certainly has this, unless it is quite literally the cheapest thing on the planet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Azure Container Instances fundamentals &amp; quick lab</title>
      <link>https://wporter.org/azure-container-instances-fundamentals-quick-lab/</link>
      <pubDate>Sun, 26 Oct 2025 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/azure-container-instances-fundamentals-quick-lab/</guid>
      <description>&lt;p&gt;Let&amp;rsquo;s wrap a basic Python script in a Docker container and run it in Azure Container Instances. Additionally, we&amp;rsquo;ll set up Azure Monitor to alert us when the container fails. Pretty simple!&lt;/p&gt;&#xA;&lt;p&gt;This will target the following areas of the AZ-104 study guide:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create and configure storage accounts&lt;/li&gt;&#xA;&lt;li&gt;Provision and manage containers&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create and manage an Azure container registry&lt;/li&gt;&#xA;&lt;li&gt;Provision a container using Azure Container Instances&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The benefits of using Azure Container Instances are many:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Registering Azure resource providers</title>
      <link>https://wporter.org/registering-azure-resource-providers/</link>
      <pubDate>Sun, 26 Oct 2025 16:30:00 +0000</pubDate>
      <guid>https://wporter.org/registering-azure-resource-providers/</guid>
      <description>&lt;p&gt;You must enable resource providers to use parts of Azure with a subscription. This helps protect you from compromise by making it more difficult for a malicious user with lesser privileges to activate new services in a subscription, according to Microsoft.&lt;/p&gt;&#xA;&lt;p&gt;This is usually done automagically if you have the adequate permissions (to perform the &lt;code&gt;/register/action&lt;/code&gt; operation) and try to create a resource that requires a currently-inactive provider, but you can certainly go ahead and toggle these manually.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes on adding Trusted Locations via registry/rant about M365 Business</title>
      <link>https://wporter.org/notes-on-adding-trusted-locations-via-registry/rant-about-m365-business/</link>
      <pubDate>Tue, 21 Oct 2025 23:30:00 +0000</pubDate>
      <guid>https://wporter.org/notes-on-adding-trusted-locations-via-registry/rant-about-m365-business/</guid>
      <description>&lt;p&gt;My example will be Excel, but this applies to any Office apps.&lt;/p&gt;&#xA;&lt;p&gt;If you have Office for Business (e.g., M365 Business Premium), your apps don&amp;rsquo;t support ADMX anymore (thanks, Microsoft). This is an &amp;ldquo;Office for Enterprise&amp;rdquo; (E3/E5) or Office LTSC feature only.&lt;/p&gt;&#xA;&lt;p&gt;Sometimes, the Office admin center (config.office.com) will apply policy, but it&amp;rsquo;s very unreliable and very difficult to troubleshoot - even in environments with hybrid Azure AD join configured, you&amp;rsquo;ll only get a handful of your installations calling home. Don&amp;rsquo;t waste your time with it. You will need to set the applicable options in the registry. This can be done through Group Policy or your preferred RMM/logon script (easy!) or Intune (perhaps as a remediation).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick thoughts on M3 15&#34; Mac Air</title>
      <link>https://wporter.org/quick-thoughts-on-m3-15-mac-air/</link>
      <pubDate>Mon, 20 Oct 2025 23:30:00 +0000</pubDate>
      <guid>https://wporter.org/quick-thoughts-on-m3-15-mac-air/</guid>
      <description>&lt;p&gt;Imagine a picture of a Mac here. I was too lazy to take one.&lt;/p&gt;&#xA;&lt;h2 id=&#34;backstory&#34;&gt;Backstory&lt;/h2&gt;&#xA;&lt;p&gt;Short version:&lt;/p&gt;&#xA;&lt;p&gt;I broke the embedded DisplayPort connector on my ThinkPad P1 G4 (too much use?) and wound up buying a MacBook Air after briefly going back to Linux (and remembering how much I don&amp;rsquo;t like Windows desktops).&lt;/p&gt;&#xA;&lt;p&gt;Long version:&lt;/p&gt;&#xA;&lt;p&gt;I swapped too many motherboards in and out of my P1 Gen 4. The embedded DP connector on my original (and only working) board, with a RTX A2000/i7-11800H, stopped holding the cable in properly. After some tape didn&amp;rsquo;t really fix the issue and my screen kept flickering like mad, I switched to a T14s Gen 1 AMD that I&amp;rsquo;ve had on backup duty for a little while. It&amp;rsquo;s far too slow to run Windows 11, so I wound up running Fedora 42 with the GNOME desktop environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Custom Google Search string to not show AI overview</title>
      <link>https://wporter.org/custom-google-search-string-to-not-show-ai-overview/</link>
      <pubDate>Mon, 20 Oct 2025 23:00:00 +0000</pubDate>
      <guid>https://wporter.org/custom-google-search-string-to-not-show-ai-overview/</guid>
      <description>&lt;p&gt;I hate this AI overview thing. If I wanted to use a LLM, I would go use a LLM.&lt;/p&gt;&#xA;&lt;p&gt;To get rid of it, you can create a custom search engine in your preferred browser with the following search string:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;{google:baseURL}/search?udm=14&amp;amp;q=%s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;udm=14&lt;/code&gt; takes you to the &amp;ldquo;web&amp;rdquo; results area immediately (not the primary one with AI garbage on it).&lt;/p&gt;&#xA;&lt;p&gt;To add a new search engine (search string) in Chrome, navigate to &lt;code&gt;chrome://settings/searchEngines&lt;/code&gt;, scroll down to &amp;ldquo;Site Search Engines&amp;rdquo;, click Add, then click the three dots next to your new &amp;ldquo;search engine&amp;rdquo; and set it as the default.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mellanox SX6036 basics (setup, licensing, noise, power, VPI)</title>
      <link>https://wporter.org/mellanox-sx6036-basics-setup-licensing-noise-power-vpi/</link>
      <pubDate>Mon, 20 Oct 2025 22:00:00 +0000</pubDate>
      <guid>https://wporter.org/mellanox-sx6036-basics-setup-licensing-noise-power-vpi/</guid>
      <description>&lt;h2 id=&#34;intro&#34;&gt;Intro&lt;/h2&gt;&#xA;&lt;p&gt;The Mellanox SX6036 is a 36-port 56 Gb/s FDR Infiniband/Ethernet switch. Its forwarding is handled by the Mellanox SwitchX-2 switch chip, and its management plane is a Big Endian PowerPC chip running MLNX-OS (Linux).&lt;/p&gt;&#xA;&lt;p&gt;The SX6036 is interesting because:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;it supports both Infiniband and Ethernet simultaneously, including Ethernet routing (with a very little bit of effort to enable the required licenses)&lt;/li&gt;&#xA;&lt;li&gt;it&amp;rsquo;s around $90 off eBay&lt;/li&gt;&#xA;&lt;li&gt;it has a friendly, Cisco-like CLI&lt;/li&gt;&#xA;&lt;li&gt;it runs Linux and you can get shell access pretty easily&lt;/li&gt;&#xA;&lt;li&gt;perhaps most importantly, because the SwitchX-2 (despite being nearly 15 years old) is rather efficient - 50w at idle with stock fans and no active connections. With DACs, this power figure only slightly increases.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;As for supporting hardware, QSFP 40/50 GBe Mellanox ConnectX-4 LX Ethernet NICs are about $20 all day at the time of writing, and the switch isn&amp;rsquo;t particularly picky about who made the optics or DACs that you plug into it (though Mellanox DACs are quite cheap - I picked up a buttload of 1M and 3M 40/100GBe DACs and some breakouts for about $100).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sending mail with Python via the Microsoft Graph API</title>
      <link>https://wporter.org/sending-mail-with-python-via-the-microsoft-graph-api/</link>
      <pubDate>Wed, 24 Sep 2025 22:00:00 +0000</pubDate>
      <guid>https://wporter.org/sending-mail-with-python-via-the-microsoft-graph-api/</guid>
      <description>&lt;p&gt;You can use the application Mail.Send permission and the &lt;code&gt;https://graph.microsoft.com/v1.0/users/user/sendMail&lt;/code&gt; Graph API endpoint to send mail from a script or program via Microsoft 365. Pretty straightforward - the only slightly complicated part is restricting the scope of your Mail.Send permissions to a specific inbox or group of inboxes, which is an Exchange Online-ism.&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s go through a quick Python example of sending an email. We&amp;rsquo;ll get the app registration created, then scope down access to members of a security group. Then, we&amp;rsquo;ll send a message with a basic example, before getting everything running in a Podman container.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Azure Application Gateway (HTTP load balancer) lab</title>
      <link>https://wporter.org/azure-application-gateway-http-load-balancer-lab/</link>
      <pubDate>Sun, 21 Sep 2025 22:00:00 +0000</pubDate>
      <guid>https://wporter.org/azure-application-gateway-http-load-balancer-lab/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/training/modules/intro-to-azure-application-gateway/&#34;&gt;Relevant MS Learn training module here.&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Just dumping some notes here so it doesn&amp;rsquo;t look totally dead.. I&amp;rsquo;ve been busy doing work &amp;amp; study things that are not particularly bloggable this month.&lt;/p&gt;&#xA;&lt;h2 id=&#34;review-of-docs&#34;&gt;Review of docs&lt;/h2&gt;&#xA;&lt;p&gt;Azure App Gateway is a regional, web-specific load balancer that processes traffic to web apps hosted by a pool of web servers. It can load balance HTTP traffic, offload SSL from your web servers, and inspect traffic (serving as a WAF - e.g., filtering SQL injection or XSS attempts).&lt;/p&gt;</description>
    </item>
    <item>
      <title>PowerShell Core (Microsoft Graph and Az) in a toolbox container on your Linux box</title>
      <link>https://wporter.org/powershell-core-microsoft-graph-and-az-in-a-toolbox-container-on-your-linux-box/</link>
      <pubDate>Sun, 24 Aug 2025 22:00:00 +0000</pubDate>
      <guid>https://wporter.org/powershell-core-microsoft-graph-and-az-in-a-toolbox-container-on-your-linux-box/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re like me (god, for your sake I hope you aren&amp;rsquo;t) you love PowerShell and use Linux.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m also super lazy. And I don&amp;rsquo;t like Microsoft adding 5,000 repositories to my system to keep PowerShell updated. The solution? A container!&lt;/p&gt;&#xA;&lt;p&gt;Toolbox lets you very easily jump into a podman container for a development environment. In this container, you can typically install whatever you&amp;rsquo;d need as if it was on a bare metal install - no special anything required. Since all I need is PowerShell, we&amp;rsquo;ll keep things simple.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microsoft MD-102 (Endpoint Administrator): Pass!</title>
      <link>https://wporter.org/microsoft-md-102-endpoint-administrator-pass/</link>
      <pubDate>Sat, 23 Aug 2025 12:00:00 +0000</pubDate>
      <guid>https://wporter.org/microsoft-md-102-endpoint-administrator-pass/</guid>
      <description>&lt;h2 id=&#34;my-thoughts-on-the-certification&#34;&gt;My thoughts on the certification&lt;/h2&gt;&#xA;&lt;p&gt;I passed the Intune test!&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s been about a year since I started working at a shop that uses Intune (a bit - for iOS and Macs), so on a whim I decided I should get the cert. It took me about three weekends, plus a few hours of study during the week.&lt;/p&gt;&#xA;&lt;p&gt;I had a decent bit of experience with Intune, but don&amp;rsquo;t use it daily.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring silent OneDrive sign-in and Known Folders sync</title>
      <link>https://wporter.org/configuring-silent-onedrive-sign-in-and-known-folders-sync/</link>
      <pubDate>Sun, 17 Aug 2025 17:00:00 +0000</pubDate>
      <guid>https://wporter.org/configuring-silent-onedrive-sign-in-and-known-folders-sync/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/sharepoint/use-silent-account-configuration&#34;&gt;MS Learn link here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You can do this via Group Policy or Intune, depending on how your environment is configured, but the policies are the same.&lt;/p&gt;&#xA;&lt;h2 id=&#34;deploying-silent-onedrive-sync-with-intune&#34;&gt;Deploying silent OneDrive sync with Intune&lt;/h2&gt;&#xA;&lt;p&gt;For successful, silent sync, you MUST configure these three policies:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Silently move known folders to OneDrive&lt;/li&gt;&#xA;&lt;li&gt;Silently sign users in to OneDrive with their Windows credentials&lt;/li&gt;&#xA;&lt;li&gt;Enable Files on Demand&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Here is an example of this minimal configuration in Intune. Choose just these settings from the Settings Catalog and enable them:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Onboarding Microsoft Defender for Endpoint with Intune</title>
      <link>https://wporter.org/onboarding-microsoft-defender-for-endpoint-with-intune/</link>
      <pubDate>Sun, 17 Aug 2025 16:45:00 +0000</pubDate>
      <guid>https://wporter.org/onboarding-microsoft-defender-for-endpoint-with-intune/</guid>
      <description>&lt;h2 id=&#34;licensing-prerequisites&#34;&gt;Licensing Prerequisites&lt;/h2&gt;&#xA;&lt;p&gt;Your tenant requires a license for Defender for Endpoint - either a Microsoft Defender for Endpoint P1 or P2, Microsoft Defender for Server, or Microsoft Defender for Business (&amp;ldquo;P1.5&amp;rdquo; edition for SMBs included with Microsoft 365 Business Premium).&lt;/p&gt;&#xA;&lt;p&gt;Without one of these licenses, you will not see the Assets &amp;gt; Devices tab or the Settings &amp;gt; Endpoints menu, and cannot onboard devices to MDE.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;It may take up to 24 hours for your Defender tenant to be provisioned&lt;/strong&gt; once you have purchased and assigned the required licensing. Your admin account does &lt;strong&gt;not&lt;/strong&gt; need to be licensed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Microsoft Intune Assignment Filters</title>
      <link>https://wporter.org/microsoft-intune-assignment-filters/</link>
      <pubDate>Sun, 17 Aug 2025 16:30:00 +0000</pubDate>
      <guid>https://wporter.org/microsoft-intune-assignment-filters/</guid>
      <description>&lt;p&gt;For info on designing filters for performance and manageability, &lt;a href=&#34;https://learn.microsoft.com/en-us/intune/intune-service/fundamentals/filters-performance-recommendations&#34;&gt;see MS docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Device assignment filters allow you to select what devices a policy assigned to users will apply to, and let you select what devices in a device group are eligible for a policy.&lt;/p&gt;&#xA;&lt;p&gt;App assignment filters allow you to select what devices specific app protection policies apply to.&lt;/p&gt;&#xA;&lt;p&gt;They&amp;rsquo;re both useful tools for scoping down your Intune configuration policies. Let&amp;rsquo;s have a look at them!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes on managing Android devices with Microsoft Intune</title>
      <link>https://wporter.org/notes-on-managing-android-devices-with-microsoft-intune/</link>
      <pubDate>Sat, 09 Aug 2025 17:30:00 +0000</pubDate>
      <guid>https://wporter.org/notes-on-managing-android-devices-with-microsoft-intune/</guid>
      <description>&lt;p&gt;This isn&amp;rsquo;t super polished, but should give you a good idea of how using Intune to manage Android devices works if you&amp;rsquo;ve dealt with Windows or iOS management in the past. Notes made while prepping for the Microsoft MD-102.&lt;/p&gt;&#xA;&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;&#xA;&lt;h3 id=&#34;managed-google-play-account-setup&#34;&gt;Managed Google Play account setup&lt;/h3&gt;&#xA;&lt;p&gt;Before getting started, we&amp;rsquo;ll need to get a managed Google Play account set up.&lt;/p&gt;&#xA;&lt;p&gt;Navigate to the Intune admin center (intune.microsoft.com), then click on Devices &amp;gt; Android &amp;gt; Enrollment. Select the &amp;ldquo;Managed Google Play&amp;rdquo; option under &amp;ldquo;Prerequisites&amp;rdquo;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deploying Windows LAPS for client PCs with Microsoft Intune</title>
      <link>https://wporter.org/deploying-windows-laps-for-client-pcs-with-microsoft-intune/</link>
      <pubDate>Sat, 09 Aug 2025 16:35:00 +0000</pubDate>
      <guid>https://wporter.org/deploying-windows-laps-for-client-pcs-with-microsoft-intune/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;The Windows Local Administrator Password Solution (LAPS) allows administrators to configure a randomized, automatically rotated administrative password for Windows devices. This is a distinct feature from macOS LAPS.&lt;/p&gt;&#xA;&lt;p&gt;Windows LAPS, integrated with Entra ID, replaces the older &amp;rsquo;legacy&amp;rsquo; Microsoft LAPS solution as of Windows 11 23H2. Microsoft is no longer updating &amp;rsquo;legacy&amp;rsquo; LAPS and its .msi package will be blocked from installing on Windows 11 24H2, Server 2025, and newer OSes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring Firefox via policy (registry)</title>
      <link>https://wporter.org/configuring-firefox-via-policy-registry/</link>
      <pubDate>Sun, 13 Jul 2025 21:00:00 +0000</pubDate>
      <guid>https://wporter.org/configuring-firefox-via-policy-registry/</guid>
      <description>&lt;p&gt;Firefox supports a JSON configuration file on all platforms. If you&amp;rsquo;re only working with Firefox and are dealing with a number of different platforms, this would probably be the preferred way to go about setting policy, since it&amp;rsquo;s pretty easy to use.&lt;/p&gt;&#xA;&lt;p&gt;However, since I&amp;rsquo;m primarily dealing with Windows desktops, we&amp;rsquo;ll just use the registry. Mozilla&amp;rsquo;s docs list the registry path as &amp;ldquo;GPO&amp;rdquo; for some reason, but they do show the registry path for all of their policies, so yay. Firefox policy works the same way as Chromium. Extensions are a bit different, but we&amp;rsquo;ll get to that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hardening and customizing Google Chrome via policy (registry)</title>
      <link>https://wporter.org/hardening-and-customizing-google-chrome-via-policy-registry/</link>
      <pubDate>Sun, 13 Jul 2025 17:35:00 +0000</pubDate>
      <guid>https://wporter.org/hardening-and-customizing-google-chrome-via-policy-registry/</guid>
      <description>&lt;p&gt;Quick one here. Just going to list some policies, discuss setting them, and link to the docs and a script for setting them.&lt;/p&gt;&#xA;&lt;p&gt;We can manage Chrome via MDM (like Intune), Group Policy (if the machine is joined to an Active Directory domain and you&amp;rsquo;ve imported the relevant ADMX), via &amp;lsquo;preferences&amp;rsquo; JSON config files (Mac or Linux), or via the Windows registry (my preferred option since it applies to any Windows PC, regardless of management infrastructure, and is easy to script).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up Cockpit with Certbot and a private CA with an ACME endpoint</title>
      <link>https://wporter.org/setting-up-cockpit-with-certbot-and-a-private-ca-with-an-acme-endpoint/</link>
      <pubDate>Wed, 09 Jul 2025 21:35:00 +0000</pubDate>
      <guid>https://wporter.org/setting-up-cockpit-with-certbot-and-a-private-ca-with-an-acme-endpoint/</guid>
      <description>&lt;p&gt;This is an excerpt from &lt;a href=&#34;https://wporter.org/building-out-a-signing-certificate-authority-that-supports-acme-with-step-ca-and-an-openssl-root/&#34;&gt;my &lt;code&gt;step-ca&lt;/code&gt; post&lt;/a&gt; that I felt is useful enough to have its own post.&lt;/p&gt;&#xA;&lt;p&gt;I have a server running Cockpit that I&amp;rsquo;d like to use a valid SSL certificate from my CA. I&amp;rsquo;d like it to renew its own certificate. Let&amp;rsquo;s do that.&lt;/p&gt;&#xA;&lt;p&gt;First, be sure to install the root certificate on the system. Since this is a machine running AlmaLinux 10, that looks something like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Building out a signing certificate authority that supports ACME with step-ca and an OpenSSL root</title>
      <link>https://wporter.org/building-out-a-signing-certificate-authority-that-supports-acme-with-step-ca-and-an-openssl-root/</link>
      <pubDate>Sun, 06 Jul 2025 21:35:00 +0000</pubDate>
      <guid>https://wporter.org/building-out-a-signing-certificate-authority-that-supports-acme-with-step-ca-and-an-openssl-root/</guid>
      <description>&lt;p&gt;This is part two of a multi-part series. Today, I&amp;rsquo;ll be configuring an intermediate CA under the root CA I set up &lt;a href=&#34;https://wporter.org/using-openssl-to-generate-a-root-certificate-using-openssl-on-a-linux-server-as-a-root-certificate-authority/&#34;&gt;in this article&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;step-ca&lt;/code&gt; is a modern online CA for automated certificate management. It&amp;rsquo;s got reasonable defaults and is fairly easy to use as an intermediate CA for smaller environments.&lt;/p&gt;&#xA;&lt;p&gt;To learn more about &lt;code&gt;step-ca&lt;/code&gt; itself I recommend a trip over to &lt;a href=&#34;https://smallstep.com/docs/step-ca/&#34;&gt;the step-ca docs at smallstep.com&lt;/a&gt;, but the highlights are the simple nature of the tool and the variety of built-in automated provisioners you can use (like OIDC SSO tokens, ACME challenges, identity documents, and JWK tokens). It&amp;rsquo;s also a decent SSH CA.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using OpenSSL to generate a root certificate (using OpenSSL on a Linux server as a root certificate authority)</title>
      <link>https://wporter.org/using-openssl-to-generate-a-root-certificate-using-openssl-on-a-linux-server-as-a-root-certificate-authority/</link>
      <pubDate>Wed, 02 Jul 2025 21:35:00 +0000</pubDate>
      <guid>https://wporter.org/using-openssl-to-generate-a-root-certificate-using-openssl-on-a-linux-server-as-a-root-certificate-authority/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Certificates are often viewed as &amp;ldquo;black magic&amp;rdquo; - and, as with any cryptographic topic, that&amp;rsquo;s entirely true! Cryptography is great.&lt;/p&gt;&#xA;&lt;p&gt;Thankfully, you don’t need to be a cryptographer to use public key infrastructure (PKI) to establish trust between systems.&lt;/p&gt;&#xA;&lt;p&gt;If you’ve ever created an SSH key pair, you&amp;rsquo;re already familiar with the fundamentals! SSH key pairs and SSL certificates are extremely similar.&lt;/p&gt;&#xA;&lt;p&gt;In a typical PKI setup, certificate authorities (CAs) act as the trust anchors. You can think of a certificate like an SSH public key: you distribute your public key, and devices that have it can verify that you - holding the corresponding private key - are who you say you are.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why doesn&#39;t Windows support modern cryptography?</title>
      <link>https://wporter.org/why-doesnt-windows-support-modern-cryptography/</link>
      <pubDate>Tue, 01 Jul 2025 19:35:00 +0000</pubDate>
      <guid>https://wporter.org/why-doesnt-windows-support-modern-cryptography/</guid>
      <description>&lt;p&gt;Try to feed Windows a certificate with an Ed25519 signature somewhere in the chain and it&amp;rsquo;ll just FALL OVER because &lt;a href=&#34;https://learn.microsoft.com/en-us/windows/win32/seccng/&#34;&gt;CNG&lt;/a&gt; doesn&amp;rsquo;t support Ed25519 AT ALL?&lt;/p&gt;&#xA;&lt;p&gt;This is an operating system that is &amp;lsquo;modern&amp;rsquo; and &amp;lsquo;current&amp;rsquo; and &amp;lsquo;has AI&amp;rsquo;.&lt;/p&gt;&#xA;&lt;p&gt;Here! Watch it fall over when I try to do anything with a cert:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;image.png&#34; alt=&#34;System level error occurred while verifying trust X509 cert signed with Ed25519 Windows 11 24H2 .crt dialog&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;God forbid you want to use something with an Ed25519 signature in the chain:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Wiki.js (PostgreSQL, NGINX) on AlmaLinux 10</title>
      <link>https://wporter.org/installing-wiki.js-postgresql-nginx-on-almalinux-10/</link>
      <pubDate>Mon, 30 Jun 2025 19:35:00 +0000</pubDate>
      <guid>https://wporter.org/installing-wiki.js-postgresql-nginx-on-almalinux-10/</guid>
      <description>&lt;p&gt;This guide demonstrates installing Wiki.js, the NGINX reverse proxy, Certbot (an ACME client that we&amp;rsquo;ll use for automated SSL certificate renewal), a backing PostgreSQL database, and a supporting Elasticsearch container on an AlmaLinux 10 server.&lt;/p&gt;&#xA;&lt;p&gt;Wiki.js is a Node.js application that relies on a database - we&amp;rsquo;ll be using PostgreSQL.&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll put a NGINX reverse proxy in front of the Wiki.js web application to handle SSL, and configure Wiki.js to listen on only localhost (127.0.0.1:3000) so that only NGINX is exposed to the outside world.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fixing duplicate artist names in local FLAC files played by Spotify</title>
      <link>https://wporter.org/fixing-duplicate-artist-names-in-local-flac-files-played-by-spotify/</link>
      <pubDate>Sun, 29 Jun 2025 19:35:00 +0000</pubDate>
      <guid>https://wporter.org/fixing-duplicate-artist-names-in-local-flac-files-played-by-spotify/</guid>
      <description>&lt;p&gt;Spotify has a bug where it&amp;rsquo;ll duplicate artist names if they&amp;rsquo;re listed more than once in the metadata of a FLAC file (e.g., in the Artist and Album Artist fields). See below:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/1-dup-names.png&#34; alt=&#34;Screenshot of Spotify&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This has been a problem since at least 2022 - see &lt;a href=&#34;https://community.spotify.com/t5/Your-Library/If-a-local-file-is-FLAC-the-artist-name-repeats-with-a-semicolon/td-p/5455212&#34;&gt;this Spotify Community post by yule from 2022-11-09&lt;/a&gt; - so I doubt it&amp;rsquo;s going to be fixed. This bug doesn&amp;rsquo;t occur with MP3s; only FLAC files.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using Grafana Alloy on Windows to export (push) metrics (from Prometheus) and logs (from Loki)</title>
      <link>https://wporter.org/using-grafana-alloy-on-windows-to-export-push-metrics-from-prometheus-and-logs-from-loki/</link>
      <pubDate>Sun, 29 Jun 2025 19:30:00 +0000</pubDate>
      <guid>https://wporter.org/using-grafana-alloy-on-windows-to-export-push-metrics-from-prometheus-and-logs-from-loki/</guid>
      <description>&lt;p&gt;Grafana Alloy is a multi-use exporter that we can run on our hosts to expose metrics for Prometheus. It also does other stuff, like send logs to Loki. It&amp;rsquo;s got a lot of features - &lt;a href=&#34;https://grafana.com/docs/alloy/latest/&#34;&gt;you can read more it at grafana.com/docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Essentially, Grafana Alloy is an Open Telemetry-compatible collector that serves as a unified telemetry agent for popular services like Loki and Prometheus.&lt;/p&gt;&#xA;&lt;p&gt;Some relevant points about Alloy:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;We can replace the Prometheus Windows Exporter with Alloy, as Alloy for Windows has the Prometheus Windows Exporter built in.&lt;/li&gt;&#xA;&lt;li&gt;We can use Alloy as a collector/forwarder to push metrics to Prometheus (rather than the default pull) which may be desirable, depending on your specific environment and firewalling&lt;/li&gt;&#xA;&lt;li&gt;Grafana Alloy replaced the older Grafana Agent.&lt;/li&gt;&#xA;&lt;li&gt;Alloy allows us collect and push logs to Loki in addition to collecting and pushing metrics to Prometheus.&lt;/li&gt;&#xA;&lt;li&gt;Alloy has a considerable memory footprint compared to the much leaner Windows Exporter, but is necessary if you would like to push metrics to Prometheus. I&amp;rsquo;ve noticed Alloy consuming an order of magnitude (20x, in this case) more memory than the standalone Exporter (~370 mb vs ~20 mb).&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;installing-alloy-on-windows&#34;&gt;Installing Alloy on Windows&lt;/h2&gt;&#xA;&lt;p&gt;There is not yet a Winget package for Grafana Alloy (thought there was, but couldn&amp;rsquo;t find it). You can download and (silently) install it with the following PowerShell:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Passing a function to a PowerShell subprocess (without making a terrible, terrible mess)</title>
      <link>https://wporter.org/passing-a-function-to-a-powershell-subprocess-without-making-a-terrible-terrible-mess/</link>
      <pubDate>Thu, 26 Jun 2025 19:30:00 +0000</pubDate>
      <guid>https://wporter.org/passing-a-function-to-a-powershell-subprocess-without-making-a-terrible-terrible-mess/</guid>
      <description>&lt;p&gt;This took a bit of experimenting. I&amp;rsquo;m still not completely certain that this is the most reasonable way to go about this, but I&amp;rsquo;ve already lost a few hours of my life to it, so oh well. It works.&lt;/p&gt;&#xA;&lt;p&gt;I had a script, we&amp;rsquo;ll call it Charles.&lt;/p&gt;&#xA;&lt;p&gt;Charles has functions.&lt;/p&gt;&#xA;&lt;p&gt;I need to run some of Charles&amp;rsquo;s functions in a subprocess, so I can be sure all of Charles&amp;rsquo;s son&amp;rsquo;s handles are closed and collected by the GC.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enumerating user profiles on a device with PowerShell</title>
      <link>https://wporter.org/enumerating-user-profiles-on-a-device-with-powershell/</link>
      <pubDate>Wed, 25 Jun 2025 13:30:00 +0000</pubDate>
      <guid>https://wporter.org/enumerating-user-profiles-on-a-device-with-powershell/</guid>
      <description>&lt;p&gt;I was working on a script to set values in all existing profiles&amp;rsquo; HKEY_USER hives (more on that soon) and wound up coming up with a quick function to enumerate all the users that have a profile on a computer.&lt;/p&gt;&#xA;&lt;p&gt;It would probably be fairly simple to compare the profiles for which no SID to name mapping was possible and delete their C:\Users directories to free up disk, but I won&amp;rsquo;t be doing that just yet.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick thoughts on &amp; power consumption of Supermicro 6028 with X10DRU-TR4T&#43;</title>
      <link>https://wporter.org/quick-thoughts-on-power-consumption-of-supermicro-6028-with-x10dru-tr4t-/</link>
      <pubDate>Mon, 23 Jun 2025 15:30:00 +0000</pubDate>
      <guid>https://wporter.org/quick-thoughts-on-power-consumption-of-supermicro-6028-with-x10dru-tr4t-/</guid>
      <description>&lt;p&gt;I got a pair of these for storage servers. Still haven&amp;rsquo;t used them for more than some quick tinkering yet. Bit of a waste.&lt;/p&gt;&#xA;&lt;h2 id=&#34;some-findings&#34;&gt;Some findings&lt;/h2&gt;&#xA;&lt;p&gt;You can drop a peripheral (Molex) to SATA power cable and SFF 8087 to SATA breakout cable in these to shove some SATA drives in the back of the box. I&amp;rsquo;ve done this with both of mine.&lt;/p&gt;&#xA;&lt;p&gt;By combining this with some U.2 risers you could feasibly fit eight internal SATA drives, twelve spinners in the front, and twelve more NVMEs in PCI-E slots. Since the system has a quartet of built-in Intel X540 10gbe NICs, you could actually consider using &lt;em&gt;all&lt;/em&gt; of the remaining PCI-E for drives.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Using the Dell Command | Update CLI to update drivers from PowerShell</title>
      <link>https://wporter.org/using-the-dell-command-update-cli-to-update-drivers-from-powershell/</link>
      <pubDate>Mon, 23 Jun 2025 14:30:00 +0000</pubDate>
      <guid>https://wporter.org/using-the-dell-command-update-cli-to-update-drivers-from-powershell/</guid>
      <description>&lt;p&gt;Dell Command | Update is the only piece of Dell software that I intentionally put on machines. It&amp;rsquo;s one of the two useful Dell apps, alongside the Power Manager applet. It&amp;rsquo;s a driver manager that can be used to fetch the most recent drivers validated and published for a piece of Dell hardware, and it&amp;rsquo;s a nice utility to have.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s better (in my opinion) than HP and Lenovo&amp;rsquo;s options (Support Assistant and Commercial Vantage, respectively) because it&amp;rsquo;s available via the Winget packages &lt;code&gt;Dell.CommandUpdate&lt;/code&gt; (Classic, v4.6) and &lt;code&gt;Dell.CommandUpdate.Universal&lt;/code&gt; (.NET 8, v5.5), and it has a usable CLI interface that can be used to configure the software with PowerShell!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dell Latitude 7320 Detachable (PC tablet) review - hardware, Windows 11, Fedora 42</title>
      <link>https://wporter.org/dell-latitude-7320-detachable-pc-tablet-review-hardware-windows-11-fedora-42/</link>
      <pubDate>Sun, 22 Jun 2025 14:30:00 +0000</pubDate>
      <guid>https://wporter.org/dell-latitude-7320-detachable-pc-tablet-review-hardware-windows-11-fedora-42/</guid>
      <description>&lt;h2 id=&#34;table-of-contents&#34;&gt;Table of Contents&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Introduction&lt;/li&gt;&#xA;&lt;li&gt;Hardware&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Display&lt;/li&gt;&#xA;&lt;li&gt;Build&lt;/li&gt;&#xA;&lt;li&gt;Peripherals&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Performance&lt;/li&gt;&#xA;&lt;li&gt;Windows (11 24H2 LTSC)&lt;/li&gt;&#xA;&lt;li&gt;Linux (Fedora 42, with GNOME)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve always liked the idea of a modern Windows tablet. It can double as a desktop, connected to a Thunderbolt dock, do the job of a laptop, with a (hopefully) decent keyboard and a kickstand, and do the job of a tablet - either for entertainment, or for a portable drawing pad. It would be perfect! See, I really don&amp;rsquo;t want to throw a locked-down iPad into my mix of devices, and I really don&amp;rsquo;t want a buggy, slow Android tablet, either. And if you don&amp;rsquo;t like Windows, GNOME provides a pretty decent tablet interface, too!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Removing lingering VMware PowerShell modules</title>
      <link>https://wporter.org/removing-lingering-vmware-powershell-modules/</link>
      <pubDate>Sun, 08 Jun 2025 14:30:00 +0000</pubDate>
      <guid>https://wporter.org/removing-lingering-vmware-powershell-modules/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;After removing VMware PowerShell modules with &lt;code&gt;Get-Module | Where Name -like VMware* | Uninstall-Module&lt;/code&gt;, VMware cmdlets are lingering around:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-PowerShell&#34; data-lang=&#34;PowerShell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Administrator&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;~&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;❯&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;get-module&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ModuleType&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Version&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;PreRelease&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt;                                &lt;span class=&#34;n&#34;&gt;ExportedCommands&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;----------&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-------&lt;/span&gt;    &lt;span class=&#34;p&#34;&gt;----------&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;----&lt;/span&gt;                                &lt;span class=&#34;p&#34;&gt;----------------&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Script&lt;/span&gt;     &lt;span class=&#34;mf&#34;&gt;0.0&lt;/span&gt;                   &lt;span class=&#34;nb&#34;&gt;Copy-PubKey&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Manifest&lt;/span&gt;   &lt;span class=&#34;mf&#34;&gt;7.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;               &lt;span class=&#34;n&#34;&gt;Microsoft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerShell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Management&lt;/span&gt;     &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Add-Content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Clear-Content&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Clear-Item&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Clear-It&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Manifest&lt;/span&gt;   &lt;span class=&#34;mf&#34;&gt;7.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;               &lt;span class=&#34;n&#34;&gt;Microsoft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerShell&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Utility&lt;/span&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Add-Member&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Add-Type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Clear-Variable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Compare-Ob&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Script&lt;/span&gt;     &lt;span class=&#34;mf&#34;&gt;2.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;6&lt;/span&gt;                 &lt;span class=&#34;n&#34;&gt;PSReadLine&lt;/span&gt;                          &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Get-PSReadLineKeyHandler&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-PSReadLineOption&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Administrator&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;~&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;❯&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;get-vmhost&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;WARNING&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Please&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;consider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;joining&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Customer&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Experience&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Improvement&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Program&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;so&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;you&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;can&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;us&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;make&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;better&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;product&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;You&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;can&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;join&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;following&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;command&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-PowerCLIConfiguration&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Scope&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;User&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ParticipateInCEIP&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;$true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;&amp;#39;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Customer&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Experience&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Improvement&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Program&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;CEIP&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;provides&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;information&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;that&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;enables&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;improve&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;its&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;products&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;services&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;fix&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;problems&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;advise&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;you&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;on&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;how&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;best&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;deploy&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;use&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;our&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;products&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;As&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;part&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CEIP&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;collects&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;technical&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;information&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;about&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;organization&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;use&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;products&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;services&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;on&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;regular&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;basis&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;association&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;with&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;organization&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;’&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;license&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;s&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;).&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;information&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;does&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;personally&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;identify&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;any&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;individual&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;For&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;more&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;details&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;help about_ceip&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;see&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;related&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;help&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;article&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;To&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;disable&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;this&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;warning&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;your&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;preference&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;use&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;following&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;command&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;restart&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-PowerCLIConfiguration&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Scope&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;User&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ParticipateInCEIP&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;$true&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;or&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;$false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-VMHost&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;2025&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;42&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PM&lt;/span&gt;        &lt;span class=&#34;nb&#34;&gt;Get-VMHost&lt;/span&gt;              &lt;span class=&#34;n&#34;&gt;You&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;are&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;not&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;currently&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;connected&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;to&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;any&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;servers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Please&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;connect&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;first&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Connect&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmdlet&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;p&gt;Use the &lt;code&gt;Get-InstalledModule&lt;/code&gt; cmdlet instead of the &lt;code&gt;Get-Module&lt;/code&gt; cmdlet:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-PowerShell&#34; data-lang=&#34;PowerShell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Administrator&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;~&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;err&#34;&gt;❯&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;get-installedmodule&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;where &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-like&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;*&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Version&lt;/span&gt;              &lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt;                                &lt;span class=&#34;n&#34;&gt;Repository&lt;/span&gt;           &lt;span class=&#34;n&#34;&gt;Description&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;-------&lt;/span&gt;              &lt;span class=&#34;p&#34;&gt;----&lt;/span&gt;                                &lt;span class=&#34;p&#34;&gt;----------&lt;/span&gt;           &lt;span class=&#34;p&#34;&gt;-----------&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;CloudServices&lt;/span&gt;                &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;that&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;command&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;DeployAutomation&lt;/span&gt;             &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ImageBuilder&lt;/span&gt;                 &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerCLI&lt;/span&gt;                     &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;                 &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;Product&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;agnostic&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;types&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;definitions&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Types&lt;/span&gt;           &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;Types&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;definitions&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PowerCL&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VCenter&lt;/span&gt;             &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;Modules&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;automating&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;and&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;managing&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMwa&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Types&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Appl&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;Types&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;definitions&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PowerCL&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Types&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Cert&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;Types&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;definitions&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;the&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PowerCL&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Nsx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Policy&lt;/span&gt;               &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmdlets&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;1.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Runtime&lt;/span&gt;                  &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Srm&lt;/span&gt;                      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmdlets&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vcf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;CloudBuilder&lt;/span&gt;         &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmdlets&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vcf&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;SddcManager&lt;/span&gt;          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmdlets&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vr&lt;/span&gt;                       &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;cmdlets&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;                  &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;is&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;a&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;parent&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;modul&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;        &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Access&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Health&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Infra&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Local&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Loggi&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Netwo&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Recov&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Suppo&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;System&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Tls&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Appliance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Update&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Cis&lt;/span&gt;              &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Cis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Tagging&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Content&lt;/span&gt;          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ContentLibrary&lt;/span&gt;   &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Esx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Hcl&lt;/span&gt;          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Esx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Hosts&lt;/span&gt;        &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Esx&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Settings&lt;/span&gt;     &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;SnapService&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VAPI&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Metadata&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Authent&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Authori&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CertMan&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Consump&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Content&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Datasto&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Deploym&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Guest&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;HVC&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Identity&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Invento&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ISO&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;LCM&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespa&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Namespa&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;OVF&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Services&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Storage&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SystemC&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Tagging&lt;/span&gt;  &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Topology&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Trusted&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VCHA&lt;/span&gt;     &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vm&lt;/span&gt;       &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vCenter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;VmTempl&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphere&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vStats&lt;/span&gt;           &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2099&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;    &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vSphereRuntime&lt;/span&gt;           &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShe&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;8.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;       &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vim&lt;/span&gt;                          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Cis&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Core&lt;/span&gt;       &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Cloud&lt;/span&gt;          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Common&lt;/span&gt;         &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;function&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Core&lt;/span&gt;           &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Hcx&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;License&lt;/span&gt;        &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Nsxt&lt;/span&gt;           &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Sdk&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Security&lt;/span&gt;       &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Srm&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Storage&lt;/span&gt;        &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;1.6&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;              &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;StorageUtility&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Windows&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vds&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Vmc&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;vROps&lt;/span&gt;          &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VimAutomation&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;WorkloadManag&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;commands&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;automation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;of&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wo&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;mf&#34;&gt;13.3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;24145081&lt;/span&gt;      &lt;span class=&#34;n&#34;&gt;VMware&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;VumAutomation&lt;/span&gt;                &lt;span class=&#34;n&#34;&gt;PSGallery&lt;/span&gt;            &lt;span class=&#34;n&#34;&gt;This&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;contains&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;PowerCLI&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;…&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Remove all of these modules:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changing a Linux username</title>
      <link>https://wporter.org/changing-a-linux-username/</link>
      <pubDate>Sat, 07 Jun 2025 20:30:00 +0000</pubDate>
      <guid>https://wporter.org/changing-a-linux-username/</guid>
      <description>&lt;p&gt;Super easy:&lt;/p&gt;&#xA;&lt;p&gt;First, call usermod -l (change login) with the -d (home) and -m (move home) args.&#xA;This changes the username, moves the old home directory to the new home directory:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo usermod -l new_name -d /home/new_name -m old_name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Next, call groupmod &amp;ndash;new-name to rename the user&amp;rsquo;s group.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo groupmod --new-name new_group_name old_group_name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Annd.. you&amp;rsquo;re done! See? Super easy.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Performing an in-place upgrade from Alma 9 to Alma 10 with LEAPP and ELevate</title>
      <link>https://wporter.org/performing-an-in-place-upgrade-from-alma-9-to-alma-10-with-leapp-and-elevate/</link>
      <pubDate>Sat, 07 Jun 2025 20:00:00 +0000</pubDate>
      <guid>https://wporter.org/performing-an-in-place-upgrade-from-alma-9-to-alma-10-with-leapp-and-elevate/</guid>
      <description>&lt;p&gt;That time of year again! Time to break all my stuff!&lt;/p&gt;&#xA;&lt;h2 id=&#34;x86-64-v2-systems&#34;&gt;x86-64-v2 systems&lt;/h2&gt;&#xA;&lt;p&gt;Quick aside about x86-64-v2 systems (generally these are processors Ivy Bridge and earlier - 3000 series Intel, E3/E5/E7 v2 or older).&lt;/p&gt;&#xA;&lt;p&gt;EL10 does NOT normally support older processors that do not implement AVX2.&lt;/p&gt;&#xA;&lt;p&gt;Most notably, this excludes some fairly recent embedded/low power SKUs (any Intel &amp;ldquo;small cores&amp;rdquo; prior to &lt;a href=&#34;https://en.wikipedia.org/wiki/Gracemont_(microarchitecture)&#34;&gt;Gracemont&lt;/a&gt;, introduced in 2021, like &lt;a href=&#34;https://en.wikipedia.org/wiki/Tremont_(microarchitecture)&#34;&gt;Tremont&lt;/a&gt; in the Lakefield or Jasper Lake products that were sold until quite recently) and Ivy Bridge (the Intel Core 3rd generation SKUs, or Xeon E3/E5/E7 v2 chips like the E5-2680 v2) processors.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating the osinfo database on a Linux hypervisor</title>
      <link>https://wporter.org/updating-the-osinfo-database-on-a-linux-hypervisor/</link>
      <pubDate>Sat, 07 Jun 2025 17:00:00 +0000</pubDate>
      <guid>https://wporter.org/updating-the-osinfo-database-on-a-linux-hypervisor/</guid>
      <description>&lt;p&gt;The osinfo database provides &amp;ldquo;all the information about an operating system that is required in order to provision and manage it in a virtualized environment.&amp;rdquo; (&lt;a href=&#34;https://libosinfo.org/&#34;&gt;libosinfo.org&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;In a nutshell, it&amp;rsquo;s metadata about guest OSes for use by hypervisors. I haven&amp;rsquo;t poked at it more than this, but I like it when my guest OSes are recognized, there are two that I now use commonly that are not recognized: Windows Server 2025 and AlmaLinux 10.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH agent forwarding</title>
      <link>https://wporter.org/ssh-agent-forwarding/</link>
      <pubDate>Tue, 03 Jun 2025 19:00:00 +0000</pubDate>
      <guid>https://wporter.org/ssh-agent-forwarding/</guid>
      <description>&lt;p&gt;SSH agent forwarding allows you to use a local SSH agent (your local keys, 1Password, etc) on a remote machine.&lt;/p&gt;&#xA;&lt;p&gt;You can use this to &amp;ldquo;pass&amp;rdquo; authentication requests made by you on a remote session back to your local machine, or &amp;ldquo;delegate&amp;rdquo; authentication requests from your workstation to a jumpbox, depending on how you look at it.&lt;/p&gt;&#xA;&lt;p&gt;To enable agent forwarding to a remote host, all you have to do is edit your local &lt;code&gt;~/.ssh/config&lt;/code&gt; (or &lt;code&gt;~\.ssh\config&lt;/code&gt;) file on your workstation with the keys, and add a &lt;code&gt;Host&lt;/code&gt; declaration:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Listing and removing RPM GPG (PGP) keys</title>
      <link>https://wporter.org/listing-and-removing-rpm-gpg-pgp-keys/</link>
      <pubDate>Tue, 03 Jun 2025 18:30:00 +0000</pubDate>
      <guid>https://wporter.org/listing-and-removing-rpm-gpg-pgp-keys/</guid>
      <description>&lt;h2 id=&#34;list-keys&#34;&gt;List keys&lt;/h2&gt;&#xA;&lt;p&gt;Our first goal will be to list the installed PGP public keys in the format we need, with a human-readable summary, as follows:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# structure:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg-pubkey-version-release My Organization &amp;lt;email@address.org&amp;gt; public key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ex:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg-pubkey-105ef944-65ca83d1 Fedora &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;42&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &amp;lt;fedora-42-primary@fedoraproject.org&amp;gt; public key&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To do so, you can use the &lt;code&gt;rpm&lt;/code&gt; command with arguments &amp;lsquo;&lt;code&gt;--query --queryformat&lt;/code&gt;&amp;rsquo; (this may be abbreviated to &amp;lsquo;&lt;code&gt;-q --qf&lt;/code&gt;&amp;rsquo;).&lt;/p&gt;&#xA;&lt;p&gt;We&amp;rsquo;ll be querying RPM for &lt;code&gt;gpg-pubkey&lt;/code&gt;(s), and we&amp;rsquo;ll need to specify a queryformat that will get us the rpm-format shorthand identifier for a key:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring a Server 2008 R2 domain</title>
      <link>https://wporter.org/configuring-a-server-2008-r2-domain/</link>
      <pubDate>Sun, 25 May 2025 16:30:00 +0000</pubDate>
      <guid>https://wporter.org/configuring-a-server-2008-r2-domain/</guid>
      <description>&lt;h2 id=&#34;why-are-you-doing-this&#34;&gt;Why are you doing this?&lt;/h2&gt;&#xA;&lt;p&gt;Fun!&lt;/p&gt;&#xA;&lt;h2 id=&#34;goal&#34;&gt;Goal&lt;/h2&gt;&#xA;&lt;p&gt;DNS, DHCP and AD DS installed and working for a FL 2008 AD domain that we can then join physical Hyper-V Server 2008 R2 machines to.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll be installing a couple of VMs on my desktop/main Windows server running 24H2 (Windows 11 Enterprise LTSC and Windows Server 2025). These have an i9-12900KS and a pair of E5-2698 v3 CPUs, respectively, which are both x86-64-v3 (this is a newer 12900 without AVX512). Then, we&amp;rsquo;ll think about standing up a Hyper-V Server 2008R2 machine.. or a cluster of them.. in another post.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up a Windows 7 box in mid 2025</title>
      <link>https://wporter.org/setting-up-a-windows-7-box-in-mid-2025/</link>
      <pubDate>Fri, 23 May 2025 16:30:00 +0000</pubDate>
      <guid>https://wporter.org/setting-up-a-windows-7-box-in-mid-2025/</guid>
      <description>&lt;h2 id=&#34;why-on-earth-would-you-want-to-do-that&#34;&gt;Why on earth would you want to do that?&lt;/h2&gt;&#xA;&lt;p&gt;Windows 7 is great and I would love it if the whole world knew what kind of Content I watch. More seriously, I wanted to briefly play an old Command &amp;amp; Conquer game and didn&amp;rsquo;t feel like tinkering with my Windows 11 box. Plus, nostalgia.&lt;/p&gt;&#xA;&lt;h2 id=&#34;hardware&#34;&gt;Hardware&lt;/h2&gt;&#xA;&lt;p&gt;I will be using relatively appropriate hardware.&lt;/p&gt;&#xA;&lt;p&gt;I briefly tried a NUC7, but it doesn&amp;rsquo;t really have any USB 2 ports, so getting through setup is annoying.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lazy PowerShell ssh-copy-id for Windows with SSH keys stored in 1Password</title>
      <link>https://wporter.org/lazy-powershell-ssh-copy-id-for-windows-with-ssh-keys-stored-in-1password/</link>
      <pubDate>Sun, 11 May 2025 16:30:00 +0000</pubDate>
      <guid>https://wporter.org/lazy-powershell-ssh-copy-id-for-windows-with-ssh-keys-stored-in-1password/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;The version of OpenSSH bundled with Windows does not include the &lt;code&gt;ssh-copy-id&lt;/code&gt; utility for quickly copying a SSH key to a remote machine.&lt;/p&gt;&#xA;&lt;p&gt;I use 1Password&amp;rsquo;s SSH agent, and store my SSH key in 1Password, so I can unlock it with biometrics (Windows Hello) instead of a passphrase, easily synchronize it between my machines, and avoid storing it on local disks. However, this means I can&amp;rsquo;t just copy my &lt;code&gt;id_ed25519.pub&lt;/code&gt; from one of my boxes using the 1Password SSH agent (because that file isn&amp;rsquo;t created!)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring LACP bonds &amp; VLAN bridges with nmcli</title>
      <link>https://wporter.org/configuring-lacp-bonds-vlan-bridges-with-nmcli/</link>
      <pubDate>Sat, 03 May 2025 18:30:00 +0000</pubDate>
      <guid>https://wporter.org/configuring-lacp-bonds-vlan-bridges-with-nmcli/</guid>
      <description>&lt;p&gt;LACP is awesome if you&amp;rsquo;re not terminating L3 on your servers. It&amp;rsquo;s also super easy to configure bonds with NetworkManager.&lt;/p&gt;&#xA;&lt;h2 id=&#34;configuring-lacp-8023ad-bonds-with-nmcli&#34;&gt;Configuring LACP (802.3ad) bonds with nmcli&lt;/h2&gt;&#xA;&lt;p&gt;To configure a bond, you&amp;rsquo;ll need to:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Create the bond interface&lt;/li&gt;&#xA;&lt;li&gt;Assign connections as slaves to the bond&lt;/li&gt;&#xA;&lt;li&gt;Bring the bond up&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This is pretty simple:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[liam@t3 ~]$ nmcli con add type bond con-name bond0 ifname bond0 bond.options &amp;#34;mode=802.3ad&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will create a &lt;code&gt;bond0&lt;/code&gt; device, and a &lt;code&gt;bond0&lt;/code&gt; connection - you can see them in the output of &lt;code&gt;nmcli con&lt;/code&gt; or &lt;code&gt;nmcli dev&lt;/code&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Installing Ninja Remote (NinjaRMM remote session utility) on Linux with Wine</title>
      <link>https://wporter.org/installing-ninja-remote-ninjarmm-remote-session-utility-on-linux-with-wine/</link>
      <pubDate>Sat, 26 Apr 2025 18:30:00 +0000</pubDate>
      <guid>https://wporter.org/installing-ninja-remote-ninjarmm-remote-session-utility-on-linux-with-wine/</guid>
      <description>&lt;p&gt;&lt;del&gt;NinjaRMM sucks. Here&amp;rsquo;s how to run its terrible little connection tool on a proper OS.&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;Update: as of August 2026, NinjaOne have released a native Linux &amp;ldquo;Ninja Remote&amp;rdquo; connection utility. This is no longer needed! Yay!&lt;/p&gt;&#xA;&lt;p&gt;First, install a user-agent spoofer in your preferred browser - Ninja&amp;rsquo;s site won&amp;rsquo;t even show the connection button without this nowadays. Set it to Windows something.&lt;/p&gt;&#xA;&lt;p&gt;Here are links to a user agent spoofer-manager thing:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Poking at the Intel Management Engine (vPro Enterprise, AMT) for IPMI-like remote access on a M920q</title>
      <link>https://wporter.org/poking-at-the-intel-management-engine-vpro-enterprise-amt-for-ipmi-like-remote-access-on-a-m920q/</link>
      <pubDate>Wed, 23 Apr 2025 18:30:00 +0000</pubDate>
      <guid>https://wporter.org/poking-at-the-intel-management-engine-vpro-enterprise-amt-for-ipmi-like-remote-access-on-a-m920q/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m sure that if you&amp;rsquo;re reading this post on my backwards sysadmin blog, you&amp;rsquo;re at least vaguely familiar with the Intel Management Engine. For shoots and giggles, let&amp;rsquo;s chat about it anyway.&lt;/p&gt;&#xA;&lt;p&gt;Essentially, it&amp;rsquo;s a tiny embedded computer (like your good old ASpeed BMC) that&amp;rsquo;s tightly integrated with almost any recent (2008+) Intel Platform Controller Hubs (PCHs - the chipset on a modern Intel board) or on the SoC itself (for Atom mobile processors - these have an integrated Security Engine). It has the potential to give you full remote access to the system at a hardware level (potentially far greater access than a separate BMC). The ME runs its own operating system (MINIX, in this generation, though this changes every so often). It runs its own applications that do.. stuff - its full scope of access/functionality is not documented, but extra fun features have been used by malware in the past.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quick and dirty - install KB5002623 fix for Office 2016 crashing after KB5002700 installation via executable patch</title>
      <link>https://wporter.org/quick-and-dirty-install-kb5002623-fix-for-office-2016-crashing-after-kb5002700-installation-via-executable-patch/</link>
      <pubDate>Thu, 10 Apr 2025 18:30:00 +0000</pubDate>
      <guid>https://wporter.org/quick-and-dirty-install-kb5002623-fix-for-office-2016-crashing-after-kb5002700-installation-via-executable-patch/</guid>
      <description>&lt;p&gt;Really dirty quick fix to install &lt;a href=&#34;https://support.microsoft.com/en-us/topic/april-10-2025-update-for-office-2016-kb5002623-d60c1f31-bb7c-4426-b8f4-69186d7fc1e5&#34;&gt;Microsoft&amp;rsquo;s executable April 10, 2025 patch for Office 2016, KB5002623&lt;/a&gt; that resolves a number of crashes caused by the KB5002700 security fix from April 8, 2025.&lt;/p&gt;&#xA;&lt;p&gt;While it is not especially pretty, it works. Replace the &lt;code&gt;$Fileserver&lt;/code&gt; variable with a parent directory that has the four executables for KB5002700 and KB5002623 (64 and 32-bit) as children, like so:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[liam@server ~]$ sudo ls -l /srv/www/files&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r--. 1 nginx nginx 262752112 Apr 11 00:15 mso2016-kb5002700-fullfile-x64-glb.exe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r--. 1 nginx nginx 134911608 Apr 11 00:15 mso2016-kb5002700-fullfile-x86-glb.exe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r--. 1 nginx nginx   3556192 Apr 10 21:17 msodll202016-kb5002623-fullfile-x64-glb.exe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r--. 1 nginx nginx   3556144 Apr 10 22:10 msodll202016-kb5002623-fullfile-x86-glb.exe&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And, without further ado, here&amp;rsquo;s the script:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cleaning up ghost Saved-Critical Hyper-V VMs after nuking all their files</title>
      <link>https://wporter.org/cleaning-up-ghost-saved-critical-hyper-v-vms-after-nuking-all-their-files/</link>
      <pubDate>Sun, 06 Apr 2025 00:30:59 +0000</pubDate>
      <guid>https://wporter.org/cleaning-up-ghost-saved-critical-hyper-v-vms-after-nuking-all-their-files/</guid>
      <description>&lt;p&gt;So, I decided to upgrade my laptop. Part of that upgrade was the very caring removal of my D: drive, since the new board only had a single M.2 slot. My D: drive happened to be a second SSD with.. my Hyper-V config and VM disk directories.&lt;/p&gt;&#xA;&lt;p&gt;Once I&amp;rsquo;d powered the machine back on and jumped back in to try and get rid of my ghost VMs via PowerShell, I was greeted with a pleasant sight:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Maxxing out my P1 Gen 4 with an RTX A5000 16gb and an i9-11950H (for science)</title>
      <link>https://wporter.org/maxxing-out-my-p1-gen-4-with-an-rtx-a5000-16gb-and-an-i9-11950h-for-science/</link>
      <pubDate>Sat, 05 Apr 2025 12:12:59 +0000</pubDate>
      <guid>https://wporter.org/maxxing-out-my-p1-gen-4-with-an-rtx-a5000-16gb-and-an-i9-11950h-for-science/</guid>
      <description>&lt;h2 id=&#34;update&#34;&gt;Update&lt;/h2&gt;&#xA;&lt;p&gt;That wonderful 16g of VRAM was on its way out. Back to the baby GPU for me.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;My P1 Gen 4 is just about my favorite laptop. It&amp;rsquo;s got a big, bright, reasonably high resolution 16&amp;quot; screen (2560x1600, 400 nits, 100% sRGB, 60hz.. more on this Soon™ - there are some real nice 4K 120hz 16&amp;quot; panels for cheap), no number pad, lots of memory, a nice glass trackpad, and it has a TrackPoint.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Looking at filesystem types on disks from Linux</title>
      <link>https://wporter.org/looking-at-filesystem-types-on-disks-from-linux/</link>
      <pubDate>Sun, 30 Mar 2025 12:13:59 +0000</pubDate>
      <guid>https://wporter.org/looking-at-filesystem-types-on-disks-from-linux/</guid>
      <description>&lt;p&gt;Not sure why I went through so many ways to do this. But I did. Was slightly curious about how I might go about this.. guess I&amp;rsquo;m happy now.&lt;/p&gt;&#xA;&lt;h2 id=&#34;unmounted&#34;&gt;Unmounted&lt;/h2&gt;&#xA;&lt;h3 id=&#34;parted&#34;&gt;parted&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;parted /device print&lt;/code&gt; will give you a nice list of partitions, name, and filesystem.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[liam@800g4m0 ~]$ sudo parted /dev/sda print&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Model: ATA WDC WDS100T2B0A (scsi)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disk /dev/sda: 1000GB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Sector size (logical/physical): 512B/512B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Partition Table: gpt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Disk Flags:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Number  Start   End     Size    File system  Name                          Flags&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 1      1049kB  274MB   273MB   fat32        EFI system partition          boot, esp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 2      274MB   290MB   16.8MB               Microsoft reserved partition  msftres&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 3      290MB   1000GB  999GB   ntfs         Basic data partition          msftdata&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 4      1000GB  1000GB  631MB   ntfs                                       hidden, diag&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can also &lt;code&gt;parted /device print all&lt;/code&gt; to get &lt;code&gt;parted&lt;/code&gt; to look at every disk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The setuid, setgid, and sticky special file permissions bits</title>
      <link>https://wporter.org/the-setuid-setgid-and-sticky-special-file-permissions-bits/</link>
      <pubDate>Sun, 30 Mar 2025 12:12:59 +0000</pubDate>
      <guid>https://wporter.org/the-setuid-setgid-and-sticky-special-file-permissions-bits/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.redhat.com/en/blog/suid-sgid-sticky-bit&#34;&gt;Red Hat blog&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;These are the leading zero!&lt;/p&gt;&#xA;&lt;p&gt;The setuid and setgid properties are used to allow a trusted executable to be run with elevated permissions (either can do this - as user, or as group respectively) or to control the group assigned to newly created children of a directory (setgid).&lt;/p&gt;&#xA;&lt;p&gt;The setuid and setgid bits can be set with either &lt;code&gt;chmod (u|g)+s&lt;/code&gt; or a leading digit, when using three-digit-style permissions (possibly platform-dependent).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Adventures with secedit.exe and PowerShell, pt. 1</title>
      <link>https://wporter.org/adventures-with-secedit.exe-and-powershell-pt.-1/</link>
      <pubDate>Thu, 27 Mar 2025 12:13:59 +0000</pubDate>
      <guid>https://wporter.org/adventures-with-secedit.exe-and-powershell-pt.-1/</guid>
      <description>&lt;h2 id=&#34;i-have-a-problem&#34;&gt;I have a problem&lt;/h2&gt;&#xA;&lt;p&gt;Secedit is a bit confusing to use at first, so let&amp;rsquo;s build a PowerShell wrapper to do our bidding!&lt;/p&gt;&#xA;&lt;h2 id=&#34;first-how-do-we-use-this-darn-thing&#34;&gt;First, how do we use this darn thing?&lt;/h2&gt;&#xA;&lt;p&gt;After a brief detour &lt;a href=&#34;https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/secedit&#34;&gt;to MS Learn&lt;/a&gt; and some poking around&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Secedit is funky! It wants you to treat it with care and take it on long walks. No slamming random SIDs at it and making it figure the hard stuff out (at least, not yet)!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Writing something like free in PowerShell</title>
      <link>https://wporter.org/writing-something-like-free-in-powershell/</link>
      <pubDate>Sun, 23 Mar 2025 12:13:59 +0000</pubDate>
      <guid>https://wporter.org/writing-something-like-free-in-powershell/</guid>
      <description>&lt;p&gt;The &lt;code&gt;free&lt;/code&gt; utility is great - just look at it!&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[liam@m920q-1 ~]$ free -h&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;               total        used        free      shared  buff/cache   available&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mem:            30Gi       2.9Gi        11Gi       9.0Mi        17Gi        28Gi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Swap:           31Gi          0B        31Gi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Yeah! Woo!! Doesn&amp;rsquo;t that look great?&lt;/p&gt;&#xA;&lt;p&gt;But getting at it generally requires us to use a proper OS. Boo!! Not great!!&lt;/p&gt;&#xA;&lt;p&gt;The Linux sysadmins are going to give us crap for not having this wonderful, amazing tool! How do we &lt;del&gt;copy it&lt;/del&gt; create &lt;del&gt;the same thing&lt;/del&gt; an &lt;em&gt;even better&lt;/em&gt; tool on our lovely NT machines?&lt;/p&gt;</description>
    </item>
    <item>
      <title>ReFS sucks and you shouldn&#39;t use it, but here&#39;s how you can configure ReFS deduplication and compression (if you really want to do this to yourself)</title>
      <link>https://wporter.org/refs-sucks-and-you-shouldnt-use-it-but-heres-how-you-can-configure-refs-deduplication-and-compression-if-you-really-want-to-do-this-to-yourself/</link>
      <pubDate>Sat, 22 Mar 2025 12:13:59 +0000</pubDate>
      <guid>https://wporter.org/refs-sucks-and-you-shouldnt-use-it-but-heres-how-you-can-configure-refs-deduplication-and-compression-if-you-really-want-to-do-this-to-yourself/</guid>
      <description>&lt;p&gt;Microsoft&amp;rsquo;s ReFS is their (terrible) answer to ZFS - a &amp;ldquo;modern&amp;rdquo; filesystem with fancy features like deduplication and checksumming.&lt;/p&gt;&#xA;&lt;p&gt;While the implementation of said features (specifically deduplication) frankly sucks, and I have not found it to be anywhere near production-ready, I have set ReFS up on my own machines to save some disk space when I&amp;rsquo;m being cheap and need Windows.&lt;/p&gt;&#xA;&lt;p&gt;If at all possible, you should switch to Linux and use ZFS or BTRFS instead. You will most likely have a bad time with ReFS.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating multiple M365 mailboxes&#39; autoreply settings</title>
      <link>https://wporter.org/updating-multiple-m365-mailboxes-autoreply-settings/</link>
      <pubDate>Thu, 20 Mar 2025 12:13:59 +0000</pubDate>
      <guid>https://wporter.org/updating-multiple-m365-mailboxes-autoreply-settings/</guid>
      <description>&lt;p&gt;Quick one for a personal reminder.&lt;/p&gt;&#xA;&lt;p&gt;You can also schedule an autoreply by setting &lt;code&gt;State&lt;/code&gt; to &lt;code&gt;Scheduled&lt;/code&gt;, and providing a &lt;code&gt;StartTime&lt;/code&gt; and &lt;code&gt;EndTime&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# set autoreply for multiple users&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$Message = @&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This mailbox is no longer monitored.&amp;lt;br&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;br&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;If you require assistance, please contact so-and-so in the Doing Stuff office.&amp;lt;br&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;br&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Thank you,&amp;lt;br&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;IT&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;#34;@&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;@(&amp;#39;user1@domain.net&amp;#39;,&amp;#39;user2@domain.net&amp;#39;) | % { &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Set-MailboxAutoReplyConfiguration `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -Identity $_ `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -AutoReplyState Enabled `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -ExternalMessage $Message `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -InternalMessage $Message `&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -ExternalAudience All&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Resolving ESXi 8.0 esxcli software profile MemoryError with hostupdate depot</title>
      <link>https://wporter.org/resolving-esxi-8.0-esxcli-software-profile-memoryerror-with-hostupdate-depot/</link>
      <pubDate>Sun, 16 Mar 2025 11:13:59 +0000</pubDate>
      <guid>https://wporter.org/resolving-esxi-8.0-esxcli-software-profile-memoryerror-with-hostupdate-depot/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;VMware ESXi 8 host fails to query the hostupdate (hostupdate.broadcom.com) depot&amp;rsquo;s contents with a &lt;code&gt;MemoryError&lt;/code&gt; when an &lt;code&gt;esxcli software profile update&lt;/code&gt; command is issued.&lt;/p&gt;&#xA;&lt;p&gt;This also prevents ESXi from being updated (does not just affect querying the depot).&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[root@vmware:~] esxcli software profile update -p ESXi-8.0U3c-24414501-standard -d https://hostupdate.broadcom.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; [MemoryError]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; Please refer to the log file for more details.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;verify&#34;&gt;Verify&lt;/h2&gt;&#xA;&lt;p&gt;Search the &lt;code&gt;/usr/lib/vmware/esxcli-software&lt;/code&gt; file for the &lt;code&gt;mem=&lt;/code&gt; argument being passed to the Python interpreter. The default 300 Mb is insufficient for querying the chunky ESXi 8 hostupdate depot, though 7.0 and 6.7 will still work fine.&lt;/p&gt;</description>
    </item>
    <item>
      <title>vCenter Server Appliance - regen certs, recover PWs, other tips and tricks</title>
      <link>https://wporter.org/vcenter-server-appliance-regen-certs-recover-pws-other-tips-and-tricks/</link>
      <pubDate>Sun, 16 Mar 2025 11:12:59 +0000</pubDate>
      <guid>https://wporter.org/vcenter-server-appliance-regen-certs-recover-pws-other-tips-and-tricks/</guid>
      <description>&lt;h2 id=&#34;enabling-ssh&#34;&gt;Enabling SSH&lt;/h2&gt;&#xA;&lt;p&gt;Consider this a prerequisite for everything that follows.&lt;/p&gt;&#xA;&lt;p&gt;If SSH was not enabled while you set up the VCSA (it&amp;rsquo;s a toggle labeled &amp;ldquo;Enable SSH&amp;rdquo; with a tooltip about being required for HA - you probably left it off) you can enable it via the vCenter Server Management UI at port 5480.&lt;/p&gt;&#xA;&lt;p&gt;Log on to the management UI. In the left menu, select &amp;ldquo;Access&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Click &amp;ldquo;Edit&amp;rdquo; in the top right of the screen, toggle &amp;ldquo;Activate SSH Login&amp;rdquo;, then click &amp;ldquo;OK&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Changing vCenter Server DHCP address</title>
      <link>https://wporter.org/changing-vcenter-server-dhcp-address/</link>
      <pubDate>Sun, 16 Mar 2025 10:12:59 +0000</pubDate>
      <guid>https://wporter.org/changing-vcenter-server-dhcp-address/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;You would like to change the IP address for a vCenter Server appliance that is currently configured with DHCP by modifying the reservation.&lt;/p&gt;&#xA;&lt;p&gt;Doing this the way you might first think of (by changing the reservation then forcing the VCSA to get a new IP) fails, because you must regenerate certificates afterwards and cannot do so when the SSO authentication service is not working (after an IP change).&lt;/p&gt;&#xA;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;p&gt;Tested with a VCSA ver 8.0.3.00000 on 16 Mar 2025. Fresh install, not a neglected appliance!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating standalone VMware ESXi hosts from the online hostupdate depot with esxcli</title>
      <link>https://wporter.org/updating-standalone-vmware-esxi-hosts-from-the-online-hostupdate-depot-with-esxcli/</link>
      <pubDate>Sat, 08 Mar 2025 10:12:59 +0000</pubDate>
      <guid>https://wporter.org/updating-standalone-vmware-esxi-hosts-from-the-online-hostupdate-depot-with-esxcli/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;You have a standalone VMware ESXi server, or a non-clustered (no vCenter available) set of servers that need to be updated.&lt;/p&gt;&#xA;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;p&gt;Before starting:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Verify that your IPMI/BMC is plugged in!&lt;/strong&gt; If it is not, you will not have a good time if your sole ESXi server fails to write the bootloader and wipes its config at a site three hours away. Make sure it&amp;rsquo;s accessible somehow.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Check your server&amp;rsquo;s DNS settings!&lt;/strong&gt; Name resolution won&amp;rsquo;t work once you suspend VMs if the server is pointed at a guest it&amp;rsquo;s running.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cisco 3850 ignoring startup-config on boot, config-register stuck at 0x142</title>
      <link>https://wporter.org/cisco-3850-ignoring-startup-config-on-boot-config-register-stuck-at-0x142/</link>
      <pubDate>Sat, 22 Feb 2025 10:12:59 +0000</pubDate>
      <guid>https://wporter.org/cisco-3850-ignoring-startup-config-on-boot-config-register-stuck-at-0x142/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;This appears to be &lt;a href=&#34;https://quickview.cloudapps.cisco.com/quickview/bug/CSCui54490&#34;&gt;Cisco bug CSCui54490&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;After a write erase (or, I believe, a format flash: or a PW recovery in this case?) a 3850 will ignore its startup-config and always boot a blank configuration.&lt;/p&gt;&#xA;&lt;p&gt;My switch is running IOS-XE 16.12.11 (Gibraltar), date Sun 31-Mar-24 12:30 (a minor version behind at the time of writing), though this seems to be a long-standing issue.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;show version&lt;/code&gt; output suggests config register is 0x142.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Revisited: Working with Hyper-V NAT switches</title>
      <link>https://wporter.org/revisited-working-with-hyper-v-nat-switches/</link>
      <pubDate>Sat, 01 Feb 2025 10:12:59 +0000</pubDate>
      <guid>https://wporter.org/revisited-working-with-hyper-v-nat-switches/</guid>
      <description>&lt;h2 id=&#34;foreword&#34;&gt;Foreword&lt;/h2&gt;&#xA;&lt;p&gt;This is an update to &lt;a href=&#34;https://wporter.org/create-a-vswitch-and-a-netnat-object-to-avoid-default-switch-dhcp&#34;&gt;a similar post from back in October 2024&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been going through and cleaning up a lot of my setup scripts and the like in pursuit of &lt;del&gt;SCIENCE&lt;/del&gt; easier to use and quickly reproducible testing environments.&lt;/p&gt;&#xA;&lt;p&gt;Occasionally, I want to configure NAT switches for small-scale, self-contained environments. I didn&amp;rsquo;t have anything that made this process nice, so I decided to fix something up.&lt;/p&gt;&#xA;&lt;p&gt;Of course, before I knew it I&amp;rsquo;d wound up redoing the original post linked above - so I&amp;rsquo;d might as well post it!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snippet: branch and merge a detached head with main</title>
      <link>https://wporter.org/snippet-branch-and-merge-a-detached-head-with-main/</link>
      <pubDate>Sat, 25 Jan 2025 10:12:59 +0000</pubDate>
      <guid>https://wporter.org/snippet-branch-and-merge-a-detached-head-with-main/</guid>
      <description>&lt;p&gt;I keep doing this. But I keep doing it infrequently enough that I need to look up the solution every darn time. So I&amp;rsquo;m putting it here.&lt;/p&gt;&#xA;&lt;p&gt;I think VSCode&amp;rsquo;s source control integration does this somehow when I make changes in a submodule and main project, then commit the main project changes first, though I have no idea why this is the case.&lt;/p&gt;&#xA;&lt;p&gt;The following is probably the easiest way to fix up a detached head and get back to work:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Getting started with Cloud-init on Hyper-V</title>
      <link>https://wporter.org/getting-started-with-cloud-init-on-hyper-v/</link>
      <pubDate>Fri, 24 Jan 2025 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/getting-started-with-cloud-init-on-hyper-v/</guid>
      <description>&lt;h1 id=&#34;intro&#34;&gt;Intro&lt;/h1&gt;&#xA;&lt;p&gt;This will go over setting up an environment to build Cloud-init nocloud data drives (ISO, not vfat), converting nocloud disk images to VHDX, and then using those to hands-off provision VMs on Hyper-V hosts that can then be configured with Ansible.&lt;/p&gt;&#xA;&lt;p&gt;More specifically, this will demonstrate using Cloud-init and the Alma Linux genericcloud image to stand up an Alma Linux VM on a Server 2025 host.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-cloud-init&#34;&gt;What is Cloud-init?&lt;/h2&gt;&#xA;&lt;p&gt;Cloud-init is a Canonical project that&amp;rsquo;s become the defacto standard for touchless configuration of Linux VMs over the years. Cloud-init is a package that can be installed on a Linux or Unix system that will read configuration files and provision a template VM on first boot for its environment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Enabling Hyper-V in Windows Home editions</title>
      <link>https://wporter.org/enabling-hyper-v-in-windows-home-editions/</link>
      <pubDate>Sat, 11 Jan 2025 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/enabling-hyper-v-in-windows-home-editions/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a batch script floating around that does this, but I was curious to see if it still worked and wanted to rewrite it in PowerShell.&lt;/p&gt;&#xA;&lt;p&gt;Tested and working with a Media Creation Tool version of Windows 10 Home Single Language 22H2 and Windows 11 Home 24H2.&lt;/p&gt;&#xA;&lt;p&gt;PowerShell:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;Function&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Enable-HyperVOnWinHome&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;CmdletBinding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;param&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nv&#34;&gt;$ssp&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$env:SystemRoot&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;\Servicing\Packages&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Get-ChildItem&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Path&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$ssp&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;Where-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-like&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;*Hyper-V*.mum&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;ForEach-Object&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dism&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;online&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;norestart&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;add-package&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$ssp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dism&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;online&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;enable-feature&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;featurename&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;Microsoft-Hyper&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-V&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;all&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# this is not required, but you might want to enable the VM Platform while you&amp;#39;re here&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# if it&amp;#39;s missing, WSL won&amp;#39;t work.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dism&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;online&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;enable-feature&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;featurename&lt;/span&gt;&lt;span class=&#34;err&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;VirtualMachinePlatform&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;all&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;norestart&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Proof:&lt;/p&gt;</description>
    </item>
    <item>
      <title>JNCIA lab: simple route redistribution in Junos</title>
      <link>https://wporter.org/jncia-lab-simple-route-redistribution-in-junos/</link>
      <pubDate>Mon, 06 Jan 2025 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/jncia-lab-simple-route-redistribution-in-junos/</guid>
      <description>&lt;p&gt;Topology:&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://wporter.org/jncia-lab-simple-route-redistribution-in-junos/topo.png&#34;&#xA;    alt=&#34;A picture representing a lab topology&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Images used:&lt;/p&gt;&#xA;&lt;p&gt;IOSv L2 15.2 (as dumb hosts)&#xA;IOSv L3 15.9&#xA;JOSv (vMX) 23.2R1.15&lt;/p&gt;&#xA;&lt;p&gt;Configure interfaces&amp;rsquo; addressing as shown.&lt;/p&gt;&#xA;&lt;p&gt;Configure a mesh of four routers in an OSPF area:&#xA;JR1, JR2, JR3 and CR1&lt;/p&gt;&#xA;&lt;p&gt;OSPF should advertise these four routers&amp;rsquo; loopback addresses.&#xA;Any interface not facing another OSPF router should be declared passive.&lt;/p&gt;&#xA;&lt;p&gt;Configure RIP on JR3 and JR4. Modify the default export policy so they can talk.&#xA;Redistribute the RIP routes to 169.254.0.16/30 and 192.51.100.0/24 into the OSPF area. Redistribute JR3&amp;rsquo;s OSPF routes into RIP on JR3 and JR4. Make sure CS1 can ping any of the loopback addresses in the topology with just a default route configured to JR4.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows Hello fingerprint &#39;too similar to one that&#39;s already registered&#39; with no fingerprints registered</title>
      <link>https://wporter.org/windows-hello-fingerprint-too-similar-to-one-thats-already-registered-with-no-fingerprints-registered/</link>
      <pubDate>Sun, 05 Jan 2025 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/windows-hello-fingerprint-too-similar-to-one-thats-already-registered-with-no-fingerprints-registered/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;Windows Hello fingerprint/face broke themselves after a hardware change (reenabling iGPU.) Not sure why. Fingerprint still working in UEFI (as supervisor authentication.)&#xA;Able to easily reregister Hello face ID. Not able to reregister Hello fingerprint ID with error &amp;ldquo;this fingerprint is too similar to one that&amp;rsquo;s already registered&amp;rdquo; when I attempt to register any fingerprint. Fingerprint is NOT cleared from the TPM (still usable for power on/supervisor authentication.)&lt;/p&gt;&#xA;&lt;p&gt;Device: ThinkPad P1 Gen 4 w/ Synaptics UWP WBDI fingerprint reader (synaumdf.cat, WUDFRd.sys, AuthenticateFAM_SecureFP.dll) using 6.0.45.1136 driver (1/30/24)&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Bitlocker Script</title>
      <link>https://wporter.org/the-bitlocker-script/</link>
      <pubDate>Mon, 16 Dec 2024 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/the-bitlocker-script/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;Needed to enable BitLocker on lots of machines with varying configurations.&lt;/p&gt;&#xA;&lt;p&gt;Really didn&amp;rsquo;t want to do it manually, especially since this problem will not go away.&lt;/p&gt;&#xA;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;p&gt;Uhh. Couple hours of PowerShell.&lt;/p&gt;&#xA;&lt;p&gt;It works OK. Couple things I could still improve. I&amp;rsquo;ve run this probably a couple thousand times by now. It should be more or less idempotent and plays nicely with common edge cases (does not catastrophically fail.) It will happily encrypt my USB disks since they&amp;rsquo;re just exposed to the system as fixed NVMEs, but that&amp;rsquo;s not the script&amp;rsquo;s fault&amp;hellip; as annoying as it can be.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snippet: unlock a SSH key for use with Ansible</title>
      <link>https://wporter.org/snippet-unlock-a-ssh-key-for-use-with-ansible/</link>
      <pubDate>Sun, 15 Dec 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/snippet-unlock-a-ssh-key-for-use-with-ansible/</guid>
      <description>&lt;p&gt;Pulled out of a readme.md, since it&amp;rsquo;s easier for me to keep it in one place (here.)&lt;/p&gt;&#xA;&lt;p&gt;To unlock a protected SSH key for use by Ansible:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ eval &amp;#34;$(ssh-agent -s)&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Agent pid 5695&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ssh-add&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enter passphrase for /home/user/.ssh/id_ed25519:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Identity added: /home/user/.ssh/id_ed25519 (/home/user/.ssh/id_ed25519)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ansible-playbook -i host configure.yaml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Hide &#39;sign into all apps&#39; pop-up in Microsoft apps</title>
      <link>https://wporter.org/hide-sign-into-all-apps-pop-up-in-microsoft-apps/</link>
      <pubDate>Tue, 10 Dec 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/hide-sign-into-all-apps-pop-up-in-microsoft-apps/</guid>
      <description>&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;Users, when signing into Teams or Office, are prompted to &amp;ldquo;sign into all apps on this device&amp;rdquo; (Entra join a machine), which then fails with error &amp;ldquo;Your account was not set up on this device because device management could not be enabled&amp;rdquo; with code 80192EE7 (server msg: 0x80192ee7.)&lt;/p&gt;&#xA;&lt;p&gt;We don&amp;rsquo;t want users getting this prompt at all.&lt;/p&gt;&#xA;&lt;h2 id=&#34;solution&#34;&gt;Solution&lt;/h2&gt;&#xA;&lt;p&gt;Luckily, there&amp;rsquo;s a way to do just that (block our users from getting this prompt.) It&amp;rsquo;s only possible to do this directly from the registry, with key and value:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snippet: one-liners to install all RSAT utilities</title>
      <link>https://wporter.org/snippet-one-liners-to-install-all-rsat-utilities/</link>
      <pubDate>Mon, 02 Dec 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/snippet-one-liners-to-install-all-rsat-utilities/</guid>
      <description>&lt;h2 id=&#34;server-2025&#34;&gt;Server 2025&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-WindowsFeature&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Where &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-like&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;*RSAT*&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Install-WindowsFeature&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;windows-11&#34;&gt;Windows 11&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-WindowsCapability&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Online&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Where &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-like&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;*RSAT*&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Add-WindowsCapability&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Online&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Requiring multiple, different factors for Windows Hello console authentication</title>
      <link>https://wporter.org/requiring-multiple-different-factors-for-windows-hello-console-authentication/</link>
      <pubDate>Sun, 01 Dec 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/requiring-multiple-different-factors-for-windows-hello-console-authentication/</guid>
      <description>&lt;p&gt;NOTE: this works with normal Windows Hello without any backing infrastructure if you just want to require two Hello factors to sign on to a machine - this is how I use it (make a convenience PIN more secure.)&#xA;NOTE: yes, Hello for Biz is MFA on its own, kind of.&lt;/p&gt;&#xA;&lt;p&gt;By setting up first factor to be biometric or a PIN, then setting the second factor to be proximity or a PIN, I can make sure that I&amp;rsquo;m able to sign in with Hello when my phone is dead by passing biometric authentication and then entering my PIN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snippet: Disable max vCPUs eq phys. threads restriction in Proxmox VE 8.3</title>
      <link>https://wporter.org/snippet-disable-max-vcpus-eq-phys.-threads-restriction-in-proxmox-ve-8.3/</link>
      <pubDate>Wed, 27 Nov 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/snippet-disable-max-vcpus-eq-phys.-threads-restriction-in-proxmox-ve-8.3/</guid>
      <description>&lt;h1 id=&#34;source&#34;&gt;Source:&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://forum.proxmox.com/threads/override-max-vcpu-allowed-per-vm.39363/post-194758&#34;&gt;jknight comment on Proxmox forums&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;problem&#34;&gt;Problem:&lt;/h1&gt;&#xA;&lt;p&gt;Needed to assign more than 64 threads to a VM for testing (just needed more than 64 threads, don&amp;rsquo;t care about performance or lack of it.)&lt;/p&gt;&#xA;&lt;p&gt;This was helpful and took a little bit of digging to find.&lt;/p&gt;&#xA;&lt;h1 id=&#34;solution&#34;&gt;Solution:&lt;/h1&gt;&#xA;&lt;p&gt;Open &lt;code&gt;/usr/share/perl5/PVE/QemuServer.pm&lt;/code&gt; with your favorite text editor.&lt;/p&gt;&#xA;&lt;p&gt;Remove lines 3772 - 3776 (if you&amp;rsquo;re /ing around afterwards or have an otherwise modified config file, this will be right after line 3770: &lt;code&gt;my $vcpus = $conf-&amp;gt;{vcpus} ? $conf-&amp;gt;{vcpus} : maxcpus;&lt;/code&gt;)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snippet: enabling forwarding between Hyper-V NAT vSwitches (WSL &amp; int. NAT)</title>
      <link>https://wporter.org/snippet-enabling-forwarding-between-hyper-v-nat-vswitches-wsl-int.-nat/</link>
      <pubDate>Tue, 26 Nov 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/snippet-enabling-forwarding-between-hyper-v-nat-vswitches-wsl-int.-nat/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://superuser.com/a/1764704&#34;&gt;https://superuser.com/a/1764704&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In my case, with NAT switch &amp;lsquo;vlab0-natswitch&amp;rsquo; and the default WSL NAT switch (so I can run Ansible playbooks against VMs behind a different NAT switch) the following one-liner does the trick. Adjust interfacealias values to suit.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;get-netipinterface&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;where &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;interfacealias&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-eq&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;vEthernet (vlab0-natswitch)&amp;#39;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-or&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;interfacealias&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-eq&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;vEthernet (WSL (Hyper-V firewall))&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;set-netipinterface&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-forwarding&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Enabled&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-verbose&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Works!&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;liam@liam-p1g4i-0:~$ ip a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    inet 127.0.0.1/8 scope host lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    inet 10.255.255.254/32 brd 10.255.255.254 scope global lo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    inet6 ::1/128 scope host&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc mq state UP group default qlen 1000&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    link/ether 00:15:5d:b7:bc:42 brd ff:ff:ff:ff:ff:ff&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    inet 172.28.133.19/20 brd 172.28.143.255 scope global eth0&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    inet6 fe80::215:5dff:feb7:bc42/64 scope link&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       valid_lft forever preferred_lft forever&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;liam@liam-p1g4i-0:~$ uname -r&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5.15.167.4-microsoft-standard-WSL2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;liam@liam-p1g4i-0:~$ ping 192.0.2.10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;PING 192.0.2.10 (192.0.2.10) 56(84) bytes of data.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;64 bytes from 192.0.2.10: icmp_seq=1 ttl=127 time=1.41 ms&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Snippet: using Winget from system context (NinjaRMM scripts)</title>
      <link>https://wporter.org/snippet-using-winget-from-system-context-ninjarmm-scripts/</link>
      <pubDate>Fri, 22 Nov 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/snippet-using-winget-from-system-context-ninjarmm-scripts/</guid>
      <description>&lt;p&gt;Yes, NinjaRMM has features for Winget package management. No, I didn&amp;rsquo;t look it up, and it wasn&amp;rsquo;t enabled in our tenant.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$WingetPath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Resolve-Path&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller*\winget.exe&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-not&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$WingetPath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;){&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#x9;&lt;span class=&#34;nb&#34;&gt;Write-Error&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Message&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Winget path not found. Failure. Exiting.&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#x9;&lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$WingetPath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Split-Path&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Path&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$WingetPath&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Parent&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-Location&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$WingetPath&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;.\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;winget&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;exe&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-exact&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-id&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Microsoft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;Teams&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-silent&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-accept-package-agreements&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;-accept-source-agreements&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Renaming domain member detaches Computer Object</title>
      <link>https://wporter.org/renaming-domain-member-detaches-computer-object/</link>
      <pubDate>Wed, 20 Nov 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/renaming-domain-member-detaches-computer-object/</guid>
      <description>&lt;p&gt;If renaming a domain member succeeds but the corresponding computer object is not updated, the trust relationship between the domain and the computer will break, preventing you from logging in, among other things.&lt;/p&gt;&#xA;&lt;p&gt;Luckily, the fix is just modifying the &lt;code&gt;Name&lt;/code&gt;, &lt;code&gt;SamAccountName&lt;/code&gt; (mandatory) and &lt;code&gt;DNSHostName&lt;/code&gt; (optional) properties of the computer object:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-ADComputer&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Filter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Where &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-eq&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;OLDNAME&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Rename-ADObject&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-NewName&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;NEWNAME&amp;#39;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-PassThru&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Set-ADComputer&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SamAccountName&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;NEWNAME$&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I&amp;rsquo;d probably rename the machine again afterwards in an attempt to get it to clean any remaining bits of itself up. You can do this once the computer account name and AD object name have been updated.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Snippet: setting up nested virt for Juniper (GNS3)</title>
      <link>https://wporter.org/snippet-setting-up-nested-virt-for-juniper-gns3/</link>
      <pubDate>Sun, 20 Oct 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/snippet-setting-up-nested-virt-for-juniper-gns3/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.juniper.net/documentation/us/en/software/vJunos/vjunos-switch-deployment-guide-for-kvm/vjunos-switch-deployment-guide-for-kvm.pdf&#34;&gt;vJunos-switch deployment guide&lt;/a&gt; - 5g, 4 cores&lt;/p&gt;&#xA;&lt;p&gt;Juniper VMs nest the control plane inside a Linux VM emulating forwarding plane - for this reason, running virtualized Juniper devices in a VM can be problematic&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d recommend not trying to do the above and using something dedicated&lt;/p&gt;&#xA;&lt;p&gt;This is probably from an Ubuntu Server install:&lt;/p&gt;&#xA;&lt;p&gt;See if nested virtualization is enabled&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;grep -cw vmx /proc/cpuinfo&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Enable nested virtualization&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;echo &amp;quot;options kvm-intel nested=1&amp;quot; &amp;gt;&amp;gt; /etc/modprobe.d/kvm.conf&lt;/code&gt;&#xA;&lt;code&gt;modprobe -r kvm &amp;amp;&amp;amp; modprobe kvm&lt;/code&gt;&#xA;&lt;code&gt;systemctl restart libvirtd&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>PowerShell: some commands for working with disks, volumes, VGs</title>
      <link>https://wporter.org/powershell-some-commands-for-working-with-disks-volumes-vgs/</link>
      <pubDate>Tue, 15 Oct 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/powershell-some-commands-for-working-with-disks-volumes-vgs/</guid>
      <description>&lt;p&gt;One-liner to format a new disk as a single NTFS partition:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-Disk&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$DiskId&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Initialize-Disk&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;New-Partition&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-UseMaximumSize&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Format-Volume&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Filesystem&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;NTFS&amp;#34;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-AsJob&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-DriveLetter&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Z&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Get-Partition&lt;/code&gt; will get you volumes (code block is missing MSR &amp;amp; EFI for brevity):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;PS &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Users&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;liam&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Documents&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tftp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;get-partition&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;fl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;UniqueId&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;00000000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;000100000000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;eui&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;0000000001000000E4D25CA7DB4F5501&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;AccessPaths&lt;/span&gt;          &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;D:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;\\?\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Volume&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;aa409295&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;7d41&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;48b2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;82e9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;2154277448e5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}\}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DiskNumber&lt;/span&gt;           &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DiskPath&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;\\?\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scsi&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#disk&amp;amp;ven_nvme&amp;amp;prod_intel_ssdpeknu01#5&amp;amp;159106e5&amp;amp;0&amp;amp;000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DriveLetter&lt;/span&gt;          &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;D&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Guid&lt;/span&gt;                 &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;aa409295&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;7d41&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;48b2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;82e9&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;2154277448e5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsActive&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsBoot&lt;/span&gt;               &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsHidden&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsOffline&lt;/span&gt;            &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsReadOnly&lt;/span&gt;           &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsShadowCopy&lt;/span&gt;         &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsDAX&lt;/span&gt;                &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsSystem&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;NoDefaultDriveLetter&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Offset&lt;/span&gt;               &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;16777216&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;OperationalStatus&lt;/span&gt;    &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Online&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PartitionNumber&lt;/span&gt;      &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Size&lt;/span&gt;                 &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;953.85&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GB&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Type &lt;/span&gt;                &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Basic&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;UniqueId&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;00000000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;0000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;501100000000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;eui&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;002538BA11B7787A&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;AccessPaths&lt;/span&gt;          &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;C:&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;\,&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;\\?\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Volume&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;ebf986f5-f46c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;4e19&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;81fc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;7a27c989a895&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}\}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DiskNumber&lt;/span&gt;           &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DiskPath&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;\\?\&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scsi&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;#disk&amp;amp;ven_nvme&amp;amp;prod_samsung_mzvl21t0#5&amp;amp;27c54347&amp;amp;0&amp;amp;000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;DriveLetter&lt;/span&gt;          &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;C&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Guid&lt;/span&gt;                 &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;ebf986f5-f46c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mf&#34;&gt;4e19&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;81fc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;7a27c989a895&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsActive&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsBoot&lt;/span&gt;               &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;True&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsHidden&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsOffline&lt;/span&gt;            &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsReadOnly&lt;/span&gt;           &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsShadowCopy&lt;/span&gt;         &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsDAX&lt;/span&gt;                &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;IsSystem&lt;/span&gt;             &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;NoDefaultDriveLetter&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;False&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Offset&lt;/span&gt;               &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;290455552&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;OperationalStatus&lt;/span&gt;    &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Online&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PartitionNumber&lt;/span&gt;      &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;3&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Size&lt;/span&gt;                 &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;953.01&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GB&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Type &lt;/span&gt;                &lt;span class=&#34;err&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Basic&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;Get-PhysicalDisk&lt;/code&gt; will give you serial numbers (the actual disks, if you can believe that)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Create a vSwitch and a NetNat object to avoid Default Switch DHCP</title>
      <link>https://wporter.org/create-a-vswitch-and-a-netnat-object-to-avoid-default-switch-dhcp/</link>
      <pubDate>Mon, 07 Oct 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/create-a-vswitch-and-a-netnat-object-to-avoid-default-switch-dhcp/</guid>
      <description>&lt;p&gt;Problem: Need a more controlled local testing environment, double NAT/routing hijinks are a bit much&lt;/p&gt;&#xA;&lt;p&gt;Solution: This plus DHCP running on an internal DC works for now&lt;/p&gt;&#xA;&lt;p&gt;Tested on: Windows 11 24H2 Ent LTSC with PS 7.4.5&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-PowerShell&#34; data-lang=&#34;PowerShell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# create the switch&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$SwitchAndNatName&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;internal-nat&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$Switch&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;New-VMSwitch&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SwitchName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$SwitchAndNatName&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SwitchType&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Internal&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# configure addressing for the gateway/hypervisor&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$IPAddress&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;192.0.2.1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$PrefixLength&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;24&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$NetAdapter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Get-NetAdapter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Where &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-eq&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;vEthernet (&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$Switch&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;)&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-NetIPAddress&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-InterfaceIndex&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$NetAdapter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;ifIndex&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-IPAddress&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$IPAddress&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-PrefixLength&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$PrefixLength&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# create a new NAT object&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-NetNat&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$SwitchAndNatName&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-InternalIPInterfaceAddressPrefix&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$IPAddress&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$PrefixLength&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>POST an Intune app registration to the Microsoft Graph API</title>
      <link>https://wporter.org/post-an-intune-app-registration-to-the-microsoft-graph-api/</link>
      <pubDate>Thu, 03 Oct 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/post-an-intune-app-registration-to-the-microsoft-graph-api/</guid>
      <description>&lt;h2 id=&#34;problem-the-selected-app-does-not-have-a-latest-package-version-error-preventing-app-registration-in-intuneendpoint-admin-center&#34;&gt;Problem: &amp;ldquo;The selected app does not have a latest package version&amp;rdquo; error preventing app registration in Intune/Endpoint Admin Center&lt;/h2&gt;&#xA;&lt;p&gt;Attempting to register Adobe Acrobat Reader DC (XPDP273C0XHQH2) as an Intune app of type Windows Store (New) results in a &amp;ldquo;The selected app does not have a latest package version&amp;rdquo; error. Intune admin center says that &amp;ldquo;This app is not supported in preview.&amp;rdquo;&lt;/p&gt;&#xA;&lt;p&gt;This seems to be a version error that seems to be caused by PackageVersion: Unknown, according to Sander Rozemuller, a M365 blogger. Speaking of them, thanks to &lt;a href=&#34;https://rozemuller.com/windows-store-app-not-supported-in-preview-in-intune/&#34;&gt;Sander Rozemuller&amp;rsquo;s blog post&lt;/a&gt; on the topic for showing me that I can get around this. Without that post I would probably have stayed lost.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Updating ESXi 8 hosts from a depot file</title>
      <link>https://wporter.org/updating-esxi-8-hosts-from-a-depot-file/</link>
      <pubDate>Fri, 05 Jul 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/updating-esxi-8-hosts-from-a-depot-file/</guid>
      <description>&lt;p&gt;Personal notes - I usually use Lifecycle Manager because it&amp;rsquo;s easy.&lt;/p&gt;&#xA;&lt;p&gt;Download the depot file from somewhere (of course I mean the Broadcom portal, you dirty pirate.)&lt;/p&gt;&#xA;&lt;p&gt;Upload the depot file to a host datastore of some kind, either through the web UI browser or with SCP.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;user@pc:~$ scp VMware-ESXi-8.0U3-24022510-depot.zip user@hv0.mydomain.internal:/vmfs/volumes/&amp;lt;datastore&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can either use esxcli remotely, or ssh into the host.&lt;/p&gt;&#xA;&lt;p&gt;Determine which profiles are available from the depot with esxcli once it&amp;rsquo;s on accessible storage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>T14s Gen 1 AMD &#43; Windows 11</title>
      <link>https://wporter.org/t14s-gen-1-amd--windows-11/</link>
      <pubDate>Sat, 29 Jun 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/t14s-gen-1-amd--windows-11/</guid>
      <description>&lt;h2 id=&#34;new-laptop-well-not-really&#34;&gt;New laptop! Well, not really.&lt;/h2&gt;&#xA;&lt;p&gt;This machine isn&amp;rsquo;t exactly new to me (or new at all, really.) It&amp;rsquo;s been doing a lot of heavy lifting for me over the past few months, so I thought I&amp;rsquo;d take a moment to appreciate it a bit and give it a writeup.&lt;/p&gt;&#xA;&lt;p&gt;This was a $300 eBay find that I used to replace a Latitude 3540 (to get myself a centered keyboard, TrackPoint, smaller device, and more cores/memory/disk) as my primary machine at my day job.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Removing ghost SipAddress and SipAddressProxy values from M365 user accounts</title>
      <link>https://wporter.org/removing-ghost-sipaddress-and-sipaddressproxy-values-from-m365-user-accounts/</link>
      <pubDate>Fri, 28 Jun 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/removing-ghost-sipaddress-and-sipaddressproxy-values-from-m365-user-accounts/</guid>
      <description>&lt;p&gt;Ran into this problem while attempting to remove a domain from a Microsoft tenant. Stale mailboxes that no longer had licenses were showing that they were still associated with a problem domain (as reported by &lt;code&gt;Get-MsolUser -DomainName &amp;quot;domain.tld&amp;quot;&lt;/code&gt; and the Admin Center domain menu). Specifically, they had an &amp;ldquo;IM Address&amp;rdquo; associated with the domain, despite having all aliases cleared - I could find nothing in the GUI relating to this.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disabling systemd-resolved and letting NetworkManager control /etc/resolv.conf on Fedora 40</title>
      <link>https://wporter.org/disabling-systemd-resolved-and-letting-networkmanager-control-/etc/resolv.conf-on-fedora-40/</link>
      <pubDate>Sun, 23 Jun 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/disabling-systemd-resolved-and-letting-networkmanager-control-/etc/resolv.conf-on-fedora-40/</guid>
      <description>&lt;p&gt;Resolved regularly fails to resolve things properly for no apparent reason, and was kind of a pain to troubleshoot when I first tried to do so.&lt;/p&gt;&#xA;&lt;p&gt;Here is how to disable it and allow NetworkManager to manage the &lt;code&gt;/etc/resolv.conf&lt;/code&gt; file instead. Shockingly, things stop randomly breaking once this is done.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Reconfigure NetworkManager to permit it to manage DNS resolvers&lt;/li&gt;&#xA;&lt;li&gt;Stop and mask the resolved service&lt;/li&gt;&#xA;&lt;li&gt;Remove &lt;code&gt;/etc/resolv.conf&lt;/code&gt; to clear out existing contents&lt;/li&gt;&#xA;&lt;li&gt;Restart NetworkManager to apply the configuration change&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;First, allow NetworkManager to configure the system&amp;rsquo;s DNS resolvers by editing the &lt;code&gt;/etc/NetworkManager/NetworkManager.conf&lt;/code&gt; file.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configuring SSH clients for use with IOS 15.0(2)SE11 on a Cisco 3750x</title>
      <link>https://wporter.org/configuring-ssh-clients-for-use-with-ios-15.02se11-on-a-cisco-3750x/</link>
      <pubDate>Sat, 15 Jun 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/configuring-ssh-clients-for-use-with-ios-15.02se11-on-a-cisco-3750x/</guid>
      <description>&lt;h1 id=&#34;intro&#34;&gt;Intro&lt;/h1&gt;&#xA;&lt;p&gt;The 3750x is a very old switch. It does not support newfangled things like &amp;lsquo;secure cryptographic algorithms.&amp;rsquo;&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m not going to throw away a perfectly adequate gigabit L3 switch (IP Services!) and I would like to be able to use SSH to manage it (instead of squatting on the floor in the basement next to it with a mini USB cable every time I need to modify the config.)&lt;/p&gt;</description>
    </item>
    <item>
      <title>Deleting messages org-wide with Exchange Online PowerShell</title>
      <link>https://wporter.org/deleting-messages-org-wide-with-exchange-online-powershell/</link>
      <pubDate>Mon, 10 Jun 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/deleting-messages-org-wide-with-exchange-online-powershell/</guid>
      <description>&lt;h1 id=&#34;why&#34;&gt;Why&lt;/h1&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t have Defender P2 (so you can&amp;rsquo;t Threat Explore or manually delete messages) and need to get rid of some phishing messages batched out to your users? Not a problem (while Exchange Online PowerShell is around.)&lt;/p&gt;&#xA;&lt;h1 id=&#34;how&#34;&gt;How&lt;/h1&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;PowerShell&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;7.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$sender&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;sender@domain.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$upn&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;exchangeadmin@company.com&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;$searchname&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;${sender}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; spam&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Install-Module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ExchangeOnlineManagement&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Import-Module&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ExchangeOnlineManagement&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Connect-ExchangeOnline&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-UserPrincipalName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$upn&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Connect-IPPSSession&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-UserPrincipalName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$upn&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-ComplianceSearch&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Name&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$searchname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ExchangeLocation&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;All&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ContentMatchQuery&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;(From:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;${sender}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;)&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Start-ComplianceSearch&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Identity&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$searchname&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-ComplianceSearchAction&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-SearchName&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$searchname&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Purge&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-PurgeType&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;harddelete&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Optionally, block the sender&amp;rsquo;s address:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-pwsh&#34; data-lang=&#34;pwsh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;New-TenantAllowBlockListItems&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ListType&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Sender&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Block&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-Entries&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$sender&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-NoExpiration&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;sources&#34;&gt;Sources&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/purview/ediscovery-search-for-and-delete-email-messages&#34;&gt;MS Learn - Search for and Delete Email Messages&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/powershell/module/exchange/new-compliancesearch?view=exchange-ps&#34;&gt;MS Learn - New-ComplianceSearch&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up Vagrant with libvirt (Fedora 40)</title>
      <link>https://wporter.org/setting-up-vagrant-with-libvirt-fedora-40/</link>
      <pubDate>Wed, 05 Jun 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/setting-up-vagrant-with-libvirt-fedora-40/</guid>
      <description>&lt;p&gt;&lt;em&gt;Hi! This is personal documentation (also known as &amp;lsquo;my notes.&amp;rsquo;) Quality is.. not guaranteed.&lt;/em&gt;&#xA;WIP as of 6/10/24. I keep getting distracted by PowerShell and SQL&lt;/p&gt;&#xA;&lt;p&gt;Adapted on 6/5/24 from:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://fedoramagazine.org/vagrant-qemukvm-fedora-devops-sysadmin/&#34;&gt;Fedora Magazine article on Vagrant + libvirt&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://leanpub.com/ansible-for-devops/c/CTVMPCbEeXd3&#34;&gt;Jeff Geerling&amp;rsquo;s Ansible for Devops book, pgs.~5-10&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://developer.hashicorp.com/vagrant/docs&#34;&gt;The Vagrant docs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;quickstart&#34;&gt;Quickstart&lt;/h2&gt;&#xA;&lt;h4 id=&#34;install-packages&#34;&gt;Install packages&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# dnf install qemu-kvm libvirt libguestfs-tools virt-install rsync vagrant&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# systemctl enable libvirtd &amp;amp;&amp;amp; sudo systemctl start libvirtd&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# vagrant plugin install vagrant-libvirt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;download-a-box&#34;&gt;Download a box&lt;/h4&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ vagrant box add fedora/40-cloud-base --provider=libvirt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;Hey! Are you from the future? Is Fedora 40 old now?&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Windows DRIVE$ shares</title>
      <link>https://wporter.org/windows-drive-shares/</link>
      <pubDate>Thu, 11 Apr 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/windows-drive-shares/</guid>
      <description>&lt;h1 id=&#34;c&#34;&gt;C$&lt;/h1&gt;&#xA;&lt;p&gt;There are hidden &amp;lsquo;administrative&amp;rsquo; drive shares on every Windows installation. You can view a list of configured shares with the &lt;code&gt;net share&lt;/code&gt; command:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C:\Users\liam&amp;gt;net share&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Share name   Resource                        Remark&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-------------------------------------------------------------------------------&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;C$           C:\                             Default share&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;IPC$                                         Remote IPC&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ADMIN$       C:\Windows                      Remote Admin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can make use of these for stuff. Some of that stuff is a good idea.&lt;/p&gt;&#xA;&lt;p&gt;I use this primarily for (fairly) direct filesystem access to guest VMs from my workstations (over an internal network).&lt;/p&gt;</description>
    </item>
    <item>
      <title>ESXi 8 - ignoring a TSC mismatch PSOD</title>
      <link>https://wporter.org/esxi-8-ignoring-a-tsc-mismatch-psod/</link>
      <pubDate>Tue, 09 Apr 2024 12:34:56 +0000</pubDate>
      <guid>https://wporter.org/esxi-8-ignoring-a-tsc-mismatch-psod/</guid>
      <description>&lt;h1 id=&#34;problem&#34;&gt;Problem&lt;/h1&gt;&#xA;&lt;p&gt;Both of my Dell T5810s fail to boot ESXi 8.0U2 - they quickly meet a PSOD that calls out a TSC sync error.&lt;/p&gt;&#xA;&lt;p&gt;The CPUs in these machines are an E5-2660 v4 and E5-2690 v4 (both the 14-core Broadwell die, incidentally.)&lt;/p&gt;&#xA;&lt;p&gt;The TSC is off by same value every boot, and both machines experience no instability with Win/Linux (or ESXi after the counter error is bypassed.) YMMV with bypassing this yourself.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CCNA Complete!</title>
      <link>https://wporter.org/ccna-complete/</link>
      <pubDate>Fri, 15 Mar 2024 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/ccna-complete/</guid>
      <description>&lt;h2 id=&#34;done-finally&#34;&gt;Done. Finally.&lt;/h2&gt;&#xA;&lt;p&gt;Took a month and a bit at around ~3 hrs a day, longer than expected because of inefficient study (working on it) and a handful of personal things (stuff happens). Learned a decent amount thanks to hands-on practice (mostly self-made labs in GNS3).&lt;/p&gt;&#xA;&lt;p&gt;I enjoyed playing with routers and switches much more than just reading about WLC configuration or Cisco SDA. Looking forward to dumping some time into ENARSI study, though that&amp;rsquo;ll probably wait until next year at the earliest (more like &amp;lsquo;in two years, after ENCOR and some work experience&amp;rsquo;) unless networking becomes my &amp;rsquo;thing&amp;rsquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fedora 39 &#43; T14 Gen 2 AMD</title>
      <link>https://wporter.org/fedora-39--t14-gen-2-amd/</link>
      <pubDate>Wed, 31 Jan 2024 01:30:00 -0500</pubDate>
      <guid>https://wporter.org/fedora-39--t14-gen-2-amd/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;This is about my &amp;ldquo;new&amp;rdquo; laptop (I&amp;rsquo;ve had it for around a year now, and I bought it used) but there&amp;rsquo;s some minor config shenanigans that are essential to get it performing as well as it should on Linux. And I like to talk about hardware.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://wporter.org/fedora-39--t14-gen-2-amd/images/wallpaper.JPG&#34;&#xA;    alt=&#34;T14 Gen 2 AMD Gnome 45 nothing on screen&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h3 id=&#34;use-case&#34;&gt;Use Case&lt;/h3&gt;&#xA;&lt;p&gt;I wanted a laptop that I can get away with using as a desktop (so I don&amp;rsquo;t have to deal with syncing half my user directory anymore), and so I can work on whatever VM or local project wherever I am, even if I forgot to push something to Github.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Brief Look at CLNS &amp; CLNP</title>
      <link>https://wporter.org/brief-look-at-clns-clnp/</link>
      <pubDate>Wed, 24 Jan 2024 20:00:00 +0000</pubDate>
      <guid>https://wporter.org/brief-look-at-clns-clnp/</guid>
      <description>&lt;h1 id=&#34;clns--clnp---the-future-network-other-tidbits&#34;&gt;CLNS &amp;amp; CLNP - The ‘Future Network’, other tidbits&lt;/h1&gt;&#xA;&lt;p&gt;Exploring some old standards and the pieces they left behind&lt;/p&gt;&#xA;&lt;p&gt;This post will likely grow over time. I’ll make this site’s repository public once it’s cleaned up a bit so diffs are accessible, and I will update this introductory paragraph to reflect any changes. I don’t intend to keep looking into CLNS at the moment, but I expect to pick it back up at some point.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Power Consumption</title>
      <link>https://wporter.org/power-consumption/</link>
      <pubDate>Sun, 07 Jan 2024 10:10:10 +0000</pubDate>
      <guid>https://wporter.org/power-consumption/</guid>
      <description>&lt;p&gt;This is a writeup of some testing I did on C422/Skylake-W, dual socket (2S) C602/Ivy Bridge-EP, single socket (1S) C612/Broadwell-EP, 2S C612/Broadwell-EP and H87/Haswell-S prebuilt desktops, RDNA and Polaris GPUs, i350-t4 and SFN7122F NICs for power consumption.&lt;/p&gt;&#xA;&lt;p&gt;So.. my power is in the $0.25/kwh range. Which sucks. I wanted to figure out how much my heaps of sand in nice metal cases cost me so I can make more informed decisions before replacing everything with more E5-2690 v4s.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CompTIA Net&#43; Retrospective</title>
      <link>https://wporter.org/comptia-net-retrospective/</link>
      <pubDate>Sat, 30 Dec 2023 19:14:24 +0000</pubDate>
      <guid>https://wporter.org/comptia-net-retrospective/</guid>
      <description>&lt;p&gt;Updated post-CCNA, 3/2024.&#xA;Lines preceded by a &amp;lsquo;+&amp;rsquo; are new additions.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;I took and passed my N+ with around an 800 on 12/21/2023. I spent about thirty hours explicitly studying for the Net+ and taking practice tests, over the course of about a week. Here&amp;rsquo;s what I thought of it, and what I learned.&lt;/p&gt;&#xA;&lt;h3 id=&#34;study-material&#34;&gt;Study Material&lt;/h3&gt;&#xA;&lt;p&gt;I used Jason Dion&amp;rsquo;s practice tests and made flashcards. I was able to pass the Net+ with basic knowledge that I already had. No official study material and I didn&amp;rsquo;t follow a prep book.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
