簡體   English   中英

符號鏈接無法在 Powershell 5.1 中創建,但可以通過 Powershell 7 和命令提示符創建

[英]Symlinks cannot be created in Powershell 5.1 but can be created by Powershell 7 and Command Prompt

Windows Developer Mode開啟,以下都是non admin shells 在下面詳述的所有場景中,當前目錄中都存在一個名為target的文件。

通過Powershell 5.1以下給出ERROR

PS C:\Users\user\repos\tmp> Get-Host | Select-Object Version
Version
5.1.19041.610
PS C:\Users\user\repos\tmp> New-Item -Path link -ItemType SymbolicLink -Target target
New-Item : Administrator privilege required for this operation.
At line:1 char:1
+ New-Item -Path link -ItemType SymbolicLink -Target target
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (C:\Users\user\repos\tmp\target:String) [New-Item], UnauthorizedAccessException
    + FullyQualifiedErrorId : NewItemSymbolicLinkElevationRequired,Microsoft.PowerShell.Commands.NewItemCommand

通過Powershell 7.1進行以下工作

PS C:\Users\user\repos\tmp> Get-Host | Select-Object Version
Version
7.0.2
PS C:\Users\user\repos\tmp> New-Item -Path link -ItemType SymbolicLink -Target target
la---           3/13/2021  1:55 AM              0 link -> target

通過Powershell 5.1Powershell 7進行以下工作

PS C:\Users\user\repos\tmp> cmd /c mklink link .\target
symbolic link created for link <<===>> .\target

通過Command Prompt進行以下工作

C:\Users\user\repos\tmp>mklink link target
symbolic link created for link <<===>> target

有誰知道為什么只有 Powershell 5.1 會給出這個錯誤,有沒有辦法解決這個問題?

當 Microsoft 啟用非管理員符號鏈接創建(啟用開發人員模式)時,他們以一種所有未編碼使用它的程序都無法使用它的方式進行操作,並更新mklink以便能夠使用它。

明顯的解決方法:通過您已經發現的cmd /c從 Powershell 調用mklink

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM