Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > как запретить изменять пароль и имя?


Автор: gud 31.3.2009, 10:38
подскажите пожалйста через какие ключи в реестре запретить пользователям, не администраторам,  менять себе пароль и имя, и как запретить им всем доступ к реестру.

Автор: aik2029 31.3.2009, 12:04
Как запретить смену имени не знаю, а запрет на смену пароля вот:

1) Панель управления -> Администрирование -> Управление компьютером -> Локальные пользователи и группы -> Пользователи

2) Правой кнопкой мыши по Имени пользователя -> Свойства -> Запретить смену пароля пользователем

Автор: gud 31.3.2009, 12:18
надо именно через реестр, т.к. запрещать предполагается программно,
и в home edition нет "Локальные пользователи и группы".

Автор: aik2029 31.3.2009, 12:32
В реестре я не пробовал искать ключ для запрета 

Автор: kin 31.3.2009, 12:57
Цитата(gud @  31.3.2009,  12:18 Найти цитируемый пост)
менять себе пароль и имя

Цитата(gud @  31.3.2009,  12:18 Найти цитируемый пост)
надо именно через реестр, т.к. запрещать предполагается программно,
и в home edition нет "Локальные пользователи и группы". 
 Что-то не совсем понятна конечная цель сего действия... Если у тебя задание написать это дело, так в MSDN очень хорошо все написано... Если надо управлять пользователями на домашнем ПК, дык командную строку еще никто не отменял. И уж совсем не понятно про смену имени...это как???

Автор: gud 31.3.2009, 13:35
может я не все понял,
так вот я создаю пользователей и хочу всегда знать их имена и пароли т.е. как их создали первый раз.
для пароля ключ - DisableChangePassword,
а насчет имени не уверен т.е. вы хотите сказать пользователи, не администраторы, сами не могут менять свое имя? и не только в home edition?

Автор: Naghual 31.3.2009, 13:58
Вирусописатели млин...
 smile 

Автор: gud 31.3.2009, 14:16
протестую, обясните где не прав, первый раз создаю пользователей,  

Автор: kin 31.3.2009, 16:23
Цитата(gud @  31.3.2009,  13:35 Найти цитируемый пост)
а насчет имени не уверен т.е. вы хотите сказать пользователи, не администраторы, сами не могут менять свое имя? и не только в home edition?
 Да не могут, хотя все зависит от кривизны рук администратора... smile 
"...когда-то, на заре времЕн, первый сисадмин "опустил"  сервер господен, не сделав backup вовремя, чем сильно разгневал господа. И наслал господь на него кару небесную, создав пользователя обычного, дабы знал админ всезнающий, что святость backup-а незыблема... Ибо USER, прав не имеющий, сотворить однако может многое, даже то, что совсем невозможным уж кажется..." smile (шутка)

Цитата(gud @  31.3.2009,  14:16 Найти цитируемый пост)
протестую, обясните где не прав, первый раз создаю пользователей,  

Почитай про работу в сетях (что, зачем и как), хочешь здесь, а хочешь в networkdoc.ru, или google.ru, или...

Автор: mihanik 31.3.2009, 22:06
Смотри тут: http://forum.vingrad.ru/index.php?showtopic=154708&view=findpost&p=1499814

А именно

Код

'#####################################################################
'#
'# Процедура SetCommonProperties
'# Описание: Управляет общими свойствами (галками) учётной записи.
'#             
'# Вход    : byVal strUserName                    - имя пользователя
'#             ByVal blnRequireChangePassword     - требовать/не требовать менять пароль при следующем входе
'#             ByVal blnUserCanNotChangePassword  - может/не может пользователь менять свой пароль
'#             ByVal blnNeverExpirePassword        - пароль пользователя никогда не "сгорает" (да/нет)
'#             ByVal blnAccountDisabled            - пользователь включен/выключен
'# Выход   : Нет
'#####################################################################
Sub SetCommonProperties (byVal strUserName, ByVal blnRequireChangePassword, _
                                            ByVal blnUserCanNotChangePassword, _
                                            ByVal blnNeverExpirePassword, _
                                            ByVal blnAccountDisabled )
Dim objComputer
Dim strComputer
Dim colAccounts
Dim objFlag
Dim objUserFlags
Dim objUser


Const ADS_UF_SCRIPT = &H1                             ' The logon script will be executed
Const ADS_UF_ACCOUNTDISABLE = &H2                     ' Disable user account
Const ADS_UF_HOMEDIR_REQUIRED = &H8                   ' Requires a root directory
Const ADS_UF_LOCKOUT = &H10                           ' Account is locked out
Const ADS_UF_PASSWD_NOTREQD = &H20                    ' No password is required
Const ADS_UF_PASSWD_CANT_CHANGE = &H40                ' The user cannot change the password
Const ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = &H80   ' Encrypted password allowed
Const ADS_UF_TEMP_DUPLICATE_ACCOUNT = &H100           ' Local user account
Const ADS_UF_NORMAL_ACCOUNT = &H200                   ' Typical user account
Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000

    On Error Resume Next

'# Определяем имя компьютера
    Set objComputer = CreateObject("Shell.LocalMachine")
        strComputer = objComputer.MachineName
    Set objComputer = Nothing

'# Устанавливаем/Снимает галку с пункта
'# "Потребвать сену пароля при следующем входе в систему"    
If Not IsNull(blnRequireChangePassword) Then    
        Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
            
            If blnRequireChangePassword Then 
                objUser.Put "PasswordExpired", 1
            Else
                objUser.Put "PasswordExpired", 0
            End If
        
        objUser.SetInfo
        
        Set objUser = Nothing
End if

'# Устанавливаем/Снимает галку с пункта
'# "Запретить смену пароля пользователем"
If Not IsNull(blnUserCanNotChangePassword) Then    

        Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
            
            objUserFlags = objUser.Get("UserFlags")
            
            If blnUserCanNotChangePassword Then
             objFlag = objUserFlags Or ADS_UF_PASSWD_CANT_CHANGE
         Else
             objFlag = objUserFlags And Not ADS_UF_PASSWD_CANT_CHANGE
         End If
            
            objUser.Put "userFlags", objFlag 
            objUser.SetInfo
     
        Set objUser = Nothing
End If

'# Устанавливаем/Снимает галку с пункта
'# "Срок действия пароля не ограничен"
If Not IsNull(blnNeverExpirePassword) Then    
    
        Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
            
            objUserFlags = objUser.Get("UserFlags")
            
            If blnNeverExpirePassword Then
                objFlag = objUserFlags OR ADS_UF_DONT_EXPIRE_PASSWD
            Else
                objFlag = objUserFlags And Not ADS_UF_DONT_EXPIRE_PASSWD
            End If
            
            objUser.Put "userFlags", objFlag 
            objUser.SetInfo
            
        Set objUser = Nothing
End if

'# Устанавливаем включена/выключена учётная запись
If Not IsNull(blnAccountDisabled) Then    

    Set objUser = GetObject("WinNT://" & strComputer & "/" & strUserName & ", user")
        
        objUserFlags = objUser.Get("UserFlags")
        
        If blnAccountDisabled Then
            objFlag = objUserFlags OR ADS_UF_ACCOUNTDISABLE
        Else
            objFlag = objUserFlags And Not ADS_UF_ACCOUNTDISABLE
        End If
        
        objUser.Put "userFlags", objFlag 
        objUser.SetInfo
        
    Set objUser = Nothing
    
End if    

    On Error Goto 0
    
End Sub



Добавлено через 1 минуту и 35 секунд
А ещё лучше тут: http://forum.vingrad.ru/index.php?showtopic=154708&view=findpost&p=1507682

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)