执行powershell脚本失败

喵哥最近打算用powershell脚本自动开启redis,但是在执行脚本时遇到一个问题:

启动redis.ps1
无法加载文件 E:\document\subway_tunnel_program\启动redis.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
    + CategoryInfo          : SecurityError: (:) [],ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnauthorizedAccess

后来百度发现是由于脚本执行权限的限制:

Restricted——默认的设置, 不允许任何script运行
AllSigned——只能运行经过数字证书签名的script
RemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名
Unrestricted——允许所有的script运行

windows默认不允许任何脚本运行,你可以使用"Set-ExecutionPolicy"cmdlet来改变的你PowerShell环境。例如,你可以使用如下命令让PowerShell运行在无限制的环境之下:

Set-ExecutionPolicy RemoteSigned

但是要记得用powershell的管理员模式!

现在可以执行powershell,但是无法用MFC来调用powershell脚本,观察执行过程,猜测亦是由于权限问题,无论是用管理员运行MFC的文件,还是在MFC中加入sytem("Set-ExecutionPolicy RemoteSigned"),都没有实现功能。

但是,喵哥在一篇文章中提到用python调用powershell脚本,那么是否可以用MFC来调用python,然后在python中调用powershell。

经过多次尝试,虽然喵哥用C++成功的调用了python,但是执行python中调用powershell的脚本时,无动于衷,求大佬们带飞!

猜你喜欢

转载自blog.csdn.net/ruibin_cao/article/details/83957678
今日推荐