したがって、より高い特権でソフトウェアを実行する必要があるクライアントがありますが、ユーザーは制限付きのアカウントで作業しており、いくつかの理由でパスワードを提供したくありません。
管理者パスワードを要求せずにプログラムを開始する方法を探していたところ、runas
に遭遇しました。
これは私が使用しているコマンドです:
runas/user:Administrator/savecred "Path\To\Software.exe"
最初にパスワードを要求するのですが、パスワードを挿入した後は何も起こりません。コマンドを何回実行しても、プログラムは起動しません。
パスは正しく、管理者アカウントは正常ですが、まだ結果はありません。
2つのサービスが実行されていることも確認しました(名前は覚えていませんが、異なる権限で実行中のアプリに関連しています)。
これを機能させるための解決策はありますか?
コンピューターでユーザーアカウント制御(UAC)が有効になっている場合(答えが "はい"であることを願っています)、 "runas"コマンドは特権を昇格しません。つまり、アプリを実行しますが、管理者権限はありません。
ただし、次のWindows PowerShellコマンドを試してください。
Start-Process "Path\To\Software.exe" -Verb "runas"
当然、コマンドプロンプトの代わりにWindows PowerShellでこのコマンドを入力する必要があります。
つまり、これは間違いなくあなたの問題の解決策ではありません。 Microsoftのポリシーは、管理者特権の使用を奨励するあらゆる手段を提供しないか、完全に否定することです。(このポリシーは、2003年のセキュリティの大失敗後に施行されました。)Microsoftが提供する最も近いものは、アプリケーションの互換性です。アプリのマニフェストを無視して、限られた権限で実行できるようにするツールキット。これは、アプリがマニフェストで要求したものを取得したかどうかを確認しないほど愚かなアプリにとってはトリックです。
もちろん、サードパーティのセキュリティソリューションが時々あり、それがあなたの望むものを可能にすることに気づきます。不人気のために、彼らはすぐに消えます。
Runasプロファイルが完全に読み込まれていない場合(つまり、runas UIDが以前にマシンに完全にログオンしていない場合)、正しく機能しないことがわかりました...
CBB&LTSB 1607。
資格情報を保存するためにプログラムを使用することは、それをどのように見ても悪いことになります。ユーザーが保存された資格情報の一部を取得できる場合、プログラムはトークン化を使用しない限り、パスワードを復号化できます(ヒント:ユーザーはそれらにアクセスできるか、プログラムが機能しません)。 。トークン化を行う場合でも、セキュリティフィールドで言うように「ハッシュを渡す」場合、管理ユーザーとして他のコマンドを実行することができます(トークンは、私の知る限り暗号化/復号化されていないため、意図的に分離された;そして、たとえそれらがあったとしても、ユーザーはそれらを解読することができる)。
その人に管理者アクセスを与えたくないので、あなたの最善の策は、プログラムが使用しようとしているファイルとフォルダへの特定のアクセスを彼らに許可することです。適切な推奨事項を提示する前に、アクセスされているプログラムまたはファイル/フォルダーに関する詳細が必要です。フォルダのプロパティボックスのSecurity
タブを使用してアクセスを許可すると、管理者権限なしでプログラムを実行できる可能性があります。そうでない場合、プログラムはあまりうまく作成されませんでした。または、仮想マシンを使用するか、ユーザーがリモートでアクセスできる別のデスクトップを用意して、作業しているシステムではなく、そのマシンにアクセスできるようにすることもできます。
Windowsでユーザーが使用しているファイルとフォルダを確認したい場合は、ツールProcess Monitor
。このツールは、すべてのプロセスがマシンで実行している非常識な量の情報をリストします(データをフィルタリングできます)。ファイル、フォルダ、スレッド、ネットワーク、レジストリ、およびプロファイリングイベントはすべて、ツールによって監視されます。これは、SysInternalsおよびSysinternals Suiteの一部です ここTechNetにあります 。私は彼らとは関係がありませんが、私は長年彼らのツールを使用しています。