无法使用批处理文件运行PowerShell脚本。
无法使用批处理文件运行PowerShell脚本。
这个问题已经有了答案:
我编写了一个 PowerShell 脚本,以便在没有管理员权限的情况下运行。所以我需要从批处理文件中运行该脚本。我在这里附上了我的 PowerShell 脚本和批处理文件。但我无法从批处理文件中运行 PowerShell 脚本。
Access.ps1
powershell -File "%~dpn0.ps1" %* Start-Process PowerShell -ArgumentList "Set-ExecutionPolicy Unrestricted -Force" -Verb RunAs $key = [Microsoft.Win32.Registry]::LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node\Unicorn",[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::ChangePermissions) $acl = $key.GetAccessControl() $rule = New-Object System.Security.AccessControl.RegistryAccessRule (".\USERS","FullControl",@("ObjectInherit","ContainerInherit"),"None","Allow") $acl.SetAccessRule($rule) $key.SetAccessControl($acl) Write-Host "Successfully set permission to PM Registry!"
Access.bat
@ECHO OFF PowerShell.exe -Command "& '%~dpn0.ps1'" PAUSE
这是错误信息
admin 更改状态以发布 2023年5月21日
在您的系统上,不允许执行PowerShell脚本。您可以通过执行以下命令(具有管理员权限)来允许它:
Set-ExecutionPolicy RemoteSigned
或者您可以在您的.bat
文件中绕过它:
PowerShell.exe -ExecutionPolicy Bypass -File .\Access.ps1
在Access.ps1
中,以下行几乎是无用的:
Start-Process PowerShell -ArgumentList "Set-ExecutionPolicy Unrestricted -Force" -Verb RunAs
因为您已经需要有执行脚本的权限来运行此脚本。