解决方案

解决方案

我所处的环境中,我们的许多个人资料信息被重定向到网络共享(例如\\foo\Home\myuser

最近,我尝试以 身份访问网络共享otheruser,但第二天重新启动并登录后,我无法访问我自己的myuser网络共享(因此我的正常桌面不会显示,Visual Studio iisexpress 不会启动等)。

runas我使用时执行的唯一命令otheruser是目录列表命令(在不同时间使用各种/profile/noprofile/env选项),所以我无法想象这会如何破坏我的默认配置文件,然而,尽管我无法访问\\foo\Home\myuser,但我访问\\foo\Home\otheruser没有错误(目录列表为空)。

/noprofile如果我现在以(例如)的身份运行runas /noprofile /user:mydomain\myuser powershell,情况就会相反 - 我访问\\foo\Home\myuser但无法访问\\foo\Home\otheruser

我还注意到,访问的错误消息\\foo\Home\myuser不是An unexpected network error occurred简单的“访问被拒绝”错误。但是,访问adifferentuser有时会出现一个错误,有时会出现另一个错误,所以我不确定这是否相关。

因此,似乎我的用户配置文件中的某些内容不知何故被损坏/交换了。我不知道下一步该怎么做——otheruser在注册表中进行文本搜索后,我没有找到任何有用的信息。

Powershell 记录如下:

#############################################################
# Under "normal" powershell window launched from start menu #
# (logged in as mydomain\myuser)                            #
#############################################################
PS C:\> whoami
mydomain\myuser
PS C:\>
PS C:\> dir \\foo\Home\myuser\
dir : An unexpected network error occurred.
At line:1 char:1
+ dir \\foo\Home\myuser\
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (\\foo\Home\myuser\:String) [Get-ChildItem], IOException
    + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand
 
PS C:\> dir \\foo\Home\otheruser
PS C:\>
PS C:\> dir \\foo\Home\adifferentuser\
dir : Access to the path '\\foo\Home\adifferentuser\` is denied.
At line:1 char:1
+ dir \\foo\Home\adifferentuser
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (\\foo\Home\adifferentuser\:String) [Get-ChildItem], UnauthorizedAccessException
    + FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

PS C:\> runas /noprofile /user:mydomain\myuser powershell
Enter the password for mydomain\myuser
Attempting to start powershell as user "mydomain\myuser"
PS C:\>
##########################################################################
# Under new powershell window running as mydomain\myuser with /noprofile #
##########################################################################
PS C:\> whoami
mydomain\myuser
PS C:\>
PS C:\> dir \\foo\Home\myuser

Mode            LastWriteTime   Length  Name
----            -------------   ------  ----
d-----   7/12/2022    7:07 AM           SomeDir
d-r---   10/5/2022    5:38 PM           Documents

PS C:\> dir \\foo\Home\otheruser
dir : An unexpected network error occurred
At line:1 char:1
+ dir \\foo\Home\otheruser
+ ~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (\\foo\Home\otheruser\:String) [Get-ChildItem], IOException
    + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand

PS C:\> dir \\foo\Home\adifferentuser
dir : A unexpected network error occurred.
At line:1 char:1
+ dir \\foo\Home\adifferentuser
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ReadError: (\\foo\Home\adifferentuser\:String) [Get-ChildItem], IOException
    + FullyQualifiedErrorId : DirIOError,Microsoft.Powershell.Commands.GetChildItemCommand

PS C:\>

答案1

解决方案

  1. 从开始菜单启动“凭证管理器”
  2. 单击“Windows 凭据”
    • 这将分为三个部分:
      1. Windows 凭据
      2. 基于证书的凭证
      3. 通用凭证
  3. 删除所有存储的、与导致困难的路径相关的凭证。检查所有 3 个部分。
    • 就我而言,我foo从“Windows 凭据”和“通用凭据”部分中删除了一个条目

解释

看来,在我尝试runas或其他尝试映射驱动器\\foo\adirectory(而不是的子目录\\foo\Home\)的过程中,凭据已与凭据一起存储在foo“Internet 或网络地址”的 Windows 凭据管理器中otheruser

将凭证存储在凭证管理器中是其他操作的副作用 - 我从未将它们明确添加到凭证管理器中。

然而,这种行为看起来一致可以/savecred选择runas。所以很可能我曾经尝试过这个选项(虽然我没有明确的记忆/记录这样做过)。

因此任何试图访问任何根的子路径\\foo\正在使用otheruser凭证,这解释了奇怪的行为。

从“Windows 凭据”部分下的凭据管理器中删除凭据并重新启动即可解决问题。

重启后,我看到另一个“通用凭据”也适用foootheruser。我也将其删除了。

相关内容