基本的には、『そのユーザーで何かする』ってのがあるべき姿だと思うんですが、いろいろな状況が絡み合って、プロセスを実行しているユーザーの権限ではなく、他のユーザーの権限でやりたい、ってときがあります。
そんなときの方法として、今のところ把握できてるのはトークン関連を利用する方法。関連する API を羅列しときます。
いまいち、DuplicateToken() 関数 と DuplicateTokenEx() 関数 の存在意義がわかってないので、もう少し勉強しておこうっと。
あと、やりたいことによっては、『必ずしも他のユーザーの権限で実行する必要はない』ってのは重要です。場合によっては、事前にアクセス許可やら特権やらを割り当てておけばいいだけ、ってこともありますしね。