<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Microsoft &#8211; Cyberillo</title>
	<atom:link href="https://cyberillo.com/category/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>https://cyberillo.com</link>
	<description>Reliable Tech Tips and Services</description>
	<lastBuildDate>Mon, 29 Dec 2025 08:23:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://cyberillo.com/wp-content/uploads/cropped-favicon-100x100.png</url>
	<title>Microsoft &#8211; Cyberillo</title>
	<link>https://cyberillo.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Local Admin Report with Intune and Log Analytics</title>
		<link>https://cyberillo.com/local-admin-report/</link>
					<comments>https://cyberillo.com/local-admin-report/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 08:16:15 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Intune]]></category>
		<guid isPermaLink="false">https://cyberillo.com/?p=3613</guid>

					<description><![CDATA[<p>Learn how to create a report of local administrator accounts across your domain with Intune and Log Analytics.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/local-admin-report/">Local Admin Report with Intune and Log Analytics</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In a busy IT environment, handing out &#8220;temporary&#8221; local admin access is almost second nature. A user needs to install something, you grant the access, fix the problem, move on to the next ticket… and forget all about it.</p>



<p>The problem? Those leftover admin rights don’t go away on their own. Over time, they quietly pile up and turn into a serious security risk, which most monitoring tools never bother to check. If you don’t know who’s in the local Administrators group, you’re basically trusting luck.</p>



<p>In this guide, I&#8217;ll walk you trough how to use Intune and Log Analytics to get a clear, reliable report of who actually has local admin access on every device in your environment.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>





<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Solution Overview</h2>



<p>We use a proactive approach to ensure no local admins stay hidden:</p>



<ol class="wp-block-list">
<li><strong>Detection:</strong>&nbsp;A PowerShell script runs daily on every machine to query the administrators group.</li>



<li><strong>Ingestion:</strong>&nbsp;Data is sent to a custom table in our Log Analytics Workspace.</li>



<li><strong>Analysis:</strong>&nbsp;KQL queries filter out authorized local administrator accounts to highlight outliers.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. The PowerShell Collection Script</h2>



<p>This script gathers members of the local admin group and sends the data to Azure. By running this via Intune, we get a fresh snapshot of the local admins on each PC every  24 hours.</p>



<p><strong>Prerequisite 1</strong>: Get the <code>$CustomerID</code> from the log analytics workspace Overview tab.</p>



<figure class="wp-block-kadence-image kb-image3613_2d7d33-b1 size-large border"><img fetchpriority="high" decoding="async" width="1024" height="264" src="https://cyberillo.com/wp-content/uploads/Get-Workspace-ID-From-Overview-Section-In-Log-Analytics-1024x264.png" alt="Get-Workspace-ID-From-Overview-Section-In-Log-Analytics" class="kb-img wp-image-3628" srcset="https://cyberillo.com/wp-content/uploads/Get-Workspace-ID-From-Overview-Section-In-Log-Analytics-1024x264.png 1024w, https://cyberillo.com/wp-content/uploads/Get-Workspace-ID-From-Overview-Section-In-Log-Analytics-300x77.png 300w, https://cyberillo.com/wp-content/uploads/Get-Workspace-ID-From-Overview-Section-In-Log-Analytics-768x198.png 768w, https://cyberillo.com/wp-content/uploads/Get-Workspace-ID-From-Overview-Section-In-Log-Analytics-1536x397.png 1536w, https://cyberillo.com/wp-content/uploads/Get-Workspace-ID-From-Overview-Section-In-Log-Analytics.png 1681w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Prerequisite 2:</strong> To get the <code>$SharedKey</code>, use this AZ CLI query.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">az monitor log-analytics workspace get-shared-keys \
   --resource-group xxxxx \
   --workspace-name xxxxxx \
   --query "primarySharedKey"</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># --------------------------------------------------------------------------
# PowerShell Script: Send Local Administrator Group Members to Log Analytics
# --------------------------------------------------------------------------

# ======================
# 1. Configuration
# ======================
$CustomerID = "&lt;your-customer-id>"
$SharedKey  = "&lt;your-shared-key>"
$LogType    = "LocalAdminReport"

# ======================
# 2. Data Collection
# ======================
$DeviceName = $env:COMPUTERNAME

try {
    $AdminMembers = Get-LocalGroupMember -Group "Administrators"
} catch {
    Write-Error "Error retrieving local group members: $($_.Exception.Message)"
    exit 1
}

$DataToSend = @()
foreach ($Member in $AdminMembers) {
    $MemberName = $Member.Name
    $MemberSource = $Member.PrincipalSource
    if (-not [string]::IsNullOrEmpty($MemberName)) {
        $DataToSend += [PSCustomObject]@{
            DeviceName = $DeviceName
            AdminName  = $MemberName
            PrincipalSource = $MemberSource
            TimeGenerated = (Get-Date -Format s)
        }
    }
}

if ($DataToSend.Count -eq 0) {
    Write-Host "No members found in the Administrators group. Skipping log submission."
    exit 0
}

$JsonPayload = $DataToSend | ConvertTo-Json -Depth 5

# ======================
# 3. Build Request and Signature
# ======================
$Bytes         = [System.Text.Encoding]::UTF8.GetBytes($JsonPayload)
$ContentLength = $Bytes.Length
$APIVersion    = "2016-04-01"
$Date          = (Get-Date).ToUniversalTime().ToString("r")
$ResourcePath  = "/api/logs"

# Build the string for signature (see MS Docs)
$SignatureString = "POST`n$ContentLength`napplication/json`nx-ms-date:$Date`n$ResourcePath"

# Decode Shared Key and calculate signature
try {
    $KeyBytes   = [Convert]::FromBase64String($SharedKey)
    $HMACSHA256 = New-Object System.Security.Cryptography.HMACSHA256
    $HMACSHA256.Key = $KeyBytes
    $Hash = $HMACSHA256.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($SignatureString))
    $Signature = [Convert]::ToBase64String($Hash)
} catch {
    Write-Error "Failed to create signature: $($_.Exception.Message)"
    exit 1
}

$Authorization = "SharedKey ${CustomerId}:$Signature"
$URI = "https://$CustomerID.ods.opinsights.azure.com/api/logs?api-version=$APIVersion"

# ======================
# 4. Send Data
# ======================
$Headers = @{
    "Authorization"        = $Authorization
    "x-ms-date"            = $Date
    "Content-Type"         = "application/json"
    "Log-Type"             = $LogType
    "x-ms-log-type"        = $LogType
    "time-generated-field" = "TimeGenerated"
}

try {
    Write-Host "Sending data to Log Analytics ($LogType)..."
    Write-Host "Target URI: $URI"
    $Response = Invoke-RestMethod -Uri $URI -Method Post -Headers $Headers -Body $JsonPayload
    Write-Host "Successfully sent log data."
} catch {
    Write-Error "Failed to send log data. Error: $($_.Exception.Message)"
    if ($_.Exception.Response) {
        try {
            $Reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream())
            $Details = $Reader.ReadToEnd()
            Write-Error "Azure Response: $Details"
        } catch { }
    }
    exit 1
}

exit 0</pre>



<h2 class="wp-block-heading">2. Running the Script Daily via Intune</h2>



<p>To force the check daily, we deploy an Intune remediation script.</p>



<ol class="wp-block-list">
<li>Go to <a href="https://intune.microsoft.com" target="_blank" rel="noopener">https://intune.microsoft.com</a>.</li>



<li>Navigate to <strong>Devices > Scripts and remediations > Create</strong>.</li>



<li>Enter the above script as the <strong>Detection Script</strong> and leave the <strong>Remediation Script</strong> empty.</li>
</ol>



<figure class="wp-block-kadence-image kb-image3613_3b43a7-12 size-large border"><img decoding="async" width="1024" height="689" src="https://cyberillo.com/wp-content/uploads/Intune-Remediation-Script-Send-Local-Administrator-Group-Members-to-Log-Analytics-1024x689.png" alt="Intune-Remediation-Script-Send-Local-Administrator-Group-Members-to-Log-Analytics" class="kb-img wp-image-3619" srcset="https://cyberillo.com/wp-content/uploads/Intune-Remediation-Script-Send-Local-Administrator-Group-Members-to-Log-Analytics-1024x689.png 1024w, https://cyberillo.com/wp-content/uploads/Intune-Remediation-Script-Send-Local-Administrator-Group-Members-to-Log-Analytics-300x202.png 300w, https://cyberillo.com/wp-content/uploads/Intune-Remediation-Script-Send-Local-Administrator-Group-Members-to-Log-Analytics-768x516.png 768w, https://cyberillo.com/wp-content/uploads/Intune-Remediation-Script-Send-Local-Administrator-Group-Members-to-Log-Analytics.png 1227w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">3. Analyzing the Local Administrator Report</h2>



<p>Once the data is in our log analytics workspace, we use Kusto (KQL) to audit the results. The goal is to separate legitimate domain accounts from unauthorized user accounts that still have the local admin right.</p>



<h3 class="wp-block-heading">Compliance Summary</h3>



<p>This query counts the number of devices where a user is in the administrators group but does not have &#8220;admin&#8221; in their name (filtering out the built-in administrator and domain admins).</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">let allDevices = LocalAdminReport_CL | summarize by DeviceName_s;
let offenderDevices = LocalAdminReport_CL
    | where isnotempty(AdminName_s)
    | where AdminName_s !contains "Admin"
    | summarize by DeviceName_s;
let totalOffenders = offenderDevices 
    | summarize Count = count() 
    | extend Category = "Devices with Local Admin Access";
let compliantDevices = (allDevices
    | join kind=leftanti offenderDevices on DeviceName_s
    | summarize Count = count()
    | extend Category = "Compliant Devices"
);
totalOffenders
| union compliantDevices
| project Category, Count
| order by Category asc
</pre>



<h3 class="wp-block-heading">Detailed Account Audit</h3>



<p>Use this query to select and list every specific account that has been granted local admin permissions in the last 90 days across your computer fleet.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">LocalAdminReport_CL
| where TimeGenerated > ago(90d)
| where isnotempty(AdminName_s)
| where AdminName_s !contains "Admin"
| summarize LatestSeen = max(TimeGenerated) by DeviceName_s, AdminName_s
| order by DeviceName_s asc
</pre>



<h2 class="wp-block-heading">Implementation Tips</h2>



<ul class="wp-block-list">
<li><strong>Intune Deployment:</strong> Set the script to run daily using <strong>Devices &gt; Remediations</strong>. This ensures that if a user is added and then removed, your logs stay accurate.</li>



<li><strong>Filtering:</strong> Adjust the <code>!contains "Admin"</code> logic if your organization uses a different naming standard for authorized admin accounts.</li>



<li><strong>Workbook Visuals:</strong> In Azure Workbooks, use the &#8220;Pie Chart&#8221; renderer for the first query to get an immediate view of your environment&#8217;s health.</li>
</ul>



<h2 class="wp-block-heading">Summary</h2>



<p>Good security isn’t about saying “no” to everything. It’s about knowing what’s actually happening in your environment. With this script and report in place, you get a clear audit trail that shows exactly when someone is added as a local administrator. That way, “temporary” access doesn’t quietly turn into a permanent problem, and you stay in control instead of playing cleanup later.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/local-admin-report/">Local Admin Report with Intune and Log Analytics</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/local-admin-report/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Create a Windows Image for Deployment</title>
		<link>https://cyberillo.com/how-to-create-a-windows-image-for-deployment/</link>
					<comments>https://cyberillo.com/how-to-create-a-windows-image-for-deployment/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Mon, 30 Jun 2025 13:24:14 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://cyberillo.com/?p=3573</guid>

					<description><![CDATA[<p>Create a custom Windows 11 image with this guide. Learn to pre-install apps, remove bloatware, and generalize your OS for seamless deployment.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-create-a-windows-image-for-deployment/">How to Create a Windows Image for Deployment</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Do you need to deploy a customized Windows 11 installation on a bunch of corporate laptops? Or maybe you&#8217;re interested in creating a custom Windows image with all your preferred software and configurations already set up for reuse on multiple devices?</p>



<p>This guide&#8217;s got you covered. We&#8217;ll go through the steps of capturing a customized Windows image, as well as the most common issues you&#8217;ll encounter.</p>





<h2 class="wp-block-heading">1. Get Your Windows 11 Ready</h2>



<p>To start, you&#8217;ll need a Windows 11 ISO.</p>



<ul class="wp-block-list">
<li>If you&#8217;re working with volume licensing, grab your Windows 11 Enterprise ISO from the <a href="https://admin.microsoft.com/Adminportal/Home#/subscriptions/vlnew/downloadsandkeys" target="_blank" rel="noopener">Microsoft 365 Admin Center</a>.</li>



<li>If not, you can download the Windows 11 ISO from <a href="https://www.microsoft.com/en-us/software-download/windows11" target="_blank" rel="noopener">here</a>.</li>
</ul>



<h2 class="wp-block-heading">2. Set Up Your Build Environment</h2>



<p>We&#8217;ll be building this image inside a virtual machine. So, enable the Hyper-V feature on your workstation.</p>



<ul class="wp-block-list">
<li>Navigate to the control panel and select&nbsp;<strong>Programs &gt; Turns Windows features on or off</strong>.</li>



<li>Tick the <strong>Hyper-V</strong> feature and click on <strong>OK</strong>.</li>
</ul>



<div class="wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<figure class="wp-block-table aligncenter"><table><tbody><tr><td class="has-text-align-center" data-align="center"><img decoding="async" width="1370" height="798" class="wp-image-3585" style="width: 1370px;" src="https://cyberillo.com/wp-content/uploads/Turn-on-Windows-Features.png" alt="Turn on Windows Features" srcset="https://cyberillo.com/wp-content/uploads/Turn-on-Windows-Features.png 1532w, https://cyberillo.com/wp-content/uploads/Turn-on-Windows-Features-300x175.png 300w, https://cyberillo.com/wp-content/uploads/Turn-on-Windows-Features-1024x596.png 1024w, https://cyberillo.com/wp-content/uploads/Turn-on-Windows-Features-768x447.png 768w" sizes="(max-width: 1370px) 100vw, 1370px" /></td><td><img decoding="async" src="https://cyberillo.com/wp-content/uploads/Turn-on-Hyper-V.png" alt="Turn on Hyper-V feature" style=""></td></tr></tbody></table></figure>
</div>
</div>



<p>You&#8217;ll need to restart your PC for the Hyper-V feature to be installed.</p>



<p><strong>N.B.</strong> You also need to have virtualization enabled in your system BIOS to use Hyper-V, VMWare, VirtualBox, etc.</p>



<p>After restarting your workstation, create your new virtual machine in Hyper-V and make sure TPM is turned on&#8230; Windows 11 insists on it.</p>



<h2 class="wp-block-heading">3. Install Windows and Your Essential Apps</h2>



<p>Now, install Windows 11 as you normally would within your virtual machine. Then, add all the software you want pre-installed in your custom Windows Image. </p>



<p><strong>N.B.</strong> If you want to make any <code>AppData</code> changes to all user profiles that will be using the customized Windows installation, apply the changes to <code>C:\Users\Default\AppData\Roaming</code>.</p>



<p>After getting all your core applications installed, take a moment to tidy up. Uninstall any bloatware you don&#8217;t need, like Xbox or Solitaire.</p>



<h2 class="wp-block-heading">4. Generalize Your Windows Installation with Sysprep</h2>



<p><strong>Sysprep</strong> is the tool that prepares our Windows setup for capturing. It essentially makes the installation generic, so it can be deployed on different machines.</p>



<ul class="wp-block-list">
<li>Open Command Prompt as an Administrator.</li>



<li>Change directory to Sysprep:&nbsp;<code>cd C:\Windows\System32\Sysprep</code></li>



<li>Run the Sysprep command:&nbsp;<code>sysprep.exe /oobe /generalize /shutdown</code></li>
</ul>



<p>You might hit a snag if your OS drive is encrypted&#8230; This is typical on Windows 11 installations. If Sysprep throws an error, check the log file; it will likely point to the encryption.</p>



<figure class="wp-block-table aligncenter"><table><tbody><tr><td class="has-text-align-center" data-align="center"><img loading="lazy" decoding="async" width="500" height="235" class="wp-image-3589" style="width: 500px;" src="https://cyberillo.com/wp-content/uploads/Sysprep-Error.png" alt="Sysprep Error Dialog" srcset="https://cyberillo.com/wp-content/uploads/Sysprep-Error.png 368w, https://cyberillo.com/wp-content/uploads/Sysprep-Error-300x141.png 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></td><td><img loading="lazy" decoding="async" width="1000" height="224" class="wp-image-3588" style="width: 1000px;" src="https://cyberillo.com/wp-content/uploads/BitLocker-Error-in-Sysprep-Log.png" alt="BitLocker Error in Sysprep Log" srcset="https://cyberillo.com/wp-content/uploads/BitLocker-Error-in-Sysprep-Log.png 1427w, https://cyberillo.com/wp-content/uploads/BitLocker-Error-in-Sysprep-Log-300x67.png 300w, https://cyberillo.com/wp-content/uploads/BitLocker-Error-in-Sysprep-Log-1024x230.png 1024w, https://cyberillo.com/wp-content/uploads/BitLocker-Error-in-Sysprep-Log-768x172.png 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></td></tr></tbody></table></figure>



<p>To fix this, turn off BitLocker by running this command in CMD:&nbsp;<code>manage-bde -off C:</code></p>



<p>You&#8217;ll see a message that decryption is underway. You can keep an eye on its progress with:&nbsp;<code>manage-bde -status</code></p>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="977" height="698" src="https://cyberillo.com/wp-content/uploads/Disable-Bitlocker-for-Sysprep-to-work.png" alt="Disable Bitlocker for Sysprep to work" class="wp-image-3590" srcset="https://cyberillo.com/wp-content/uploads/Disable-Bitlocker-for-Sysprep-to-work.png 977w, https://cyberillo.com/wp-content/uploads/Disable-Bitlocker-for-Sysprep-to-work-300x214.png 300w, https://cyberillo.com/wp-content/uploads/Disable-Bitlocker-for-Sysprep-to-work-768x549.png 768w" sizes="auto, (max-width: 977px) 100vw, 977px" /></figure>



<p>Once your OS drive is fully decrypted, give that Sysprep command another go.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="625" height="356" src="https://cyberillo.com/wp-content/uploads/Drive-must-be-fully-decrypted-before-running-Sysprep.png" alt="Drive must be fully decrypted before running Sysprep" class="wp-image-3591" srcset="https://cyberillo.com/wp-content/uploads/Drive-must-be-fully-decrypted-before-running-Sysprep.png 625w, https://cyberillo.com/wp-content/uploads/Drive-must-be-fully-decrypted-before-running-Sysprep-300x171.png 300w" sizes="auto, (max-width: 625px) 100vw, 625px" /></figure>
</div>


<p>Another common hiccup happens if one of the Windows Store apps is installed for one user but not set up for all users. The Sysprep log will clue you in on which app is causing the trouble. </p>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="284" src="https://cyberillo.com/wp-content/uploads/Sysprep-Error-Store-app-installed-for-a-user-but-not-all-users-1024x284.png" alt="Sysprep Error - Store app installed for a user but not all users" class="wp-image-3592" srcset="https://cyberillo.com/wp-content/uploads/Sysprep-Error-Store-app-installed-for-a-user-but-not-all-users-1024x284.png 1024w, https://cyberillo.com/wp-content/uploads/Sysprep-Error-Store-app-installed-for-a-user-but-not-all-users-300x83.png 300w, https://cyberillo.com/wp-content/uploads/Sysprep-Error-Store-app-installed-for-a-user-but-not-all-users-768x213.png 768w, https://cyberillo.com/wp-content/uploads/Sysprep-Error-Store-app-installed-for-a-user-but-not-all-users.png 1427w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>To remove it, open an elevated PowerShell session and type:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Remove-AppxPackage -Package &lt;&lt;packagenamegoeshere>></pre>



<p>You might need to repeat this for a couple of apps until Sysprep runs through without a hitch.</p>



<h2 class="wp-block-heading">5. Capture Your Master Image</h2>



<p>After Sysprep works its magic and shuts down the virtual machine, it&#8217;s time to capture our customized image.</p>



<ul class="wp-block-list">
<li>Attach an empty VHD to your virtual machine.</li>



<li>Boot up your VM using <a href="https://www.hirensbootcd.org/download/" target="_blank" rel="noopener">Hiren&#8217;s Boot CD</a> or a WinPE environment.</li>



<li>In the boot environment, make sure your Windows installation is mounted as&nbsp;<code>C:\</code>&nbsp;and your empty VHD as&nbsp;<code>E:\</code>.</li>



<li>Now, capture your image and save it to <code>E:\</code> with this DISM command:</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="bat" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">DISM /capture-image /imagefile:E:\install.wim /capturedir:C:\ /name:"Win11" /compress:fast</pre>



<h2 class="wp-block-heading">6. Personalize Your Windows 11 ISO</h2>



<p>Now that you have your <code>install.wim</code> file, you&#8217;ll integrate it into a Windows 11 ISO. Using a tool like <a href="https://www.anyburn.com/download.php" target="_blank" rel="noopener">AnyBurn</a>, open the ISO, navigate to the <code>sources</code> folder, remove the original <code>install.wim</code>, and drop in your newly captured <code>install.wim</code> file.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="634" src="https://cyberillo.com/wp-content/uploads/Replace-install.wim-with-customized-installation-that-we-captured-1024x634.png" alt="Replace install.wim with customized installation that we captured" class="wp-image-3593" style="width:497px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Replace-install.wim-with-customized-installation-that-we-captured-1024x634.png 1024w, https://cyberillo.com/wp-content/uploads/Replace-install.wim-with-customized-installation-that-we-captured-300x186.png 300w, https://cyberillo.com/wp-content/uploads/Replace-install.wim-with-customized-installation-that-we-captured-768x475.png 768w, https://cyberillo.com/wp-content/uploads/Replace-install.wim-with-customized-installation-that-we-captured.png 1257w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading">7. Create a Bootable USB</h2>



<p>Last but not least, we need to make a bootable USB stick from our new custom ISO. Grab <a href="https://rufus.ie/en/" target="_blank" rel="noopener">Rufus</a> (or your preferred tool). Select your USB stick (double-check you don&#8217;t have anything important on it, as it will be wiped), pick your custom ISO, and hit start.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="687" height="1024" src="https://cyberillo.com/wp-content/uploads/Create-bootable-usb-with-Rufus-687x1024.png" alt="" class="wp-image-3594" style="width:309px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Create-bootable-usb-with-Rufus-687x1024.png 687w, https://cyberillo.com/wp-content/uploads/Create-bootable-usb-with-Rufus-201x300.png 201w, https://cyberillo.com/wp-content/uploads/Create-bootable-usb-with-Rufus.png 739w" sizes="auto, (max-width: 687px) 100vw, 687px" /></figure>
</div>


<h2 class="wp-block-heading">A Quick Note on Windows 11 24H2</h2>



<p>Heads up! When using Windows 11 24H2 as my base ISO, I bumped into the below installation error, which seems to be related to the new Windows setup interface.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="464" height="327" src="https://cyberillo.com/wp-content/uploads/Windows-11-installation-has-failed.png" alt="" class="wp-image-3596" srcset="https://cyberillo.com/wp-content/uploads/Windows-11-installation-has-failed.png 464w, https://cyberillo.com/wp-content/uploads/Windows-11-installation-has-failed-300x211.png 300w" sizes="auto, (max-width: 464px) 100vw, 464px" /></figure>
</div>


<p>As a workaround, you can either use Windows 11 23H2 as your base ISO or select <em>Previous Version of Setup</em> during the installation wizard.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="796" height="624" src="https://cyberillo.com/wp-content/uploads/Use-Previous-Version-of-Setup-in-Windows-11-Installation.png" alt="" class="wp-image-3595" style="width:435px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Use-Previous-Version-of-Setup-in-Windows-11-Installation.png 796w, https://cyberillo.com/wp-content/uploads/Use-Previous-Version-of-Setup-in-Windows-11-Installation-300x235.png 300w, https://cyberillo.com/wp-content/uploads/Use-Previous-Version-of-Setup-in-Windows-11-Installation-768x602.png 768w" sizes="auto, (max-width: 796px) 100vw, 796px" /></figure>
</div>


<p>That&#8217;s it! I hope you found this guide helpful. Feel free to <a href="https://cyberillo.com/contact/" data-type="page" data-id="2192">reach out</a> if you need any help setting up your custom Windows image. I&#8217;m always happy to help!</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-create-a-windows-image-for-deployment/">How to Create a Windows Image for Deployment</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/how-to-create-a-windows-image-for-deployment/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Create a Phishing Campaign in the Microsoft Security Center</title>
		<link>https://cyberillo.com/how-to-create-a-phishing-campaign/</link>
					<comments>https://cyberillo.com/how-to-create-a-phishing-campaign/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Sun, 08 Dec 2024 06:18:05 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://cyberillo.com/?p=3424</guid>

					<description><![CDATA[<p>Learn how to boost employee awareness and create easy phishing campaigns with Microsoft's attack simulation training.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-create-a-phishing-campaign/">How to Create a Phishing Campaign in the Microsoft Security Center</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Phishing is still one of the easiest ways for attackers to worm their way into a company’s systems. No matter how many security tools you throw at the problem, it only takes one person clicking the wrong link for things to go south. That’s why training people to spot and deal with phishing is so important.</p>



<p>Microsoft’s <a href="https://security.microsoft.com/attacksimulator" target="_blank" rel="noopener">attack simulation training</a> module in the Security Center makes it simple to run realistic phishing tests that don’t just show you who’s at risk but help them get better. This guide breaks down how to set up a phishing campaign step by step, so you can start building a team that’s sharp and ready for whatever’s lurking in their inbox.</p>



<ol class="wp-block-list">
<li>Go to <a href="https://security.microsoft.com" target="_blank" rel="noopener">https://security.microsoft.com</a>.</li>



<li>Navigate to<strong> Email &amp; Collaboration > Attack Simulation training > Simulations</strong>. Here you can find a list of previously created campaigns. To create a new phishing campaign, click on <strong>Launch a simulation</strong>.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="671" src="https://cyberillo.com/wp-content/uploads/Launch-a-Simulation-in-the-Microsoft-Security-Center-1024x671.png" alt="Launch a Simulation in the Microsoft Security Center" class="wp-image-3425" srcset="https://cyberillo.com/wp-content/uploads/Launch-a-Simulation-in-the-Microsoft-Security-Center-1024x671.png 1024w, https://cyberillo.com/wp-content/uploads/Launch-a-Simulation-in-the-Microsoft-Security-Center-300x196.png 300w, https://cyberillo.com/wp-content/uploads/Launch-a-Simulation-in-the-Microsoft-Security-Center-768x503.png 768w, https://cyberillo.com/wp-content/uploads/Launch-a-Simulation-in-the-Microsoft-Security-Center.png 1327w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="3" class="wp-block-list">
<li>The attack simulation training module offers various social engineering techniques to choose from, like <em>Credential Harvest, Malware Attachment, Link in Attachment, Link to Malware, Drive-by URL, and Oauth Consent Grant</em>. Choose the preferred technique for your phishing campaign and select <strong>Next</strong>.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="485" src="https://cyberillo.com/wp-content/uploads/Select-social-engineering-technique-in-Microsoft-Security-Center-1024x485.png" alt="Select social engineering technique in Microsoft Security Center" class="wp-image-3428" srcset="https://cyberillo.com/wp-content/uploads/Select-social-engineering-technique-in-Microsoft-Security-Center-1024x485.png 1024w, https://cyberillo.com/wp-content/uploads/Select-social-engineering-technique-in-Microsoft-Security-Center-300x142.png 300w, https://cyberillo.com/wp-content/uploads/Select-social-engineering-technique-in-Microsoft-Security-Center-768x364.png 768w, https://cyberillo.com/wp-content/uploads/Select-social-engineering-technique-in-Microsoft-Security-Center-1536x728.png 1536w, https://cyberillo.com/wp-content/uploads/Select-social-engineering-technique-in-Microsoft-Security-Center.png 1603w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="4" class="wp-block-list">
<li>Give a friendly name to your campaign, and optionally write a description.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="970" height="635" src="https://cyberillo.com/wp-content/uploads/Name-the-phishing-campaign.png" alt="Name the phishing campaign" class="wp-image-3429" srcset="https://cyberillo.com/wp-content/uploads/Name-the-phishing-campaign.png 970w, https://cyberillo.com/wp-content/uploads/Name-the-phishing-campaign-300x196.png 300w, https://cyberillo.com/wp-content/uploads/Name-the-phishing-campaign-768x503.png 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /></figure>



<ol start="5" class="wp-block-list">
<li>The next step is to determine the payload that you want to deliver. As with any other phishing campaign software the attack simulator allows you to create custom payloads with personalised email text and attachments. You can do this by clicking on <strong>Tenant payloads > Create a payload</strong>. Alternatively, you may select one of the ready-made payloads designed by Microsoft from the <strong>Global payloads</strong> tab.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1134" height="664" src="https://cyberillo.com/wp-content/uploads/Select-payload-for-the-phishing-campaign.png" alt="" class="wp-image-3431" srcset="https://cyberillo.com/wp-content/uploads/Select-payload-for-the-phishing-campaign.png 1134w, https://cyberillo.com/wp-content/uploads/Select-payload-for-the-phishing-campaign-300x176.png 300w, https://cyberillo.com/wp-content/uploads/Select-payload-for-the-phishing-campaign-1024x600.png 1024w, https://cyberillo.com/wp-content/uploads/Select-payload-for-the-phishing-campaign-768x450.png 768w" sizes="auto, (max-width: 1134px) 100vw, 1134px" /></figure>



<div style="border-radius: 15px; background-color: #A1D6B2; color: #000;padding: 15px; margin-bottom: 30px">
<p>If you&#8217;re familiar with the culture and employee tendencies in your organisation, you&#8217;re probably better off creating a custom payload to which they&#8217;re more likely to fall victim.</p>
</div>



<ol start="6" class="wp-block-list">
<li>Each payload designed by Microsoft comes with a nice little metric &#8211; <strong>Predicted Compromise Rate (%)</strong>. This serves as an indication of the result to expect when using the predesigned payload &amp; login page. To preview the design of the email and login page, click on the title of the payload (not the checkbox).</li>
</ol>


<div class="kb-row-layout-wrap kb-row-layout-id3424_a4cc09-0a alignnone wp-block-kadence-rowlayout"><div class="kt-row-column-wrap kt-has-2-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top">

<div class="wp-block-kadence-column kadence-column3424_7eea1b-09"><div class="kt-inside-inner-col">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="762" height="706" src="https://cyberillo.com/wp-content/uploads/Microsoft-made-payload-for-the-phishing-campaign.png" alt="Microsoft-made payload for the phishing campaign" class="wp-image-3432" srcset="https://cyberillo.com/wp-content/uploads/Microsoft-made-payload-for-the-phishing-campaign.png 762w, https://cyberillo.com/wp-content/uploads/Microsoft-made-payload-for-the-phishing-campaign-300x278.png 300w" sizes="auto, (max-width: 762px) 100vw, 762px" /></figure>
</div></div>



<div class="wp-block-kadence-column kadence-column3424_e83896-6d"><div class="kt-inside-inner-col">
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="879" height="702" src="https://cyberillo.com/wp-content/uploads/Microsoft-made-login-page-for-the-phishing-campaign.png" alt="Microsoft-made login page for the phishing campaign" class="wp-image-3433" srcset="https://cyberillo.com/wp-content/uploads/Microsoft-made-login-page-for-the-phishing-campaign.png 879w, https://cyberillo.com/wp-content/uploads/Microsoft-made-login-page-for-the-phishing-campaign-300x240.png 300w, https://cyberillo.com/wp-content/uploads/Microsoft-made-login-page-for-the-phishing-campaign-768x613.png 768w" sizes="auto, (max-width: 879px) 100vw, 879px" /></figure>
</div></div>

</div></div>


<ol start="7" class="wp-block-list">
<li>If you&#8217;re happy with the payload and login page, move to the next step and select the target users for the campaign. You can restrict the scope to named users or groups, or target the entire organisation. I like to test the campaign on a small group first before a full rollout to the entire organisation.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1006" height="597" src="https://cyberillo.com/wp-content/uploads/Specify-the-scope-of-the-phishing-campaign.png" alt="Specify the scope of the phishing campaign" class="wp-image-3437" srcset="https://cyberillo.com/wp-content/uploads/Specify-the-scope-of-the-phishing-campaign.png 1006w, https://cyberillo.com/wp-content/uploads/Specify-the-scope-of-the-phishing-campaign-300x178.png 300w, https://cyberillo.com/wp-content/uploads/Specify-the-scope-of-the-phishing-campaign-768x456.png 768w" sizes="auto, (max-width: 1006px) 100vw, 1006px" /></figure>



<ol start="8" class="wp-block-list">
<li>Based on your company policy, you may require victims of the campaign to attend a phishing awareness training session. The attack simulator allows you to bake this right into the campaign. You may redirect users to a custom URL to schedule their training session, or opt for the Microsoft training experience. In case of the latter, you may handpick training modules from Microsoft&#8217;s catalog to train your users or let Microsoft automatically assign training courses based on the user&#8217;s previous campaign results and training experiences.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1196" height="707" src="https://cyberillo.com/wp-content/uploads/Microsoft-Training-Exerperience-for-Phishing-Campaigns.png" alt="Microsoft Training Exerperience for Phishing Campaigns" class="wp-image-3438" srcset="https://cyberillo.com/wp-content/uploads/Microsoft-Training-Exerperience-for-Phishing-Campaigns.png 1196w, https://cyberillo.com/wp-content/uploads/Microsoft-Training-Exerperience-for-Phishing-Campaigns-300x177.png 300w, https://cyberillo.com/wp-content/uploads/Microsoft-Training-Exerperience-for-Phishing-Campaigns-1024x605.png 1024w, https://cyberillo.com/wp-content/uploads/Microsoft-Training-Exerperience-for-Phishing-Campaigns-768x454.png 768w" sizes="auto, (max-width: 1196px) 100vw, 1196px" /></figure>



<ol start="9" class="wp-block-list">
<li>With regards to the post-phish landing page experience, some prefer to be more harsh than others. It&#8217;s up to you to determine what works best in your organisation. You may choose a pre-designed landing page from Microsoft&#8217;s catalog or design one yourself. </li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1477" height="706" src="https://cyberillo.com/wp-content/uploads/Microsoft-made-post-phish-landing-page.png" alt="Microsoft-made post-phish landing page" class="wp-image-3439" srcset="https://cyberillo.com/wp-content/uploads/Microsoft-made-post-phish-landing-page.png 1477w, https://cyberillo.com/wp-content/uploads/Microsoft-made-post-phish-landing-page-300x143.png 300w, https://cyberillo.com/wp-content/uploads/Microsoft-made-post-phish-landing-page-1024x489.png 1024w, https://cyberillo.com/wp-content/uploads/Microsoft-made-post-phish-landing-page-768x367.png 768w" sizes="auto, (max-width: 1477px) 100vw, 1477px" /></figure>



<ol start="10" class="wp-block-list">
<li>Next, you can configure whether to send user notifications associated with this campaign.
<ul class="wp-block-list">
<li>Positive reinforcement notification (to thank users who report the phish)</li>



<li>Training reminder notification (if you linked training in the previous steps)</li>
</ul>
</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1607" height="710" src="https://cyberillo.com/wp-content/uploads/Configure-notifications-in-attack-simulation-training.png" alt="Configure notifications in attack simulation training" class="wp-image-3440" srcset="https://cyberillo.com/wp-content/uploads/Configure-notifications-in-attack-simulation-training.png 1607w, https://cyberillo.com/wp-content/uploads/Configure-notifications-in-attack-simulation-training-300x133.png 300w, https://cyberillo.com/wp-content/uploads/Configure-notifications-in-attack-simulation-training-1024x452.png 1024w, https://cyberillo.com/wp-content/uploads/Configure-notifications-in-attack-simulation-training-768x339.png 768w, https://cyberillo.com/wp-content/uploads/Configure-notifications-in-attack-simulation-training-1536x679.png 1536w" sizes="auto, (max-width: 1607px) 100vw, 1607px" /></figure>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1114" height="740" src="https://cyberillo.com/wp-content/uploads/Phish-report-thank-you-message.png" alt="Phish-report thank you message" class="wp-image-3441" srcset="https://cyberillo.com/wp-content/uploads/Phish-report-thank-you-message.png 1114w, https://cyberillo.com/wp-content/uploads/Phish-report-thank-you-message-300x199.png 300w, https://cyberillo.com/wp-content/uploads/Phish-report-thank-you-message-1024x680.png 1024w, https://cyberillo.com/wp-content/uploads/Phish-report-thank-you-message-768x510.png 768w" sizes="auto, (max-width: 1114px) 100vw, 1114px" /></figure>



<ol start="11" class="wp-block-list">
<li>The last thing to configure is the scheduled date for the attack simulation and the length of the campaign. Once you&#8217;re ready, review the details you configured and submit the simulation.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1213" height="721" src="https://cyberillo.com/wp-content/uploads/Configure-launch-details-and-schedule-in-attack-simulation-training.png" alt="Configure launch details and schedule in attack simulation training" class="wp-image-3443" srcset="https://cyberillo.com/wp-content/uploads/Configure-launch-details-and-schedule-in-attack-simulation-training.png 1213w, https://cyberillo.com/wp-content/uploads/Configure-launch-details-and-schedule-in-attack-simulation-training-300x178.png 300w, https://cyberillo.com/wp-content/uploads/Configure-launch-details-and-schedule-in-attack-simulation-training-1024x609.png 1024w, https://cyberillo.com/wp-content/uploads/Configure-launch-details-and-schedule-in-attack-simulation-training-768x456.png 768w" sizes="auto, (max-width: 1213px) 100vw, 1213px" /></figure>



<ol start="12" class="wp-block-list">
<li>From my observations, the reporting on the campaign is real-time and the figures are updated every minute (more or less). At a glance, you can get a quick summary of the outcome, with key metrics such as the number of users who:
<ul class="wp-block-list">
<li>were compromised</li>



<li>reported the message</li>



<li>read the message</li>



<li>opened attachments</li>
</ul>
</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1885" height="756" src="https://cyberillo.com/wp-content/uploads/Summary-report-of-the-phishing-campaign-in-the-Microsoft-Security-Center.png" alt="Summary report of the phishing campaign in the Microsoft Security Center" class="wp-image-3445" srcset="https://cyberillo.com/wp-content/uploads/Summary-report-of-the-phishing-campaign-in-the-Microsoft-Security-Center.png 1885w, https://cyberillo.com/wp-content/uploads/Summary-report-of-the-phishing-campaign-in-the-Microsoft-Security-Center-300x120.png 300w, https://cyberillo.com/wp-content/uploads/Summary-report-of-the-phishing-campaign-in-the-Microsoft-Security-Center-1024x411.png 1024w, https://cyberillo.com/wp-content/uploads/Summary-report-of-the-phishing-campaign-in-the-Microsoft-Security-Center-768x308.png 768w, https://cyberillo.com/wp-content/uploads/Summary-report-of-the-phishing-campaign-in-the-Microsoft-Security-Center-1536x616.png 1536w" sizes="auto, (max-width: 1885px) 100vw, 1885px" /></figure>



<p>You also get a tabular view listing all users targeted by the campaign together with some key information such as:</p>



<ul class="wp-block-list">
<li>the actions they took</li>



<li>whether they reported</li>



<li>whether they were compromised</li>



<li>whether they attended the scheduled training</li>
</ul>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="1611" height="624" src="https://cyberillo.com/wp-content/uploads/Tabular-view-of-user-actions-in-the-phishing-campaign.png" alt="Tabular view of user actions in the phishing campaign" class="wp-image-3446" srcset="https://cyberillo.com/wp-content/uploads/Tabular-view-of-user-actions-in-the-phishing-campaign.png 1611w, https://cyberillo.com/wp-content/uploads/Tabular-view-of-user-actions-in-the-phishing-campaign-300x116.png 300w, https://cyberillo.com/wp-content/uploads/Tabular-view-of-user-actions-in-the-phishing-campaign-1024x397.png 1024w, https://cyberillo.com/wp-content/uploads/Tabular-view-of-user-actions-in-the-phishing-campaign-768x297.png 768w, https://cyberillo.com/wp-content/uploads/Tabular-view-of-user-actions-in-the-phishing-campaign-1536x595.png 1536w" sizes="auto, (max-width: 1611px) 100vw, 1611px" /></figure>



<p>Running phishing simulations isn’t just about catching people out—it’s about giving them the tools to improve. With the attack simulation training in Microsoft Security Center, you can run smart, effective tests that actually make a difference. The goal is to raise awareness, build confidence, and reduce the chances of a mistake turning into a disaster. Keep running these simulations, keep learning from them, and you’ll be well on your way to a team that’s not just prepared but proactive when it comes to phishing threats.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-create-a-phishing-campaign/">How to Create a Phishing Campaign in the Microsoft Security Center</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/how-to-create-a-phishing-campaign/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Active Directory Password Quality Report in Power BI</title>
		<link>https://cyberillo.com/active-directory-password-quality-report-in-power-bi/</link>
					<comments>https://cyberillo.com/active-directory-password-quality-report-in-power-bi/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Mon, 14 Oct 2024 05:01:47 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://cyberillo.com/?p=3386</guid>

					<description><![CDATA[<p>Learn how to detect weak passwords and visualize risks in your Active Directory with this neat PowerShell and Power BI combo.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/active-directory-password-quality-report-in-power-bi/">Active Directory Password Quality Report in Power BI</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Weak passwords, duplicate passwords, unknown admin accounts, the list goes on&#8230; These all present a serious threat to your company&#8217;s Active Directory security.</p>



<p>In this post, I&#8217;ll show you how to use the <a href="https://github.com/MichaelGrafnetter/DSInternals/" target="_blank" rel="noopener">DSInternals PowerShell module</a> to test Active Directory password quality and identify flaws in your AD security posture. Then, we&#8217;ll create a Power BI report to get a quick glance at the number of password quality issues, together with a list of users affected by each issue.</p>





<h2 class="wp-block-heading" id="complete-power-shell-script">Complete PowerShell Script</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">## Active Directory Password Quality Data Export ##
#░█████╗░██╗░░░██╗██████╗░███████╗██████╗░██╗██╗░░░░░██╗░░░░░░█████╗░
#██╔══██╗╚██╗░██╔╝██╔══██╗██╔════╝██╔══██╗██║██║░░░░░██║░░░░░██╔══██╗
#██║░░╚═╝░╚████╔╝░██████╦╝█████╗░░██████╔╝██║██║░░░░░██║░░░░░██║░░██║
#██║░░██╗░░╚██╔╝░░██╔══██╗██╔══╝░░██╔══██╗██║██║░░░░░██║░░░░░██║░░██║
#╚█████╔╝░░░██║░░░██████╦╝███████╗██║░░██║██║███████╗███████╗╚█████╔╝
#░╚════╝░░░░╚═╝░░░╚═════╝░╚══════╝╚═╝░░╚═╝╚═╝╚══════╝╚══════╝░╚════╝░

# Define Variables
$dictionary = ".\Dictionary.txt"
$domain = "dc=contoso,dc=com"
$dc = "10.10.10.1"

# Retrieve AD Accounts and Test Password Quality
$data = Get-ADReplAccount -All -Server $dc -NamingContext $domain |
        Test-PasswordQuality -WeakPasswordsFile $dictionary -IncludeDisabledAccounts

# Define the Password Quality Criteria
$qualityCriteria = @(
    "ClearTextPassword",
    "LMHash",
    "EmptyPassword",
    "WeakPassword",
    "SamAccountNameAsPassword",
    "DefaultComputerPassword",
    "PasswordNotRequired",
    "PasswordNeverExpires",
    "AESKeysMissing",
    "PreAuthNotRequired",
    "DESEncryptionOnly",
    "Kerberoastable",
    "DelegatableAdmins",
    "SmartCardUsersWithPassword",
    "DuplicatePasswordGroups"
)

# Initialize an array to store expanded data
$expandedData = @([pscustomobject]@{
                    "ClearTextPassword" = ""
                    "LMHash" = ""
                    "EmptyPassword" = ""
                    "WeakPassword" = ""
                    "SamAccountNameAsPassword" = ""
                    "DefaultComputerPassword" = ""
                    "PasswordNotRequired" = ""
                    "PasswordNeverExpires" = ""
                    "AESKeysMissing" = ""
                    "PreAuthNotRequired" = ""
                    "DESEncryptionOnly" = ""
                    "Kerberoastable" = ""
                    "DelegatableAdmins" = ""
                    "SmartCardUsersWithPassword" = ""
                    "DuplicatePasswordGroups" = ""
                })

# Iterate through each account and expand the criteria into separate rows
foreach ($account in $data) {
    foreach ($criterion in $qualityCriteria) {
        # Check if the criterion contains values
        if ($account.PSObject.Properties[$criterion].Value -and $account.$criterion.Count -gt 0) {
            # Expand each item in the collection into a new row
            foreach ($user in $account.$criterion) {
                $expandedData += [pscustomobject]@{
                    "$Criterion"   = $user
                }
            }
        }
    }
}

# Export all expanded data into a single CSV
$expandedData | Export-Csv -Path "PasswordQuality.csv" -NoTypeInformation

Write-Host "Exported expanded data to PasswordQuality.csv with $($expandedData.Count) records."
</pre>



<h2 class="wp-block-heading" id="script-breakdown">Script Breakdown</h2>



<p>We’ll start with the PowerShell script that gathers all the information we need from Active Directory.</p>



<p>Here&#8217;s what it does:</p>



<ol class="wp-block-list">
<li><strong>Pulls AD account information</strong>&nbsp;from your domain controller (DC).</li>



<li><strong>Checks password quality</strong>&nbsp;based on various criteria, like whether the password is weak, missing, or stored improperly.</li>



<li><strong>Expands the data</strong>&nbsp;into a more readable format.</li>



<li><strong>Exports the results</strong>&nbsp;to a CSV file for analysis.</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading" id="1-setting-up-your-variables">1. Setting Up Your Variables</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Define Variables
$dictionary = ".\Dictionary.txt"
$domain = "dc=contoso,dc=com"
$dc = "10.10.10.1"
</pre>



<p>You need to define a few things at the start: where the script can find a list of weak passwords (<code>Dictionary.txt</code>), your domain name, and the IP address of your domain controller. Change these to match your environment.</p>



<p>You can customize the dictionary as needed, but a good starting point can be found <a href="https://github.com/danielmiessler/SecLists/tree/master/Passwords" target="_blank" rel="noopener">here</a>.</p>



<h3 class="wp-block-heading" id="2-getting-ad-accounts-and-testing-password-quality">2. Getting AD Accounts and Testing Password Quality</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$data = Get-ADReplAccount -All -Server $dc -NamingContext $domain |
        Test-PasswordQuality -WeakPasswordsFile $dictionary -IncludeDisabledAccounts
</pre>



<p>This section uses the <code>Get-ADReplAccount</code> and <code>Test-PasswordQuality</code> cmdlets from the <strong>DSInternals </strong>PowerShell module.</p>



<p>It retrieves all the accounts in your domain and checks their password quality. We’re looking for things like weak passwords, missing encryption, or even accounts that use their username as a password (yikes!). This script can also include disabled accounts—because even they can be a security risk if left unchecked.</p>



<h3 class="wp-block-heading" id="3-defining-password-quality-criteria">3. Defining Password Quality Criteria</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$qualityCriteria = @(
    "ClearTextPassword", "LMHash", "EmptyPassword", "WeakPassword", 
    "SamAccountNameAsPassword", "DefaultComputerPassword", "PasswordNotRequired", 
    "PasswordNeverExpires", "AESKeysMissing", "PreAuthNotRequired", 
    "DESEncryptionOnly", "Kerberoastable", "DelegatableAdmins", 
    "SmartCardUsersWithPassword", "DuplicatePasswordGroups"
)
</pre>



<p>This part sets the criteria we care about—whether the password is empty, weak, or stored as an old LMHash, just to name a few. These are the key things that pose risks, and the <code>Test-PasswordQuality</code> cmdlet checks for all of them.</p>



<h3 class="wp-block-heading" id="4-storing-and-expanding-the-data">4. Storing and Expanding the Data</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$expandedData = @()
foreach ($account in $data) {
    foreach ($criterion in $qualityCriteria) {
        if ($account.PSObject.Properties[$criterion].Value -and $account.$criterion.Count -gt 0) {
            foreach ($user in $account.$criterion) {
                $expandedData += [pscustomobject]@{ "$criterion" = $user }
            }
        }
    }
}
</pre>



<p>This portion of the script is all about organizing the data in a way that&#8217;s easy to analyze and visualize later on, especially when we move the data into Power BI. Let’s break it down step-by-step:</p>



<h4 class="wp-block-heading" id="a-initializing-the-expanded-data-array"><strong>A) Initializing the Expanded Data Array</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$expandedData = @()
</pre>



<ul class="wp-block-list">
<li><strong>Purpose:</strong>&nbsp;Here, we’re creating an empty array called&nbsp;<code>$expandedData</code>. This array will store each password quality issue we find, structured in a consistent format.</li>



<li><strong>Why It Matters:</strong>&nbsp;By initializing an empty array, we ensure that we have a clean slate to start adding our processed data. This helps in avoiding any unintended data carryover from previous runs or other parts of the script.</li>
</ul>



<h4 class="wp-block-heading" id="b-looping-through-each-ad-account"><strong>B) Looping Through Each AD Account</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">foreach ($account in $data) {
    ...
}
</pre>



<ul class="wp-block-list">
<li><strong>Purpose:</strong>&nbsp;This outer loop goes through each account retrieved earlier by the&nbsp;<code>Get-ADReplAccount</code>&nbsp;cmdlet.</li>



<li><strong>Why It Matters:</strong>&nbsp;We need to evaluate each account individually to check for any password-related issues. This ensures that no account is overlooked in our analysis.</li>
</ul>



<h4 class="wp-block-heading" id="c-checking-each-password-quality-criterion"><strong>C) Checking Each Password Quality Criterion</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">foreach ($criterion in $qualityCriteria) {
    ...
}
</pre>



<ul class="wp-block-list">
<li><strong>Purpose:</strong>&nbsp;For every account, we loop through each password quality criterion defined in the&nbsp;<code>$qualityCriteria</code>&nbsp;array.</li>



<li><strong>Why It Matters:</strong>&nbsp;Each criterion represents a specific type of password issue (e.g., weak password, empty password). By iterating through each one, we can systematically check for all possible vulnerabilities associated with the account.</li>
</ul>



<h4 class="wp-block-heading" id="d-confirm-existence-of-password-quality-issues"><strong>D) Confirm Existence of Password Quality Issues</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">if ($account.PSObject.Properties[$criterion].Value -and $account.$criterion.Count -gt 0) {
    ...
}
</pre>



<ul class="wp-block-list">
<li><strong>Purpose:</strong>&nbsp;This&nbsp;<code>if</code>&nbsp;statement checks two things:
<ol class="wp-block-list">
<li><strong><code>$account.PSObject.Properties[$criterion].Value</code>:</strong>&nbsp;Ensures that the current criterion has a value, meaning that there is at least one instance of this issue for the account.</li>



<li><strong><code>$account.$criterion.Count -gt 0</code>:</strong>&nbsp;Confirms that the number of issues under this criterion is greater than zero.</li>
</ol>
</li>



<li><strong>Why It Matters:</strong>&nbsp;We only want to record criteria that are actually present. This prevents our final data set from being cluttered with empty or irrelevant entries, making our analysis cleaner and more focused on real issues.</li>
</ul>



<h4 class="wp-block-heading" id="e-expanding-each-issue-into-a-new-row"><strong>E) Expanding Each Issue into a New Row</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">foreach ($user in $account.$criterion) {
    $expandedData += [pscustomobject]@{ "$criterion" = $user }
}
</pre>



<ul class="wp-block-list">
<li><strong>Purpose:</strong>&nbsp;For each issue found under the current criterion, we create a new custom PowerShell object and add it to the&nbsp;<code>$expandedData</code>&nbsp;array.
<ul class="wp-block-list">
<li><strong><code>[pscustomobject]@{ "$criterion" = $user }</code>:</strong>&nbsp;This creates a new object with a property named after the current criterion and assigns it the value of the specific issue (<code>$user</code>).</li>



<li><strong><code>$expandedData += ...</code>:</strong>&nbsp;This appends the newly created object to the&nbsp;<code>$expandedData</code>&nbsp;array.</li>
</ul>
</li>



<li><strong>Why It Matters:</strong>&nbsp;By expanding each issue into its own row, we transform our data into a flat, tabular format that&#8217;s ideal for analysis and visualization. This structure is especially useful when importing the data into Power BI, as it allows for easy creation of filters, charts, and other visuals based on specific criteria.</li>
</ul>



<h4 class="wp-block-heading" id="f-putting-it-all-together"><strong>F) Putting It All Together</strong></h4>



<p>Let’s visualize what’s happening with an example:</p>



<ul class="wp-block-list">
<li><strong>Suppose we have an AD account,&nbsp;<code>jdoe</code>, with the following password issues:</strong>
<ul class="wp-block-list">
<li><strong>WeakPassword:</strong>&nbsp;<code>password123</code></li>



<li><strong>PasswordNeverExpires:</strong>&nbsp;Enabled</li>
</ul>
</li>



<li><strong>Processing Steps:</strong>
<ol class="wp-block-list">
<li><strong>First Loop (<code>$account</code>):</strong>&nbsp;Processes the&nbsp;<code>jdoe</code>&nbsp;account.</li>



<li><strong>Second Loop (<code>$criterion</code>):</strong>&nbsp;Checks each criterion for&nbsp;<code>jdoe</code>.
<ul class="wp-block-list">
<li><strong><code>WeakPassword</code>:</strong>
<ul class="wp-block-list">
<li><strong>Condition Check:</strong>&nbsp;<code>True</code>&nbsp;(since&nbsp;<code>password123</code>&nbsp;is listed in the dictionary)</li>



<li><strong>Inner Loop:</strong>&nbsp;Adds a new object&nbsp;<code>{ "WeakPassword" = "jdoe" }</code>&nbsp;to&nbsp;<code>$expandedData</code>.</li>
</ul>
</li>



<li><strong><code>PasswordNeverExpires</code>:</strong>
<ul class="wp-block-list">
<li><strong>Condition Check:</strong>&nbsp;<code>True</code>&nbsp;(since it&#8217;s enabled)</li>



<li><strong>Inner Loop:</strong>&nbsp;Adds another object&nbsp;<code>{ "PasswordNeverExpires" = "jdoe" }</code>&nbsp;to&nbsp;<code>$expandedData</code>.</li>
</ul>
</li>



<li><strong>Other Criteria:</strong>&nbsp;If&nbsp;<code>jdoe</code>&nbsp;doesn&#8217;t have issues like&nbsp;<code>EmptyPassword</code>&nbsp;or&nbsp;<code>LMHash</code>, those criteria are skipped and no new rows are created.</li>
</ul>
</li>
</ol>
</li>
</ul>



<p>This flattened structure makes it straightforward to create visuals in Power BI, such as:</p>



<ul class="wp-block-list">
<li><strong>Bar Charts:</strong>&nbsp;Showing the number of accounts with each type of password issue.</li>



<li><strong>Tables:</strong>&nbsp;Listing all accounts alongside their specific vulnerabilities.</li>



<li><strong>Pie Charts:</strong>&nbsp;Representing the proportion of each issue relative to the total number of issues.</li>
</ul>



<h4 class="wp-block-heading" id="g-why-use-this-approach"><strong>G) Why Use This Approach?</strong></h4>



<ul class="wp-block-list">
<li><strong>Simplicity:</strong>&nbsp;By expanding each issue into its own row, the data becomes easier to work with, especially when dealing with multiple criteria across numerous accounts.</li>



<li><strong>Flexibility:</strong>&nbsp;This format allows you to filter, sort, and visualize the data with little extra data manipulation.</li>



<li><strong>Scalability:</strong>&nbsp;As your organization grows and the number of AD accounts increases, this method remains efficient and manageable.</li>
</ul>



<h3 class="wp-block-heading" id="5-exporting-to-csv">5. Exporting to CSV</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$expandedData | Export-Csv -Path "PasswordQuality.csv" -NoTypeInformation
Write-Host "Exported expanded data to PasswordQuality.csv with $($expandedData.Count) records."
</pre>



<p>Finally, all the findings get exported to a CSV file, which we’ll use as a data source to create our Power BI report. The CSV will contain the password quality issues as columns, and one user per row (under the appropriate column). One user can have multiple rows in the CSV if his account has more than one password quality issue.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="create-a-power-bi-report">Create a Power BI Report</h2>



<p>Now that we have the data in&nbsp;<code>PasswordQuality.csv</code>, it’s time to visualize it in Power BI. This will help you spot trends and focus on the biggest security risks.</p>



<h4 class="wp-block-heading" id="steps">Steps:</h4>



<ol class="wp-block-list">
<li><strong>Open Power BI</strong> and go to&nbsp;<strong>Home</strong>&nbsp;-&gt;&nbsp;<strong>Get Data</strong>&nbsp;-&gt;&nbsp;<strong>Text/CSV</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="778" height="564" src="https://cyberillo.com/wp-content/uploads/Load-data-from-CSV-in-Power-BI.png" alt="Load data from CSV in Power BI" class="wp-image-3399" style="width:481px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Load-data-from-CSV-in-Power-BI.png 778w, https://cyberillo.com/wp-content/uploads/Load-data-from-CSV-in-Power-BI-300x217.png 300w, https://cyberillo.com/wp-content/uploads/Load-data-from-CSV-in-Power-BI-768x557.png 768w" sizes="auto, (max-width: 778px) 100vw, 778px" /></figure>
</div>


<ol start="2" class="wp-block-list">
<li>Browse to your exported&nbsp;<code>PasswordQuality.csv</code>&nbsp;and click&nbsp;<strong>Transform Data</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="768" src="https://cyberillo.com/wp-content/uploads/Transform-CSV-Data-in-Power-BI-1024x768.png" alt="Transform CSV Data in Power BI" class="wp-image-3401" style="width:556px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Transform-CSV-Data-in-Power-BI-1024x768.png 1024w, https://cyberillo.com/wp-content/uploads/Transform-CSV-Data-in-Power-BI-300x225.png 300w, https://cyberillo.com/wp-content/uploads/Transform-CSV-Data-in-Power-BI-768x576.png 768w, https://cyberillo.com/wp-content/uploads/Transform-CSV-Data-in-Power-BI.png 1089w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ol start="3" class="wp-block-list">
<li>In the Power Query editor, click on <strong>Use First Row as Headers</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="572" height="222" src="https://cyberillo.com/wp-content/uploads/Click-on-Use-First-Row-as-Headers-in-Power-BI.png" alt="Click on Use First Row as Headers in Power BI" class="wp-image-3403" srcset="https://cyberillo.com/wp-content/uploads/Click-on-Use-First-Row-as-Headers-in-Power-BI.png 572w, https://cyberillo.com/wp-content/uploads/Click-on-Use-First-Row-as-Headers-in-Power-BI-300x116.png 300w" sizes="auto, (max-width: 572px) 100vw, 572px" /></figure>
</div>


<ol start="4" class="wp-block-list">
<li>Then, click on <strong>Replace Values</strong>. </li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="576" height="323" src="https://cyberillo.com/wp-content/uploads/Click-on-Replace-Values-in-Power-BI.png" alt="Click on Replace Values in Power BI" class="wp-image-3404" srcset="https://cyberillo.com/wp-content/uploads/Click-on-Replace-Values-in-Power-BI.png 576w, https://cyberillo.com/wp-content/uploads/Click-on-Replace-Values-in-Power-BI-300x168.png 300w, https://cyberillo.com/wp-content/uploads/Click-on-Replace-Values-in-Power-BI-390x220.png 390w" sizes="auto, (max-width: 576px) 100vw, 576px" /></figure>
</div>


<ol start="5" class="wp-block-list">
<li>Leave <strong>Value to find</strong> blank and enter <code>null</code> in the <strong>Replace With</strong> field. Then, click on <strong>OK</strong>. This will take care of the blank values in our data.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="894" height="406" src="https://cyberillo.com/wp-content/uploads/Replace-blanks-with-null-in-Power-BI.png" alt="Replace blanks with null in Power BI" class="wp-image-3405" style="width:573px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Replace-blanks-with-null-in-Power-BI.png 894w, https://cyberillo.com/wp-content/uploads/Replace-blanks-with-null-in-Power-BI-300x136.png 300w, https://cyberillo.com/wp-content/uploads/Replace-blanks-with-null-in-Power-BI-768x349.png 768w" sizes="auto, (max-width: 894px) 100vw, 894px" /></figure>
</div>


<ol start="6" class="wp-block-list">
<li>Save the Power Query changes by clicking on <strong>Close &amp; Apply</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="615" src="https://cyberillo.com/wp-content/uploads/Save-Power-Query-Changes-in-Power-BI-1024x615.png" alt="Save Power Query Changes in Power BI" class="wp-image-3406" style="width:567px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Save-Power-Query-Changes-in-Power-BI-1024x615.png 1024w, https://cyberillo.com/wp-content/uploads/Save-Power-Query-Changes-in-Power-BI-300x180.png 300w, https://cyberillo.com/wp-content/uploads/Save-Power-Query-Changes-in-Power-BI-768x462.png 768w, https://cyberillo.com/wp-content/uploads/Save-Power-Query-Changes-in-Power-BI.png 1085w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ol start="7" class="wp-block-list">
<li>This next step is crucial. We will use our data to create a new table with two columns, <strong>User</strong> and <strong>Issue</strong>. This will make it easier to visualize and filter the data. Go to <strong>Modeling </strong>-&gt; <strong>New table</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="530" height="266" src="https://cyberillo.com/wp-content/uploads/Create-new-table-in-Power-BI-e1728844012348.png" alt="Create new table in Power BI" class="wp-image-3407" srcset="https://cyberillo.com/wp-content/uploads/Create-new-table-in-Power-BI-e1728844012348.png 530w, https://cyberillo.com/wp-content/uploads/Create-new-table-in-Power-BI-e1728844012348-300x151.png 300w" sizes="auto, (max-width: 530px) 100vw, 530px" /></figure>
</div>


<ol start="8" class="wp-block-list">
<li>In the DAX query, type the following code:</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Issues = 
VAR _AESKeysMissing =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[AESKeysMissing],
        "Issue", "AESKeysMissing"
    )
VAR _ClearTextPassword =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[ClearTextPassword],
        "Issue", "ClearTextPassword"
    )
VAR _DESEncryptionOnly =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[DESEncryptionOnly],
        "Issue", "DESEncryptionOnly"
    )
VAR _DefaultComputerPassword =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[DefaultComputerPassword],
        "Issue", "DefaultComputerPassword"
    )
VAR _DelegatableAdmins =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[DelegatableAdmins],
        "Issue", "DelegatableAdmins"
    )
VAR _DuplicatePasswordGroups =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[DuplicatePasswordGroups],
        "Issue", "DuplicatePasswordGroups"
    )
VAR _EmptyPassword =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[EmptyPassword],
        "Issue", "EmptyPassword"
    )
VAR _Kerberoastable =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[Kerberoastable],
        "Issue", "Kerberoastable"
    )
VAR _LMHash =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[LMHash],
        "Issue", "LMHash"
    )
VAR _PasswordNeverExpires =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[PasswordNeverExpires],
        "Issue", "PasswordNeverExpires"
    )
VAR _PasswordNotRequired =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[PasswordNotRequired],
        "Issue", "PasswordNotRequired"
    )
VAR _PreAuthNotRequired =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[PreAuthNotRequired],
        "Issue", "PreAuthNotRequired"
    )
VAR _SamAccountNameAsPassword =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[SamAccountNameAsPassword],
        "Issue", "SamAccountNameAsPassword"
    )
VAR _SmartCardUsersWithPassword =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[SmartCardUsersWithPassword],
        "Issue", "SmartCardUsersWithPassword"
    )
VAR _WeakPassword =
    SELECTCOLUMNS (
        PasswordQuality,
        "User", PasswordQuality[WeakPassword],
        "Issue", "WeakPassword"
    )

RETURN
    DISTINCT (
        UNION (
            _AESKeysMissing,
            _ClearTextPassword,
            _DESEncryptionOnly,
            _DefaultComputerPassword,
            _DelegatableAdmins,
            _DuplicatePasswordGroups,
            _EmptyPassword,
            _Kerberoastable,
            _LMHash,
            _PasswordNeverExpires,
            _PasswordNotRequired,
            _PreAuthNotRequired,
            _SamAccountNameAsPassword,
            _SmartCardUsersWithPassword,
            _WeakPassword
        )
    )</pre>



<ol start="9" class="wp-block-list">
<li>Now, you can visualize the data as needed. A report which I find convenient is a donut chart with the <strong>Issue </strong>column as the legend, and the count of the <strong>User </strong>column as the values. This shows the most common password quality issues in the domain. The list of users affected by each issue can be filtered by clicking on the different donut slices.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="575" src="https://cyberillo.com/wp-content/uploads/Number-of-Users-Affected-by-Each-Issue-Power-BI-Report-1024x575.png" alt="Number of Users Affected by Each Issue Power BI Report" class="wp-image-3402" style="width:635px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/Number-of-Users-Affected-by-Each-Issue-Power-BI-Report-1024x575.png 1024w, https://cyberillo.com/wp-content/uploads/Number-of-Users-Affected-by-Each-Issue-Power-BI-Report-300x169.png 300w, https://cyberillo.com/wp-content/uploads/Number-of-Users-Affected-by-Each-Issue-Power-BI-Report-768x432.png 768w, https://cyberillo.com/wp-content/uploads/Number-of-Users-Affected-by-Each-Issue-Power-BI-Report-390x220.png 390w, https://cyberillo.com/wp-content/uploads/Number-of-Users-Affected-by-Each-Issue-Power-BI-Report.png 1274w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="wrapping-up">Wrapping Up</h2>



<p>And that’s it! You’ve now used a PowerShell script to gather AD password quality data and created a Power BI report to visualize it. This is a powerful way to stay on top of password security, spot potential vulnerabilities, and make sure your organization’s accounts are protected.</p>



<p>Remember, scheduling the script at regular intervals (and refreshing the report data) can help you stay ahead of any security risks related to weak passwords. And with Power BI, you can easily share the findings and keep the rest of your team in the loop.</p>



<p>Let me know if you have any questions or if you&#8217;d like to see more advanced Power BI visuals. Stay secure!</p>



<p></p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/active-directory-password-quality-report-in-power-bi/">Active Directory Password Quality Report in Power BI</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/active-directory-password-quality-report-in-power-bi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Bulk Add Devices to Azure AD Group Using PowerShell</title>
		<link>https://cyberillo.com/how-to-add-devices-to-azure-ad-group-using-powershell/</link>
					<comments>https://cyberillo.com/how-to-add-devices-to-azure-ad-group-using-powershell/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Thu, 05 Sep 2024 14:22:00 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<guid isPermaLink="false">https://cyberillo.com/?p=3166</guid>

					<description><![CDATA[<p>Learn how to easily add devices to Azure AD security groups in bulk using this step-by-step PowerShell script.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-add-devices-to-azure-ad-group-using-powershell/">How to Bulk Add Devices to Azure AD Group Using PowerShell</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In this post, I&#8217;ll break down a PowerShell script that simplifies adding devices to a specific Azure AD security group by reading from a CSV file. This is particularly useful when onboarding new devices in bulk or organizing devices into groups based on department, location, or security requirements.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>





<h2 class="wp-block-heading">Complete Script</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">## How to Bulk Add Devices to Azure AD Group Using PowerShell ##
#░█████╗░██╗░░░██╗██████╗░███████╗██████╗░██╗██╗░░░░░██╗░░░░░░█████╗░
#██╔══██╗╚██╗░██╔╝██╔══██╗██╔════╝██╔══██╗██║██║░░░░░██║░░░░░██╔══██╗
#██║░░╚═╝░╚████╔╝░██████╦╝█████╗░░██████╔╝██║██║░░░░░██║░░░░░██║░░██║
#██║░░██╗░░╚██╔╝░░██╔══██╗██╔══╝░░██╔══██╗██║██║░░░░░██║░░░░░██║░░██║
#╚█████╔╝░░░██║░░░██████╦╝███████╗██║░░██║██║███████╗███████╗╚█████╔╝
#░╚════╝░░░░╚═╝░░░╚═════╝░╚══════╝╚═╝░░╚═╝╚═╝╚══════╝╚══════╝░╚════╝░

# Import the AzureAD module
Import-Module AzureAD

# Login to Azure AD
Connect-AzureAD

# Path to your CSV file
$csvFilePath = "C:\path\to\your\devices.csv"

# Security Group Name
$securityGroupName = "Your-Security-Group-Name"

# Get the Security Group Object ID from the group name
$securityGroup = Get-AzureADGroup -SearchString $securityGroupName
if ($securityGroup -eq $null) {
    Write-Host "Security group not found: $securityGroupName"
    exit
}

$securityGroupId = $securityGroup.ObjectId

# Import the CSV file
$devices = Import-Csv -Path $csvFilePath

# Loop through each device in the CSV
foreach ($device in $devices) {
    $deviceName = $device.DeviceName

    # Get the Device Object ID from the device name
    $deviceObject = Get-AzureADDevice -SearchString $deviceName
    if ($deviceObject -eq $null) {
        Write-Host "Device not found: $deviceName"
        continue
    }

    $deviceId = $deviceObject.ObjectId

    try {
        # Add the device to the security group
        Add-AzureADGroupMember -ObjectId $securityGroupId -RefObjectId $deviceId
        Write-Host "Successfully added Device: $deviceName to the group."
    } catch {
        Write-Host "Failed to add Device: $deviceName. Error: $_"
    }
}

# Disconnect from Azure AD
Disconnect-AzureAD
</pre>



<h2 class="wp-block-heading">Overview of the Script</h2>



<p>So, what does the script do?</p>



<ol class="wp-block-list">
<li>Import devices from a CSV file.</li>



<li>Search for these devices in Azure AD.</li>



<li>Add the devices to a specified security group.</li>



<li>Report success or errors for each device.</li>
</ol>



<h2 class="wp-block-heading">Prerequisites</h2>



<p>Before running the script, ensure the following:</p>



<ul class="wp-block-list">
<li>You have the&nbsp;<strong>AzureAD</strong>&nbsp;PowerShell module installed.</li>



<li>The script is executed by a user with permissions to manage devices and groups in Azure AD.</li>



<li>A CSV file containing device names is available.</li>



<li>The correct security group already exists in Azure AD.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Step-by-Step Breakdown</h2>



<h3 class="wp-block-heading">1. Import the Azure AD Module</h3>



<p>The script starts by loading the&nbsp;<strong>AzureAD</strong>&nbsp;module, which contains cmdlets to manage Azure AD resources from PowerShell.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Import-Module AzureAD
</pre>



<p>This step is necessary for interacting with Azure AD using PowerShell. If you don’t have the module installed, run:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Install-Module AzureAD
</pre>



<h3 class="wp-block-heading">2. Authenticate with Azure AD</h3>



<p>Before performing any Azure AD operations, the script requires the user to authenticate:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Connect-AzureAD
</pre>



<p>This prompts the user to enter credentials or use existing session credentials to connect to Azure AD.</p>



<h3 class="wp-block-heading">3. Specify the CSV File Path and Security Group</h3>



<p>You&#8217;ll need a CSV file that lists the devices to be added. The CSV should contain a column titled&nbsp;<strong>DeviceName</strong>, which holds the names of the devices you want to add.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$csvFilePath = "C:\path\to\your\devices.csv"
$securityGroupName = "Your-Security-Group-Name"
</pre>



<p>Here,&nbsp;<code>$csvFilePath</code>&nbsp;points to the CSV file and&nbsp;<code>$securityGroupName</code>&nbsp;is the name of the Azure AD security group you want to add the devices to.</p>



<h3 class="wp-block-heading">4. Retrieve the Security Group Object ID</h3>



<p>Azure AD uses unique object IDs for each resource, including security groups. To add devices to a group, the script must first retrieve the Object ID of the target security group:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$securityGroup = Get-AzureADGroup -SearchString $securityGroupName
if ($securityGroup -eq $null) {
    Write-Host "Security group not found: $securityGroupName"
    exit
}
</pre>



<p>If the group isn’t found, the script exits with an appropriate message. Otherwise, the script proceeds to store the Object ID of the group in&nbsp;<code>$securityGroupId</code>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$securityGroupId = $securityGroup.ObjectId
</pre>



<h3 class="wp-block-heading">5. Import the CSV File</h3>



<p>The devices from the CSV file are imported into a variable&nbsp;<code>$devices</code>:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$devices = Import-Csv -Path $csvFilePath
</pre>



<p>Each device is stored as a record, and the script processes each device by looping through the records.</p>



<h3 class="wp-block-heading">6. Loop through Devices and Add to Group</h3>



<p>For each device, the script:</p>



<ul class="wp-block-list">
<li>Retrieves the device’s Object ID from Azure AD using the&nbsp;<strong>DeviceName</strong>&nbsp;from the CSV.</li>



<li>Adds the device to the specified security group.</li>



<li>Logs the outcome for each device.</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">foreach ($device in $devices) {
    $deviceName = $device.DeviceName
    $deviceObject = Get-AzureADDevice -SearchString $deviceName
    if ($deviceObject -eq $null) {
        Write-Host "Device not found: $deviceName"
        continue
    }

    $deviceId = $deviceObject.ObjectId

    try {
        Add-AzureADGroupMember -ObjectId $securityGroupId -RefObjectId $deviceId
        Write-Host "Successfully added Device: $deviceName to the group."
    } catch {
        Write-Host "Failed to add Device: $deviceName. Error: $_"
    }
}
</pre>



<p>If the device isn’t found in Azure AD, a message is displayed, and the script moves on to the next device. If an error occurs during the addition process, it’s caught and logged.</p>



<h3 class="wp-block-heading">7. Disconnect from Azure AD</h3>



<p>After processing all the devices, the script disconnects from Azure AD:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Disconnect-AzureAD
</pre>



<p>This closes the session and ensures no lingering connections remain.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-add-devices-to-azure-ad-group-using-powershell/">How to Bulk Add Devices to Azure AD Group Using PowerShell</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/how-to-add-devices-to-azure-ad-group-using-powershell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ZIP Password Recovery: How to Crack ZIP Password in 2024</title>
		<link>https://cyberillo.com/zip-password-recovery/</link>
					<comments>https://cyberillo.com/zip-password-recovery/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Sun, 18 Aug 2024 09:23:29 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://webbytips.com/?p=2933</guid>

					<description><![CDATA[<p>Lost your zip file password? Learn how to unlock protected archives instantly with the best ZIP password recovery tool - ZipRipper.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/zip-password-recovery/">ZIP Password Recovery: How to Crack ZIP Password in 2024</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="ZIP Password Recovery: How to Crack ZIP Password in 2024" width="1220" height="686" src="https://www.youtube.com/embed/IId3oPLjMTw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>You forgot, didn&#8217;t you? That <a href="https://cyberillo.com/how-to-password-protect-a-zip-file/" data-type="post" data-id="2935">password you set on your zipped folder</a> with all your precious files. Wishing you didn&#8217;t set it in the first place?</p>



<p>When you encounter a locked zip file, it can be frustrating. Whether you’ve forgotten the password or inherited a protected zip archive, recovering access is essential. Fortunately, there are various methods and tools available for zip password recovery that can help you regain access to your files.</p>





<h2 class="wp-block-heading" id="how-to-crack-a-zip-file-password">How to crack a zip file password?</h2>



<p>You&#8217;re in luck, <a href="https://github.com/openwall/john" target="_blank" rel="noopener">John the Ripper</a> has a tool made just for this purpose.</p>



<ol class="wp-block-list">
<li>Download the <a href="https://github.com/illsk1lls/ZipRipper" target="_blank" rel="noopener">ZipRipper</a> tool from GitHub by clicking on <strong>Code</strong> and then <strong>Download ZIP.</strong></li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="463" src="https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub-1024x463.png" alt="Download the ZipRipper tool from GitHub" class="wp-image-2962" srcset="https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub-1024x463.png 1024w, https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub-300x136.png 300w, https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub-768x347.png 768w, https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub-1536x694.png 1536w, https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub-600x271.png 600w, https://cyberillo.com/wp-content/uploads/Download-the-ZipRipper-tool-from-GitHub.png 1832w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="2" class="wp-block-list">
<li>Extract the downloaded ZIP file.</li>



<li>Launch the password cracker by double-clicking on <strong>ZipRipper.cmd</strong> from the extracted archive.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="309" src="https://cyberillo.com/wp-content/uploads/Double-Click-on-ZipRipper.cmd_-1024x309.png" alt="Double Click on ZipRipper.cmd" class="wp-image-2961" srcset="https://cyberillo.com/wp-content/uploads/Double-Click-on-ZipRipper.cmd_-1024x309.png 1024w, https://cyberillo.com/wp-content/uploads/Double-Click-on-ZipRipper.cmd_-300x91.png 300w, https://cyberillo.com/wp-content/uploads/Double-Click-on-ZipRipper.cmd_-768x232.png 768w, https://cyberillo.com/wp-content/uploads/Double-Click-on-ZipRipper.cmd_-600x181.png 600w, https://cyberillo.com/wp-content/uploads/Double-Click-on-ZipRipper.cmd_.png 1143w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="4" class="wp-block-list">
<li><strong>Microsoft Defender SmartScreen</strong> might block the program. When, prompted that <em>Windows Protected your PC</em>, click on <strong>More info</strong> and then, <strong>Run anyway</strong>.</li>
</ol>



<div style="border-radius: 15px; background-color: #A1D6B2; color: #000;padding: 15px; margin-bottom: 30px">
<h3 style="color: #000">Is ZipRipper Safe?</h3>
<p>Yes, ZipRipper is safe. It is&nbsp;an open-source tool used for recovering lost passwords from ZIP, RAR, 7z, and PDF files. It relies on JohnTheRipper, a well-known password-cracking utility, to attempt password recovery.</p>
<p>Make sure to download it directly from the GitHub link in step 1. The safety of other download links cannot be guaranteed.</p>
</div>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="485" src="https://cyberillo.com/wp-content/uploads/Run-anyway-in-Microsoft-Defender-SmartScreen-1024x485.png" alt="Run anyway in Microsoft Defender SmartScreen" class="wp-image-2964" srcset="https://cyberillo.com/wp-content/uploads/Run-anyway-in-Microsoft-Defender-SmartScreen-1024x485.png 1024w, https://cyberillo.com/wp-content/uploads/Run-anyway-in-Microsoft-Defender-SmartScreen-300x142.png 300w, https://cyberillo.com/wp-content/uploads/Run-anyway-in-Microsoft-Defender-SmartScreen-768x364.png 768w, https://cyberillo.com/wp-content/uploads/Run-anyway-in-Microsoft-Defender-SmartScreen-600x284.png 600w, https://cyberillo.com/wp-content/uploads/Run-anyway-in-Microsoft-Defender-SmartScreen.png 1335w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="5" class="wp-block-list">
<li>Click on <strong>Start</strong> once the ZipRipper GUI pops up.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="684" height="486" src="https://cyberillo.com/wp-content/uploads/Click-Start-on-the-ZipRipper-GUI.png" alt="Click Start on the ZipRipper GUI" class="wp-image-2960" srcset="https://cyberillo.com/wp-content/uploads/Click-Start-on-the-ZipRipper-GUI.png 684w, https://cyberillo.com/wp-content/uploads/Click-Start-on-the-ZipRipper-GUI-300x213.png 300w, https://cyberillo.com/wp-content/uploads/Click-Start-on-the-ZipRipper-GUI-600x426.png 600w" sizes="auto, (max-width: 684px) 100vw, 684px" /></figure>
</div>


<ol start="6" class="wp-block-list">
<li>Select the password protected ZIP file you would like to decrypt, and click on <strong>Open</strong>.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="936" height="586" src="https://cyberillo.com/wp-content/uploads/Select-protected-zip-file.png" alt="Select protected zip file" class="wp-image-2966" srcset="https://cyberillo.com/wp-content/uploads/Select-protected-zip-file.png 936w, https://cyberillo.com/wp-content/uploads/Select-protected-zip-file-300x188.png 300w, https://cyberillo.com/wp-content/uploads/Select-protected-zip-file-768x481.png 768w, https://cyberillo.com/wp-content/uploads/Select-protected-zip-file-600x376.png 600w" sizes="auto, (max-width: 936px) 100vw, 936px" /></figure>



<ol start="7" class="wp-block-list">
<li>The password cracker will get to work &#8211; make sure you have an active Internet connection if using it in online mode.</li>



<li>When asked whether or not to split the word list, select <strong>No</strong>.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="532" height="313" src="https://cyberillo.com/wp-content/uploads/Select-No-to-split-the-wordlist.png" alt="Select No to split the wordlist" class="wp-image-2965" srcset="https://cyberillo.com/wp-content/uploads/Select-No-to-split-the-wordlist.png 532w, https://cyberillo.com/wp-content/uploads/Select-No-to-split-the-wordlist-300x177.png 300w" sizes="auto, (max-width: 532px) 100vw, 532px" /></figure>
</div>


<ol start="9" class="wp-block-list">
<li>Simple passwords will be cracked in a matter of seconds, whereas more complex passwords may take minutes, days, weeks &#8230; You get it.</li>



<li>Once the password is successfully cracked, you get a popup showing the cracked password/s. A file with the cracked passwords is also saved to the desktop.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="597" src="https://cyberillo.com/wp-content/uploads/Pop-up-showing-the-cracked-passwords-1024x597.png" alt="Pop-up showing the cracked passwords" class="wp-image-2963" srcset="https://cyberillo.com/wp-content/uploads/Pop-up-showing-the-cracked-passwords-1024x597.png 1024w, https://cyberillo.com/wp-content/uploads/Pop-up-showing-the-cracked-passwords-300x175.png 300w, https://cyberillo.com/wp-content/uploads/Pop-up-showing-the-cracked-passwords-768x448.png 768w, https://cyberillo.com/wp-content/uploads/Pop-up-showing-the-cracked-passwords-600x350.png 600w, https://cyberillo.com/wp-content/uploads/Pop-up-showing-the-cracked-passwords.png 1114w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="11" class="wp-block-list">
<li>Congratulations, you can now open your password protected ZIP file.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="576" src="https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-1024x576.png" alt="" class="wp-image-2968" srcset="https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-1024x576.png 1024w, https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-300x169.png 300w, https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-768x432.png 768w, https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-1536x864.png 1536w, https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-390x220.png 390w, https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED-600x338.png 600w, https://cyberillo.com/wp-content/uploads/Zip-file-password-CRACKED.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="what-is-a-zip-file-and-why-protect-it">What is a Zip File and Why Protect It?</h2>



<p>A zip file is a compressed archive that can contain one or more files or folders. These archives are often password protected to ensure that sensitive data remains secure. Password protection uses encryption to prevent unauthorized access, making it crucial to remember or securely store the password. If you lose the password, you’ll need to recover it to access the files within.</p>



<h2 class="wp-block-heading" id="understanding-zip-password-recovery">Understanding Zip Password Recovery</h2>



<p>Zip password recovery involves retrieving the lost or forgotten password to unlock an encrypted zip file. This process can be done using specialized software known as a password recovery tool. These tools employ various techniques, such as brute force, dictionary attacks, and mask attacks, to find the password.</p>



<h2 class="wp-block-heading" id="popular-methods-for-zip-password-recovery">Popular Methods for Zip Password Recovery</h2>



<ol class="wp-block-list">
<li><strong>Brute Force Attack</strong>: This method systematically tries every possible combination of characters until the correct password is found. While it can be effective, it may take a long time, depending on the password length and complexity.</li>



<li><strong>Dictionary Attack</strong>: This technique uses a pre-defined list of potential passwords. The tool runs through the list and checks each one until the right password is found. This method is faster than brute force but relies on the password being within the dictionary.</li>



<li><strong>Mask Attack</strong>: If you remember part of the password or have an idea of its structure, a mask attack can be useful. You can set parameters like password length, character set, or specific characters to narrow down the search, making the recovery process quicker.</li>
</ol>



<h2 class="wp-block-heading" id="alternative-tools-for-recovering-zip-passwords">Alternative Tools for Recovering Zip Passwords</h2>



<p>ZipRipper aside, there are several other apps and tools available that can assist with zip password recovery:</p>



<ul class="wp-block-list">
<li><strong><a href="https://www.winzip.com/" target="_blank" rel="noopener">WinZip</a></strong>: A popular archiver that offers built-in tools for password recovery and decryption. While it’s a paid app, you can find free downloads of its demo version, which might include limited password recovery functionality.</li>



<li><strong><a href="https://download.cnet.com/zip-password-unlocker/3000-2094_4-10967931.html" target="_blank" rel="noopener">Zip Password Unlocker</a></strong>: This tool is designed specifically for recovering passwords from encrypted zip archives. It supports various versions of popular archivers and offers an easy-to-use interface.</li>



<li><strong><a href="https://www.passware.com/rar/" target="_blank" rel="noopener">RAR Password Recovery Tool</a></strong>: Though primarily for RAR files, this tool also supports zip file recovery. It uses advanced algorithms to find the password efficiently.</li>
</ul>



<h2 class="wp-block-heading" id="how-to-use-a-zip-password-recovery-tool">How to Use a Zip Password Recovery Tool</h2>



<ol class="wp-block-list">
<li><strong>Download and Install</strong>: Choose a zip password recovery tool that suits your needs and download the latest version. Install it on your Windows computer.</li>



<li><strong>Upload Your File</strong>: Open the tool and upload your encrypted zip file. Most tools will allow you to drag and drop the file directly into the interface.</li>



<li><strong>Set Parameters</strong>: If using a mask attack, set your parameters such as the password length or character set. For dictionary attacks, upload your dictionary file.</li>



<li><strong>Start the Recovery Process</strong>: Initiate the password recovery. The tool will begin searching for the correct password. The time taken will depend on the chosen method and the password’s complexity.</li>



<li><strong>Recover and Copy the Password</strong>: Once the tool finds the password, it will display it on the screen. Copy the password and use it to unlock your protected zip file.</li>
</ol>



<h2 class="wp-block-heading" id="legal-considerations">Legal Considerations</h2>



<p>It’s important to affirm that using zip password recovery tools should only be done when you have the legal right to access the data. Recovering passwords for files obtained without authorization or through other illegal means may constitute theft and can lead to criminal prosecution. Always ensure you are the rightful owner of all files or have explicit permission from the owner to perform these operations.</p>



<h2 class="wp-block-heading" id="conclusion">Conclusion</h2>



<p>Zip password recovery is a necessary skill when dealing with protected archives, especially if you’ve lost access to sensitive files. With the right tool and approach, you can recover your password and regain access to your data. Remember to use these tools responsibly and within the bounds of the law to avoid any legal repercussions.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/zip-password-recovery/">ZIP Password Recovery: How to Crack ZIP Password in 2024</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/zip-password-recovery/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Password Protect a ZIP File [Windows, Mac &#038; Linux]</title>
		<link>https://cyberillo.com/how-to-password-protect-a-zip-file/</link>
					<comments>https://cyberillo.com/how-to-password-protect-a-zip-file/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Sat, 17 Aug 2024 13:28:33 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://webbytips.com/?p=2935</guid>

					<description><![CDATA[<p>Learn how to password protect a zip file on Windows, macOS, or Linux with these easy-to-follow methods.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-password-protect-a-zip-file/">How to Password Protect a ZIP File [Windows, Mac &amp; Linux]</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In this guide, I&#8217;ll show you how to password protect a ZIP file on Windows, macOS or Linux. Don&#8217;t get too carried away, the protection obtained by encrypting your zipped folders is nowhere near the levels of Fort Knox, but adding an extra layer of security to your data won&#8217;t hurt <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" />.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>





<h2 class="wp-block-heading" id="how-to-password-protect-a-zipped-folder-on-windows-using-7-zip">How to Password Protect a Zipped Folder on Windows Using 7-Zip</h2>



<p><strong>7-Zip</strong>&nbsp;is a powerful, free tool that lets you&nbsp;password-protect&nbsp;your&nbsp;zip files&nbsp;with strong&nbsp;AES-256 encryption.</p>



<p><strong>Steps to Create a Password-Protected Zip File Using 7-Zip:</strong></p>



<ol class="wp-block-list">
<li>Download and install 7-Zip&nbsp;from&nbsp;<a href="https://www.7-zip.org/" target="_blank" rel="noopener">here</a>.</li>



<li>Navigate to the folder&nbsp;containing the&nbsp;files you want to compress.</li>



<li>Right-click&nbsp;the&nbsp;file or files you want to zip&nbsp;and choose&nbsp;<strong>7-Zip &gt; Add to archive</strong>.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="920" height="513" src="https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-7-zip.png" alt="right-click and add-to-archive for 7-zip" class="wp-image-2939" srcset="https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-7-zip.png 920w, https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-7-zip-300x167.png 300w, https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-7-zip-768x428.png 768w, https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-7-zip-600x335.png 600w" sizes="auto, (max-width: 920px) 100vw, 920px" /></figure>



<ol start="4" class="wp-block-list">
<li>In the window that opens, select&nbsp;<strong>ZIP</strong>&nbsp;as the&nbsp;<strong>archive format</strong>.</li>



<li>Under the&nbsp;<strong>Encryption</strong>&nbsp;section,&nbsp;set a password&nbsp;in both the&nbsp;<strong>Enter password</strong>&nbsp;and&nbsp;<strong>Reenter password</strong>&nbsp;fields.</li>



<li>Select <strong>AES-256</strong> as the <strong>Encryption Method</strong>.</li>



<li>Click&nbsp;<strong>OK</strong>&nbsp;to&nbsp;create the zip file.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="831" height="703" src="https://cyberillo.com/wp-content/uploads/how-to-password-protect-zip-file-using-7-zip.png" alt="how to password protect zip file using 7-zip" class="wp-image-2938" srcset="https://cyberillo.com/wp-content/uploads/how-to-password-protect-zip-file-using-7-zip.png 831w, https://cyberillo.com/wp-content/uploads/how-to-password-protect-zip-file-using-7-zip-300x254.png 300w, https://cyberillo.com/wp-content/uploads/how-to-password-protect-zip-file-using-7-zip-768x650.png 768w, https://cyberillo.com/wp-content/uploads/how-to-password-protect-zip-file-using-7-zip-600x508.png 600w" sizes="auto, (max-width: 831px) 100vw, 831px" /></figure>



<p>Your&nbsp;new zip file&nbsp;is now&nbsp;password-protected, ensuring that only those with the&nbsp;correct password&nbsp;can access the&nbsp;compressed files.</p>



<h2 class="wp-block-heading" id="using-win-rar-to-password-protect-a-zip-file-on-windows">Using WinRAR to Password Protect a Zip File on Windows</h2>



<p><strong>WinRAR</strong>&nbsp;is another popular&nbsp;third-party software&nbsp;for&nbsp;file compression&nbsp;that allows you to&nbsp;add a password&nbsp;to your&nbsp;zip files.</p>



<p><strong>Steps to Password Protect Files Using WinRAR:</strong></p>



<ol class="wp-block-list">
<li>Download and install WinRAR&nbsp;from&nbsp;<a href="https://www.win-rar.com/" target="_blank" rel="noopener">here</a>.</li>



<li>Select the files&nbsp;or&nbsp;folder you want to encrypt.</li>



<li><strong>Right-click</strong>&nbsp;and choose&nbsp;<strong>WinRAR &gt; Add to archive…</strong>.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="935" height="339" src="https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-WinRAR.png" alt="right-click and add-to-archive for WinRAR" class="wp-image-2940" srcset="https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-WinRAR.png 935w, https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-WinRAR-300x109.png 300w, https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-WinRAR-768x278.png 768w, https://cyberillo.com/wp-content/uploads/right-click-and-add-to-archive-for-WinRAR-600x218.png 600w" sizes="auto, (max-width: 935px) 100vw, 935px" /></figure>



<ol start="4" class="wp-block-list">
<li>Choose&nbsp;<strong>ZIP</strong>&nbsp;as the archive format.</li>



<li>Click on&nbsp;<strong>Set password…</strong>&nbsp;at the bottom right.</li>



<li>Enter the password&nbsp;you want to use and click&nbsp;<strong>OK</strong>.</li>



<li>Click&nbsp;<strong>OK</strong>&nbsp;again to&nbsp;create the zip file.</li>
</ol>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="955" height="554" src="https://cyberillo.com/wp-content/uploads/how-to-password-protect-a-zip-file-using-WinRAR.png" alt="how to password protect a zip file using WinRAR" class="wp-image-2941" srcset="https://cyberillo.com/wp-content/uploads/how-to-password-protect-a-zip-file-using-WinRAR.png 955w, https://cyberillo.com/wp-content/uploads/how-to-password-protect-a-zip-file-using-WinRAR-300x174.png 300w, https://cyberillo.com/wp-content/uploads/how-to-password-protect-a-zip-file-using-WinRAR-768x446.png 768w, https://cyberillo.com/wp-content/uploads/how-to-password-protect-a-zip-file-using-WinRAR-600x348.png 600w" sizes="auto, (max-width: 955px) 100vw, 955px" /></figure>



<p>With WinRAR, your&nbsp;password-protected&nbsp;zip file&nbsp;will prevent&nbsp;unauthorized&nbsp;access, making it a good&nbsp;choice for protecting&nbsp;sensitive information.</p>



<h2 class="wp-block-heading" id="bonus-how-to-password-protect-a-zip-file-on-windows-using-efs">(Bonus) How to Password-Protect a Zip File on Windows Using EFS</h2>



<p>If you&#8217;re using Windows 7, 8, 10 or 11, the&nbsp;<strong>Encrypting File System (EFS)</strong>&nbsp;is a&nbsp;built-in&nbsp;option to&nbsp;encrypt your files. While EFS doesn&#8217;t allow you to&nbsp;put a password&nbsp;directly on a&nbsp;zip file, it does&nbsp;encrypt&nbsp;the&nbsp;files and folders&nbsp;before they are zipped, keeping them safe from&nbsp;unauthorized&nbsp;access.</p>



<p><strong>Steps to Encrypt Files Using EFS:</strong></p>



<ol class="wp-block-list">
<li>Navigate to the folder containing&nbsp;the&nbsp;file or files you want to encrypt.</li>



<li><strong>Right-click</strong>&nbsp;the&nbsp;folder you want to encrypt&nbsp;and select&nbsp;<strong>Properties</strong>.</li>



<li>Under the&nbsp;<strong>General</strong>&nbsp;tab, click on&nbsp;<strong>Advanced</strong>.</li>



<li>Check the box that says&nbsp;<strong>Encrypt contents to secure data</strong>.</li>



<li>Click&nbsp;<strong>OK</strong>, then&nbsp;<strong>Apply</strong>.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="555" src="https://cyberillo.com/wp-content/uploads/how-to-encrypt-a-folder-using-EFS-on-Windows-1024x555.png" alt="how to encrypt a folder using EFS on Windows" class="wp-image-2943" srcset="https://cyberillo.com/wp-content/uploads/how-to-encrypt-a-folder-using-EFS-on-Windows-1024x555.png 1024w, https://cyberillo.com/wp-content/uploads/how-to-encrypt-a-folder-using-EFS-on-Windows-300x163.png 300w, https://cyberillo.com/wp-content/uploads/how-to-encrypt-a-folder-using-EFS-on-Windows-768x416.png 768w, https://cyberillo.com/wp-content/uploads/how-to-encrypt-a-folder-using-EFS-on-Windows-600x325.png 600w, https://cyberillo.com/wp-content/uploads/how-to-encrypt-a-folder-using-EFS-on-Windows.png 1179w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>After the files are&nbsp;encrypted, you can&nbsp;create a zip file&nbsp;using your preferred method. The&nbsp;encryption&nbsp;stays with the files, but remember that this&nbsp;encryption method&nbsp;is tied to your&nbsp;Windows user&nbsp;account.</p>



<h2 class="wp-block-heading" id="how-to-password-protect-a-zip-file-on-mac-os">How to Password Protect a Zip File on macOS</h2>



<p>If you’re on a Mac, you can use the&nbsp;<strong>Terminal</strong>&nbsp;or a&nbsp;third-party application&nbsp;like&nbsp;<strong>Keka&nbsp;</strong>to&nbsp;password protect a zip file.</p>



<p><strong>Steps to Create a Password-Protected Zip File on macOS Using Terminal:</strong></p>



<ol class="wp-block-list">
<li>Open&nbsp;<strong>Terminal</strong>&nbsp;(found in the&nbsp;<strong>Applications folder</strong>&nbsp;under&nbsp;<strong>Utilities</strong>).</li>



<li>Navigate to the folder&nbsp;containing the&nbsp;file or files you want&nbsp;to&nbsp;compress.</li>



<li>Use the following command to&nbsp;create a password-protected zip: <code>zip -er newzip.zip file1 file2</code>. Replace&nbsp;<code>newzip.zip</code>&nbsp;with your desired&nbsp;zip file name&nbsp;and&nbsp;<code>file1 file2</code>&nbsp;with the&nbsp;files you want to compress.</li>



<li>Enter the password&nbsp;when prompted.</li>
</ol>



<p>Your&nbsp;encrypted zip file&nbsp;is now ready, and only those with the&nbsp;password&nbsp;can access it.</p>



<h2 class="wp-block-heading" id="how-to-encrypt-a-zip-file-on-linux">How to Encrypt a Zip File on Linux</h2>



<p>On Linux, you can also use the&nbsp;<strong>Terminal</strong>&nbsp;to&nbsp;create a password-protected zip file.</p>



<p><strong>Steps to Password Protect a Zip File on Linux:</strong></p>



<ol class="wp-block-list">
<li>Open the&nbsp;<strong>Terminal</strong>.</li>



<li>Navigate to the folder&nbsp;containing the&nbsp;files you want&nbsp;to&nbsp;compress.</li>



<li>Use the command: <code>zip -er newzip.zip file1 file2</code>. Replace&nbsp;<code>newzip.zip</code>&nbsp;with your desired&nbsp;zip file name&nbsp;and&nbsp;<code>file1 file2</code>&nbsp;with the&nbsp;files you want to compress.</li>



<li>Set the password&nbsp;when prompted.</li>
</ol>



<p>This method is effective and works across all Linux distributions.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Great! So, now you know how to password protect a ZIP file. Wondering what happens if you forget the password?</p>



<p>Check out this guide on <a href="https://cyberillo.com/zip-password-recovery/" data-type="post" data-id="2933">how to crack a ZIP file password</a>. That&#8217;s right, password-protecting your ZIP files is not foolproof. With the right-tools and enough time, they can be cracked as well.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-password-protect-a-zip-file/">How to Password Protect a ZIP File [Windows, Mac &amp; Linux]</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/how-to-password-protect-a-zip-file/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hybrid Azure AD Joined Device Fails Intune Auto Enrollment</title>
		<link>https://cyberillo.com/hybrid-azure-ad-joined-device-fails-intune-auto-enrollment/</link>
					<comments>https://cyberillo.com/hybrid-azure-ad-joined-device-fails-intune-auto-enrollment/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Thu, 08 Aug 2024 12:06:25 +0000</pubDate>
				<category><![CDATA[Intune]]></category>
		<guid isPermaLink="false">https://webbytips.com/?p=2864</guid>

					<description><![CDATA[<p>Trouble enrolling your hybrid joined Windows devices to Intune? Here's How to fix sync/authentication issues and enroll devices successfully.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/hybrid-azure-ad-joined-device-fails-intune-auto-enrollment/">Hybrid Azure AD Joined Device Fails Intune Auto Enrollment</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Symptom</h2>



<p>A Windows device is joined to the domain and synchronized to Azure AD (Microsoft Entra). The <strong>Registered</strong> column for the device in Azure AD shows <em>Pending </em>and the <strong>MDM</strong> column shows <em>None</em>.</p>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="302" src="https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD-1024x302.png" alt="MDM shows None and Registered shows Pending in Azure AD" class="wp-image-2871" srcset="https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD-1024x302.png 1024w, https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD-300x89.png 300w, https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD-768x227.png 768w, https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD-1536x453.png 1536w, https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD-600x177.png 600w, https://cyberillo.com/wp-content/uploads/MDM-shows-None-and-Registered-shows-Pending-in-Azure-AD.png 1827w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The device does not show up in Intune since it was not successfully enrolled.</p>



<p>Running <code>dsregcmd /status</code> in CMD<strong> </strong>shows:</p>



<p><code>AzureAdJoined : YES</code> [under Device State]



<p><code>DomainJoined : YES</code> [under Device State]



<p><code>AzureAdPrt : No</code> [under SSO State]



<p>The problem here is that <span style="text-decoration: underline;"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">AzureAdPrt</mark> </span>(Primary Refresh Token) is showing <span style="text-decoration: underline;"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">No</mark></span>. In a nutshell, this means that the device did not manage to authenticate successfully to Azure. Therefore, Intune auto-enrollment will fail. </p>



<p>You can confirm that device enrollment failed by checking for an error of the sort: &#8220;<em>Auto MDM Enroll Device Credential 0x0, Failed</em>&#8221; in the Event Viewer at the following location:</p>



<p><strong>Event Viewer → Applications and Services Logs → Microsoft → Windows → DeviceManagement-Enterprise-Diagnostics-Provider → Admin</strong></p>



<h2 class="wp-block-heading">Resolution</h2>



<ol class="wp-block-list">
<li>Make sure that you have checked all the <a href="https://learn.microsoft.com/en-us/mem/intune/enrollment/quickstart-setup-auto-enrollment" target="_blank" rel="noopener">prerequisites for Intune Auto Enrollment</a>.</li>



<li>In CMD (on the target device) run the following command:</li>
</ol>



<p><code>%windir%/System32/deviceenroller.exe /autoenrollmdm</code></p>



<p>In some cases, this one-liner does its magic and triggers a successful enrollment to Intune. If the device shows up in Intune after a while (5 to 15 minutes), the issue is resolved. If not, move on to the next steps to completely remove the device from your on-premises AD and Azure AD (Entra), re-join, and successfully enroll to Intune.</p>



<ol start="3" class="wp-block-list">
<li>In CMD (on the target device) run the following command to unregister from Azure AD.</li>
</ol>



<p><code>dsregcmd /leave</code></p>



<ol start="4" class="wp-block-list">
<li>Delete the device object from Azure AD.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="378" src="https://cyberillo.com/wp-content/uploads/delete-device-from-Azure-AD-1024x378.png" alt="delete device from Azure AD" class="wp-image-2872" srcset="https://cyberillo.com/wp-content/uploads/delete-device-from-Azure-AD-1024x378.png 1024w, https://cyberillo.com/wp-content/uploads/delete-device-from-Azure-AD-300x111.png 300w, https://cyberillo.com/wp-content/uploads/delete-device-from-Azure-AD-768x283.png 768w, https://cyberillo.com/wp-content/uploads/delete-device-from-Azure-AD-600x221.png 600w, https://cyberillo.com/wp-content/uploads/delete-device-from-Azure-AD.png 1345w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="5" class="wp-block-list">
<li>Disjoin the device from the on-premises Active Directory domain.</li>



<li>Delete the device computer object from Active Directory.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="506" height="490" src="https://cyberillo.com/wp-content/uploads/delete-computer-object-in-Active-Directory.png" alt="" class="wp-image-2873" srcset="https://cyberillo.com/wp-content/uploads/delete-computer-object-in-Active-Directory.png 506w, https://cyberillo.com/wp-content/uploads/delete-computer-object-in-Active-Directory-300x291.png 300w" sizes="auto, (max-width: 506px) 100vw, 506px" /></figure>
</div>


<ol start="7" class="wp-block-list">
<li>Re-join the device to the domain and wait for the next synchronization cycle to Azure AD or force it through PowerShell on your AD Connect Server:</li>
</ol>



<p><code>Import-Module ADSync<br>Start-ADSyncSyncCycle -PolicyType Delta</code></p>



<ol start="8" class="wp-block-list">
<li>The device will show up in Azure AD.</li>



<li>Logon to the device with the target user’s credentials.</li>
</ol>



<p>After a while (5 to 15 minutes), the device will successfully enroll to Intune via auto-enrollment.</p>



<p>Running <code>dsregcmd /status</code> in CMD<strong> </strong>now<strong> </strong>shows:</p>



<p><code>AzureAdJoined : YES</code> [under Device State]



<p><code>DomainJoined : YES</code> [under Device State]



<p><code>AzureAdPrt : YES</code> [under SSO State]
<p>The post <a rel="nofollow" href="https://cyberillo.com/hybrid-azure-ad-joined-device-fails-intune-auto-enrollment/">Hybrid Azure AD Joined Device Fails Intune Auto Enrollment</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/hybrid-azure-ad-joined-device-fails-intune-auto-enrollment/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>[Solved] WslRegisterDistribution failed with error: 0x800701bc</title>
		<link>https://cyberillo.com/wslregisterdistribution-failed-with-error-0x800701bc/</link>
					<comments>https://cyberillo.com/wslregisterdistribution-failed-with-error-0x800701bc/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Sat, 20 Jul 2024 04:53:50 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://webbytips.com/?p=2716</guid>

					<description><![CDATA[<p>Fix WslRegisterDistribution error 0x800701bc quickly and get your Linux distro running smoothly on Windows with this step-by-step guide.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/wslregisterdistribution-failed-with-error-0x800701bc/">[Solved] WslRegisterDistribution failed with error: 0x800701bc</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>So you&#8217;re excited to use your favourite Linux distro on Windows &#8211; for development, a fun experiment or a mini-project. You go to the Microsoft Store, find your distro and click on install. Once the installation is complete, you launch it from the Start Menu and BOOM &#8211; <strong>WslRegisterDistribution failed with error: 0x800701bc</strong>.</p>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="153" src="https://cyberillo.com/wp-content/uploads/WslRegisterDistribution-failed-with-error-0x800701bc-1024x153.png" alt="WslRegisterDistribution failed with error: 0x800701bc" class="wp-image-2718" srcset="https://cyberillo.com/wp-content/uploads/WslRegisterDistribution-failed-with-error-0x800701bc-1024x153.png 1024w, https://cyberillo.com/wp-content/uploads/WslRegisterDistribution-failed-with-error-0x800701bc-600x90.png 600w, https://cyberillo.com/wp-content/uploads/WslRegisterDistribution-failed-with-error-0x800701bc-300x45.png 300w, https://cyberillo.com/wp-content/uploads/WslRegisterDistribution-failed-with-error-0x800701bc-768x115.png 768w, https://cyberillo.com/wp-content/uploads/WslRegisterDistribution-failed-with-error-0x800701bc.png 1110w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The error indicates that the Linux distribution you&#8217;re trying to use cannot be registered properly and that an update for the kernel of the WSL 2 (Windows Subsystem for Linux) is required.</p>





<h2 class="wp-block-heading" id="how-to-fix-wsl-register-distribution-failed-with-error-0-x-800701-bc">How to fix WslRegisterDistribution failed with error: 0x800701bc</h2>



<h3 class="wp-block-heading" id="1-update-windows-to-version-1903-or-later">1. Update Windows to Version 1903 or later</h3>



<p><a href="https://learn.microsoft.com/en-us/windows/wsl/compare-versions" target="_blank" rel="noopener">WSL 2 </a> is only available in Windows 11 or Windows 10, Version 1903, Build 18362 or later.</p>



<p>Start by making sure that your system is running Windows 10/11 version 1903 or later. You can check this by typing <strong>winver</strong> in the start menu.</p>



<figure class="wp-block-image size-full border"><img loading="lazy" decoding="async" width="962" height="544" src="https://cyberillo.com/wp-content/uploads/WinVer-in-Start-Menu.png" alt="" class="wp-image-2722" srcset="https://cyberillo.com/wp-content/uploads/WinVer-in-Start-Menu.png 962w, https://cyberillo.com/wp-content/uploads/WinVer-in-Start-Menu-600x339.png 600w, https://cyberillo.com/wp-content/uploads/WinVer-in-Start-Menu-300x170.png 300w, https://cyberillo.com/wp-content/uploads/WinVer-in-Start-Menu-768x434.png 768w, https://cyberillo.com/wp-content/uploads/WinVer-in-Start-Menu-390x220.png 390w" sizes="auto, (max-width: 962px) 100vw, 962px" /></figure>



<p>This will return your Windows version and build number. If you&#8217;re running an earlier version of Windows, make sure to install the latest <a href="https://support.microsoft.com/en-us/windows/get-the-latest-windows-update-7d20e88c-0568-483a-37bc-c3885390d212#WindowsVersion=Windows_11" target="_blank" rel="noopener">Windows Feature Update</a>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="568" height="507" src="https://cyberillo.com/wp-content/uploads/Check-Windows-Version-and-Build-Number-in-WinVer-e1721448342546.png" alt="Check Windows Version and Build Number in WinVer" class="wp-image-2723" srcset="https://cyberillo.com/wp-content/uploads/Check-Windows-Version-and-Build-Number-in-WinVer-e1721448342546.png 568w, https://cyberillo.com/wp-content/uploads/Check-Windows-Version-and-Build-Number-in-WinVer-e1721448342546-300x268.png 300w" sizes="auto, (max-width: 568px) 100vw, 568px" /></figure>
</div>


<h3 class="wp-block-heading" id="2-enable-virtualization-in-bios">2. Enable Virtualization in BIOS</h3>



<p>WSL 2 requires virtualization to be enabled on your computer. To check if virtualization is enabled, open up the <strong>Task Manager </strong>in Windows, navigate to <strong>Performance</strong> and look for the <strong>Virtualization </strong>attribute. This needs to be set to <strong>Enabled</strong>.</p>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="688" src="https://cyberillo.com/wp-content/uploads/Check-if-virtualization-is-enabled-in-Windows-Task-Manager-1024x688.png" alt="Check if virtualization is enabled in Windows Task Manager" class="wp-image-2724" srcset="https://cyberillo.com/wp-content/uploads/Check-if-virtualization-is-enabled-in-Windows-Task-Manager-1024x688.png 1024w, https://cyberillo.com/wp-content/uploads/Check-if-virtualization-is-enabled-in-Windows-Task-Manager-600x403.png 600w, https://cyberillo.com/wp-content/uploads/Check-if-virtualization-is-enabled-in-Windows-Task-Manager-300x202.png 300w, https://cyberillo.com/wp-content/uploads/Check-if-virtualization-is-enabled-in-Windows-Task-Manager-768x516.png 768w, https://cyberillo.com/wp-content/uploads/Check-if-virtualization-is-enabled-in-Windows-Task-Manager.png 1100w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If <strong>Virtualization </strong>is not enabled, you need to enable it in BIOS by following these steps:</p>



<ol class="wp-block-list">
<li><strong>Restart Your Computer:</strong>
<ul class="wp-block-list">
<li>Save any open files and restart your computer.</li>
</ul>
</li>



<li><strong>Enter BIOS Setup:</strong>
<ul class="wp-block-list">
<li>As your computer is starting up, press the key that opens the BIOS setup utility. This key is usually displayed during the startup process and could be one of the following: <strong>F2</strong>, <strong>F10</strong>, <strong>Del</strong>, <strong>Esc</strong>, or another key specific to your computer’s manufacturer. You might need to press it repeatedly to enter the BIOS.</li>
</ul>
</li>



<li><strong>Find the Virtualization Setting:</strong>
<ul class="wp-block-list">
<li>Once in the BIOS, look for the virtualization settings. The location and name of this setting can vary, but it is often found in the following sections:
<ul class="wp-block-list">
<li>Advanced</li>



<li>Advanced BIOS Features</li>



<li>Advanced CPU Configuration</li>



<li>System Configuration</li>
</ul>
</li>



<li>The setting might be named:
<ul class="wp-block-list">
<li>Intel Virtualization Technology</li>



<li>VT-x</li>



<li>AMD-V</li>



<li>SVM Mode</li>
</ul>
</li>
</ul>
</li>



<li><strong>Enable Virtualization:</strong>
<ul class="wp-block-list">
<li>Change the virtualization setting to <strong>Enabled</strong>. Use the arrow keys to navigate, and the Enter key to select options.</li>
</ul>
</li>



<li><strong>Save and Exit:</strong>
<ul class="wp-block-list">
<li>Save your changes and exit the BIOS. This option is often found in the Exit menu or by pressing a key such as F10. Confirm that you want to save the changes if prompted.</li>
</ul>
</li>



<li><strong>Reboot Your Computer:</strong>
<ul class="wp-block-list">
<li>Your computer will restart with virtualization enabled.</li>
</ul>
</li>
</ol>



<h3 class="wp-block-heading" id="3-enable-the-windows-virtual-machine-platform-feature">3. Enable the Windows Virtual Machine Platform feature</h3>



<p>WSL 2 requires the Windows Virtual Machine Platform feature to be enabled.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="995" height="73" src="https://cyberillo.com/wp-content/uploads/Windows-Virtual-Machine-Platform-needs-to-be-enabled-for-WSL-2.png" alt="Windows Virtual Machine Platform needs to be enabled for WSL 2" class="wp-image-2725" srcset="https://cyberillo.com/wp-content/uploads/Windows-Virtual-Machine-Platform-needs-to-be-enabled-for-WSL-2.png 995w, https://cyberillo.com/wp-content/uploads/Windows-Virtual-Machine-Platform-needs-to-be-enabled-for-WSL-2-600x44.png 600w, https://cyberillo.com/wp-content/uploads/Windows-Virtual-Machine-Platform-needs-to-be-enabled-for-WSL-2-300x22.png 300w, https://cyberillo.com/wp-content/uploads/Windows-Virtual-Machine-Platform-needs-to-be-enabled-for-WSL-2-768x56.png 768w" sizes="auto, (max-width: 995px) 100vw, 995px" /></figure>



<p>Follow these steps to enable the Virtual Machine Platform feature in Windows 10 and 11.</p>



<ol class="wp-block-list">
<li>Search for and open up the <strong>Control Panel</strong> in the start menu.</li>



<li>Click on <strong>Programs</strong>.</li>



<li>Select <strong>Turn Windows features on or off</strong>. You need administrator privileges on the system.</li>
</ol>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="374" src="https://cyberillo.com/wp-content/uploads/Select-Turn-Windows-features-on-or-off-from-the-control-panel-1024x374.png" alt="Select Turn Windows features on or off from the control panel" class="wp-image-2727" srcset="https://cyberillo.com/wp-content/uploads/Select-Turn-Windows-features-on-or-off-from-the-control-panel-1024x374.png 1024w, https://cyberillo.com/wp-content/uploads/Select-Turn-Windows-features-on-or-off-from-the-control-panel-600x219.png 600w, https://cyberillo.com/wp-content/uploads/Select-Turn-Windows-features-on-or-off-from-the-control-panel-300x110.png 300w, https://cyberillo.com/wp-content/uploads/Select-Turn-Windows-features-on-or-off-from-the-control-panel-768x281.png 768w, https://cyberillo.com/wp-content/uploads/Select-Turn-Windows-features-on-or-off-from-the-control-panel.png 1124w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ol start="4" class="wp-block-list">
<li>Scroll down to the <strong>Windows Virtual Machine Platform </strong>feature and tick it to enable it.</li>



<li>Click on <strong>OK </strong>and reboot your computer for changes to take effect.</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="451" height="398" src="https://cyberillo.com/wp-content/uploads/Enable-Windows-Virtual-Machine-Platform-feature.png" alt="Enable Windows Virtual Machine Platform feature" class="wp-image-2726" srcset="https://cyberillo.com/wp-content/uploads/Enable-Windows-Virtual-Machine-Platform-feature.png 451w, https://cyberillo.com/wp-content/uploads/Enable-Windows-Virtual-Machine-Platform-feature-300x265.png 300w" sizes="auto, (max-width: 451px) 100vw, 451px" /></figure>
</div>


<h3 class="wp-block-heading" id="4-set-wsl-2-as-default">4. Set WSL 2 as default</h3>



<p>WSL 2 supports a full Linux kernel. Set it to default to make sure you&#8217;re not using WSL 1. </p>



<p>Open up <strong>CMD</strong> and type the following command.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --set-default-version 2</pre>



<h3 class="wp-block-heading" id="5-update-wsl-2-to-the-latest-version">5. Update WSL 2 to the latest version</h3>



<p>Make sure you have the latest updates of WSL installed on your system by entering this command in <strong>CMD</strong>.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --update</pre>



<h3 class="wp-block-heading" id="6-run-your-linux-distribution">6. Run your Linux Distribution</h3>



<p>After following the above steps, you should be able to successfully run your Linux distribution. If you already installed it, launch it from the start menu.</p>



<p>If not, you can install a Linux distro by searching for it in the Microsoft store or directly from the CMD.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">wsl --install --distribution ubuntu</pre>
<p>The post <a rel="nofollow" href="https://cyberillo.com/wslregisterdistribution-failed-with-error-0x800701bc/">[Solved] WslRegisterDistribution failed with error: 0x800701bc</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/wslregisterdistribution-failed-with-error-0x800701bc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Expand All Headers in the Azure Portal Service Menu</title>
		<link>https://cyberillo.com/how-to-expand-all-headers-in-the-azure-portal-menu/</link>
					<comments>https://cyberillo.com/how-to-expand-all-headers-in-the-azure-portal-menu/#respond</comments>
		
		<dc:creator><![CDATA[Sylvan Abela]]></dc:creator>
		<pubDate>Thu, 18 Jul 2024 05:46:38 +0000</pubDate>
				<category><![CDATA[Azure]]></category>
		<guid isPermaLink="false">https://webbytips.com/?p=2709</guid>

					<description><![CDATA[<p>Learn how to quickly expand or collapse all headers in the Azure portal service menu and set the default behaviour for future sessions.</p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-expand-all-headers-in-the-azure-portal-menu/">How to Expand All Headers in the Azure Portal Service Menu</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>As of recently, the Azure portal service menu on the left-hand side of the screen has been loading with all headers collapsed. While some people might like this because it&#8217;s neater and more concise, I very much prefer having all options visible at all times &#8211; it eliminates the guesswork in trying to determine what option falls under which header.</p>



<h2 class="wp-block-heading">How to expand or collapse all headers directly from the Azure portal service menu</h2>



<p>To expand all headers in the Azure Portal service menu, <strong>click on the up/down double arrow symbol at the top of the menu on the left-hand side of the screen</strong>. This icon allows you to toggle between having the headers expanded or collapsed.</p>



<figure class="wp-block-image size-large is-resized border"><img loading="lazy" decoding="async" width="1024" height="467" src="https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu-1024x467.png" alt="How to expand all headers in the Azure portal service menu" class="wp-image-2710" style="width:840px;height:auto" srcset="https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu-1024x467.png 1024w, https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu-600x274.png 600w, https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu-300x137.png 300w, https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu-768x350.png 768w, https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu-1536x700.png 1536w, https://cyberillo.com/wp-content/uploads/How-to-expand-all-headers-in-the-Azure-portal-service-menu.png 1895w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">How to change the default expand/collapse behaviour of the Azure portal service menu</h2>



<p>To change the default expand/collapse behaviour of the Azure portal service menu:</p>



<ol class="wp-block-list">
<li><strong>Navigate to the gear wheel icon</strong> at the top of the screen in the Azure portal to open up the settings.</li>



<li>Go to <strong>Appearance + startup views</strong> from the menu on the left.</li>



<li>Choose between <strong>Collapsed</strong> or <strong>Expanded</strong> in the <strong>Service menu behavior</strong> section.</li>
</ol>



<figure class="wp-block-image size-large border"><img loading="lazy" decoding="async" width="1024" height="464" src="https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu-1024x464.png" alt="How to change the default behaviour of the Azure portal service menu" class="wp-image-2711" srcset="https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu-1024x464.png 1024w, https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu-600x272.png 600w, https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu-300x136.png 300w, https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu-768x348.png 768w, https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu-1536x696.png 1536w, https://cyberillo.com/wp-content/uploads/How-to-change-the-default-behaviour-of-the-Azure-portal-service-menu.png 1906w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>
<p>The post <a rel="nofollow" href="https://cyberillo.com/how-to-expand-all-headers-in-the-azure-portal-menu/">How to Expand All Headers in the Azure Portal Service Menu</a> appeared first on <a rel="nofollow" href="https://cyberillo.com">Cyberillo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cyberillo.com/how-to-expand-all-headers-in-the-azure-portal-menu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
