YuSheng.OrchardCore.Workflow.Cmd.Scripting 使用

方法一:bat提权

因为在需要bat中调用python和node的脚本,默认会使用IIS定义的系统路径,默认的系统用户的路径是C:\Windows\System32\config\systemprofile\AppData\Roaming,造成node和python的包找不到,执行失败。所以需要一个IIS直接以当前用户的权限执行BAT命令的方法。

RunAsTool

RunAsToolv1.5

将需要执行的bat拖入RunAsTool,然后将快捷方式发送到桌面,形成lnk文件,然后再执行一个bat执行这个lnk文件即可

@echo off

start "" "D:\Test.lnk"

方法二:设置虚拟环境,绕过权限问题

比如执行python

使用python的虚拟环境

python3 -m venv myenv

# win
.\\myenv\\Scripts\\activate
# mac/linux
source myenv/bin/activate

# deactivate

# 安装这个脚本需要安装的包
pip install xxxx

在bat脚本中执行

# 到指定目录
cd /d d:\test
# 激活虚拟环境
call D:\test\activate

# 再执行其他python脚本
python xxx.py

经过测试下面几种方式是不行的:

方法一:runas 提权

方式一:runas /savecred 可以让用户手动输入一次密码,第二次就不需要输入了,将IIS配置->应用程序池->进程模型->标识,设置为本机用户登录,似乎就可以保持IIS执行bat的权限和本机用户的执行一致,经过测试不行

猜测是IIS的权限不够,组策略修改:gpedit.msc->管理模板->系统->凭据分配->允许保存凭据在远端调用修改为已启用,没有找到这个选项,放弃

方法二:使用vbs

在win10上测试不成功

使用VBS的SendKeys来输入密码

echo set pws=WScript.CreateObject("WScript.Shell")>%temp%\pws.vbs
echo pws.SendKeys "1{ENTER}">>%temp%\pws.vbs
wscript %temp%\pws.vbs&runas /u:test1 cmd.exe

作者:spike

分类: Net

创作时间:2024-07-28

更新时间:2024-07-28

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1