(管理者として、または管理者グループのメンバーとしてログインしたときに)非特権ユーザーになりすます方法はありますか?特にAD環境では。
たとえば、Unixの世界では、(rootとして)以下を実行できます。
# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit
ユーザーのアカウントで何かをテスト/構成する必要があります。ユーザーのパスワードを知られたり、リセットしたりしたくありません。
編集:runas
はそれをカットしません。 理想的には、デスクトップ全体がユーザーのユーザーになるなど、cmdウィンドウだけではありません。
そのユーザーの資格情報がなければ、別のユーザーとして実行するためのサポートされている方法はないと確信しています。それは否認防止策です。誰かが「私はそれをしなかった」と言うことはできません。なぜなら、彼らがそれをしたか、または資格を持つ誰かがそれをしたからです。そしてもう1つは、相手に資格情報を提供することです。
通常、別のユーザーとしてログインしているときに必要な操作を行う方法は、リモートアシスタンスを使用して基本的にセッションにRDPし、ユーザーに制御を許可することです。その後、私は彼らが見ている間に何でもします(おそらく、とにかく)。
それ以外は通常、GPO /スクリプトで実行できます。
他の多くの人がrunasコマンドのバリエーションや、ユーザーのパスワードを知る必要がある方法に言及していることに気づきましたtrueですが、誰も持っていないと思います静かに質問に答えた。 「wholeデスクトップが必要になるのは、単なるcmdウィンドウではなく、ユーザーのものになる」などです。ここに私がそれについて行く方法があります:
注:混乱を避けるために、この最初のコマンドプロンプトをCP1と呼びます。
管理者アカウントで、コマンドプロンプトを開きます
localアカウントの場合
runas /profile /user:computernamehere\username cmd
domainアカウントの場合
runas /profile /user:domainname\username cmd
[〜#〜]または[〜#〜]私が好む方法
runas /profile /user:username@domainname cmd
注:新しいコマンドプロンプトが開きます(CP2)。これは、ログインしようとしているユーザーです。
CP1を開き、次のように入力します。
taskkill /f /IM Explorer.exe
CP2を開き、次のように入力します。
Explorer.exe
コンピュータによっては、これまでにログオンしたことがないユーザーのプロファイルを作成する場合があります。 コマンドプロンプトウィンドウを開いたままにするを使用して、後で手間を省くことができます。
作業が終了したら、同じことを逆に行ってください。
CP2タイプ:
taskkill /f /IM Explorer.exe
CP1を開き、次のように入力します。
Explorer.exe
これで、元の管理者アカウントに戻るはずです。 Windowsキーをタップして現在のユーザーパネルを探すと、簡単に確認できます。
これがお役に立てば幸いです。
これを行うためのWindowsの組み込みメカニズムはありません。それは可能ですが、あなたが望むことをするために何かを書かなければならないでしょうし、おそらく文書化されていないAPIをいじくり回す必要があるでしょう。
ここのポスターの1つであるgrawityは、CreateProcessAsUser()を呼び出すと正しく機能しますが、ドキュメント化されていないネイティブAPI zwCreateTokenを使用してトークンを最初に作成する必要があります。 Explorerを終了して、CreateProcessAsUser()を使用して新しいExplorerインスタンスを起動した場合、あなたが望んでいることはほぼ間違いありません。
Microsoftは、NTを使用する方法とは異なるため、ユーザーがやりたいことを簡単にしません。問題をトラブルシューティングするためにユーザーとしてログオンする必要がある場合は、ほとんどの場合、最適ではありません。
(レジストリHiveをアタッチして、そのように操作することにより)ログオンなしでユーザーのレジストリを変更できます。ユーザーとしてログオンしていないユーザープロファイルのファイルに変更を加えることができます。 「ユーザーとして」「電子メール」またはその他のそのようなアクティビティを設定する必要がある場合は、スクリプトを作成するか、組み込み機能(グループポリシー管理用テンプレート、設定など)を利用して、汚れた作業を行う必要があります。
haveでこれを行う場合は、コードプロジェクトのRunAsExをご覧ください。そのコードは、あなたが何をする必要があるかについてかなり良い考えをあなたに与えるはずです。私はプログラムを試していませんが、すべてが正しい方向に進んでいるようです。
Windows XP以降では、次のコマンドを使用できます。
RunAs.exe
コマンドラインオプションが利用可能です ここ 。
これは、ユーザーのパスワードを知らなければ機能しません。 Windowsでは、セキュリティ識別子の読み込み方法が原因で、パスワードなしでユーザーアカウントで操作する方法はないと思います。
(推測です)アカウントにSeCreateTokenPrivilege
がある場合、CreateProcessAsUser()
または類似の関数を使用してプロセスを作成する小さなプログラムを書くことができます...(ただし、管理者でさえ権限を持っていない場合)デフォルトでは。)
私はこのサイトで言及されているSudoソリューションのいくつかについて個人的な経験はありませんが、優れた Aaron Margosis から始めた nonadmin を強くお勧めします。制限されたユーザーを展開する場合、これは非常に役立ちます。他のみんながRunasを使うと言っているので、私は主に何かでジャンプしました。ただし、これらのWindows用のSudoのほとんどまたはすべては、パスワードなしで別のユーザーとして機能するのではなく、昇格を処理するものだと思います。
http://live.sysinternals.com のプロセスエクスプローラーprocexp.exeには、現在の資格情報を使用してプログラムを実行できる制限付きユーザー(ファイルメニュー)がありますが、ACLがあります通常のユーザー(非管理者)のユーザーに削減されます。あなたが正確に望んだものではありませんが、テストには適しています。