也就是说,我希望 runas 只有在它运行的程序退出后才退出。
/waitrunas.exe没有参数。我已经尝试了很多排列,start /wait但没有任何效果。
我必须使用,runas因为我需要提升程序的权限,所以我需要像这样启动它:
runas /user:administrator /savedcred /env update.exe
Run Code Online (Sandbox Code Playgroud)
update.exe我的程序在哪里。runas也从 Cygwin Bash 调用,使其更加复杂。
我在 Server 2008 R2 上。
嗯,这是解决问题的一种方法。它使用Sysinternals pslist程序和 Bash:
do_update()
{
if test -d c:/; then
case `hostname` in
thor*)
update="runas /user:administrator /savedcred /env \".\\update.exe\""
;;
*) update="./update.exe" ;;
esac
$update
while pslist -e update > /dev/null 2>&1; do
echo waiting for update.exe to finish...
sleep 3
done
else
./update.sh
fi
}
Run Code Online (Sandbox Code Playgroud)
但是,它非常糟糕,主要是因为它无法将程序的退出状态返回给调用者。这是一个巨大的问题,IMO。