—мена паролей всем локальным пользовател€м Windows с помощью OneScript

27.08.20

–азработка - OneScript

—крипт, который мен€ет пароли всем локальным пользовател€м Windows и сохран€ет их в файле. ≈сть функци€ генерации парол€, можно задать длину парол€.

ƒано:

“ерминальный сервер Windows без домена. ѕользователи зарегистрированы на самом сервере.

«адача: сменить всем пароли.

 

–ешение

ƒлина парол€ составл€ет 14 символов.

1) —оздаем файл ChangeUserPass.os

 

 


// «апускать от имени администратора.

‘ункци€ Ќовыйѕароль( оличество—имволов = 14)
		
	√÷ = Ќовый √енератор—лучайных„исел;
	Ќижн€€√раница„исел = 1;
	¬ерхн€€√раница„исел = 9;
	
	
	—тр„исла = "0123456789";
	—трЅуквы«аглавные = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	—трЅуквы—трочные = "abcdefghijkmnopqrstuvwxyz";
	—тр—пец—имволы = "!@#$%^&*()-";
	
	—трЌабор = "Aa!Bb@Cc#Dd$Ee%^Ff&Gg*Hh(Ii)Jj-Kk1L2Mm3Nn4Oo5Pp6Qq7Rr8Ss9Tt2Uu4Vv5Ww6Xx7Yy8Zz9";
	
	ѕароль = "";
	—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—тр„исла));
	—лучайный—имвол = —ред(—тр„исла, —луч„исл, 1);
	ѕароль = ѕароль + —лучайный—имвол;
	
	—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—трЅуквы«аглавные));
	—лучайный—имвол = —ред(—трЅуквы«аглавные, —луч„исл, 1);
	ѕароль = ѕароль + —лучайный—имвол;
	
	—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—трЅуквы—трочные));
	—лучайный—имвол = —ред(—трЅуквы—трочные, —луч„исл, 1);
	ѕароль = ѕароль + —лучайный—имвол;
	
	—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—тр—пец—имволы));
	—лучайный—имвол = —ред(—тр—пец—имволы, —луч„исл, 1);
	ѕароль = ѕароль + —лучайный—имвол;
	
	—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—трЌабор));
	—лучайный—имвол = —ред(—трЌабор, —луч„исл, 1);
	ѕароль = ѕароль + —лучайный—имвол;
	
	—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—трЌабор));
	—лучайный—имвол = —ред(—трЌабор, —луч„исл, 1);
	ѕароль = ѕароль + —лучайный—имвол;
	
	ƒополнительное оличество =  оличество—имволов - 6 - 1;
	ƒл€ ч = 0 ѕо ƒополнительное оличество ÷икл
		—луч„исл = √÷.—лучайное„исло(1, —трƒлина(—трЌабор));
		—лучайный—имвол = —ред(—трЌабор, —луч„исл, 1);
		ѕароль = ѕароль + —лучайный—имвол;
	 онец÷икла;
	
	¬озврат ѕароль;
 онец‘ункции	

‘ункци€ «аменить—имволы(т)
	—тр = "јаЅб¬в√гƒд≈е®Є∆ж«з»и…й кЋлћмЌнќоѕп–р—с“т”у‘ф’х÷ц„чЎшўщ№ьџыЏъЁэёюя€";
	// ¬ обратную сторону, т.е. в первую очередь замена существующих русских букв.
	т = —тр«аменить(т, "п", "€");
	т = —тр«аменить(т, "о", "ю");
	т = —тр«аменить(т, "н", "э");
	т = —тр«аменить(т, "к", "ъ");
	т = —тр«аменить(т, "л", "ы");
	т = —тр«аменить(т, "м", "ь");
	т = —тр«аменить(т, "й", "щ");
	т = —тр«аменить(т, "и", "ш");
	т = —тр«аменить(т, "з", "ч");
	т = —тр«аменить(т, "ж", "ц");
	т = —тр«аменить(т, "е", "х");
	т = —тр«аменить(т, "д", "ф");
	т = —тр«аменить(т, "г", "у");
	т = —тр«аменить(т, "в", "т");
	т = —тр«аменить(т, "б", "с");
	т = —тр«аменить(т, "а", "р");
	// “еперь остальные.
	т = —тр«аменить(т, "А", "ј");
	т = —тр«аменить(т, "†", "а");
	т = —тр«аменить(т, "Б", "Ѕ");
	т = —тр«аменить(т, "°", "б");
т = —тр«аменить(т, "В", "¬");
т = —тр«аменить(т, "Ґ", "в");
т = —тр«аменить(т, "Г", "√");
т = —тр«аменить(т, "£", "г");
т = —тр«аменить(т, "Д", "ƒ");
т = —тр«аменить(т, "§", "д");
т = —тр«аменить(т, "Е", "≈");
т = —тр«аменить(т, "•", "е");
//т = —тр«аменить(т, "р", "®"); // ѕочему-то ® закодировалась как р. ≈сть пересечение замены а->р.
//т = —тр«аменить(т, "с", "Є"); // ѕочему-то Є закодировалась как с. ≈сть пересечение замены б->с.
т = —тр«аменить(т, "Ж", "∆");
т = —тр«аменить(т, "¶", "ж");
т = —тр«аменить(т, "З", "«");
т = —тр«аменить(т, "І", "з");
т = —тр«аменить(т, "И", "»");
т = —тр«аменить(т, "®", "и");
т = —тр«аменить(т, "Й", "…");
т = —тр«аменить(т, "©", "й");
т = —тр«аменить(т, "К", " ");
т = —тр«аменить(т, "™", "к");
т = —тр«аменить(т, "Л", "Ћ");
т = —тр«аменить(т, "Ђ", "л");
т = —тр«аменить(т, "М", "ћ");
т = —тр«аменить(т, "ђ", "м");
т = —тр«аменить(т, "Н", "Ќ");
т = —тр«аменить(т, "≠", "н");
т = —тр«аменить(т, "О", "ќ");
т = —тр«аменить(т, "Ѓ", "о");
т = —тр«аменить(т, "П", "ѕ");
т = —тр«аменить(т, "ѓ", "п");
т = —тр«аменить(т, "Р", "–");
//т = —тр«аменить(т, "а", "р"); // ѕочему-то р закодировалась как а.
т = —тр«аменить(т, "С", "—");
//т = —тр«аменить(т, "б", "с"); // ѕочему-то с закодировалась как б.
т = —тр«аменить(т, "Т", "“");
//т = —тр«аменить(т, "в", "т"); // ѕочему-то т закодировалась как в.
т = —тр«аменить(т, "У", "”");
//т = —тр«аменить(т, "г", "у"); // ѕочему-то у закодировалась как г.
т = —тр«аменить(т, "Ф", "‘");
//т = —тр«аменить(т, "д", "ф"); // ѕочему-то ф закодировалась как д.
т = —тр«аменить(т, "Х", "’");
//т = —тр«аменить(т, "е", "х"); // ѕочему-то х закодировалась как е.
т = —тр«аменить(т, "Ц", "÷");
//т = —тр«аменить(т, "ж", "ц"); // ѕочему-то ц закодировалась как ж.
т = —тр«аменить(т, "Ч", "„");
//т = —тр«аменить(т, "з", "ч"); // ѕочему-то ч закодировалась как з.
т = —тр«аменить(т, "Ш", "Ў");
//т = —тр«аменить(т, "и", "ш"); // ѕочему-то ш закодировалась как и.
т = —тр«аменить(т, "Щ", "ў");
//т = —тр«аменить(т, "й", "щ"); // ѕочему-то щ закодировалась как ….
т = —тр«аменить(т, "Ь", "№");
//т = —тр«аменить(т, "м", "ь"); // ѕочему-то ь закодировалась как м.
т = —тр«аменить(т, "Ы", "џ");
//т = —тр«аменить(т, "л", "ы"); // ѕочему-то ы закодировалась как л.
т = —тр«аменить(т, "Ъ", "Џ");
//т = —тр«аменить(т, "к", "ъ"); // ѕочему-то ъ закодировалась как к.
т = —тр«аменить(т, "Э", "Ё");
//т = —тр«аменить(т, "н", "э"); // ѕочему-то э закодировалась как н.
т = —тр«аменить(т, "Ю", "ё");
//т = —тр«аменить(т, "о", "ю"); // ѕочему-то ю закодировалась как о.
т = —тр«аменить(т, "Я", "я");
//т = —тр«аменить(т, "п", "€"); // ѕочему-то € закодировалась как п.
¬озврат т;
 онец‘ункции

ѕопытка
	 оличество—имволов = 14;
	“екƒата = “екуща€ƒата();
	с“екƒата = —трока(“екƒата);
	с“екƒата = —тр«аменить(с“екƒата, —имволы.Ќѕѕ, "");
	с“екƒата = —тр«аменить(с“екƒата, ":", ".");
	с“екƒата = —тр«аменить(с“екƒата, " ", "_");
	чƒень = ƒень(“екƒата);
	ч√од = √од(“екƒата);
	чћес = ћес€ц(“екƒата);
	с√од = —тр«аменить(—трока(ч√од), —имволы.Ќѕѕ, "");
	сћес = ?(чћес > 9, —трока(чћес), "0"+—трока(чћес));
	сƒень = ?(чƒень > 9, —трока(чƒень), "0"+—трока(чƒень));
	 аталогЋогов = "C:\Temp\";
	»м€Ћога =  аталогЋогов + "LogUserPass_" + с“екƒата + ".txt";
	Ћог”д = Ќовый «апись“екста(»м€Ћога,  одировка“екста.UTF8);
	»м€‘—писѕольз =  аталогЋогов + "Users_" + с“екƒата + ".txt";
	»м€‘—писѕольз =  аталогЋогов + "Users.txt"; 
	т—ообщ = "»м€‘—писѕольз=" + »м€‘—писѕольз;
	Ћог”д.«аписать—троку(т—ообщ);
	—ообщить(»м€‘—писѕольз);
	//кмд—писѕольз = "CMD.exe /C chcp 65001 & net user>"+»м€‘—писѕольз;
	кмд—писѕольз = "CMD.exe /C net user>"+»м€‘—писѕольз;
	
	т—ообщ = "кмд—писѕольз=" + кмд—писѕольз;
	—ообщить(кмд—писѕольз);
	Ћог”д.«аписать—троку(т—ообщ);
	
	Ўаблон—меныѕарол€ = "CMD.exe /C net user [user] [pass]";
	
	 од¬озврата = 0;
	«апуститьѕриложение(кмд—писѕольз,  аталогЋогов, »стина,  од¬озврата);
	т—ообщ = " од¬озврата=" + —трока( од¬озврата);
	—ообщить(т—ообщ);
	Ћог”д.«аписать—троку(т—ообщ);
	
	‘ = Ќовый ‘айл(»м€‘—писѕольз);
	≈сли Ќ≈ ‘.—уществует() “огда
		т—ообщ = "ќтсутствует файл: " + »м€‘—писѕольз;
		—ообщить(т—ообщ);
		Ћог”д.«аписать—троку(т—ообщ);
		«авершить–аботу(0);
		Ћог”д.«акрыть();
	 онец≈сли;	

	//„“ = Ќовый „тение“екста(»м€‘—писѕольз, "windows-1251");
	„“ = Ќовый „тение“екста(»м€‘—писѕольз, "cp866");
	¬есь“екст = „“.ѕрочитать();
	„“.«акрыть();
	—ообщить(¬есь“екст);
	ћасѕ— = —тр–азделить(¬есь“екст, —имволы.ѕ—);
	 олћасѕ— = ћасѕ—. оличество();
	—ообщить(" олћасѕ—=" + —трока( олћасѕ—));
	ћассивЋогинов = Ќовый ћассив;
		
	ƒл€  аждого “ек—тр »« ћасѕ— ÷икл
		≈сли ѕуста€—трока(“ек—тр) “огда ѕродолжить;  онец≈сли;
		≈сли Ќайти(“ек—тр, "--") > 0 “огда ѕродолжить;  онец≈сли;
		≈сли Ќайти(“ек—тр, "\\") > 0 “огда ѕродолжить;  онец≈сли;
		
		//“ек—тр = «аменить—имволы(“ек—тр);
		
		≈сли Ќайти(¬–≈√(“ек—тр), ¬–≈√(" оманда")) > 0 » Ќайти(¬–≈√(“ек—тр), ¬–≈√("выполнена")) > 0 “огда ѕродолжить;  онец≈сли;
		≈сли ѕуста€—трока(“ек—тр) “огда			
			ѕродолжить;
		 онец≈сли;
		
		Ћог”д.«аписать—троку(“ек—тр);
		
		ћас1 = —тр–азделить(“ек—тр, " ");
		 ол—трћас = ћас1. оличество();
		//—ообщить(" ол—трћас=" + —трока( ол—трћас));
		ћакс»нд =  ол—трћас - 1;
		
		Ћогин = "";
		// + ƒл€ обработки логинов, содержащих пробел, например "»ванов »ван". ќграничение: только один пробел между словами логина.
		ƒл€ ч = 0 ѕќ ћакс»нд ÷икл
			“екЁл = ћас1[ч]; 
			//—ообщить("“екЁл=" + “екЁл);
			≈сли ѕуста€—трока(“екЁл) “огда
				≈сли Ќ≈ ѕуста€—трока(Ћогин) “огда
					ћассивЋогинов.ƒобавить(Ћогин);
					Ћогин = "";
				 онец≈сли;
				ѕродолжить;
			 онец≈сли;
			Ћогин = ?(ѕуста€—трока(Ћогин), “екЁл, Ћогин + " " + “екЁл);
		 онец÷икла;
		// - ƒл€ обработки логинов, содержащих пробел, например "»ванов »ван". ќграничение: только один пробел между словами логина.		
	 онец÷икла;
	
	н = -1;
	ƒл€  аждого Ћогин »« ћассивЋогинов ÷икл
		н = н + 1;
		т—ообщ = "ћассивЋогинов[" + —трока(н) + "]=" + Ћогин;
		—ообщить(т—ообщ);
		≈сли ¬–≈√(Ћогин) = ¬–≈√("admin1") “огда
			ѕродолжить; // ≈сли сменить пароли абсолютно всем и не знать паролей, то не получитс€ войти. ѕоэтому один-два админа смен€т сами свои пароли.
		 онец≈сли;
			
		кмд = —тр«аменить(Ўаблон—меныѕарол€, "[user]", """" + Ћогин + """");
			
		ѕароль = Ќовыйѕароль( оличество—имволов);
		кмд = —тр«аменить(кмд, "[pass]", """" + ѕароль + """");
		Ћог”д.«аписать—троку(кмд);
		«апуститьѕриложение(кмд,  аталогЋогов, »стина,  од¬озврата);
		т—ообщ = " од¬озврата=" + —трока( од¬озврата);
		—ообщить(т—ообщ);
		Ћог”д.«аписать—троку(т—ообщ);
	 онец÷икла;
	Ћог”д.«акрыть();
»сключение
	т—ообщ = —трока(“екуща€ƒата()) + ": " + ќписаниеќшибки();
	—ообщить(т—ообщ);
	Ћог”д.«аписать—троку(т—ообщ);
	Ћог”д.«акрыть();
 онецѕопытки;

 

 

2) —оздаем файл ChangeUserPass.bat

net user>C:\Temp\Users.txt
C:\utils\OneScript\bin\oscript.exe C:\utils\os\ChangeUserPass.os

3) ѕровер€ем, что каталоги дл€ создани€ файлов совпадают; в моем случае «C:\Temp\».

 

4) «апускаем ChangeUserPass.bat

≈сли не создались файлы, пробуем запустить от имени администратора.

 

5) ¬ каталоге «C:\Temp\» должен быть файл «LogUserPass_*.txt» со списком логинов и паролей.

 

6) ¬се пароли сменены. «адача решена.

 

пароль смена парол€ сменить Windows массова€ все пароли скрипт автосмена автоматическа€ автоматически сбросить OneScript cmd bat безопасность паролей генераци€ генератор

—м. также

—охранение учетных данных дл€ WebKassa дл€  азахстана

ѕароли ѕлатформа 1— v8.3  онфигурации 1cv8  азахстан јбонемент ($m)

–асширение дл€ запоминани€ в базе логина парол€ дл€ авторизации на сервисе WebKassa.

1 стартмани

28.08.2023    274    1    BadMadJohn    0    

2

ћассова€ генераци€ и замена паролей пользователей

ѕароли ѕлатформа 1— v8.3  онфигурации 1cv8 јбонемент ($m)

ƒќЅј¬Ћ≈Ќј √≈Ќ≈–ј÷»я ѕј–ќЋя! «апускаем обработку, смотрим на список пользователей и делаем свое дело, выдел€ем нужных или всех сразу и назначаем пароль. ќсобенно помогает, когда ну очень больша€ организаци€. ƒќЅј¬Ћ≈Ќј √≈Ќ≈–ј÷»я ѕј–ќЋя!

2 стартмани

28.08.2023    343    0    Maxiko    3    

4

√руппова€ генераци€ паролей дл€ рассылки отчетов в «”ѕ 3

ѕароли ѕлатформа 1— v8.3 1—:«арплата и ”правление ѕерсоналом 3.x –осси€ јбонемент ($m)

√енерирует и устанавливает пароль разной сложности дл€ каждого элемента из выбранной папки справочника –ассылка отчетов. ƒл€ генерируемого парол€ есть выбор длины и сложности (цифры, большие и маленькие буквы, спецсимволы) . ≈сть опци€ установки в качестве парол€ номера паспорта сотрудника. ѕосле обновлени€ на «”ѕ 3.1.27.23 обработка быстро создаст новые пароли взамен созданных до обновлени€ на этот релиз (и после обновлени€ - "исчезнувших"). ќб изменени€х в хранении паролей дл€ справочника –ассылки отчетов с версии «”ѕ 3.1.27.23. ќписание и обход ошибки в функции общего модул€ ѕользователи—лужебный.—оздатьѕароль(ѕараметрыѕарол€()).

1 стартмани

10.08.2023    386    2    bugtester    0    

3

Ѕиблиотека создани€ клиент-серверных приложений дл€ сценарного €зыка OneScript

»нструментарий разработчика –абота с интерфейсом OneScript –осси€ Ѕесплатно (free)

ѕредставленна€ библиотека позвол€ет создать многопоточный TCP сервер, к которому может одновременно подключитьс€ множество TCP клиентов с удаленных компьютеров. Ёти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. ћетоды будут выполнены в контексте скрипта на удаленной машине. ¬озможна передача параметров в метод и получение результата. ƒл€ TCP клиента можно создать графический интерфейс с большим набором элементов управлени€, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    1232    ahyahy    8    

28

ќшибка аутентификации клиента средствами операционной системы: јутентификационный контекст клиента отсутствует в рабочем процессе

ѕароли ѕлатформа 1— v8.3 Ѕесплатно (free)

”странение ошибки "ќшибка аутентификации клиента средствами операционной системы: јутентификационный контекст клиента отсутствует в рабочем процессе", при вызове метода "”становить—оединенение()".

05.06.2023    1000    yuryshestakov    0    

6

—крипт дл€ создани€ пользователей на сервере

–оли и права ѕароли јбонемент ($m)

—крипт дл€ создани€ пользователей на Windows сервере. «адача - переложить функцию создани€ пользователей на сервере на неквалифицированного сотрудника без особых знаний, или автоматизировать свою работу.

1 стартмани

30.05.2023    1412    2    user1093325    6    

5

ѕолучаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизаци€ разработки √руппова€ разработка (Git, хранилище) OneScript Ѕесплатно (free)

»так! ѕредставим, что наступил момент, когда разработка через исходный код реализована на предпри€тии в полном объеме. ћы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширени€, собираем релизы, провер€ем код статическим анализом, в разработке царит гармони€ и мир.  расота! Ќо менеджерам этого мало, всегда хочетс€ чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    1936    ardn    3    

27

„тение / «апись данных в регистр "Ѕезопасное хранилище данных"

ѕароли ѕлатформа 1— v8.3  онфигурации 1cv8 јбонемент ($m)

≈сли в проекте 1— используетс€ подсистема Ѕ—ѕ, то хранение паролей можно организовать через безопасное хранилище.

1 стартмани

20.01.2023    2432    7    baidinden    0    

4
 омментарии
¬ избранное ѕодписатьс€ на ответы —ортировка: ƒрево развЄрнутое
—вернуть все
1. Perfolenta 203 18.08.20 08:11 —ейчас в теме
ваша проблема в том, что вы хотите выполнить команду, которую может выполнить только интерпретатор cmd (имеетс€ ввиду команда > ). ѕросто укажите его в командной строке и все заработает...
кмд—писѕольз = "CMD.exe /C net user > "+»м€‘—писѕольз;

ключ /— нужен дл€ того, что бы после выполнени€ команды интерпретатор завершил работу...
2. info1i 214 20.08.20 13:01 —ейчас в теме
(1) —пасибо за подсказку!
ѕока сервер недоступен; при по€влении возможности, об€зательно проверю и отредактирую скрипт в публикации.
Perfolenta; +1 ќтветить
3. Perfolenta 203 20.08.20 23:51 —ейчас в теме
(2) кстати, если в именах пользователей есть русские буквы, то вы наверн€ка столкнетесь с проблемой кодировок... если хотите, проверьте и этот вариант...
5. info1i 214 31.08.20 16:16 —ейчас в теме
(3) ѕроверил на русских буквах - да, была проблема. Ќе придумал ничего умнее, как заменить закодированные символы обратно, в итоге получилось, но могут быть ошибки с буквами ®, Є.
Perfolenta; +1 ќтветить
6. Perfolenta 203 01.09.20 08:40 —ейчас в теме
(5) € пробовал ваш пример на своЄм €зыке ѕерфолента, поэтому не могу сказать будет ли так работать на OneScript, но у мен€, что бы побороть кодировку, оказалось достаточно указать кодовую страницу cp866:

„“ = Ќовый „тение“екста(»м€‘—писѕольз,"cp866");

прикрепл€ю мой файл на ѕерфоленте...
ѕрикрепленные файлы:
—менаѕаролей.pfl
7. info1i 214 02.09.20 09:54 —ейчас в теме
(6) я просто не знал, как указать правильно кодировку; оказываетс€ "cp866" - так прочиталось корректно.
—крипт доработал с учетом кодировки. Ќо функцию замены символов на вс€кий случай оставил.
Perfolenta; +1 ќтветить
4. info1i 214 31.08.20 16:11 —ейчас в теме
(1) ѕроверил; да, теперь с помощью CMD.exe команда выполн€етс€. —пасибо! —крипт поправил.
Perfolenta; +1 ќтветить
ќставьте свое сообщение