vb.netで管理者権限が必要なアプリケーションを開発しました。私はアプリケーションマニフェストでlevel = "requireAdministrator"を設定しました。私のクライアントは、組織のいくつかの制約のために、このアプリケーションをローカルユーザーが実行することを望んでいます。そこで、管理者の資格情報を暗号化された形式で保存し、保存された資格情報を使用して「オリジナル」アプリケーションを実行する別の「ランチャー」アプリケーションを作成しました。Process.start()が管理者として実行しようとしているときにエラーを投げる
「管理者」アカウント(ビルトインアカウント)を使用しているとすべて正常に機能します。しかし、手動で作成した管理者アカウントの資格情報を使用している場合、process.start()行で「要求された操作に仰角が必要です」というエラーが表示されます 組み込みの管理者と手動作成された管理者アカウント。私は、(組み込みの、手動で作成された)両方のユーザーがAdministratorsとHomeUsersのメンバーであることを確認しました。私は、さまざまなユーザーグループを持つ異なるユーザーを作成し、異なるOS(Windows 7とWindows 10 - 32ビットと64ビットの両方)を作成しても、すべての可能性を試しましたが、すべて上記と同じ方法で動作しています。私のコードで変更が必要なことはありますか?
Dim psi As New System.Diagnostics.ProcessStartInfo()
psi.FileName = (AppToStart)
psi.RedirectStandardError = True
psi.RedirectStandardOutput = True
psi.CreateNoWindow = True
psi.UseShellExecute = False
psi.UserName = TbUser.Text
psi.Password = ConvertToSecureString(TbPass.Text)
psi.Domain = ""
Dim p As Process = Process.Start(psi)
追加情報:ここで私は、標準ユーザー(管理者ではない)として、この「ランチャー」アプリケーションを実行しているアプリケーションがうまく機能し、それが本当に
TbUser.Text =「管理者場合は権限を昇格"と TbPass.Text = 123(管理者パスワード)。
TbUser.Text =「ADMINUSER」(管理者でもある同じ「管理者」グループに属している)場合
しかし、これは昇降されていない特権と TbPass.Text = 321(ADMINUSERのパスワード)。ときpsi.UseShellExecute = False
可能な複製(http://stackoverflow.com/questions/3596259 [昇降権限があるUseShellExecute =虚偽では動作しません]の言います/ elevating-privileges-doesnt-work-with-useshellexecute-false) – GSerg