[英]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.1
和Powershell 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.