Главная страница

Новости

Вопрос-ответ

Скрипты

ActiveX

Статьи

Книжная полка

Knowledge Base

Конференции

Ссылки

 

Гостевая книга

Напишите мне письмо

 

Подписка на рассылку

Рассылка 'Windows Scripting'  Архив

 

 

Лучше смотреть с Microsoft Internet Explorer 4.0 и выше

 

Создано с помощью UltraEdit

 

Вход (logon) в Windows NT/2000 без ввода имени и пароля

В Windows NT и Windows 2000 имеется малоизвестная опция, позволяющая разрешить вход в систему (logon) без ввода имени и пароля.

Это, конечно, удобно, но учтите, что:

  • Кто угодно сможет загрузить Windows от Вашего имени.
  • Ваш пароль будет храниться в Registry в открытом виде.

И еще: если Вы все-таки разрешите на Вашем компьютере автоматический вход, но вдруг захотите, чтобы у Вас спросили имя и пароль, то при старте Windows держите нажатой клавишу SHIFT.

Комментарии к коду:

  • Все операции сводятся к записи в Registry.
  • Запись в Registry осуществляются через стандартный объект WScript.Shell.

Листинг: autologon.vbs

Const AppName = "Windows NT/2K Autologon"
Const RegRoot = "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\"

Function ReadValue(ValueName)
	On Error Resume Next
	ReadValue = Shell.RegRead(RegRoot & ValueName)
	On Error GoTo 0
End Function

Function WriteValue(ValueName, Value)
	On Error Resume Next
	ReadValue = Shell.RegWrite(RegRoot & ValueName, Value)
	On Error GoTo 0
End Function

Sub AutologonIsOff
	If MsgBox("Autologon is off." & vbNewLine & vbNewLine & _
		"Do you want to enable it now?", _
		vbYesNo + vbQuestion, AppName) <> vbYes Then Exit Sub
		
	Dim Account
	Account = InputBox("Please enter account in a 'DOMAIN\USER' form." _
		& vbNewLine & vbNewLine & "Example: 'MICROSOFT\GATES'", _
		AppName, ReadValue("DefaultDomainName") & "\" & _
		ReadValue("DefaultUserName"))
	
	If Len(Account) = 0 Then
		MsgBox "Account is not entered.", _
			vbOkOnly + vbExclamation, AppName
		Exit Sub
	End If

	Dim I
	I = InStr(Account, "\")
	If I = 0 Then I = InStr(Account, "/")
	If I = 0 Then
		MsgBox "Invalid account format.", _
			vbOkOnly + vbExclamation, AppName
		Exit Sub
	End If
	Dim UserName, Domain
	UserName = Mid(Account, I + 1)
	Domain = Left(Account, I - 1)
	If (Len(UserName) = 0) Or (Len(Domain) = 0) Then
		MsgBox "Invalid account format.", _
			vbOkOnly + vbExclamation, AppName
		Exit Sub
	End If
	
	Dim Password
	Password = InputBox("Please enter password for " & Account & _
		" account", AppName, ReadValue("DefaultPassword"))

	WriteValue "AutoAdminLogon", "1"
	WriteValue "DefaultDomainName", Domain
	WriteValue "DefaultUserName", UserName
	WriteValue "DefaultPassword", Password

	MsgBox "Autologon is enabled now.", _
		vbOkOnly + vbInformation, AppName
End Sub

Sub AutologonIsOn
	If MsgBox("Autologon is on:" & vbNewLine & vbNewLine & _
		"User:" & vbTab & vbTab & _
		"'" & ReadValue("DefaultDomainName") & _
		"\" & ReadValue("DefaultUserName") & "'" & vbNewLine & _
		"Password:" & vbTab & _
		"'" & ReadValue("DefaultPassword") & "'" & _
		vbNewLine & vbNewLine & _
		"Do you want to disable it now?", _
		vbYesNo + vbQuestion, AppName) <> vbYes Then Exit Sub

	WriteValue "AutoAdminLogon", "0"

	MsgBox "Autologon is disabled now.", _
		vbOkOnly + vbInformation, AppName
End Sub

Dim Shell
Set Shell = WScript.CreateObject("WScript.Shell")

If ReadValue("AutoAdminLogon") = "1" Then
	AutologonIsOn
Else
	AutologonIsOff
End If
		
Set Shell = Nothing

Смотри также

  • Q97597 - How to Enable Automatic Logon in Windows NT
  • Q253370 - How to Enable Automatic Logon in Windows
  • Утилита Autologon от sysinternals.com