рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╛рдкреНрддрд┐ рд╕реВрдЪрдирд╛рдПрдВ

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


рдкреВрд░реА рдХрд╣рд╛рдиреА рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдИ рдХрд┐ рдЕрдЧрд▓реЗ рдЖрдИрдЯреА рдСрдбрд┐рдЯ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдкреНрд░рд╛рдЗрд╕ рд╡рд╛рдЯрд░рд╣рд╛рдЙрд╕ рдХреВрдкрд░реНрд╕ рд╕реЗ рдЧрдВрднреАрд░ рдЪрд╛рдЪрд╛ рдЖрдП рдФрд░ рд╣рдореЗрдВ рдХрдИ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдП рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдЪрд▓рдирд╛ рдкрдбрд╝рд╛ред рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдФрд░ рдЖрдк рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛, рд╕реБрд░рдХреНрд╖рд╛ рд╕рднреА рд╕реЗ рдКрдкрд░ рд╣реИ), рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдереЗред рдФрд░ рдлрд┐рд░ рдпрд╣ рд╢реБрд░реВ рд╣реБрдЖред

рдкреАрдбрдмреНрд▓реНрдпреВрд╕реА рдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕рд┐рдЯреА рдкреЙрд▓рд┐рд╕реА рдФрд░ рдкрд╕рд╡рд░реНрдб рд▓рд╛рдЗрдлрдЯрд╛рдЗрдо рдкреЗрд╢ рдХрд░рдирд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрд╛рдлреА рдЖрд╕рд╛рди рдерд╛, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛: рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдкрдиреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдмрд╛рд╣рд░реА рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╡реАрдкреАрдПрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛рдлреА рдЧрдВрднреАрд░ рд╣реЛ рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рдРрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЦрд╛рддреЗ рдХреЛ рдЕрдирд▓реЙрдХ рдХрд░рдирд╛ рдЕрдм рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рд▓реИрдкрдЯреЙрдк рдореВрд▓ рдХрд╛рд░реНрдпрд╛рд▓рдп рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╣реЛред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдирдиреНрдд рд╡реНрдпрд╛рдкрд╛рд░ рдпрд╛рддреНрд░рд╛рдУрдВ рдкрд░ "рд▓рд╛рдЗрд╡" рд╣реИрдВ, рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рдЧрдВрднреАрд░ рд╣реЛ рдЧрдИред рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдирд╛ рдЕрднреА рднреА рд╕рд┐рд░рджрд░реНрдж рд╣реИ, рдФрд░ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдореЗрдВ рдирд╣реАрдВред рдпрд╣рд╛рдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реБрдЖред рдереЛрдбрд╝реЗ рд╕рдордп рдХреА рдЦреЛрдЬ рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрдЪреНрдЫреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд┐рд▓реА рдЬреЛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рдереАред рдореБрдЭреЗ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдирд╛ рдерд╛ред

рдЪреВрдБрдХрд┐ рдпрд╣ рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рддрд╣рдд рдПрдХ рдкрдЯрдХрдерд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЕрдиреБрднрд╡ рдерд╛, рдмрд╣реБрдд рд╕рдордп рд╡реНрдпрддреАрдд рд╣реБрдЖ (рд▓рдЧрднрдЧ рдкреВрд░рд╛ рджрд┐рди)ред

рд▓рд┐рдкрд┐


рдФрд░ рдпрд╣рд╛рдБ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓рд╛:

Import-Module ActiveDirectory #System globalization #$ci = New-Object System.Globalization.CultureInfo("ru-RU") #SMTP server name $smtpServer = "mail.domain.local" #Creating a Mail object $msg = new-object Net.Mail.MailMessage #Creating a Mail object for report $msgr = new-object Net.Mail.MailMessage #Creating SMTP server object $smtp = new-object Net.Mail.SmtpClient($smtpServer) #E-mail structure Function EmailStructure($to,$expiryDate,$upn) { $msg.IsBodyHtml = $true $msg.From = "notification@domain.com" $msg.To.Clear() $msg.To.Add($to) $msg.Subject = "Password expiration notice" $msg.Body =</pre><code> "<html><body><font face='Arial'>This is an automatically generated message from Exchange service.<br><br><b>Please note that the password for your account <i><u>Domain\$upn</u></i> will expire on $expiryDate.</b><br><br>Please change your password immediately or at least before this date as you will be unable to access the service without contacting your administrator.</font></body></html>"</code><pre> } Function EmailStructureReport($to) { $msgr.IsBodyHtml = $true $msgr.From = "notification@domain.com" $msgr.To.Add($to) $msgr.Subject = "Script running report" $msgr.Body = </pre><code>"<html><body><font face='Arial'><b>This is a daily report.<br><br>Script has successfully completed its work.<br>$NotificationCounter users have recieved notifications:<br><br>$ListOfAccounts<br><br></b></font></body></html>"</code><pre> } #Set the target OU that will be searched for user accounts $OU = "OU=Organisation,DC=domain,DC=local" </pre><code>$ADAccounts = Get-ADUser -LDAPFilter "(objectClass=user)" -searchbase $OU -properties PasswordExpired, extensionAttribute15, PasswordNeverExpires, PasswordLastSet, Mail, Enabled | Where-object {$_.Enabled -eq $true -and $_.PasswordNeverExpires -eq $false}</code><pre> $NotificationCounter = 0 $ListOfAccounts = "" Foreach ($ADAccount in $ADAccounts) { $accountFGPP = Get-ADUserResultantPasswordPolicy $ADAccount if ($accountFGPP -ne $null) { $maxPasswordAgeTimeSpan = $accountFGPP.MaxPasswordAge } else { $maxPasswordAgeTimeSpan</pre><code> = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge</code><pre> } #Fill in the user variables $samAccountName = $ADAccount.samAccountName $userEmailAddress = $ADAccount.ExtensionAttribute15 $userPrincipalName = $ADAccount.UserPrincipalName if ($ADAccount.PasswordExpired) { Write-host "The password for account $samAccountName has expired!" } else { $ExpiryDate = $ADAccount.PasswordLastSet + $maxPasswordAgeTimeSpan $TodaysDate = Get-Date $DaysToExpire = $ExpiryDate - $TodaysDate #Calculating DaysToExpireDD to DD format (w/o fractional part and dot) $DaysToExpireDD = $DaysToExpire.ToString() -Split ("\S{17}$") Write-host </pre><code>"The password for account $samAccountName expires on: $ExpiryDate. Days left: $DaysToExpireDD"</code><pre> if (($DaysToExpire.Days -eq 15) -or </pre><code>($DaysToExpire.Days -eq 7) -or ($DaysToExpire.Days -le 3))</code><pre> { $expiryDate = $expiryDate.ToString("d",$ci) #Generate e-mail structure and send message if ($userEmailAddress) { EmailStructure $userEmailAddress $expiryDate $samAccountName $smtp.Send($msg) Write-Host </pre><code>"NOTIFICATION - $samAccountName :: e-mail was sent to $userEmailAddress"</code><pre> $NotificationCounter = $NotificationCounter + 1 $ListOfAccounts = </pre><code>$ListOfAccounts + $samAccountName + " - $DaysToExpireDD days left. Sent to $userEmailAddress<br>"</code><pre> } } } } Write-Host "SENDING REPORT TO IT DEPARTMENT" EmailStructureReport("itdepartment@domain.com") $smtp.Send($msgr) 


рдЗрд╕реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .ps1 рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред

рд▓реЙрдиреНрдЪ рдХрдорд╛рдВрдб


рдЕрдЧрд▓рд╛ - рдПрдХреНрд╕рдЯреЗрдВрд╢рди .cmd рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦреЗрдВред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

powershell D:\ExchangeTools\pwde.ps1


рджреЛрдиреЛрдВ рдлрд╛рдЗрд▓реЗрдВ рдореЗрд░реЗ рдореЗрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реИрдВред рдЖрдк рдЕрдкрдирд╛ рд╡рд┐рдХрд▓реНрдк рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдмрдирд╛рдПрдВ


рдЕрдЧрд▓рд╛, рд╣рдо .cmd рдлрд╝рд╛рдЗрд▓ рдХреЗ рджреИрдирд┐рдХ рд▓реЙрдиреНрдЪ рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ рд╣рд░ рджрд┐рди рд╕реБрдмрд╣ 11 рдмрдЬреЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
рдкреНрд░рд╛рд░рдВрдн> рд╕рднреА рдХрд╛рд░реНрдпрдХреНрд░рдо> рдПрд╕реЗрд╕рд░реАрдЬрд╝> рд╕рд┐рд╕реНрдЯрдо рдЯреВрд▓> рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪрдХред
рдХреНрд░рд┐рдпрд╛> рдирдпрд╛ рдХрд╛рд░реНрдп рдмрдирд╛рдПрдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм рдкрд░, "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрджрд▓реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ AD рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧ рдСрди рд╣реИ рдпрд╛ рдирд╣реАрдВ" рд╕реЗрдЯ рдХрд░реЗрдВ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд▓реЙрдЧ рдЗрди рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд▓рд╛рдПрдВ)ред рдХрд╛рд░реНрдп рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп, рд╕рд┐рд╕реНрдЯрдо рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛ред

рдЕрдЧрд▓рд╛ рдЯреНрд░рд┐рдЧрд░ рдЯреИрдм рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд▓реЙрдиреНрдЪ рд╕рдордп рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред

рдХреНрд░рд┐рдпрд╛рдПрдБ рдЯреИрдм, "рдирдпрд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, "рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рдХрд░реЗрдВ" рдЪреБрдиреЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ .cmd рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдЕрдВрддрд┐рдо рджреЛ рдЯреИрдм рдХреЛ рдирд╣реАрдВ рдЫреБрдЖ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдмрджрд▓рд╛рд╡ рджреЗрдЦреЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдЖрдк рдлрд┐рдЯ рджрд┐рдЦрддреЗ рд╣реИрдВред

рд╕реВрдЪрдирд╛рдПрдВ 15, 7 рдФрд░ 3 рджрд┐рди рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рднреЗрдЬреА рдЬрд╛рддреА рд╣реИрдВред

рдЪреЗрддрд╛рд╡рдиреА
рдПрдХреНрд╕рдЪреЗрдВрдЬ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкрддрд╛ рд░рд┐рд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕реЗ рдбреЛрдореЗрди рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рдкрддреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрддреЗ рдкрд░ рджреЛрд╣рд░рд╛рд╡) рдХреЗ рд▓рд┐рдП рднреЗрдЬрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

рдХреБрдЫ рд▓реЛрдЧ рд╢рд╛рдпрдж рдкреВрдЫреЗрдВрдЧреЗ - "рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдИ-рдореЗрд▓ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреЛрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд╝реАрд▓реНрдб рд╣реИ рддреЛ рдЙрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрддрд╛ рдХреНрдпреЛрдВ рд▓реЗрдВ?" рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧ рдХреЛ рднреА рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкрддреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдЦрд╛рддреЛрдВ рдореЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореЗрд▓рдмреЙрдХреНрд╕ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реНрд╡рдпрдВ рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдк рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЛрдореЗрди рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЯреНрд░реА рдкрд░ рдЬрд╛рдХрд░ ExtensionAttribute15 рдореЗрдВ рдкрддреЗ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЦрд╛рддреЗ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдЯреИрдм "рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрдкрд╛рджрдХ" рд╣реЛрдЧрд╛ред рдпрджрд┐ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХрдИ рдкрддреЗ рд╣реЛрдВрдЧреЗ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

Source: https://habr.com/ru/post/In160599/


All Articles