none
Регламентное задание по смене пароля RRS feed

  • Вопрос

  • Всем привет.

    Помогите ( поделитесь скриптом )

    Нужно чтобы всем пользователям AD ( в том числе администраторам домена , кромя пользователя blackhole ) по заданию винды менялись пароли пользователей и отправлялось письмо на почту sb@domain.local с новыми паролями вот такого вида:

    ФИО

    Логин

    Пароль


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    30 июля 2012 г. 8:05

Ответы

  • ИМХО Вам стоит отказаться от этой идеи,т.к. смахивает на бред и особой пользы не несет,а только проблемы.

    $inform = @()
    
    Get-ADUser -fi * -prop displayname | Foreach {
    	$ppass = "qwert@12345"
    	$spass = ConvertTo-SecureString -AsPlainText $ppass -Force
    	
    	try 
    	{
    		Set-ADAccountPassword -Identity $_ -NewPassword $spass -Reset 
    		$inform += New-Object PsObject -Property @{
    			ФИО = $_.displayname
    			Логин = $_.SamAccountName
    			Пароль = $ppass
    		}
    	}
    	catch 
    	{
    		Write-Host "$($_.SamAccountName) обновить не удалось." -ForegroundColor Yellow
    	}
    }
    
    $body = $inform | select ФИО,Логин,Пароль | Format-List | Out-String
    
    Send-MailMessage -Body $body -To "sb@domain.local" -From "ss@domain.local" -Subject "Смена паролей"

    • Предложено в качестве ответа Angel-Keeper 31 июля 2012 г. 6:03
    • Предложено в качестве ответа Vasily GusevModerator 31 июля 2012 г. 9:23
    • Помечено в качестве ответа KazunEditor 15 августа 2012 г. 9:08
    30 июля 2012 г. 9:09
    Отвечающий

Все ответы

  • ИМХО Вам стоит отказаться от этой идеи,т.к. смахивает на бред и особой пользы не несет,а только проблемы.

    $inform = @()
    
    Get-ADUser -fi * -prop displayname | Foreach {
    	$ppass = "qwert@12345"
    	$spass = ConvertTo-SecureString -AsPlainText $ppass -Force
    	
    	try 
    	{
    		Set-ADAccountPassword -Identity $_ -NewPassword $spass -Reset 
    		$inform += New-Object PsObject -Property @{
    			ФИО = $_.displayname
    			Логин = $_.SamAccountName
    			Пароль = $ppass
    		}
    	}
    	catch 
    	{
    		Write-Host "$($_.SamAccountName) обновить не удалось." -ForegroundColor Yellow
    	}
    }
    
    $body = $inform | select ФИО,Логин,Пароль | Format-List | Out-String
    
    Send-MailMessage -Body $body -To "sb@domain.local" -From "ss@domain.local" -Subject "Смена паролей"

    • Предложено в качестве ответа Angel-Keeper 31 июля 2012 г. 6:03
    • Предложено в качестве ответа Vasily GusevModerator 31 июля 2012 г. 9:23
    • Помечено в качестве ответа KazunEditor 15 августа 2012 г. 9:08
    30 июля 2012 г. 9:09
    Отвечающий
  • ИМХО Вам стоит отказаться от этой идеи,т.к. смахивает на бред и особой пользы не несет,а только проблемы.

    $inform = @()
    
    Get-ADUser -fi * -prop displayname | Foreach {
    	$ppass = "qwert@12345"
    	$spass = ConvertTo-SecureString -AsPlainText $ppass -Force
    	
    	try 
    	{
    		Set-ADAccountPassword -Identity $_ -NewPassword $spass -Reset 
    		$inform += New-Object PsObject -Property @{
    			ФИО = $_.displayname
    			Логин = $_.SamAccountName
    			Пароль = $ppass
    		}
    	}
    	catch 
    	{
    		Write-Host "$($_.SamAccountName) обновить не удалось." -ForegroundColor Yellow
    	}
    }
    
    $body = $inform | select ФИО,Логин,Пароль | Format-List | Out-String
    
    Send-MailMessage -Body $body -To "sb@domain.local" -From "ss@domain.local" -Subject "Смена паролей"

    Спасибо за помощь , Ваш скрипт ставит всем пароли qwert12345,а где прописывается смтп авторизация чтобы скрипт мог отправлять почту ?  И если не затруднит почему такая затея обречена на геморрой как это донести до сб ?

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    30 июля 2012 г. 18:58
  • Подробнее про Send-MailMessage - get-help Send-MailMessage -full

    PS >  get-help Send-MailMessage -param smtpserver
    
    -SmtpServer <string>
        Specifies the name of the SMTP server that sends the e-mail message.
    
        The default value is the value of the $PSEmailServer preference variable. If the preference variable is not set and
         this parameter is omitted, the command fails.
    
        Required?                    false
        Position?                    4
        Default value                $PSEmailServer
        Accept pipeline input?       false
        Accept wildcard characters?  false
    
    
    
    
    PS >  get-help Send-MailMessage -param credential
    
    -Credential <PSCredential>
        Specifies a user account that has permission to perform this action. The default is the current user.
    
        Type a user name, such as "User01" or "Domain01\User01". Or, enter a PSCredential object, such as one from the Get-
        Credential cmdlet.
    
        Required?                    false
        Position?                    named
        Default value                Current user
        Accept pipeline input?       false
        Accept wildcard characters?  false

    30 июля 2012 г. 19:21
    Отвечающий