最近想用node写一个实现Windows端口代理的接口,
结果发现添加端口代理要用到管理员权限, child_process创建的cmd或者powershell都没有管理员权限,找了好久才找到用管理员权限执行powershell命令的方法,可惜最后没用上,貌似没法获取执行结果的返回值
powershell 中有个命令Start-Process可以打开一个具有管理员权限的powershell
利用-ArgumentList选项可传入要用管理员权限执行的powershell命令
代码如下
let args = `-command \"netsh interface portproxy add v4tov4 listenaddress=${listenaddress} listenport=${listenport} connectaddress=${connectaddress} connectport=${connectport}\"`
cp.spawn('powershell', [`powershell -command "Start-Process powershell -ArgumentList '${args}' -Verb RunAs"`])
将args中双引号内的命令替换成需要管理员执行的powershell命令即可