Назад | Перейти на главную страницу

Использование Powershell для изменения свойств пользователя в XP

Можно ли использовать PowerShell для изменения настроек локального пользователя в Windows XP (без Active Directory), в частности настроек на вкладке свойств пользователя, таких как «Срок действия пароля никогда не истекает» и групп, членом которых является пользователь?

Образцы были бы замечательными, но указатель на соответствующую документацию тоже был бы отличным - я даже не уверен, что искать.

Самый простой способ - направить запросы ADSI к локальному провайдеру WinNT, который вернет локальные объекты в интересующей вас системе. Это могут быть локальные или удаленные системы, но они будут прикреплены к локальной учетной записи и объектам безопасности, а не к AD.

$user = [ADSI]"WinNT://joe-pc/joe"

После этого вы можете запрашивать и изменять свойства объекта $ user.

Для установки флага «Срок действия пароля не истекает» необходимо установить соответствующий флаг в атрибуте UserFlags. Вы можете найти полезную таблицу по адресу Мотобит здесь.

Чтобы принудительно установить пароль учетной записи Джо из приведенного выше примера, чтобы он никогда не истекал:

$Never_Expire=0x10000
$user.UserFlags.value=$user.UserFlags.value -bor $Never_Expire

Изменение членства в группах немного сложнее, но у Microsoft PowerShell Guy есть пошаговые инструкции. пройтись по добавлению учетных записей пользователей домена в локальную группу в системе, которая, я думаю, именно то, что вам нужно.

PS версия 2.0

$user = [ADSI]"WinNT://ComputerName/User"
$user.UserFlags = 65536 // Flag value used to set password to not expire
$user.SetInfo()

Отличная ссылка - http://learningpcs.blogspot.com/2011/01/powershell-winnt-provider.html

вот способ отключить пароль никогда не истекает при подключении к каждой машине ..

http://powershellcommunity.org/Forums/tabid/54/aff/1/aft/3836/afv/topic/Default.aspx

Я не уверен, как сделать именно то, что вы просили, но документация по началу работы с MS находится здесь: http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/start.mspx

Это не сработало для меня, поэтому после долгих поисков и многих проб и ошибок я придумал это, чтобы удалить password never expires из учетной записи локального администратора на основе SID и локальной гостевой учетной записи на основе SID.

#Set local administrator's password to expire
$admin = (gwmi -query "Select * From Win32_UserAccount Where LocalAccount = TRUE
                       AND SID LIKE 'S-1-5%-500'").Name
wmic useraccount where "name='$admin'" set passwordexpires=true


#Set local guest's password to machine expire
$guest = (gwmi -query "Select * From Win32_UserAccount Where LocalAccount = TRUE
                       AND SID LIKE 'S-1-5%-501'").Name
wmic useraccount where "name='$guest'" set passwordexpires=true