ユーザーを変更するログオフスクリプト
-
19-08-2019 - |
質問
Windows 2003を使用して、<!> quot; logoff script <!> quot;を作成する方法を探しています。現在のログオフを続行し、すぐに別のユーザーにログインします。したがって、<!> quot; UserA <!> quot;ログオフします。 <!> quot; UserB <!> quot;にログインするためのスクリプトが起動します。
これは、「シェル」を作成したコンピューターのアプリケーションアップグレードの一部です。キオスクアプリケーションに似ています。アップグレードでは、「管理者」としてログオンし、アップグレードが完了したら「管理者」をログオフし、「sample_user」としてログオンする必要があります。再起動せずにこれを達成したいと思います。
注、ログオフを開始するスクリプト(つまり、<!> quot; shutdown <!> quot;)は必要ありません。ユーザーのログイン時に実行されるスクリプトを探していますオフ(グループポリシーで設定)。上記のように、スクリプトは別のユーザーをログオンさせる必要があります。
ありがとう。
解決
記載された方法で可能だとは思わない(ログオフ時のスクリプト)。
指定したアカウントとして自動的にログオンするようにマシンを設定し、ログオフして(自動的にログオンさせる)、その後一時ログオンスクリプトを配置して、その機能を再度無効にする必要があります。 ...一般的に面倒です。
実際の設定は、Microsofts Shared Computer Toolkitなどのツールを使用して行うことができます(<!> quot; normal <!> quot;レジストリの自動ログインの手動ログアウト時の動作はわかりませんが、XPがあります)手動でログアウトした場合でも、自動的に即座にログオンするキオスク-手動で再度ログインを指定できるようにするために、shift + logoffなどのキーを使用してオーバーライドする必要があったため、何らかの方法で作成できます。
<!> quot; easiest <!> quot;方法は、msgina.dllを自分で作った誰かと置き換えることかもしれません...
しかしなぜこれをしているのですか? runas を使用して、コンソールユーザーからログオフせずに、他のユーザーとして必要なことをすべて開始します。結局、マルチユーザーシステムですか?デスクトップはただふわふわです^^
(これはユーザーの資格情報がスクリプトで利用可能であることを何らかの形で必要とするため、そのアカウントのセキュリティを危険にさらすと冗長になります。どんな目的があるのですか?)
他のヒント
必要なユーザーでレジストリを自動ログオンに設定してから、単純にadminユーザーからログオフします。これにより、キオスクユーザーがログオンし直します。
現在のユーザーがログオフした後、別のユーザーにログインする方法がわからない(Windowsで許可されるかどうかわからない...)
ただし、シャットダウンを使用してログオフできます:
shutdown /?
<!> quot; cheap hack <!> quot;に該当する可能性のあるアイデアを次に示します。カテゴリ:
最初にUserBにログインしてから、runas /user:userA <cmd>
を使用してインストールプロセスの最初の部分を実行する方法はどうですか?
それが受け入れられない場合、Windowsワークステーション(ドメインの一部ではないもの)が再起動後に特定のユーザーアカウントに自動的にログインする方法があることを知っています。おそらく、どのレジストリの変更が発生するかを調べて、それらを複製した場合、再起動するとそのユーザーが自動的にログインします。 (もちろん、最終段階として、userBがログインした後、これらの変更を元に戻す必要があります:-)
また、サービスが<!> quot;ログイン画面<!> quotを強制的に開く方法があるのではないかと思うこともあります。特定のユーザーとしてログインします。リモートデスクトップがリモートで行う方法などの方法を使用している可能性があります...それが可能であれば、userAのログオフの前にインストールするサービスを作成し、userBのログインをトリガーできます。
VNCを使用してスクリプトを作成できます(無料のバージョンが多数ありますので、選択してください)。マシンでVNCサーバープロセスをセットアップして、localhostでリッスンします。ユーザーがログオフすると、ログオフスクリプトはVNCを使用してマシンに接続し、次のユーザーのログオンに必要なキーストロークを送信します。 VNCはRFB(リモートフレームバッファー)プロトコルを使用します。ほとんどの一般的な言語用のライブラリがあるので、何かをすばやく動作させることができるはずです。または、可能性ありヘルプ。
このようなものを特定の言語の通常のスクリプトとして実行する場合、アカウントからログアウトすると実行されない可能性が高いため、実行中のスクリプトとともにすべてのプロセスを強制終了する必要があります。
このユーザーの切り替えを自動的に行うサービスアカウント(つまり、常にアクティブ)で実行される何らかの種類の「サービス」を作成できる場合があります。
Windows Powershellに賭けていますが、実際にサービスを作成する限り、どの機能を備えているかは完全にはわかりません。
クイック検索では、次のものが表示されます(2番目のリンクはフォーラムへのリンクですが、Powershellをサービスとして実行し、ユーザー切り替えスクリプトへのパスとなるパラメーターをそのサービスに送信することを記載しています)
Windows 2003サーバーまたは<!> quot; Group Policies <!> quot;のあるシステムはありません。私の予感をテストするためにセットアップしますが、WindowsのSU(<!> quot; switch user <!> quot;)を見ることができます。当初はリソースツールキットの一部であり、これは新しい SUperior SU に拡張されました。これが機能する場合は、結果/スクリプトを投稿してください。
リモート制御ユーティリティ(VNCなど)を構築する観点からこれにアプローチできます。ここでの大きなことは、ログオン画面(つまり、CTRL + ALT + DEL /ユーザー名/パスワード)部分にアクセスしたい場合、唯一のキッカーは、Windowsサービスがこれにアクセスできる唯一のコンポーネントであるということです。作成する必要があります。
この手法全体で見た唯一の問題は、それを機能させるために多大な労力を費やしたとしても(そしてそれはかなり大きな努力となるでしょう)、この機能全体でうまく機能する可能性があることです管理者として再度ログオンするときに問題が発生する可能性があるため、ログオフスクリプト(つまり、何かがシャットダウンしているとき)から発生します。
管理者として実行する必要があるものには、Windowsでそれを実現する簡単な方法があることを覚えておいてください(実行、更新が必要なアイテムのユーザー権限の変更など)。