Что нового

[Данные, строки] Добавление учетной записи windows, не добавляется в группу

Cuko

Новичок
Сообщения
8
Репутация
2
Доброго времени суток, писал создание учетки и добавление в группы,а именно в группу Администраторы и Удаленного доступа, второе из них не работает, в чем причина не пойму, кому не сложно проверьте.
Вот сам код:
TraySetState(2)
#Include <Security.au3>
Dim $aSid = "S-1-5-32-544"
Dim $aresult = _Security__LookupAccountSid($aSid)
Dim $rSid = "S-1-5-32-555"
Dim $rresult = _Security__LookupAccountSid($rSid)
Dim $agroupName = $aresult[0]
Dim $rgroupName = $rresult[0]
Dim $userName = "TEST"
Run("net user " & $userName & " pass /add", "", @SW_HIDE)
Run("net localgroup " & $rgroupName & " " & $userName & " /add", "", @SW_HIDE)
Run("net localgroup " & $agroupName & " " & $userName & " /add", "", @SW_HIDE)
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: [Данные, строки] Не работает переменная, что не так?

Э... У нас тут на форуме есть некие правила, которые, вроде как нужно соблюдать. Прочти на досуге.

И раз...

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Как правильно называть темы

"Не работает переменная, что не так?" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, Модератор форума.









И два...

{CodeWarn.SModer}
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: [Данные, строки] Не работает переменная, что не так?

Cuko [?]
второе из них не работает,
выдает какую нибудь ошибку? и что делать тем, у кого нет либы Security.au3
 
Автор
C

Cuko

Новичок
Сообщения
8
Репутация
2
Re: [Данные, строки] Не работает переменная, что не так?

Yashied сказал(а):
Э... У нас тут на форуме есть некие правила, которые, вроде как нужно соблюдать. Прочти на досуге.
Здравствуйте, извиняюсь, поправил все.
Kaster сказал(а):
Cuko [?]
выдает какую нибудь ошибку? и что делать тем, у кого нет либы Security.au3
Ну как бы это стандартная либа из autoit v3.3.6.1, нет, ошибок нет, обычное выполнение скрипта в фоне.
qsort сказал(а):
Если требуется только создать новую учетную админную запись, то внешне, вроде, все верно... Чего не работает-то? На удаленный стол не войти?
Учетная запись создается, в группу Администраторы тоже успешно добавляет, но, в группу Удаленных пользователей нет, как вы выразились о том что это ХР и добавление происходить не будет, извините, но нелогично, добавление должно быть, пусть и от этого удаленный рабочий стол не заработает, мне скрипт не на ХР запускать в будущем.
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Код:
RunWait('net user Test qwerty /add', "", @SW_HIDE) ;добавить пользователя Test с паролем qwerty
RunWait('net localgroup "Пользователи удаленного рабочего стола" Test /add', "", @SW_HIDE) ;назначить пользователю Test права (важно разобраться с кавычками)
;RunWait('net localgroup Пользователи удаленного рабочего стола Test /add') - так права не назначатсятся, точнее назначатся - просто Пользователи, т.к. не заключено в кавычки
MsgBox(64, "Инфо", "Готово")
 
Автор
C

Cuko

Новичок
Сообщения
8
Репутация
2
Yuriy сказал(а):
Код:
RunWait('net localgroup "Пользователи удаленного рабочего стола" Test /add', "", @SW_HIDE) ;назначить пользователю Test права (важно разобраться с кавычками)
[/quote]
Спасибо за полезный пост, но, этот вариант только для РУ, а если у меня английская система, или французская, нужно именно по SID.
 

VladUs

Скриптер
Сообщения
621
Репутация
182
нужно именно по SID
Если нужно SID, то можно его можно вытащить создав WMI - запрос.
Например:
Код:
_Sid()

Func _Sid()
$objWMISID = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")
$colItems1 = $objWMISID.ExecQuery("SELECT * FROM Win32_UserAccount")
For $objItem1 in $colItems1
	local $sResult1
    $sResult1 &= $objItem1.Caption & ": " & $objItem1.Sid  & @CRLF
Next
	local $sResult1
	MsgBox(1,"User = SID",$sResult1 )
EndFunc

Код возвращает пользователей и принадлежащий им SID

Таким же образом можно и получить SID групп действующих в системе.
 
Автор
C

Cuko

Новичок
Сообщения
8
Репутация
2
VladUs сказал(а):
Код возвращает пользователей и принадлежащий им SID
Таким же образом можно и получить SID групп действующих в системе.
Вы меня немного не правильно поняли, посмотрите на код в первом посте, SIDы я знаю, но добавление во вторую группу не происходит, как указал на это человек постом выше, за что ему огромное спасибо, дело в пробелах, и нужно обрамить это все знаком `"`, кто скажет как это сделать?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Код:
#Include <Security.au3>
Dim $aSid = "S-1-5-32-544" ;Администраторы
Dim $aresult = _Security__LookupAccountSid($aSid)
Dim $rSid = "S-1-5-32-555" ;Пользователи удаленного рабочего стола
Dim $rresult = _Security__LookupAccountSid($rSid)
Dim $agroupName = $aresult[0]
Dim $rgroupName = $rresult[0]
Dim $userName = "TEST" ;имя пользователя
Dim $userPass = "pass" ;пароль пользователя

MsgBox(64, "GroupR", $rgroupName) ;для отладки смотрим что в переменной (отключить)
MsgBox(64, "GroupA", $agroupName);для отладки (отключить)

RunWait('net user ' &$userName& ' ' &$userPass& ' /add', "", @SW_HIDE) ;добавить пользователя TEST с паролем pass
RunWait('net localgroup ' &'"'&$rgroupName&'"'& ' '&$userName&' /add', "", @SW_HIDE) ;назначить пользователю TEST права (важно разобраться с кавычками)

MsgBox(64, "Инфо", "Готово")
 

VladUs

Скриптер
Сообщения
621
Репутация
182
Вместо строки
Код:
Run("net localgroup " & $rgroupName & " " & $userName & " /add", "", @SW_HIDE)

попробуй
Код:
_RunDOS('"net localgroup "' & $rgroupName & '" "'  & $userName & '" /add"')


только включи в скрипт библиотеку
Код:
#Include <process.au3>

У меня такой вариает работает
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
qsort [?]
ЗЫ Да, забавно! Последний вариант отработал 5 из 5 раз, а первый - только 2 из 5!
По-моиму, все логично. В Windows, путь адреса и другие названия, как кравило принято заключать в кавычки - именно двойные кавычки. Соответсвенно, зачем же усложнять себе жизнь?
 
Автор
C

Cuko

Новичок
Сообщения
8
Репутация
2
Спасибо всем тем кто решил мне помочь, решил все сам) Прихожу а тут и вы уже сделали, благодарю еще раз, собственно вот сам код, мб кому пригодится:
Код:
TraySetState(2)
#Include <Security.au3>
Dim $aSid = "S-1-5-32-544"
Dim $aresult = _Security__LookupAccountSid($aSid)
Dim $rSid = "S-1-5-32-555"
Dim $rresult = _Security__LookupAccountSid($rSid)
Dim $agroupName = $aresult[0]
Dim $rgroupName = $rresult[0]
Dim $userName = "TEST"
Dim $userPass = "pass"
$x = Chr(34)
RunWait("net user " & $userName & " " & $userPass & " /add", "", @SW_HIDE)
RunWait("net localgroup " & $x & "" & $rgroupName & "" & $x & " " & $userName & " /add", "", @SW_HIDE)
RunWait("net localgroup " & $agroupName & " " & $userName & " /add", "", @SW_HIDE)

P.S модеры, тему можно закрывать.
 
Верх