PowerShell рдкрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдЪреЗрдд рдХрд░реЗрдВ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рдХрд╛рд░реНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ eToken рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рдХрд╛рд░реНрдпрд╕реНрдерд▓реЛрдВ рдкрд░ рдЕрдзрд┐рдХреГрдд рд╣реИрдВред
EToken рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ 1 рд╡рд░реНрд╖ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП Windows рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рддрд╛рдХрд┐ рд╡реЗ рд╕рдордп рдкрд░ рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖ рд╕рдХреЗрдВред
рдпрд╣ рдХрд╛рд░реНрдп рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬрдЯрд┐рд▓ рдерд╛ рдХрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдореЗрдВ рд╕реНрд╡рд╛рдореА рдХреЗ рдореЗрд▓ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдПрдЪрдИрдПрд▓ рд╕реЗ рд▓реЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рдЕрд▓рд╛рджреАрди рдХрдВрдкрдиреА рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЯреЛрдХрди рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╕рдВрд╕рд╛рдзрди рдПрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдереА (рд╡реИрд╕реЗ, рдкреЙрд╡рд░рд╢реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред
AD рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдореЗрд▓ рдкрддреЗ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП ActiveRoles рдкреНрд░рдмрдВрдзрди рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЖрдк AD рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ www.quest.com/powershell/activeroles-server.aspx
рдореИрдВрдиреЗ рдЗрд╕реЗ Win7 рдкрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди XP рдпрд╛ 2003 рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдФрд░ рдпрд╣рд╛рдБ рд▓рд┐рдЦреА рдЧрдИ рдХрдорд╛рдВрдбреНрд╕ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдПред

#
Add-PSSnapin Quest.ActiveRoles.ADManagement

#
$CaView = New-Object -ComObject CertificateAuthority.View
$CaView.OpenConnection("serv\NEWCERTSERV")

# ,
$properties = "RequestID","RequesterName","NotAfter"
$CaView.SetResultColumnCount($properties.Count)
$properties | %{$CAView.SetResultColumn($CAView.GetColumnIndex($False, $_))}

# , 7
$RColumn = $CAView.GetColumnIndex($False, "NotAfter")
$CaView.SetRestriction($RColumn,0x8,0,[datetime]::Now)
$CaView.SetRestriction($RColumn,0x4,0,(Get-Date).AddDays(+7))
# ,
$RColumn = $CAView.GetColumnIndex($False, "Disposition")
$CaView.SetRestriction($RColumn,1,0,20)

#
$Certs=@()
$Row = $CaView.OpenView()
while ($Row.Next() -ne -1) {
$Cert = New-Object psobject
$Column = $Row.EnumCertViewColumn()
while ($Column.Next() -ne -1) {
$current = $Column.GetName()
$Cert | Add-Member -MemberType NoteProperty -Name $($Column.GetName()) -Value $($Column.GetValue(1)) -Force
}
$Certs+=$Cert
$Column.Reset()
}
$Row.Reset()

#
$Body=""
#
$Body_One=""
#
$smtp = New-Object net.mail.smtpclient("mailserv")
#
foreach ($i in $Certs){
$Body_One+="тДЦ: "
$Body_One+=$i.RequestID
$Body_One+=", : "
$Body_One+=$i.{Request.RequesterName}
$Body_One+=", : "
$Body_One+=$i.NotAfter
$Body_One+="`n"

# ,
$user_mail = Get-QADUser $i.{Request.RequesterName} -DontUseDefaultIncludedProperties -IncludedProperties 'mail' -SerializeValues
#
$smtp.Send("notice@domain.ru", $user_mail.mail, "eToken, .", $Body_One+" eToken' 666.")

$Body+=$Body_One
$Body_One=""
}
#
If ($Body -ne ""){
$smtp.Send("notice@domain.ru", "adm1@domain.ru", "eToken, .", $Body)
$smtp.Send("notice@domain.ru", " adm1@domain.ru", "eToken, .", $Body)
$smtp.Send("notice@domain.ru , " adm1@domain.ru", "eToken, .", $Body)
}


PowerShell рдореЗрдВ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯ-рдПрдХреНрдЬрд╝реАрдХреНрдпреВрд╢рди Policy RemoteSigned рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБред


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


All Articles