“It worked yesterday.” “File Explorer can open it, but the application cannot.” “Restarting fixed it.” File-share problems become harder to investigate when the attempts appear to be identical.
Even when you believe you are opening the same share, Windows may perform different operations if the destination name, execution account, or existing connections differ. Finding those differences is the starting point of the investigation.
This diagnostic guide brings together commands to run, how to interpret their results, and where to investigate next, rather than assigning a cause from the symptom alone. For the protocols themselves, see NTLM and Kerberos explained. For application design, see Network drives and UNC path pitfalls.
1. Start here: the conclusion and symptom index
Investigate in this order: Can you reach it? → Which identity connected? → Which authentication and protection requirements apply? → Is that identity allowed to perform the operation? Record these conditions in the same format for successful and failed attempts. A symptom is a starting point, not a confirmed cause.
| Symptom | First thing to check | Relevant section |
|---|---|---|
| Names and IP addresses behave differently | The actual destination IP and name-based authentication requirements | Connectivity, Kerberos |
| Only File Explorer succeeds | The application’s execution identity, session, and operation | Execution context |
| Access appears to require no password | The account actually accepted by the server | Credentials |
| Switching users fails, or error 1219 appears | Existing connections to the same server | Connection conflicts |
| Restarting or signing out fixes it | State differences before and after the change | Restarts |
| Only updated PCs, particular PCs, or a NAS fail | Effective signing, guest, and NTLM settings | Protection requirements |
| Opening works, but saving fails | Permissions and errors for the actual operation | Authorization and applications |
flowchart TB
accTitle: Moving from symptoms to evidence
accDescr: Select candidates from the symptom, compare evidence from successful and failed attempts, and then choose a fix.
symptom["Select the symptom"] --> compare["Compare success and failure"]
compare --> evidence["Narrow candidates with logs"]
evidence --> fix["Change one thing and retest"]
Figure 1: Use symptoms to start the investigation, and choose fixes only after checking the evidence.
The scope is SMB 2/3 shares on Windows 11 and Windows Server over ordinary TCP 445 connections. The PowerShell examples target Windows PowerShell 5.1. This is an intermediate guide for administrators and developers, but readers without server administration access can still start by collecting client-side information.
Distinguish AD domains, Windows shares in a workgroup, and NAS-specific accounts. This article covers ordinary AD Kerberos and conventional local-account configurations; SMB over QUIC, Azure Files-specific authentication, and individual IAKerb or LocalKDC configurations are outside its scope. With DFS, also record the final target server. Settings and defaults are based on official documentation checked on September 8, 2026; actual configuration takes precedence over assumptions based on the OS name.
First, confirm which accounts the share is configured to accept. AD centrally manages accounts for an organization, whereas local accounts belong to individual PCs. A NAS can use its own accounts or join AD. Do not infer Kerberos from a corporate LAN or NTLM from the fact that the server is a NAS; ask the administrator about the authentication configuration.123
| Account used to log on to the share | Investigation priority |
|---|---|
| AD domain account | After checking connectivity, inspect names, SPNs, and tickets, then authentication logs |
| Local account on the Windows file server | Start with credentials and blank passwords, existing connections, and protection requirements |
| NAS-specific account | Check the NAS account settings and authentication logs, along with guest access, signing, and NTLM restrictions |
| Unknown | Preserve client-side records and check the account accepted by the server |
Whether the PC belongs to a domain and which credentials this connection used are also different questions. In the examples below, CORP\alice is a domain account, while FILESRV01\alice is a local account on the file server. Having a user with the same name on your own PC does not necessarily give that user the same permissions on the server.45
In the diagram a solid line marks a relation that always holds and a dashed line marks a conditional one (the conditions are given per relation on the detail page). The full list of relations (19 in total, with evidence and certainty) and the definitions of the main concepts are collected on the knowledge map detail page (in Japanese). Data: JSON-LD / Turtle
2. Separate the stages hidden behind “cannot connect”
Opening a file involves establishing communication, negotiating SMB requirements, authenticating a session, connecting to a share, and performing a file operation. Successful authentication does not grant access to the share or file. A message saying that the network path was not found can even be associated with rejected guest access. Do not diagnose a DNS failure from that message alone.67
flowchart TB
accTitle: Stages before a shared file opens
accDescr: Connectivity, SMB negotiation, authentication, share connection, and file operations can fail separately.
net["Name resolution and TCP"] --> negotiation["SMB requirement negotiation"]
negotiation --> session["SESSION_SETUP: authentication"]
session --> tree["TREE_CONNECT: share"]
tree --> file["CREATE and other file operations"]
Figure 2: Success at one stage does not prove success at the next.
Here, success means performing the intended operation on the intended file. Seeing a PC under File Explorer’s Network view, seeing a list of shares, and reading a particular file are not equivalent. Record the actual failing UNC path and operation, rather than just whether a listing is visible.
3. Collect evidence before restarting or changing settings
Deleting connections or tickets at the beginning removes the state you wanted to compare. First record the time, UNC path, user, OS, and existing connections on the client. The following commands inspect state. When investigating a service failure, do not treat the results from this interactive terminal as results from the service itself.489
Get-Date -Format o
whoami /user
whoami /groups
Get-CimInstance Win32_OperatingSystem |
Select-Object Caption, Version, BuildNumber
net use
cmdkey /list
klist
Also collect the following where you have permission to query SMB connections. An access-denied result means “the query could not be performed,” not “there are no connections.” Label any results collected again as an administrator with that execution context. Silently elevating the entire investigation can change the logon session being compared.410
Get-SmbConnection | Format-List *
| Evidence | What it establishes | What it does not establish by itself |
|---|---|---|
whoami |
The command’s local execution identity | The account accepted by the remote share |
net use |
Share connections and mappings visible in that context | Connection state in a different session |
cmdkey /list |
Targets with stored credentials | Whether those credentials were used this time |
Get-SmbConnection |
Established connections, credentials, and related properties | The full history of a failed connection or a definitive authentication protocol |
klist |
Tickets in the target logon session | The authentication protocol used by this SMB connection |
In Get-SmbConnection, inspect Credential as well as UserName. The local logon identity and the credentials used for the share connection can differ. Comparing ServerName, ShareName, UserName, and Credential across successful and failed attempts helps establish whether you are comparing the same connection.4
flowchart TB
accTitle: Stored information versus active state
accDescr: Inspect stored credentials, SMB connections, and Kerberos tickets separately.
snapshot["Capture at the same time"] --> stored["Stored credentials"]
snapshot --> connection["Established SMB connections"]
snapshot --> ticket["Ticket cache"]
stored -.-> verify["Correlate actual use with logs"]
connection --> verify
ticket -.-> verify
Figure 3: Distinguish what is stored from what the connection under investigation actually used.
These outputs contain usernames, internal server names, IP addresses, and similar information. Restrict access to the collected records. Before sharing them externally, anonymize them while preserving the relationships needed for comparison. There is no need to publish passwords, hashes, or the tickets themselves.
4. Check name resolution and TCP 445 first
The following is an active connectivity test run on the client. Replace the server name with the actual connection name. Record name resolution and TCP connectivity separately.11
$Server = 'filesrv01.corp.example.com'
Resolve-DnsName -Name $Server
Test-NetConnection -ComputerName $Server -Port 445 -InformationLevel Detailed
If TcpTestSucceeded is False, investigate reachability before authentication at that point. Check the destination IP, VPN and routing, client and server firewalls, and the server’s listening endpoint. A successful or failed ping is not a successful or failed TCP 445 connection. Conversely, successful TCP connectivity leaves the share name, authentication, signing, and permissions unverified.11
flowchart TB
accTitle: Interpreting a TCP connection test
accDescr: A failed TCP 445 test leads to reachability investigation; a successful test leads to SMB and later stages.
tcp["Test TCP 445"] --> result{"Did it succeed?"}
result -->|"No"| route["Check destination, route, blocking"]
result -->|"Yes"| smb["Check SMB, authentication, access"]
Figure 4: TCP success is evidence that you can proceed to the next stage, not that authentication succeeded.
When a name and IP address behave differently, compare RemoteAddress and the name-resolution results. A short name, FQDN, and alias do not necessarily reach the same IP. Even when they do, the authentication requirements in the next section remain separate. If changing the name appears to fix the problem, record what changed.
5. Check Kerberos prerequisites when names and IPs differ
5.1. The same IP does not imply the same authentication
By default, Windows does not attempt Kerberos when the target name is an IP address. Exceptions can be configured using TryIPSPN and IP-based SPNs, but the standard approach in this guide is to establish the correct DNS name and service identity. Success with an IP address is evidence for comparing name resolution, authentication, and existing connections; it does not demonstrate a permanent fix.12
flowchart TB
accTitle: Authentication requirements depend on the connection name
accDescr: Check name-based Kerberos requirements for hostname targets and account for the default behavior of not attempting Kerberos for IP-address targets.
unc["Target notation in the UNC path"] --> name["Hostname or FQDN"]
unc --> ip["IP address"]
name --> spn["Check the SPN for that name"]
ip --> fallback["No Kerberos attempt by default"]
Figure 5: Even when two names identify the same device, changing the connection name changes authentication conditions.
Kerberos requests tickets using a service identifier called an SPN. Resolving a DNS alias and correctly authenticating the service under that alias are different things. Also, not every Kerberos failure results in an NTLM fallback. Use actual logs to distinguish whether fallback is possible, whether authentication failed, and whether NTLM is restricted.131
5.2. Separate ticket acquisition from server acceptance
In an AD environment, administrators should inspect the SPN registration for the name used to connect. The following read-only queries are for an administration machine that can query AD. Confirm that the required tools and directory read permissions are available.14
setspn -Q cifs/filesrv01.corp.example.com
setspn -Q HOST/filesrv01.corp.example.com
The absence of an explicit cifs/... registration does not by itself prove that an SPN is missing. For computer accounts, a HOST SPN can substitute for service classes such as cifs. Conversely, finding a registration does not rule out problems such as ownership by an account other than the actual service account, or duplicate registrations. AD administrators should verify ownership before changing registrations; do not add an SPN mechanically just because a query returned no match.14
flowchart TB
accTitle: What SPN and ticket checks establish
accDescr: SPN resolution, ticket acquisition, and acceptance by the file server are separate checks.
lookup["SPN owner and HOST substitution"] --> issue["Can a ticket be acquired?"]
issue --> accept["Is it accepted for actual SMB authentication?"]
accept --> logs["Correlate with server-side logs"]
Figure 6: Acquiring a ticket does not guarantee that the file server will accept it.
After preserving the original state, you may need to try klist get cifs/filesrv01.corp.example.com. This is an active test that requests a ticket and changes the cache. If it fails, investigate DC reachability, time synchronization, names, and SPNs. If it succeeds, SMB access is still not guaranteed. Do not apply an interactive user’s ticket results to a problem occurring in a service.81
For a NAS without a domain or authentication with local accounts, first check the authentication methods and account settings that the share supports rather than starting with AD SPN repairs. Even in environments with newer authentication features, prefer connection records to assumptions based on product names.
6. File Explorer succeeds, but the application fails
6.1. A matching username is not enough
Compare the execution account, logon session, elevation, UNC path, and operation. A service runs in a different session from an interactive logon even when configured with the same user account. Drive-letter mappings are also scoped to logon sessions, so first distinguish Z:\data from \\server\share\data. Switching to a UNC path addresses the drive-letter problem; it does not also grant authentication or permissions.10
flowchart TB
accTitle: File Explorer and a service use different contexts
accDescr: Even on the same PC, compare interactive and service logons as separate sessions with their own credentials.
pc["Same PC"] --> explorer["Interactive logon"]
pc --> service["Service logon"]
explorer --> a["Connections and access in that session"]
service --> b["Connections and access in another session"]
Figure 7: The same PC and username do not necessarily share the same connection state.
Have the failing application record its process ID, execution identity, elevation state, actual path, operation name, original exception, and error code. If it uses impersonation, also capture the effective identity of the thread performing the operation. Do not close a service investigation merely because an administrator’s PowerShell session could open the share.
6.2. Service accounts and task logon types
When a service uses its default credentials, LocalSystem presents the computer’s credentials on the network, whereas LocalService presents anonymous credentials. For LocalSystem access to a domain share, the relevant permissions belong to the identity actually used, such as the computer account, rather than the interactive user. Implementations using explicit credentials or impersonation require their own checks.1516
flowchart TB
accTitle: Local privileges versus the remote identity
accDescr: With default network credentials, LocalSystem and LocalService present different identities.
service["Service default credentials"] --> system["LocalSystem"]
service --> local["LocalService"]
system --> machine["Computer credentials"]
local --> anonymous["Anonymous credentials"]
Figure 8: Extensive local privileges do not make the service the interactive user on the remote share.
In Task Scheduler, inspect the logon type as well as the account name. TASK_LOGON_S4U stores no password and provides no access to the network or encrypted files. Do not assume that a task configured not to store a password has the same conditions as a normal interactive logon. Configure business processes with an appropriate service account, logon type, and least-privilege permissions rather than depending on someone opening the share in File Explorer first.17
7. Distinguish four meanings of “no password required”
The absence of a prompt is not evidence of unauthenticated access. The current logon credentials, stored credentials, or an established SMB session may be in use. An entry in cmdkey /list alone does not establish that the connection used it.49
| What you observe | What to verify |
|---|---|
| No password was entered | Whether logon credentials or stored credentials authenticated the connection |
| Authentication happened earlier, but there is no prompt this time | Whether an existing SMB session is being reused |
| The remote local account has no password | Whether the blank-password restriction applies |
| The share accepts the connection as a guest | Whether guest access is compatible with signing and encryption requirements |
flowchart TB
accTitle: What the absence of a password prompt means
accDescr: Do not infer unauthenticated access from the UI; distinguish credentials, an existing session, a blank password, and guest access.
prompt["No password prompt appears"] --> identity["Check the identity actually accepted"]
identity --> authenticated["Credentials or existing session"]
identity --> blank["Account with a blank password"]
identity --> guest["Guest"]
Figure 9: Identical-looking interfaces can hide different authentication mechanisms.
When the file server runs Windows and its policy limiting local accounts with blank passwords to console logon is enabled, ordinary network logons with those accounts are restricted. This is separate from the setting permitting guest access. If someone says that a blank-password user connected previously, first verify on the server whether that account actually authenticated the earlier connection. Rather than disabling the restriction as the first response, consider an appropriate account with a password for share access.23
If you administer the Windows file server, run the following in an administrator PowerShell session on that server while access is working. Do not confuse Get-SmbConnection, run on the client, with Get-SmbSession, run on the server accepting the connection.18
Get-SmbSession |
Select-Object SessionId, ClientComputerName, ClientUserName, NumOpens
Use ClientComputerName and the time of the attempt to locate the relevant session, then inspect ClientUserName. This describes currently established SMB sessions; it does not explain an earlier failed connection or determine whether Kerberos or NTLM was used. If the same client has multiple sessions, also correlate application operation times and SMB-specific records. If the connection has already closed, proceed to the logs in Section 12.18
8. Error 1219 and failures when switching users
Error 1219 indicates a conflict involving multiple connections to the same server under different usernames. Existing connections to that server matter even when the share names differ. First use net use and Get-SmbConnection to inspect connections to the target server. Before changing credentials, identify open files and applications using those connections.1920
flowchart TB
accTitle: Credentials can conflict across different shares
accDescr: Adding a connection under another user from the same connection context to the same server can conflict even if the share name differs.
existing["Already connected to server as user A"] --> new["Connect to another share as user B"]
new --> conflict["Credential conflict: 1219"]
conflict --> inspect["Inspect existing connections by server"]
Figure 10: Examine the server and credentials together, not just the share name.
The following changes connection state. Only after stopping use of the target and obtaining approval for the impact should you disconnect and reconnect the specific connection you identified. Replace the example server, share, and account names. * requests an interactive password prompt; do not place the password directly on the command line.5
net use "\\filesrv01.corp.example.com\data" /delete
net use "\\filesrv01.corp.example.com\data" /user:CORP\alice * /persistent:no
Disconnecting one share can leave connections to other shares or uses on the same server. Inspect the list again and clear only the necessary connections for the target server. Do not make net use * /delete or indefinitely avoiding conflicts with aliases and IP addresses the standard fix. Afterward, verify that the actual application connects using its intended credentials.
9. When restarting fixes it, ask what changed
Because a restart changes multiple conditions, an improvement alone cannot identify a single cause. The following table provides dimensions for comparison, not a guarantee that an action resets precisely and only the stated scope.489
| Action or information | What to watch when comparing |
|---|---|
| Restarting the application | Application state changes, but OS-level share connections may remain |
| Disconnecting and reconnecting the target share | Check whether connection and authentication are retried, and whether other connections remain |
| Signing out or restarting the OS | Multiple conditions change, including sessions, applications, and networking |
| Stored credentials | Separate from established connections; their registration normally survives an OS restart |
flowchart TB
accTitle: Interpreting a successful restart workaround
accDescr: A restart changes several conditions, so improvement alone cannot identify one cause.
reboot["Restarting restored access"] --> app["Application state"]
reboot --> session["Connection and logon state"]
reboot --> network["Network and other state"]
app --> evidence["Need before-and-after evidence"]
session --> evidence
network --> evidence
Figure 11: A restart may restore service without proving the cause.
Consider a hypothetical example in which the successful attempt reused an SMB connection under another account, whereas the failed attempt required new authentication. The investigation should target the unintended credentials and the reason new authentication failed, not restarting itself. Aligning timestamps, connection names, execution contexts, and accepted accounts across both outcomes makes the next step concrete.
Even when restarting is urgent to restore service, preserve the Section 3 outputs and the original error first where possible. After restarting, try the same operation in the original application before opening the share in File Explorer. Intervening operations make it harder to distinguish whether the restart restored access or another operation changed the connection conditions. This is not a prohibition on restarting; it is a recording procedure that supports both recovery and diagnosis.
klist purge changes state by deleting tickets. It does not target a connection that is not using Kerberos and can affect other services in the same logon session. Avoid “just clear it” before preserving evidence.8
10. Failures after updates or on only some PCs
10.1. Do not conflate signing, guest access, and NTLM blocking
SMB signing protects against message tampering; it is a separate setting from whether authentication uses Kerberos or NTLM. Microsoft’s dedicated SMB signing guide states that Windows 11 24H2 Pro, Enterprise, and Education require inbound and outbound signing by default, while Windows Server 2025 requires outbound signing. Check the edition and effective configuration, not just the OS name.7
For Home, that guide says signing is not required, whereas the Windows 11 24H2 change list includes Home among the editions requiring signing by default. The documents therefore differ. Rather than dismissing signing as irrelevant on Home, use the commands below to inspect the computer under investigation.721
flowchart TB
accTitle: SMB protection requirements to inspect separately
accDescr: Authentication protocols, SMB signing, and guest access are different settings that each need to be checked.
policy["Inspect effective policy"] --> auth["Kerberos and NTLM permissions"]
policy --> signing["SMB signing requirement"]
policy --> guest["Guest access permission"]
Figure 12: Checking one setting does not establish that the remaining requirements are satisfied.
Guest access does not support ordinary SMB signing or encryption. Consequently, allowing guests alone may not resolve the problem if signing is still required. Prefer configuring authenticated accounts and signing on the NAS. Do not treat disabling signing or installing SMB1 as an easy workaround.3
10.2. Read the actual configuration, not just the defaults
Collect the following in an administrator PowerShell session on the client. This reads configuration; distinguish it from capturing an interactive user’s connection state.722
$config = Get-SmbClientConfiguration
$config | Format-List RequireSecuritySignature, EnableInsecureGuestLogons
if ($config.PSObject.Properties['BlockNTLM']) {
$config | Format-List BlockNTLM
} else {
'BlockNTLM property is not exposed on this system.'
}
RequireSecuritySignature: False means that signing is not required; it does not prove that every connection is unsigned. If BlockNTLM is absent on an older system, that does not prove other NTLM restriction policies are absent. SMB client NTLM blocking is available beginning with Windows 11 24H2 and Windows Server 2025, and it can also be specified for individual share connections. Inspect the application’s connection options and organization policies as well as global settings.722
flowchart TB
accTitle: Global settings do not determine the entire connection
accDescr: Check organization policies, connection options, and server requirements in addition to OS defaults.
defaults["OS and edition defaults"] --> effective["Actual connection requirements"]
organization["Organization policy and connection options"] --> effective
server["Server capabilities and requirements"] --> effective
effective --> log["Check logs for the rejection reason"]
Figure 13: Timing that coincides with an update is a clue; use effective settings and rejection logs to reach a conclusion.
NTLM deprecation, NTLMv1 removal, and a policy rejecting NTLM are not the same issue. See Auditing and migration for NTLM retirement for protocol migration and organization-wide auditing. Here, concentrate on the requirement that rejected this connection.
11. Authentication succeeds, but opening or saving fails
For a Windows share, check both share permissions and the permissions on the underlying folders and files. Both must permit the same operation for the same identity. Inspect group membership, deny entries, and inheritance; adding Everyone does not mean all access must succeed. Check effective access using the actual backing path on the server and the identity the server actually accepted.23
flowchart TB
accTitle: Authentication is different from authorization
accDescr: Even after authentication succeeds, both share and file permissions must allow the requested operation.
identity["Authenticated identity"] --> share["Share permissions"]
share --> file["Backing file permissions"]
file --> operation["Perform the intended operation"]
Figure 14: Establishing identity and deciding what that identity may do are separate steps.
Listing a folder, reading a file, creating, overwriting, renaming, and deleting are different operations. For an application that saves by creating a temporary file and replacing the original, successful reading is not enough. Beyond authentication and permissions, investigate sharing violations, capacity, paths, or files that disappeared using the original error.24
.NET’s File.Exists also returns false for conditions such as insufficient permissions. Check whether the application’s “file does not exist” message is based solely on that return value. Diagnostic code should record exceptions from the operation you actually need to perform.25
$Path = '\\filesrv01.corp.example.com\data\sample.txt'
try {
Get-Item -LiteralPath $Path -ErrorAction Stop |
Select-Object FullName, Length, LastWriteTime
} catch {
$_.Exception.GetType().FullName
'HRESULT=0x{0:X8}' -f $_.Exception.HResult
$_.Exception.Message
}
This checks metadata retrieval, not successful reading or writing of the contents. To test actual I/O, reproduce the intended operation on a test file after verifying authorization and impact. Preserving errors instead of converting all of them into “file not found” also makes the next investigation easier.
12. Correlate logs to narrow down the cause
12.1. Distinguish the client, file server, and DC
On the client, inspect Microsoft-Windows-SMBClient/Connectivity and Microsoft-Windows-SMBClient/Security in Event Viewer. On a Windows file server, Security events 4624 for successful logon and 4625 for failed logon can help when auditing is enabled. For SMB network logons, check logon type 3. On a NAS, use its product-specific authentication and share logs.262728
Logon type 3 in event 4624 is not specific to SMB. Even when the time, source, and account match, the event alone does not identify a share or SMB session. Correlate it with Get-SmbConnection, SMB-specific logs, and a trace where necessary.27426
flowchart TB
accTitle: Correlating logs from three locations
accDescr: Correlate client, file-server, and, when needed, DC logs using time and connection information.
client["Client: SMBClient logs"] --> match["Match time, source, and account"]
server["File server: authentication logs"] --> match
dc["DC: tickets and credential validation"] --> match
match --> result["Read as evidence for the same attempt"]
Figure 15: Without matching location and time, you can mistake an unrelated connection’s logs for the cause.
Run the following on the Windows file server, with permission to read the Security log. Record the time immediately before the attempt under investigation and ask the administrator to confirm that the required success and failure auditing is enabled. This example extracts the last ten minutes and uses XML field names rather than localized message text or field positions.2728
$Start = (Get-Date).AddMinutes(-10)
Get-WinEvent -FilterHashtable @{
LogName = 'Security'; Id = 4624, 4625; StartTime = $Start
} -ErrorAction Stop | ForEach-Object {
$event = $_
$xml = [xml]$event.ToXml()
$fields = @{}
foreach ($item in $xml.Event.EventData.Data) {
$fields[$item.Name] = [string]$item.'#text'
}
if ($fields['LogonType'] -eq '3') {
[pscustomobject]@{
Time = $event.TimeCreated
EventId = $event.Id
User = $fields['TargetUserName']
Domain = $fields['TargetDomainName']
SourceIp = $fields['IpAddress']
Authentication = $fields['AuthenticationPackageName']
Status = $fields['Status']
SubStatus = $fields['SubStatus']
LogonId = $fields['TargetLogonId']
}
}
} | Format-List
For 4624, read the target account for the new logon, not the Subject that reported the event. In 4625, the target username is the name that was attempted, not an accepted identity. Read Status and SubStatus together for the failure reason. If AuthenticationPackageName says only Negotiate, that alone does not establish whether Kerberos or NTLM was used.2728
12.2. When there are no logs, or only a ticket
Finding no event does not prove that authentication did not occur. Check auditing, read permissions, clock differences, whether you are inspecting the right server, reuse of an existing session, and failure before authentication. Reusing an existing SMB connection does not generate a new 4624 every time a file is opened.274
flowchart TB
accTitle: Interpreting missing log events
accDescr: When an event is missing, check collection conditions and existing sessions rather than immediately concluding that no authentication occurred.
absent["No matching event"] --> collection["Auditing, permissions, time, target"]
absent --> reuse["Existing session reuse"]
absent --> before["Failure before authentication"]
Figure 16: A missing record is not equivalent to an operation never having occurred.
In AD environments, DC event 4769 helps identify Kerberos service-ticket requests, while 4776 helps identify NTLM credential validation. Ticket issuance alone does not prove use or acceptance by the file server, and 4776 alone does not identify SMB as the target service. Combine time, source, target account, and server-side records. If ambiguity remains, have an administrator collect a narrowly scoped trace.2930
13. Verify reliable operation after the fix
Apply one fix at a time and retain the reason and before-and-after evidence. If the name was wrong, correct the name and destination. If credentials differed, standardize on the intended account. If signing was unsupported, address support on the server. Disabling protection features together without understanding the cause is not a design for reliable operation.
flowchart TB
accTitle: From one successful attempt to recurrence testing
accDescr: After making one change, retest the original failure conditions and reconnection conditions.
evidence["Evidence identifying the cause"] --> change["One targeted fix"]
change --> original["Test the original app and operation"]
original --> reconnect["Retest after reconnecting or restarting"]
reconnect --> record["Record differences and results"]
Figure 17: Verify success under the original failure conditions, not just a single successful attempt in File Explorer.
| Investigation notes | What to retain |
|---|---|
| Environment | Client and server OS, edition, build, and AD versus NAS-specific authentication |
| Reproduction conditions | Time and timezone, UNC path, destination IP, application, identity, elevation, and operation |
| Evidence | Original error, existing connections, credentials used, and related events |
| Fix | One change, its reason, impact, and rollback procedure |
| Verification | Results for the same operation, including sign-out, restart, or VPN reconnection where relevant |
This article cannot uniquely identify the cause of every implementation or network configuration. Nevertheless, knowing which stage failed, which conditions differed from success, and what remains unverified makes the next investigation concrete. Do not stop at “restarting fixes it.” Verify that the intended identity connects through the intended path.
References
-
Microsoft Learn, Kerberos authentication troubleshooting guidance. Checking names, time, DCs, and errors. ↩ ↩2 ↩3
-
Microsoft Learn, Accounts: Limit local account use of blank passwords to console logon only. Restricting local accounts with blank passwords. ↩ ↩2
-
Microsoft Learn, Insecure guest logons in SMB2 and SMB3. Guest access and signing/encryption restrictions. ↩ ↩2 ↩3
-
Microsoft Learn, Get-SmbConnection. Querying established SMB connections and credentials. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
Microsoft Learn, Net use. Deleting a specified connection and prompting for a password. ↩ ↩2
-
Microsoft Learn, SMB troubleshooting guidance. Starting points for investigating SMB communication and failures. ↩
-
Microsoft Learn, Control SMB signing behavior. Signing requirements and defaults by OS and edition. ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, klist. Listing, acquiring, and deleting tickets are different operations. ↩ ↩2 ↩3 ↩4
-
Microsoft Learn, cmdkey. Managing stored credentials. ↩ ↩2 ↩3
-
Microsoft Learn, Services and Redirected Drives / Mapped drives are not available from an elevated prompt. Logon sessions and drive mappings for services and elevated processes. ↩ ↩2
-
Microsoft Learn, Test-NetConnection. Diagnosing TCP ports and destinations. ↩ ↩2
-
Microsoft Learn, Configuring Kerberos over IP. Default IP-target behavior and exceptional configurations. ↩
-
Microsoft Learn, Service principal names. SPNs as service identifiers. ↩
-
Microsoft Learn, setspn. SPN queries and HOST substitution for service classes. ↩ ↩2
-
Microsoft Learn, LocalSystem Account. Computer credentials presented to remote servers. ↩
-
Microsoft Learn, LocalService Account. Anonymous network credentials. ↩
-
Microsoft Learn, TASK_LOGON_TYPE enumeration. Network access restrictions of S4U logon. ↩
-
Microsoft Learn, Get-SmbSession. Querying established SMB sessions and client accounts on the file server. ↩ ↩2
-
Microsoft Learn, System Error Codes (1000–1299). Definition of ERROR_SESSION_CREDENTIAL_CONFLICT. ↩
-
Microsoft Learn, Cannot use different credentials for a network share. Connections to the same server with different credentials. ↩
-
Microsoft Learn, What’s new in Windows 11, version 24H2 for IT pros. Changes to default SMB signing requirements. Note the discrepancy about Home with the dedicated SMB signing guide. ↩
-
Microsoft Learn, Block NTLM connections on SMB. Global and per-connection NTLM blocking. ↩ ↩2
-
Microsoft Learn, Access control overview. Identities, permissions, inheritance, and effective access. Microsoft Learn, SMB share and NTFS permissions. ↩
-
Microsoft Learn, File Security and Access Rights. Access rights for individual file operations. ↩
-
Microsoft Learn, File.Exists. Returning false on access failures. ↩
-
Microsoft Learn, SMB troubleshooting guidance. SMB event logs and further investigation. ↩ ↩2
-
Microsoft Learn, 4624: An account was successfully logged on. Recording new logons and authentication packages. ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, 4625: An account failed to log on. Attempted accounts, Status, and SubStatus. ↩ ↩2 ↩3
-
Microsoft Learn, 4769: A Kerberos service ticket was requested. Service-ticket requests on the DC. ↩
-
Microsoft Learn, 4776: The computer attempted to validate the credentials for an account. NTLM credential validation records. ↩
Related Articles
Recent articles sharing the same tags. Deepen your understanding with closely related topics.
SMB Signing and LDAP Channel Binding — Closing the "Other Half" of Your NTLM Defences in Practice
SMB signing and LDAP signing/channel binding are the defences that limit the damage from relay attacks while you work towards retiring NT...
NTLM and Kerberos Explained with Diagrams — Why Authentication Falls Back to NTLM
An illustrated comparison of NTLM and Kerberos: challenge/response, TGTs and service tickets, the conditions under which Negotiate falls ...
Will NTLM Deprecation Stop Your Business Apps? — How to Collect Audit Logs, and the Order in Which to Kill Dependencies
A practical procedure for finding out where your Windows environment and business applications depend on NTLM ahead of its retirement: au...
What Does Windows' "Memory Usage" Actually Mean? — Correctly Reading Working Set, Private Bytes, Commit, and the Page File
Task Manager's Memory, Working Set, Private Bytes, and Commit are not the same figure. This article explains the relationship between Win...
Investigating Event Logs in Practice with Get-WinEvent — Filtering Speed Decides How Long the Investigation Takes
How to make Windows event log investigation efficient with PowerShell. Covers why filtering with Where-Object is slow, when to use Filter...
Related Topics
These topic pages place the article in a broader service and decision context.
Windows Technical Topics
Topic hub for KomuraSoft LLC's Windows development, investigation, and legacy-asset articles.
Where This Topic Connects
This article connects naturally to the following service pages.
Windows App Development
We support Windows desktop applications that involve resident processing, device integration, operational logging, and maintainable structure.
Frequently Asked Questions
Common questions about the topic of this article.
- If restarting restores access to a file share, does that prove a cache caused the problem?
- No. Restarting changes the application, logon sessions, SMB connections, network state, and other conditions together. Before restarting, record the destination, execution identity, existing connections, tickets, and errors, then compare them with a successful attempt. Stored credentials and established SMB connections are different things.
- Why can I open a share by IP address but not by server name?
- First check whether both forms reach the same destination IP address. Even when they do, their authentication conditions differ: Windows does not attempt Kerberos for an IP-address target by default. Investigate name resolution separately from SPNs and authentication. Success with an IP address alone is not a permanent fix.
- Why can File Explorer access a share that my application cannot?
- The execution account, logon session, elevation, credentials, or requested operation may differ. A service runs in a different session from an interactive logon. Matching usernames do not establish equivalent conditions, so inspect the failing process itself and the server-side authentication records.
- Does connecting without a password prompt mean the connection is using guest access?
- The absence of a prompt is not enough to tell. The connection may use the current logon credentials, stored credentials, or an existing SMB connection. A local account with a blank password and a guest connection are also different. Check which account the server actually accepted.
- If klist shows a cifs ticket, is SMB connected using Kerberos?
- Holding a ticket and using it for the SMB connection under investigation are different facts. Correlate server-side logs with the connection time, source, and account. klist get requests a ticket; it is not a passive observation of the original state.