【问题标题】:Creating SymbolicLink with PowerShell does not work使用 PowerShell 创建 SymbolicLink 不起作用
【发布时间】:2017-09-07 06:23:30
【问题描述】:

我以管理员身份运行 PowerShell,并尝试创建指向另一个目录的符号链接。 为此,我想使用New-Item cmdlet,如 Microsoft documentation.

New-Item -ItemType SymbolicLink -Path C:\Temp -Name TestDir -Value C:\LinkedDir

我确定所有目录(符号链接本身除外)都存在,但我仍然收到此错误:

新项目:键入未知类型。只能使用“文件”和“目录”。 在行:1 行:9 + 新项目

如果我像这样使用 New-Item cmdlet

PS C:\Temp> New-Item -ItemType SymbolicLink

我可以手动输入路径,这意味着我的 PowerShell 实际上知道 cmdlet。

有谁知道问题出在哪里,可以帮助我吗?

【问题讨论】:

  • 你的命令语法没有错,它对我有用。您使用的是什么版本的 PowerShell / Windows?
  • “键入未知类型。”?有人在豁免检定与拼写错误的情况下严重失败。如果我指定了未知类型,我会得到“该类型不是文件系统的已知类型。只能指定“文件”、“目录”或“符号链接”。 (PS 5)。
  • @MarkWragg Windows 7 和 PS 2.0 - 我想我会尝试更新我的 PS

标签: powershell symlink


【解决方案1】:

上面的代码不适用于 PowerShell 2.0。 在 Mark Wragg 询问我使用哪个 PS 版本后,我升级到 4.0 并且它工作正常。 看来,New-Item cmdlet 中的某些参数在 PS 2.0 中不受支持。

【讨论】:

    【解决方案2】:

    New-Item SymbolicLink 错误解决方法:

    在我的电脑上,这个命令不起作用:

    New-Item -ItemType SymbolicLink -Path $link_fullpath -Target $Target
    

    如果$link$target 在同一个单元上,例如,如果$Target= "y:\xxx\myfile1"$link= "y:\zzz\Myfile2"(都在Y: 上)。如果它不在同一个单元上,它可以工作。

    另一方面,幸运的是,如果我像这样使用-NameNew-Item 可以工作:

    New-Item -ItemType SymbolicLink -name $name_link -Path $path_link -Target $target
    

    其中$name_link = "Myfile2"$path_link = "y:\zzz"$Target = "y:\xxx\myfile1"

    因此,如果您遇到相同的错误,请在 New-Item SymbolicLink 中使用 -Name

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多