管理者権限が必要な vb.net で開発されたアプリケーションがあります。アプリケーション マニフェストで level = "requireAdministrator" を設定しました。クライアントは、組織の制限により、このアプリケーションをローカル ユーザーが実行することを望んでいます。そこで、管理者の資格情報を暗号化された形式で実際に保存し、保存された資格情報を使用して「元の」アプリケーションを実行する別の「ランチャー」アプリケーションを作成しました。
「管理者」アカウント (ビルトイン アカウント) を使用している場合、すべて正常に動作します。しかし、手動で作成された管理者アカウントの資格情報を使用している場合、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” (同じ「Administrators」グループに属する管理者でもあります) および TbPass.Text = 321 (Adminuser のパスワード)。