標準USBペンドライブに保存されたバッチファイル(またはVBスクリプト)を使用したWindows XP / Win-7の自動ログイン


10

なぜ私はこれを必要とします

ペンドライブにバッチスクリプトとその他の診断ツールが満載です。75のスタンドアロン(ネットワーク接続されていない)PCがあり、そのほとんどがWin-XP-Pro SP-2を搭載した2つのラボです。何かを設定または診断するために、管理者アカウントで各PCにログインする必要があることがよくあります。

そのため、PCを起動するときに、ログイン画面から手動でユーザー名を選択し、そのパスワードを入力する必要があります。

次に、Admin Accにログインします。ペンドライブがPCに接続されている場合、自動的に(プログラムによって)。

私が知っていること:

XP / Win7にユーザーがログインする前にスクリプト(バッチファイル)を実行できることを知っています。バッチファイルを書いてローカルPCに保存しました。システムの起動時に実行するようにグループポリシーで構成しました(GPOの場所:コンピューターの構成\ Windowsの設定\スクリプト(スタートアップ/シャットダウン)\ Sartup)。このバッチファイルは、ペンドライブが接続されているかどうかを正常に検出しました。

ペンドライブに別のバッチファイル(現在は空白)が保存されています。

最初のバッチファイルは、ループを使用してCからZまでのすべてのドライブで2番目の(login.bat)バッチファイルを検索します。ファイルが存在する場合、ペンドライブが存在すると想定し、2番目の(login.bat)バッチファイルをさらに呼び出して続行します。

私が知らないこと:

今、login.batファイルのコードがどうあるべきかわからない、または実際にログインする方法がわかりません。

他に考えられる選択肢は何ですか?

バッチファイルのみを使用する必要はありません。私はまた、「使用するVB Scriptなどの自動ログインの他のオプションがある場合、または他のサードパーティの実行可能ファイルがある場合」も検討できます。

編集:

この質問によると、バッチスクリプト介してWindowsで自動ログオン用にユーザーを設定するレジストリエントリを変更して自動ログオンを許可するスクリプトを作成できます。これは機能しますが、変更を適用するにはPCを再起動する必要があります。これは避けたいものです。個人的にログインするよりも、スクリプトの実行と再起動に時間がかかります。

オンデマンドで自動的にログオンできるようにしたいと思います。つまり、ペンドライブを接続すると、PCを再起動しなくても、スクリプトで管理者アカウントにログインできるようになります。

私はGINAのdllファイルを作成することでそれを実現できることをウェブ上で読みましたが、その分野での経験はありません。これを実装する方法はありますか?



@ DA-「ユーザーを自動ログオンに設定...」と重複しているとどうして言えますか?質問の完全な説明を読みましたか?「ユーザーを自動ログインに設定します。これは指定したものと重複していません。PCをオンにするたびにユーザーを自動ログインに設定したくないのです。これにより、かかわらず、自動的にペンドライブにログインするユーザーが付属するかしない私は私のペンドライブがPCに接続されている場合にのみログイン」を開始するためのバッチファイルまたはVBScriptファイルを必要とし、慎重に完全な質問をお読みください。。。
アジャイブ・シン

@DA Sir私は指定された回答を注意深く読みます。このチュートリアルでは、インターネットもいっぱいです。1 '条件付きで自動ログインを許可するためにペンドライブの存在を確認しません。2番目 '[ログオンする回数を設定する]オプションをハイライト表示したとき。私には向きません。その理由を説明させてください。「ログオンする回数を設定する」に割り当てることができる値は2つしかありません。1番目は1、2番目は「1より大きい」
Ajaib Singh

1に設定すると、自動ログインが1回だけ許可されます。次のスタートアップでは、「ユーザー名とパスワードを入力する必要があります。1より大きく設定した場合(10)、指定した回数だけ自動ログインします。ここで、指定された回数が期限切れになるまで、デフォルトですべてのユーザーが管理者アカウントにログインします。私は欲しくない。私の要件は、ペンドライブが接続されている限り「無限のログインを許可する」であり、それ以外の場合は自動ログインを許可しません。
Ajaib Singh 2017

2
質問:(1)同じユーザー/パスワードを使用するすべてのコンピューターに対して1つのログオンしかありませんか?(2)ソフトウェアソリューション(存在する場合)をすべてのコンピュータにインストールできますか?(3)市販品の代金を支払いますか?
harrymc 2017

回答:


2

プログラムでWindowsにログインできますが、単純なバッチファイルではできません。代わりに、C ++(またはおそらくC#を使用してDLLをビルドする必要がありますが、お勧めしません)。Windows XP(およびそれ以前)では、この機能はGINAと呼ばれていました。
(Vistaから始めて、資格情報プロバイダーを構築する必要があります。)

参照:プログラムによるWindows XPへのログイン


こんにちはwp78de ";私はVBスクリプトで問題を解決しました。ログイン画面でキーを送信するだけで、私の管理者アカウントがログインされます。回答をありがとう
Ajaib Singh

1

誤って自分で解決策を見つけました。質問で述べたように、私は2つのスクリプトを持っています。1つ目はローカルコンピュータにあり、2つ目はペンドライブにあります。1番目(.bat)はシステムの起動時に実行するように事前構成されており(コンピューターの起動スクリプトを割り当てる方法を参照してください)、ペンドライブが接続されている場合は2番目(.vbs)を呼び出します。

使い方:

最初のファイルの操作は既に質問で説明されています。2番目のスクリプトの操作は非常に簡単ですが、私のニーズを満たしています。このスクリプトは、ログイン画面のキーストロークを、ログイン用のキーボードで入力したのと同じシーケンスで送信するだけです。ここで、両方のスクリプトのコード全体を共有したいと思います。これが、GINAなどの内部オペレーティングシステムファイルに干渉したくない私のような多くの人に役立つことを願っています。

コードは次のとおりです。

1番目のスクリプト(ログオンスクリプト)

名前: "Find PD.bat"

ロケーション:

"%SYSTEMROOT%\System32\GroupPolicy\Machine\Scripts\Startup\Find PD.bat"

コード

@ECHO OFF
SET vCount=1
set LogFl=%~d0%~p0%Find PD.log
echo Process Started...>"%LogFl%"

:RECHK
SET PD=
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
    IF EXIST "%%i:\OTHER\RESTORE\OTHER\FillCred.vbs" (
        SET PD=%%i
    )
)

:FOUND
echo:>>"%LogFl%"
IF /I DEFINED PD (
    echo %time% : Pen Drive Found with '%PD%' Drive Letter>>"%LogFl%"
    "%PD%:\OTHER\RESTORE\OTHER\FillCred.vbs"
) ELSE (
    IF %vCount% LSS 11 (
        set /a "vCount=vCount+1"
        echo %time% : Retry: %vCount% >>"%LogFl%"
        ping -n 2 -w 200  1.1.1.1>nul
        GOTO RECHK
    ) ELSE (
        echo %time% : Pen Drive Not Found. Exiting>>"%LogFl%"
        EXIT /b 1
    ) 
)
:EOF

2番目のスクリプト:

名前: "FillCred.vbs"

ロケーション:

"<PenDriveRoot>\OTHER\RESTORE\OTHER\FillCred.vbs"

コード:

set WshShell = CreateObject("WScript.Shell")
WScript.sleep 1000
WshShell.SendKeys "{DOWN}"
WScript.sleep 50
WshShell.SendKeys "ReplaceThisWithYourPassword"
WScript.sleep 50
WshShell.SendKeys "{ENTER}"

覚えておいてください:

1)これはWindows XPでのみテストされています。

2)これは、Windowsにデフォルトのログオン画面(「ようこそ画面」​​)が表示されている場合にのみ機能します。

3)キーシーケンスの2番目のスクリプトを変更する必要があります

4)システムがログイン前にCtrl + Alt + Deleteを押す必要がある場合、これは機能しません。

5)これは非常に基本的な解決策ですが、2番目のスクリプトを編集することで高度にすることができます。これは、システムがログイン画面でキー入力を許可している限り機能します。

ありがとう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.