Городской портал города Оленегорск


Как проверить / изменить пользовательский ввод с помощью скрипта

Нажмите кнопку Изменить , чтобы открыть редактор скриптов.

Чтобы получить информацию о пользователе, вы можете использовать ссылки на значения (например,% username%). Значения ссылок будут заменены соответствующими значениями свойств учетной записи пользователя.

$ htable = @ {FirstName = "% firstname%"; LastName = "% lastname%"; Department = "% отдела%";}

После замены ссылок на значения скрипт будет выглядеть следующим образом:

$ htable = @ {FirstName = "John"; LastName = "Doe"; Department = "Marketing";}

Чтобы получить и обновить свойства учетной записи пользователя и контролировать выполнение операции, вы можете использовать переменную с именем $ Context . Это предопределенная переменная PowerShell типа ExecuteScriptContext ,

Чтобы определить, было ли указано значение для свойства, вызовите метод IsPropertyModified () . Чтобы получить значение свойства, вызовите метод GetModifiedPropertyValue () . Чтобы обновить значение свойства, используйте метод SetModifiedPropertyValue () .

if ($ Context .IsPropertyModified ("samAccountName")) {# Получить значение свойства $ newValue = $ Context .GetModifiedPropertyValue ("samAccountName") # Изменить значение $ newValue = $ newValue + "1" # Обновить значение $ Context .SetModifiedProperty ("samAccountName", $ newValue)}

Чтобы определить, был ли изменен пароль пользователя во время операции, используйте метод IsPasswordChanged (). Чтобы получить новый пароль, вызовите метод GetNewPassword () .

if ($ Context .IsPasswordChanged ()) {$ newPassword = $ Context .GetNewPassword () ...}

Чтобы отменить операцию, вызовите метод Cancel () .

if ($ isValueInvalid) {$ Context .Cancel ("Недопустимое значение.") return}

Чтобы добавить запись в журнал выполнения операций, используйте метод LogMessage () . Второй параметр метода может принимать следующие значения: «Информация», «Предупреждение» и «Ошибка».

$ Context .LogMessage («Имя пользователя было изменено.», «Информация»)

Чтобы получить доменное имя пользователя, вызовите метод GetObjectDomain () . Метод принимает отличительное имя (DN) объекта в качестве входного параметра.

$ domainName = $ Context .GetObjectDomain ("% difishedName%")

Чтобы отправить сообщение электронной почты или SMS-сообщение, используйте методы SendMail () и SendSms () .

$ Context .SendMail ($ toAddress, $ subject, $ bodyText, $ bodyHtml) $ Context .SendSms ($ mobileNumber, $ text) Пример 1. Проверка того, что идентификатор сотрудника уникален и правильно отформатирован Модуль импорта Adaxes if ($ Context .IsPropertyModified ("employeeID")) {# Получить значение $ value = $ Context .GetModifiedPropertyValue ("employeeID") # Проверить значение if (([[System.String] :: IsNullOrEmpty ($) value)) -or (-not ($ value .Contains ("-")))) {$ Context .Cancel ("Неверный идентификатор сотрудника!") return} # Проверить, является ли значение уникальным if (( Get-AdmUser - Фильтр 'employeeID -eq $ value') -ne $ NULL) {$ Context .Cancel ("Пользователь с указанным идентификатором сотрудника уже существует!") Return}} Пример 2: Добавить цифру к имени пользователя, если оно не уникально Функция Adaxes модуля импорта IsUserNameUnique ($ username) {$ user = Get-AdmUser $ username -erroraction без вывода сообщений продолжит возврат $ user -eq $ Null} # Получить имя пользователя $ username = $ Context .GetModifiedPropertyValue ("samAccountName") # Проверить, является ли он уникальным if (IsUserNameUnique ($ username)) {return} # Если имя пользователя не является уникальным, добавьте к нему цифру $ uniqueUsername = $ Null для ($ i = 1; $ True; $ i ++) {$ uniqueUsername = $ username + $ i if (IsUserNameUnique ($ uniqueUsername)) {break}} # Обновление имени входа пользователя (до Windows 2000) $ Context .SetModifiedPropertyValue ("samAccountName", $ uniqueUsername) # Обновление имени входа пользователя $ upnSuffix = $ Context .GetObjectDomain ("% diverishedName%") $ userLogonName = $ uniqueUsername + "@ "+ $ upnSuffix $ Context .SetModifiedPropertyValue (" userPrincipalName ", $ userLogonName) $ Context .LogMessage (" Имя пользователя было изменено на "+ $ userLogonName` + ".", "Информация") Пример 3: переименуйте пользователя, если полное имя не является уникальным в подразделении Функция Adaxes модуля импорта DoesObjectExist ($ objectDN) {$ obj = Get-AdmObject $ objectDN .ToString () -erroraction без вывода сообщений продолжит возврат $ obj -ne $ Null} # Получить отличительное имя (DN) пользователя $ objectDN = $ Context .TargetObject.ObjectInfo.DN # Проверить, существует ли объект с таким же DN, если ( -not (DoesObjectExist ($ objectDN))) {return} $ objectLeaf = $ objectDN .Leaf для ($ i = 1 ;; $ i ++) {# Создать новое DN $ objectName = $ objectLeaf .Value + $ i $ objectRdn = New-Object "Softerra.Adaxes.Ldap.Rdn" $ objectLeaf .Type, $ objectName $ objectDN = $ objectDN .Parent $ objectDN .AddLeaf ($ objectRdn) if (-not (DoesObjectExist ($ objectDN))) {# Rename пользователь $ Context .SetModifiedPropertyValue ("имя", $ objectName) $ Context .LogMessage ("Полное имя изменено на" + $ objectName `+". "," Информация ") break}} Пример 4: проверьте длину пароля $ PasswordMinLength = 5 if ($ Context .IsPasswordChanged ()) {# Получить пароль $ newPassword = $ Context .GetNewPassword () # Проверить длину пароля if ($ newPassword .Length -lt $ PasswordMinLength) {$ Context .Cancel (" Пароль слишком короткий. ") Return}} Пример 5: удаление пробелов из имени пользователя $ SpaceRemoved = $ False # Имя входа пользователя (до Windows 2000) if ($ Context .IsPropertyModified ("samAccountName")) {$ samAccountName = $ Context .GetModifiedPropertyValue ("samAccountName") if ($ samAccountName .Contains ") ( ) {# Удалить пробелы $ samAccountName = $ samAccountName .Replace ("", "") # Обновить sAMAccountName $ Context .SetModifiedPropertyValue ("samAccountName", $ samAccountName) $ SpaceRemoved = $ True}} # Имя входа пользователя, если контекст ($). IsPropertyModified ("userPrincipalName")) {$ userPrincipalName = $ Context .GetModifiedPropertyValue ("userPrincipalName") if ($ userPrincipalName .Contains ("")) {# Удалить пробелы $ userPrincipalName = $ userPrincipalName (#) "" Обновите имя пользователя. $ Context .SetModifiedPropertyValue ("userPrincipalName", $ userPrincipalName) $ SpaceRemoved = $ True}} # Записать сообщение, если ($ SpaceRemoved) {$ Context .LogMessage ("Пробелы были удалены из имени пользователя.", "Информация ")} Пример 6: заменить определенные символы в имени пользователя $ props = @ ("sAMAccountName", "userPrincipalName") $ map = @ {"å" = "a"; "ö" = "o"; "ä" = "a"; "ü" = "u"; "ñ" = "n"; "é" = "e"; знак равно } foreach ($ prop in $ props) {if ($ Context .IsPropertyModified ($ prop)) {$ value = $ Context .GetModifiedPropertyValue ($ prop) foreach ($ ключ в $ map .Keys) {$ value = $ value. Заменить ($ key, $ map [$ key])} $ Context .SetModifiedPropertyValue ($ prop, $ value) $ Context .LogMessage ($ prop + ":" + $ value, "Information")}}

Новости

Рыбалка в Териберке
На марте туда пожалуй под закрытие дороги, становилось снять номер в мотельчике на Очередном шоссе. Галопом вылетели из строя, успели как раз к слову движения колонны. С уловкой в общем било, один-единственный

Футболка рыбалка
Главная   /  Мой блог ← Футболки логотипом armin van buuren   |  В начало  |  Футболка the pirate bay → Качественные футболка рыбалка |

Клевое место рыбалка
Мы предлагаем рыбалку и отдых в уникальном месте Москвы, национальном парке "Лосиный остров"! Нижний пруд Очищенная береговая территория идеально подходит для ловли на удочку, штекер и удобного

Светлые горы рыбалка
«Светлые горы» в Подмосковье - одно из мест, где москвичи, да и гости, могут провести время в свое удовольствие и одновременно с пользой. База расположена неподалеку от столицы. Не нужно далеко

Рыбалка на пахре
По моим наблюдениям, как двадцать лет назад, так и сейчас Пахра вполне способна одарить рыболова хорошим уловом плотвы и подлещика, а если особо повезет, то и знаменитым пахринским карасем, который тянет

Рыбалка в савельево
Ленинградское шоссе проходит по живописным местам. К ним относятся водные просторы в Карелии, живописные заводи в Завидово. Однако поехать туда, чтобы порыбачить, может не каждый. Это связано со значительной

Рыбалка на селигере
На озере Селигер рыбачить будет интересно всем, кто не любит халявы. То есть любящих платные пруды просим пройти мимо. Так как здесь ловля рыбы зависит от времени года, погоды, времени суток, умения ловить

Рыбалка в карелии
Республики Карелия находится в северо-западной части страны, климат довольно мягкий, с большим количеством осадков. Характерно, что зима вступает в свои права рано, она, как правило, снежная, но без сильных

Русская рыбалка 3
Игра русская рыбалка 3 - это последняя официальная версия игры, в которой есть одиночный режим. За эту игру не надо платить никаких денег – она абсолютно бесплатна, просто скачиваете ее себе на компьютер

Триал русская рыбалка
триал русская рыбалка Уважаемые рыбаки и гости, фото отчёт за 31.08.2017 года, было произведено зарыбление водоема карпом, общим весом 700 кг, навеска 0.7-1 кг. Всем успехов.

                                                                                                                                               ОЛЕНЕГОРСК 2010 - 2014                                                                                                 

создание сайта - Старт Икс