This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Bias Types:
⚠️ windows_first
⚠️ powershell_heavy
⚠️ windows_tools
⚠️ missing_linux_example
Summary:
The documentation demonstrates a clear Windows bias. Windows terminology, tools, and examples (such as PowerShell and Windows registry edits) are presented exclusively or before Linux equivalents. Windows-specific configuration steps and troubleshooting (e.g., registry keys, Set-SmbClientConfiguration) are detailed, while Linux client configuration for SMB (such as cifs-utils or smb.conf) is not addressed. Linux is only mentioned in passing, and there are no Linux-specific SMB client instructions or troubleshooting guidance.
Recommendations:
  • Add Linux-specific SMB client configuration and troubleshooting sections, including mounting instructions using cifs-utils and relevant smb.conf options.
  • When discussing client-side encryption settings (e.g., AES-256-GCM), provide equivalent Linux commands or configuration (such as mount options or smb.conf parameters) and note Linux kernel/Samba version requirements.
  • Include Linux examples alongside PowerShell and Azure CLI, especially for client configuration and security settings.
  • When referencing Windows registry or PowerShell commands for enabling features, provide Linux alternatives or explicitly state if a feature is not configurable or required on Linux.
  • Ensure that Linux is mentioned equally in scenario descriptions, not only as a legacy or secondary consideration.
  • Where possible, provide parity in troubleshooting steps for both Windows and Linux clients.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-08-19 00:01 #85 completed ✅ Clean
2025-07-13 21:37 #48 completed ❌ Biased
2025-07-12 23:44 #41 in_progress ❌ Biased

Flagged Code Snippets

$resourceGroupName = "<resource-group>" $storageAccountName = "<storage-account>" # Get reference to storage account $storageAccount = Get-AzStorageAccount ` -ResourceGroupName $resourceGroupName ` -StorageAccountName $storageAccountName # If you've never enabled or disabled SMB Multichannel, the value for the SMB Multichannel # property returned by Azure Files will be null. Null returned values should be interpreted # as "default settings are in effect". To make this more user-friendly, the following # PowerShell commands replace null values with the human-readable default values. $defaultSmbMultichannelEnabled = $false # Get the current value for SMB Multichannel Get-AzStorageFileServiceProperty -StorageAccount $storageAccount | ` Select-Object -Property ` ResourceGroupName, ` StorageAccountName, ` @{ Name = "SmbMultichannelEnabled"; Expression = { if ($null -eq $_.ProtocolSettings.Smb.Multichannel.Enabled) { $defaultSmbMultichannelEnabled } else { $_.ProtocolSettings.Smb.Multichannel.Enabled } } }
Update-AzStorageFileServiceProperty ` -StorageAccount $storageAccount ` -EnableSmbMultichannel $true
Update-AzStorageFileServiceProperty ` -ResourceGroupName $resourceGroupName ` -StorageAccountName $storageAccountName ` -SmbAuthenticationMethod "Kerberos" ` -SmbChannelEncryption "AES-256-GCM" ` -SmbKerberosTicketEncryption "AES-256" ` -SmbProtocolVersion "SMB3.1.1"
Set-ItemProperty ` -Path "HKLM:SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides" ` -Name "2291605642" ` -Value 1 ` -Force
Set-ItemProperty ` -Path "HKLM:\SYSTEM\CurrentControlSet\Services\MRxSmb\KBSwitch" ` -Name "{FFC376AE-A5D2-47DC-A36F-FE9A46D53D75}" ` -Value 1 ` -Force
$resourceGroupName = "<resource-group>" $storageAccountName = "<storage-account>" # Get reference to storage account $storageAccount = Get-AzStorageAccount ` -ResourceGroupName $resourceGroupName ` -StorageAccountName $storageAccountName # If you've never changed any SMB security settings, the values for the SMB security # settings returned by Azure Files will be null. Null returned values should be interpreted # as "default settings are in effect". To make this more user-friendly, the following # PowerShell commands replace null values with the human-readable default values. # If you've deliberately set any of your SMB security settings to null, for example by # disabling SMB channel encryption, comment out the following four lines to avoid # changing the security settings back to defaults. $smbProtocolVersions = "SMB2.1", "SMB3.0", "SMB3.1.1" $smbAuthenticationMethods = "NTLMv2", "Kerberos" $smbKerberosTicketEncryption = "RC4-HMAC", "AES-256" $smbChannelEncryption = "AES-128-CCM", "AES-128-GCM", "AES-256-GCM" # Gets the current values of the SMB security settings Get-AzStorageFileServiceProperty -StorageAccount $storageAccount | ` Select-Object -Property ` ResourceGroupName, ` StorageAccountName, ` @{ Name = "SmbProtocolVersions"; Expression = { if ($null -eq $_.ProtocolSettings.Smb.Versions) { [String]::Join(", ", $smbProtocolVersions) } else { [String]::Join(", ", $_.ProtocolSettings.Smb.Versions) } } }, @{ Name = "SmbChannelEncryption"; Expression = { if ($null -eq $_.ProtocolSettings.Smb.ChannelEncryption) { [String]::Join(", ", $smbChannelEncryption) } else { [String]::Join(", ", $_.ProtocolSettings.Smb.ChannelEncryption) } } }, @{ Name = "SmbAuthenticationMethods"; Expression = { if ($null -eq $_.ProtocolSettings.Smb.AuthenticationMethods) { [String]::Join(", ", $smbAuthenticationMethods) } else { [String]::Join(", ", $_.ProtocolSettings.Smb.AuthenticationMethods) } } }, @{ Name = "SmbKerberosTicketEncryption"; Expression = { if ($null -eq $_.ProtocolSettings.Smb.KerberosTicketEncryption) { [String]::Join(", ", $smbKerberosTicketEncryption) } else { [String]::Join(", ", $_.ProtocolSettings.Smb.KerberosTicketEncryption) } } }