50ジジィーのパソコン・スマホ備忘録

パソコン・スマホ関連の備忘録

パソコンを自動ログインさせる(ドメインユーザー)

久々に書きます50ジジィーです。

 さて、顧客の工場でADDCによるドメインネットワークでPCとユーザを管理しているのですが、1つのパソコンで機械の稼働状況のデータを収集する仕組みを構築しました。機械→パトライト無線→受信機→社内ネットワーク→収集用パソコンって感じです。

 そのパソコンには某社がおつくりになったデータ収集ソフトが入っているのですが、このソフトの仕様がインストールしたユーザがパソコンにログインしていないとソフトが起動しない~データも収集しない~って仕様だったんです(汗)。

 そのパソコンももちろんドメインに参加してましてユーザとパスワードを入れてログインしない限りログインできないんです。停電、WindowsUpdateの再起動など強制的にパソコンが再起動する時があり、夕方とかに再起動した日には次の朝まで(っていうか社員が気が付くまで)データが収集できない状況が多々発生してました。

 またまたGoogle先生の出番です。VBSで起動時に自動ログインさせるようにしましょう~

*いつもの自己責任でお願いいたします。一切の責任は受けません。またWindows10では成功しましたが、Windows7では実験してません(レジストリの場所が違うかもしれないのでregeditで先に見てもいいかもですが、下手したら起動できなくなりますのでご注意を~)

'自動ログオン(オートログオン)
Option Explicit

'まずは管理者権限を取得
Dim WMI, OS, Value, Shell

do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
'##### WScript5.7 または Vista 以上かをチェック
Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
For Each Value in OS
if left(Value.Version, 3) < 6.0 then exit do
Next

'##### 管理者権限で実行
Set Shell = CreateObject("Shell.Application")
Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"

WScript.Quit
loop

'変数宣言
Dim strPath
Dim objshell
Dim AutoAdminLogon
Dim domein
Dim yuuzaa
Dim pasu
Dim ans

'ログインしたいドメイン名、ドメインユーザ、パスワードを編集してください。
domein = "AAA"
yuuzaa = "BBB"
pasu = "CCC"

ans = MsgBox ("下記のドメインに自動ログイン設定を行います。" & vbCrLf & "ドメイン名=" & domein & vbCrLf & "ユーザ名=" & yuuzaa & vbCrLf & "パスワード=xxxxxxxxxx" & vbCrLf & "よろしいですか?",vbOKCancel,"ドメイン自動ログイン設定")

If ans = vbCancel Then
MsgBox "処理を中断します"
WScript.Quit
Else

'自動ログオンするためのレジストリを書き換えます。
strPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon"
set objshell = WScript.CreateObject("WScript.shell")
AutoAdminLogon = objshell.RegRead(strPath)
If AutoAdminLogon = 0 Then
objShell.RegWrite strPath, 1, "REG_DWORD"
End If
Set objshell = Nothing

'自動ログオンするユーザを設定します。
call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultDomainName", domein, "REG_SZ")
call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", yuuzaa, "REG_SZ")
call CreateObject("WScript.Shell").RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", pasu, "REG_SZ")

End If

MsgBox "指定のドメインユーザーでの自動ログイン設定が終了しました。"

 

 真ん中部分のdomein,yuuzaa,pasuの値を変更して(AAA,BBB,CCCの部分)、「xxxx.vbs」としてどっかに保存してください。変な変数名~ってツッコミはなしで ><;

(注意)VBSは改行の「_」が効きませんので注意してください。

 

vbs実行→管理者権限取得→レジストリに登録って流れです。

 

*グループポリシーで設定が上書きされちゃう可能性もありますのであしからず、、、、

 

 あとは再起動して自動でログインできるか試すだけですが、あと、ドメインネットワークじゃなくてパソコンにログインしたい場合に、「domein」の値をPC名にすれば成功するのか?も実験してませんのであしからず、、、、

くれぐれも自己責任でお願いします~

以上、久々の50ジジィーでした