我编写了一个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
这是错误信息。
Access.ps1
真的以powershell -File "%~dpn0.ps1" %*
开头吗?还是这只是复制粘贴错误?如果是错误,请[编辑]问题。另外,会发生什么?有错误信息吗?没有任何输出吗?还是输出错误? - vonPryz