1 (изменено: shade45, 2015-12-01 06:41:17)

Тема: JS: Изменить имя входа в систему на удаленном компьютере

Здравствуйте, появилась проблемка со сменой Winlogon на удаленных компьютерах.

Написал вот такой скрипт на .vbs, его можно запустить из cmd и передать параметр, например,

c:\1.vbs Logon1

Сам код:

'Передача из CMD
Dim Arg
Set Arg=Wscript.Arguments

Dim sComp
sComp = ""
If Arg.Count>=1 Then  ' имеется переданный параметр
	StUser = Arg(0)
else
	StUser = InputBox("Введите имя подключаемого компьютера", "Настройка запуска ""Offer Remote Assistance""")
End IF

	dim WSHShell, stRegKey, objItem, intRetCode
	Set WSHShell = CreateObject("WScript.Shell")
	stRegKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\" 'reestr
	'StUser = InputBox("Tell me login," & vbCrLf & vbCrLf & "Example - GilmullinRR", "Set Last logged on", "username") 'name
	'StDomain = InputBox("Tell me name - domain for logon," & vbCrLf & vbCrLf & "Example - Mechel", "Set Logon Domain", "Mechel") 'domain
	StDomain= "Mechel"
	wshShell.RegWrite stRegKey & "DefaultDomainName", StDomain, "REG_SZ"
	wshShell.RegWrite stRegKey & "DefaultUserName", StUser, "REG_SZ"
	wshShell.RegWrite stRegKey & "AltDefaultDomainName", StDomain, "REG_SZ"
	wshShell.RegWrite stRegKey & "AltDefaultUserName", StUser, "REG_SZ"
	wshShell.RegWrite stRegKey & "AutoAdminLogon", "0", "REG_SZ"

Как можно реализовать его запуск на удаленном компьютере через JS?

Пробовал следующее:

 
	 function RemoteAdm_WinLogon ()
    {
		var hostWL = ComputerName.value;
		var valueWL = ValueWinLogon.value;
		var logon = logonValue.value;
		var pass = passValue.value;
		var shell = new ActiveXObject("WScript.Shell");
		shell.Run('PsExec.exe '+"-u"+' '+logonValue+' '+"-p"+' '+passValue+' '+hostWL+' '+"%windir%\\system32\\cscript.exe"+' '+"\\10.2.10.93\\c$\\1.vbs"+' '+valueWL+'');
	 }

Помогите с данной проблемой пожалуйста.

2

Re: JS: Изменить имя входа в систему на удаленном компьютере

2shade45
Конечно можно запустить этот скрипт и через PsExec. Но зачем это надо???
Гораздо проще писать в реестр удаленного компа напрямую, используя WMI.
Но почему именно JS ??? Если обращение к реестру на VBS уберется в пару строк, то на JS получится чуть поболее...
Если действительно НАДО, то напишу.
А Ваша задача элементарно решается простеньким батником:

@echo off
title Настройка запуска "Offer Remote Assistance"
set domain=Mechel
set user=lamer
set /p PC=Введите имя подключаемого компьютера: 
reg add "\\%PC%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d %domain% /reg:64
reg add "\\%PC%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d %user% /reg:64
reg add "\\%PC%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultDomainName /t REG_SZ /d %domain% /reg:64
reg add "\\%PC%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDefaultUserName /t REG_SZ /d %user% /reg:64
reg add "\\%PC%\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 0 /reg:64

3 (изменено: shade45, 2015-12-03 07:13:06)

Re: JS: Изменить имя входа в систему на удаленном компьютере

mozers, да без разницы, хотелось бы встроить это в приложение на .htа.

С помощью .vbs пришел к такому решению:
Т.е. рисую интерфейс, ввожу логин/пароль, путь к скрипту и значение, все конечно отрабатывает, но требует расшарить файл скрипта на все ПК домена.

Sub Test123
	'-----------------------------Result----------------------------------------------------------
	strHTML = "<table style='border-collapse: collapse' bgcolor=#F5F5F5>" & "qqqqq"& _
		"<tr><td><input type='text' id='NameWL' 	 name='NameWL'     value='domain\LogonName'>Логон </td></tr>" & _
		"<tr><td><input type='text' id='PassWL' 	 name='PassWL'     value='Pass'>Пасс			</td></tr>"& _
		"<tr><td><input type='text' id='VariablWL'   name='VariablWL'  value='qwe1'>Значение			</td></tr>"& _
		"<tr><td><input type='text' id='FullPathWL'  name='FullPathWL' value='10.2.10.93\c$\1.vbs'>Путь </td></tr>"& _
		"<tr><td><input type='button' onclick = 'WinLogonVL()' value='startVB'></td></tr>" & _
		"<tr><td><input type='button' onclick = 'RemoteAdm_WinLogon()' value='startJS'></td></tr>"
    strHTML = strHTML & "</table>"
	DataArea.InnerHTML = Trim(strHTML)
	End sub

	
Sub WinLogonVL
	logonWL = ""
	PasswWL = ""
	VarWL = ""
	PathWL = ""
	dim hostWL, logonWL, PasswWL, VarWL, PathWL
	hostWL = ComputerName.Value
	logonWL = NameWL.value
	PasswWL = PassWL.value
	VarWL = VariablWL.value
	PathWL = FullPathWL.value
	Set WSHShell = CreateObject("WScript.Shell")
	WSHShell.Run "Psexec -accepteula -e -u " & logonWL & " -p " & PasswWL & " \\" & hostWL & " cscript.exe \\" & PathWL & " " & VarWL, 0, false
	Set WshShell = Nothing
end sub

4 (изменено: mozers, 2015-12-02 12:04:19)

Re: JS: Изменить имя входа в систему на удаленном компьютере

shade45, если тебе "без разницы", то че ты уперся в этот Psexec ??? (да и перечитай, наконец, help по параметрам его ком.стоки. Только внимательно.)
И нафига Psexec то тут вообще нужен??? Можно же батник, что я предложил, через WSHShell.Run запустить...
А еще проще и лучше вообще все сделать в единственном файле.
Замени в своей hta-шке (WSHShell.Run+Psexec+скрипт.vbs) на что то типа этого:

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sRemoteComputerName & "\root\default:StdRegProv")
oReg.SetStringValue &H80000002,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","DefaultDomainName",sDomain
oReg.SetStringValue &H80000002,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","DefaultUserName",sUser
oReg.SetStringValue &H80000002,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","AltDefaultDomainName",sDomain
oReg.SetStringValue &H80000002,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","AltDefaultUserName",sUser
oReg.SetStringValue &H80000002,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","AutoAdminLogon",0

и ВСЕ!
Подробности - тут.

5

Re: JS: Изменить имя входа в систему на удаленном компьютере

mozers по поводу Psexec, раньше просто был этот скрипт на vb, за незнанием как ему прикрутить смену значений на удаленных ПК, было решено запускать его на удаленном ПК через Psexec, про батник тоже думал, но как ему передать значение winlogon из vb?
Спасибо за 2 вариант)!, теперь осознаю какой у меня костыль был).

6

Re: JS: Изменить имя входа в систему на удаленном компьютере

shade45, батнику никакой VBS не нужен. Все нужные данные можно вводить интерактивно через set /p value=Введите:. Так что тут (да как и во множестве других ситуаций) маленький .cmd файлик будет наипростейшим и наилучшим решением.

7 (изменено: shade45, 2015-12-04 07:01:09)

Re: JS: Изменить имя входа в систему на удаленном компьютере

создал новую тему.