【问题标题】:Mapped network drives are not showing in My Computer映射的网络驱动器未显示在我的电脑中
【发布时间】:2017-02-24 10:01:57
【问题描述】:

我正在尝试使用 PowerShell 5.0 创建外部网络驱动器。我需要那些驱动器显示在我的电脑中。 为此,我使用了这个跟随命令。

New-PSDrive -Name "X" -PSProvider FileSystem -Root "\\192.168.0.1\hde_path" -Persist

这个命令有什么问题吗?因为根据我的理解,如果我使用 -Persist,它应该会显示在“我的电脑”窗口中。

使用此功能后,映射的驱动器 X: 未显示在“我的电脑”中。

提前致谢!

【问题讨论】:

  • 您是否在与登录用户相同的用户上下文中运行的 powershell 窗口中运行了该命令?
  • 是的@LucaClavarino
  • 你能在 HKEY_CURRENT_USER\Network 下的注册表中看到一个“X”键吗? Get-ChildItem X: 显示您分享的正确内容?
  • 运行net use会得到什么

标签: powershell windows-7-x64 powershell-5.0


【解决方案1】:

我遇到了同样的问题。我的解决方案是以“正常模式”而不是“管理员模式”(PS 以管理员身份运行)启动 powershell ISE。我不知道为什么会出现这种现象,但是在我以正常模式运行 powershell ISE 后,驱动器显示在资源管理器中。 问候

【讨论】:

  • 什么是普通模式?如果我使用$identity = [Security.Principal.WindowsIdentity]::GetCurrent() $principal = New-Object Security.Principal.WindowsPrincipal $identity $isAdmin = $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) 我会错的。我在正常模式吗?在这种模式下,我在资源管理器中看不到映射的驱动器。
  • 奇怪的是这有效.. 只有微软可以解决这样的问题。 “支持工单生成器”也称为 STG。
【解决方案2】:

当我从脚本运行它时,它不起作用,因为会话在脚本完成时到期。

当我粘贴到 PowerShell 窗口时它可以工作,然后我可以看到共享出现在这台电脑中

【讨论】:

  • 太好了,看来脚本执行就像是linux中的一个子shell。
【解决方案3】:

欢迎使用 Windows 10 和无休止的强制用户帐户控制问题。

您会注意到,如果您在计算机中映射网络驱动器,然后以管理员身份运行 PowerShell,您将无法访问驱动器。我假设反过来也是如此。

不幸的是,没有办法关闭这个“功能”,至少在不破坏其他一切的情况下是这样。您只需管理运行 PowerShell 的访问级别,映射网络驱动器必须在用户级别完成。

【讨论】:

    【解决方案4】:

    我想你把命令放在一个 ps1 文件中。正如这篇官方文章中解释的那样: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-psdrive

    您有两种解决方案:

    1. 在调用 ps1 文件之前添加一个前导点。假设您的 ps1 文件名为 MyDrive.ps1。您必须运行:
      . .\MyDrive.ps1

    2. 您必须在命令中使用-Scope Global 参数。您的代码应该是

      New-PSDrive -Name "X" -PSProvider FileSystem -Root "\\192.168.0.1\hde_path" -Scope Global -Persist

    祝你好运

    【讨论】:

      【解决方案5】:

      所有当您想在文件资源管理器中查看驱动器时,说明您应该使用-Persistent 或/和-Scope 'Global' 的答案错误

      甚至 Microsoft Docs 中的文档也是错误

      PSDrive 的映射是没用的。您可以将网络路径保存在$Z 中并在脚本中将其用作路径,但用户需要在文件资源管理器中进行映射。这种情况没有涵盖...很容易。

      其他方式如(New-Object -ComObject "Wscript.Network").MapNetworkDrive("Z:", "\\192.168.20.100\share", $True)New-SmbMapping -LocalPath 'Z:' -RemotePath "\\192.168.20.100\share" 对我不起作用。

      您可以发挥创意,学习如何操作窗口并自动创建映射的 UI。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-13
        • 1970-01-01
        • 2010-10-08
        • 1970-01-01
        • 1970-01-01
        • 2021-04-15
        相关资源
        最近更新 更多