You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用New-PSDrive映射IPC$隐藏共享时出现“指定驱动器根目录”错误

问题描述

执行以下PowerShell代码尝试映射远程机器的隐藏IPC共享:

$Username = "administrator"
$Target = "\\target-win\ipc$"
$Password = Read-Host -Prompt "Enter password:" -AsSecureString

$Credential = New-Object System.Management.Automation.PSCredential($Username, $Password)

cls

New-PSDrive -Name "X" -Root $Target -PSProvider "FileSystem" -Credential $Credential
"";""
Net Use

实际执行后,net use显示IPC共享已成功建立连接,但New-PSDrive抛出错误:

New-PSDrive : The specified drive root "\\target-win\ipc$" either does not exist, or it is not a folder.
At line:10 char:1
+ New-PSDrive -Name "X" -Root $Target -PSProvider "FileSystem" -Credent ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ReadError: (X:PSDriveInfo) [New-PSDrive], IOException
+ FullyQualifiedErrorId : DriveRootError,Microsoft.PowerShell.Commands.NewPSDriveCommand

该问题仅在映射隐藏共享(含本地隐藏共享)时出现,普通非隐藏远程共享无异常,希望解决错误而非忽略它。

解决方案
  • 核心原因:IPC$是Windows的命名管道共享,用于进程间通信,并非文件系统目录。New-PSDrive的FileSystem Provider要求目标必须是可枚举的文件夹结构,因此会报错;而net use不做该校验,所以能成功建立连接。
  • 针对性解决思路:
    1. 若仅需验证身份并建立IPC连接,无需映射驱动器号:直接使用net use即可,或者改用PowerShell的SMB Provider(PowerShell 5.1及以上支持),它专门用于处理SMB共享,包括IPC这类特殊共享:
      $Username = "administrator"
      $Target = "\\target-win\ipc$"
      $Password = Read-Host -Prompt "Enter password:" -AsSecureString
      
      $Credential = New-Object System.Management.Automation.PSCredential($Username, $Password)
      
      # 用SMB Provider建立IPC连接,无需本地驱动器号
      New-PSDrive -Name "IPC_Target" -Root $Target -PSProvider SMB -Credential $Credential
      
      net use
      
    2. 若要映射普通文件类隐藏共享(如C$),可以继续使用FileSystem Provider,因为这类共享本质是文件系统目录,符合Provider要求。
    3. 避免给IPC共享分配本地驱动器号:IPC共享不需要也不支持文件系统驱动器映射,它的作用是建立身份验证会话,后续访问其他共享时会自动复用这个会话。

内容的提问来源于stack exchange,提问作者sbagnato

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:52:34