none
Скрипт массового изменения пароля локального администратора. RRS feed

  • Вопрос

  • Доброго времени суток дамы и господа!!!

    Нужен скрипт на PoSh для смены пароля локального администратора. Скрипт должен читать имена машин из txt-файла и записывать результат выполнения в другой файл. Машины не входят в домен. Поскольку я не большой специалист в PoSh - то буду рад любой помощи!!!

    Заранее спасибо всем неравнодушным!!!

    2 августа 2013 г. 6:16

Ответы

  • $user = "DOMAIN\UserName"
    $pass = "Passw0rd"
    
    Get-Content computer.txt | Foreach {
    	$computer = New-Object DirectoryServices.DirectoryEntry "WinNT://$_/Administrator,user",$user,$pass)
    	$computer.SetPassword("<NewPassword>")
    	if ($?) { "$_  -  установлен успешно" >> good.txt }
    	else { "$_  -  неудача" >> bad.txt}
    }


    Скрипт конечно замечательный, но у меня пока машины не входят в домен - реализовано всё на основе рабочих групп!

    DOMAIN - Это имя  машины(TestPc - будет домен).


    Ещё раз: машины в домен НЕ входят.

    Вот еще раз и прочитайте,что написанно. Что DOMAIN это имя машины,куда подключаемся(т.к. рабочая группа,указываем имя удаленной машины).

    PS > $env:COMPUTERNAME
    HY-SRV
    PS > $env:USERDOMAIN
    HY-SRV

    PS. Раз сложно правильно прочитать написанное, то $user = "DOMAIN\UserName" заменить на $user = "UserName"

    • Помечено в качестве ответа Igor3000 7 августа 2013 г. 7:55
    5 августа 2013 г. 12:08
    Отвечающий
  • 2 августа 2013 г. 10:23
    Отвечающий
  • Эту тулзу я знаю. Мне бы хотелось реализовать именно скриптом.

    Get-Content computer.txt | Foreach {
    	([adsi]"WinNT://$_/Administrator,user").SetPassword("<Password>")
    }
    

    2 августа 2013 г. 11:53
    Отвечающий

Все ответы

  • 2 августа 2013 г. 10:23
    Отвечающий
  • Эту тулзу я знаю. Мне бы хотелось реализовать именно скриптом.
    2 августа 2013 г. 11:42
  • Эту тулзу я знаю. Мне бы хотелось реализовать именно скриптом.

    Get-Content computer.txt | Foreach {
    	([adsi]"WinNT://$_/Administrator,user").SetPassword("<Password>")
    }
    

    2 августа 2013 г. 11:53
    Отвечающий
  • Эту тулзу я знаю. Мне бы хотелось реализовать именно скриптом.


    Get-Content computer.txt | Foreach {
    	([adsi]"WinNT://$_/Administrator,user").SetPassword("<Password>")
    }

    А как вывести результат исполнения в файл? И как указать текущей пароль админа для аутентификации?

    5 августа 2013 г. 7:55
  • $user = "DOMAIN\UserName"
    $pass = "Passw0rd"
    
    Get-Content computer.txt | Foreach {
    	$computer = New-Object DirectoryServices.DirectoryEntry "WinNT://$_/Administrator,user",$user,$pass)
    	$computer.SetPassword("<NewPassword>")
    	if ($?) { "$_  -  установлен успешно" >> good.txt }
    	else { "$_  -  неудача" >> bad.txt}
    }

    5 августа 2013 г. 8:47
    Отвечающий
  • $user = "DOMAIN\UserName"
    $pass = "Passw0rd"
    
    Get-Content computer.txt | Foreach {
    	$computer = New-Object DirectoryServices.DirectoryEntry "WinNT://$_/Administrator,user",$user,$pass)
    	$computer.SetPassword("<NewPassword>")
    	if ($?) { "$_  -  установлен успешно" >> good.txt }
    	else { "$_  -  неудача" >> bad.txt}
    }


    Скрипт конечно замечательный, но у меня пока машины не входят в домен - реализовано всё на основе рабочих групп!
    5 августа 2013 г. 9:29
  • $user = "DOMAIN\UserName"
    $pass = "Passw0rd"
    
    Get-Content computer.txt | Foreach {
    	$computer = New-Object DirectoryServices.DirectoryEntry "WinNT://$_/Administrator,user",$user,$pass)
    	$computer.SetPassword("<NewPassword>")
    	if ($?) { "$_  -  установлен успешно" >> good.txt }
    	else { "$_  -  неудача" >> bad.txt}
    }


    Скрипт конечно замечательный, но у меня пока машины не входят в домен - реализовано всё на основе рабочих групп!
    DOMAIN - Это имя  машины(TestPc - будет домен).
    5 августа 2013 г. 9:40
    Отвечающий
  • $user = "DOMAIN\UserName"
    $pass = "Passw0rd"
    
    Get-Content computer.txt | Foreach {
    	$computer = New-Object DirectoryServices.DirectoryEntry "WinNT://$_/Administrator,user",$user,$pass)
    	$computer.SetPassword("<NewPassword>")
    	if ($?) { "$_  -  установлен успешно" >> good.txt }
    	else { "$_  -  неудача" >> bad.txt}
    }


    Скрипт конечно замечательный, но у меня пока машины не входят в домен - реализовано всё на основе рабочих групп!

    DOMAIN - Это имя  машины(TestPc - будет домен).

    Ещё раз: машины в домен НЕ входят.
    5 августа 2013 г. 11:57
  • $user = "DOMAIN\UserName"
    $pass = "Passw0rd"
    
    Get-Content computer.txt | Foreach {
    	$computer = New-Object DirectoryServices.DirectoryEntry "WinNT://$_/Administrator,user",$user,$pass)
    	$computer.SetPassword("<NewPassword>")
    	if ($?) { "$_  -  установлен успешно" >> good.txt }
    	else { "$_  -  неудача" >> bad.txt}
    }


    Скрипт конечно замечательный, но у меня пока машины не входят в домен - реализовано всё на основе рабочих групп!

    DOMAIN - Это имя  машины(TestPc - будет домен).


    Ещё раз: машины в домен НЕ входят.

    Вот еще раз и прочитайте,что написанно. Что DOMAIN это имя машины,куда подключаемся(т.к. рабочая группа,указываем имя удаленной машины).

    PS > $env:COMPUTERNAME
    HY-SRV
    PS > $env:USERDOMAIN
    HY-SRV

    PS. Раз сложно правильно прочитать написанное, то $user = "DOMAIN\UserName" заменить на $user = "UserName"

    • Помечено в качестве ответа Igor3000 7 августа 2013 г. 7:55
    5 августа 2013 г. 12:08
    Отвечающий