Форматер кода в читаемый html
Source code beautifier / syntax highlighter – convert code snippets to HTML « hilite.me:
'via Blog this'
Monday, October 19, 2015
Уведомления пользователей по мылу о смене пароля в домене
И опять я один....
Ситуация, есть домен, есть много пользователей которые забывают сменить пароль, не смотря на все упоминания системы, в связи с этим скрипт, напоминающий по почте
взято отсюда, в общем спасибо RobertPearman
Ситуация, есть домен, есть много пользователей которые забывают сменить пароль, не смотря на все упоминания системы, в связи с этим скрипт, напоминающий по почте
взято отсюда, в общем спасибо RobertPearman
################################################################################################################# # # Version 1.3 April 2015 # Robert Pearman (WSSMB MVP) # TitleRequired.com # Script to Automated Email Reminders when Users Passwords due to Expire. # # Requires: Windows PowerShell Module for Active Directory # # For assistance and ideas, visit the TechNet Gallery Q&A Page. http://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27/view/Discussions#content # ################################################################################################################## # Please Configure the following variables.... $smtpServer="rl-mx-1.rl.int" $expireindays = 10 $from = "Administrator <dyachok@rl.ua>" $logging = "Enabled" # Set to Disabled to Disable Logging or Enabled $logFile = "c:\log\mylog.csv" # ie. c:\mylog.csv $testing = "Disabled" # Set to Disabled to Email Users $testRecipient = "dyachok@rl.ua" $date = Get-Date -format ddMMyyyy # ################################################################################################################### # Check Logging Settings if (($logging) -eq "Enabled") { # Test Log File Path $logfilePath = (Test-Path $logFile) if (($logFilePath) -ne "True") { # Create CSV File and Headers New-Item $logfile -ItemType File Add-Content $logfile "Date,Name,EmailAddress,DaystoExpire,ExpiresOn" } } # End Logging Check # Get Users From AD who are Enabled, Passwords Expire and are Not Currently Expired Import-Module ActiveDirectory $users = get-aduser -filter * -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet, EmailAddress |where {$_.Enabled -eq "True"} | where { $_.PasswordNeverExpires -eq $false } | where { $_.passwordexpired -eq $false } $DefaultmaxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge # Process Each User for Password Expiry foreach ($user in $users) { $Name = $user.Name $emailaddress = $user.emailaddress $passwordSetDate = $user.PasswordLastSet $PasswordPol = (Get-AduserResultantPasswordPolicy $user) # Check for Fine Grained Password if (($PasswordPol) -ne $null) { $maxPasswordAge = ($PasswordPol).MaxPasswordAge } else { # No FGP set to Domain Default $maxPasswordAge = $DefaultmaxPasswordAge } $expireson = $passwordsetdate + $maxPasswordAge $today = (get-date) $daystoexpire = (New-TimeSpan -Start $today -End $Expireson).Days # Set Greeting based on Number of Days to Expiry. # Check Number of Days to Expiry $messageDays = $daystoexpire if (($messageDays) -ge "1") { $messageDays = "в течении " + "$daystoexpire" + " дней." } else { $messageDays = "сегодня." } # Email Subject Set Here $subject="Ваш пароль устареет $messageDays" $encoding = [System.Text.Encoding]::UTF8 # Email Body Set Here, Note You can use HTML, including Images. $body =" Уважаемый $name, <p> Рекомендуется изменить ваш пароль, пароль необходимо изменить $messageDays<br> Чтобы изменить пароль на доменном компьютере, нажмите клавиши Ctlr+ALt+Delete <br> (или же вы работаете на удаленно рабочем столе (терминале), нажимет клавиши Ctlr+ALt+End) <br> и выберите 'Сменить пароль...' <br> <p>С уважением, robot<br> </P>" # If Testing Is Enabled - Email Administrator if (($testing) -eq "Enabled") { $emailaddress = $testRecipient } # End Testing # If a user has no email address listed if (($emailaddress) -eq $null) { $emailaddress = $testRecipient }# End No Valid Email # Send Email Message if (($daystoexpire -ge "0") -and ($daystoexpire -lt $expireindays)) { # If Logging is Enabled Log Details if (($logging) -eq "Enabled") { Add-Content $logfile "$date,$Name,$emailaddress,$daystoExpire,$expireson" } # Send Email Message Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding $encoding } # End Send Message } # End User Processing # End
Saturday, October 17, 2015
Скрипт запуска необходимых Jobs из агента SQL
Возникла задача когда на MS SQL сервере необходимо перезапустить часть job, вручную делать эту работу не хотелось, вот реализовал скрипт по работе:
Основная схма работы скрипта, найти задачу которая начинается на 'Reset' и запустить ее.
DECLARE @SQL NVARCHAR(MAX) DECLARE @job SYSNAME DECLARE jobs_cursor CURSOR FOR SELECT 'EXEC msdb.dbo.sp_start_job ''' + s.NAME + '''' FROM msdb..sysjobs s WHERE s.NAME LIKE 'Reset%' OPEN jobs_cursor FETCH NEXT FROM jobs_cursor INTO @job WHILE @@Fetch_Status = 0 BEGIN PRINT @job EXEC sp_executesql @job_name = @job FETCH NEXT FROM jobs_cursor INTO @job END CLOSE jobs_cursor DEALLOCATE jobs_cursor
Основная схма работы скрипта, найти задачу которая начинается на 'Reset' и запустить ее.
Thursday, October 8, 2015
Проблемы в XCODE с GIT
Столкнулся с проблемой в работе с XCODE на Маке и GIT, после перегрузки слетали настройки
если в первый раз все отработало нормально, то на следующий раз при добавление в GIT возникала проблема и уже не решалась запуском команд.
Решение добавить в файл config который находить в директории .git следующие строки:
git config --global user.name "Mikola Dyachok"git config --global user.email "ndyachok@gmail.com"если в первый раз все отработало нормально, то на следующий раз при добавление в GIT возникала проблема и уже не решалась запуском команд.
Решение добавить в файл config который находить в директории .git следующие строки:
[user]
name = Nike Dyachok
email = ndyachok@gmail.com
Monday, October 5, 2015
Результат теста на СПАМ by mail-tester.com
Интересный механизм проверки писем на спам и совместимость.
Результат теста на СПАМ by mail-tester.com: "http://www.mail-tester.com/web-mbV3eD"
'via Blog this'
Результат теста на СПАМ by mail-tester.com: "http://www.mail-tester.com/web-mbV3eD"
'via Blog this'
Sunday, October 4, 2015
Thursday, October 1, 2015
1С статьи - 1CWorks.com
Как настроить HTTP сервер на 1С.
1С статьи - 1CWorks.com:
Одна из редких статей где написано как и что просто сделать.
Делаем JSON и новые обмены
'via Blog this'
1С статьи - 1CWorks.com:
Одна из редких статей где написано как и что просто сделать.
Делаем JSON и новые обмены
'via Blog this'
Sunday, September 20, 2015
Saturday, September 12, 2015
Tuesday, August 25, 2015
Android ListFragment Populated by RoboSpice | Christopher Biscardi
Рабочий вариант Android ListFragment
Android ListFragment Populated by RoboSpice | Christopher Biscardi: "Android ListFragment"
'via Blog this'
Android ListFragment Populated by RoboSpice | Christopher Biscardi: "Android ListFragment"
'via Blog this'
Wednesday, August 19, 2015
Доработка прав доступа в УТ11
Постоянно донимали пользователи со своими правами и разрешениями. В связи с этим пришлось доработать УТ11 на ускорение ввода разрешений или блокировок.
Вот и сделал себе "кайф", а пользователям радость.
Повозился пока нашел удобный вариант получения из ПВХ (Планов видов характеристик) необходимый мне объект и как итог его форму выбора
И добавил следующий код
В общем пока все работает.
Вот и сделал себе "кайф", а пользователям радость.
Повозился пока нашел удобный вариант получения из ПВХ (Планов видов характеристик) необходимый мне объект и как итог его форму выбора
Метаданные.НайтиПоТипу(ТекущийВидДоступа.ТипЗначения.Типы()[0]).ОсновнаяФормаДляВыбора.ПолноеИмя()
И добавил следующий код
&НаКлиенте Процедура КомандаПодбор(Команда) ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("РежимВыбора", Истина); ПараметрыФормы.Вставить("ЗакрыватьПриВыборе", Ложь); ПараметрыФормы.Вставить("МножественныйВыбор",Истина); ОткрытьФорму(ВернутьТекущуюФормуВЫбора(),ПараметрыФормы,Элементы.ЗначенияДоступа); //Метаданные.НайтиПоТипу(ТекущийВидДоступа.ТипЗначения.Типы()[0]).ПолноеИмя() //Если Метаданные.Справочники КонецПроцедуры Функция ВернутьТекущуюФормуВЫбора() Возврат Метаданные.НайтиПоТипу(ТекущийВидДоступа.ТипЗначения.Типы()[0]).ОсновнаяФормаДляВыбора.ПолноеИмя(); КонецФункции &НаКлиенте Процедура ЗначениеДоступаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если ВыбранноеЗначение = Тип("СправочникСсылка.Пользователи") ИЛИ ВыбранноеЗначение = Тип("СправочникСсылка.ГруппыПользователей") Тогда СтандартнаяОбработка = Ложь; НачальноеЗначение = Элементы.ЗначенияДоступа.ТекущиеДанные.ЗначениеДоступа; ОткрытьФорму("Справочник.Пользователи.ФормаВыбора", Новый Структура("ВыборГруппПользователей, ТекущаяСтрока", Истина, НачальноеЗначение), Элемент); ИначеЕсли ВыбранноеЗначение = Тип("СправочникСсылка.ВнешниеПользователи") ИЛИ ВыбранноеЗначение = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда СтандартнаяОбработка = Ложь; НачальноеЗначение = Элементы.ЗначенияДоступа.ТекущиеДанные.ЗначениеДоступа; ОткрытьФорму("Справочник.ВнешниеПользователи.ФормаВыбора", Новый Структура("ВыборГруппВнешнихПользователей, ТекущаяСтрока", Истина, НачальноеЗначение), Элемент); КонецЕсли; тМасс = Новый Массив; Если ТипЗнч(ВыбранноеЗначение) = Тип("Массив") тогда тМасс.Добавить(ВыбранноеЗначение); Иначе тМасс = ВыбранноеЗначение; КонецЕсли; Если ТипЗнч(ВыбранноеЗначение) = Тип("Массив") тогда Для Каждого ВыбранныйЭлемент Из ВыбранноеЗначение Цикл Если Объект.ЗначенияДоступа.НайтиСтроки(Новый Структура("ЗначениеДоступа",ВыбранныйЭлемент)).Количество() = 0 Тогда НоваяСтрока = Объект.ЗначенияДоступа.Добавить(); НоваяСтрока.ЗначениеДоступа = ВыбранныйЭлемент; НоваяСтрока.ВидДоступа = ТекущийВидДоступа; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры
В общем пока все работает.
Subscribe to:
Posts (Atom)
