えむけいさん、
そうですね。CreateProcessAsUser() を使うように考えます。
スクリプトの所有者を得た後 CreateProcessAsUser() にユーザのハンドルを渡すための LogonUser()で所有者のパスワードが必要になりますが、そこでいきづまってしまっています。
実行ユーザを指定する方が簡単そうです。
WindowsNT/2000の場合、AnHTTPDのCGIはAnHTTPDを起動したユーザと同じ権限で(つまりAdministratorが起動したらAdministratorで、サービスとして起動したらLocalSystemアカウント(!)で)動作するようですが、危険すぎるのでCGI実行用のユーザを指定するとか、スクリプトの所有者の権限で実行するとかできないでしょうか?