Автор Тема: Подскажите как изменить формат даты в скрипте PS  (Прочитано 5920 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stierlitz

  • Постоялец
  • ***
  • Сообщений: 193
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: От туда
Скрипт отсылает дату на почту, и записывает эту же дату в лог, в лог дата записывается нормально в виде 15 сентабря 2013, а на почту приходит в виде 9/15/2013

#Script Body

$ExprDate1=(Get-Date).AddDays($Date1).DayOfYear
$ExprDate2=(Get-Date).AddDays($Date2).DayOfYear

$AllUsers=Get-ADUser -Filter * -SearchBase $UserScope -Properties PasswordLastSet,EmailAddress

foreach ($User in $AllUsers){


If (($User).PasswordLastSet.AddDays($ExpPeriod).DayOfYear -eq $ExprDate1 -or ($User).PasswordLastSet.AddDays($ExpPeriod).DayOfYear -eq $ExprDate2)
{
$MailSubject='Ваш пароль истекает'+' '+($User).PasswordLastSet.AddDays($ExpPeriod)
$MailRecipient=$User.EmailAddress

sendMail

Write-Output 'Sending Mail To:'$User.EmailAddress'Because Password will be expired on'($User).PasswordLastSet.AddDays($ExpPeriod) '---------'  | Out-File -FilePath $ReportFullPath -Append}

}


#End Script

Хотя и там и там ($User).PasswordLastSet.AddDays($ExpPeriod) , как сделать чтобы на почту приходила дата в формате 15 сентабря 2013?

Оффлайн Kazun

  • Пользователь
  • **
  • Сообщений: 73
  • Рейтинг: 9
    • Просмотр профиля
  • Откуда: Иваново
($User).PasswordLastSet.AddDays($ExpPeriod).ToLongDateString()

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
$MailSubject='Ваш пароль истекает'+' '+(($User).PasswordLastSet.AddDays($ExpPeriod)).ToString("dd/MM/yyyy")

Оффлайн Stierlitz

  • Постоялец
  • ***
  • Сообщений: 193
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: От туда
Спасибо

Оффлайн Kazun

  • Пользователь
  • **
  • Сообщений: 73
  • Рейтинг: 9
    • Просмотр профиля
  • Откуда: Иваново
ToString("dd/MM/yyyy") - Приводит к формату 15 сентабря 2013?? :D

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
ToString("dd/MM/yyyy") - Приводит к формату 15 сентабря 2013?? :D
Цитировать
PS(18)> (Get-Date).ToString("dd/MM/yyyy")
20.03.2013

Оффлайн Kazun

  • Пользователь
  • **
  • Сообщений: 73
  • Рейтинг: 9
    • Просмотр профиля
  • Откуда: Иваново
ToString("dd/MM/yyyy") - Приводит к формату 15 сентабря 2013?? :D
Цитировать
PS(18)> (Get-Date).ToString("dd/MM/yyyy")
20.03.2013
Так зачем мне приводить совершенно другой формат?

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Так зачем мне приводить совершенно другой формат?
Затем, чтобы люди, получившие тектсовое сообщение по электронной почте, содержащее дату, видели эту дату в привычном для них фомате День/Месяц/Год, а не в заоокеанском Месяц/День/Год.

Оффлайн Kazun

  • Пользователь
  • **
  • Сообщений: 73
  • Рейтинг: 9
    • Просмотр профиля
  • Откуда: Иваново
Так зачем мне приводить совершенно другой формат?
Затем, чтобы люди, получившие тектсовое сообщение по электронной почте, содержащее дату, видели эту дату в привычном для них фомате День/Месяц/Год, а не в заоокеанском Месяц/День/Год.
Просто я никогда не умел правильно читать -"как сделать чтобы на почту приходила дата в формате 15 сентабря 2013?" и поэтому уточнил,как ToString("dd/MM/yyyy") - приводит к данному формату,но так и не понял.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Просто я никогда не умел правильно читать -"как сделать чтобы на почту приходила дата в формате 15 сентабря 2013?"
Нет, там не так написано (зачм вырывать из контекста?  ;))

Скрипт отсылает дату на почту, и записывает эту же дату в лог, в лог дата записывается нормально в виде 15 сентабря 2013, а на почту приходит в виде 9/15/2013
Откуда я сделал вывод, что основная проблема  у человека связана с тем, что месяц идет перед датой, но если заниматься буквоедством, то я был не совсем точен.  ;)
ЗЫ Однако, если учесть то, что ТС поблагодарил меня в личку, то думаю, что мой ответ ТС удовлетворил, а я правильно понял суть вопроса  ;)

Оффлайн Kazun

  • Пользователь
  • **
  • Сообщений: 73
  • Рейтинг: 9
    • Просмотр профиля
  • Откуда: Иваново
Что ж,снимаю шляпу.

Оффлайн Stierlitz

  • Постоялец
  • ***
  • Сообщений: 193
  • Рейтинг: 1
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: От туда
Формат я изменил на 'dd MMMM yyyy г.'
Просто я не знал куда вообще его воткнуть, чтобы применить на теме письма.

Оффлайн Kazun

  • Пользователь
  • **
  • Сообщений: 73
  • Рейтинг: 9
    • Просмотр профиля
  • Откуда: Иваново
Проще - ToString("D") ,тот же формат ToLongDateString()

Оффлайн cooperdon78

  • Новичок
  • *
  • Сообщений: 1
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Воронеж
Спасибо ребят, очень помогли!