Разное

Powershell текущая дата: How to Ubuntu: PowerShell работа с датой: дни недели, текущая дата

31.10.1977

Содержание

Get-Date

Получает текущие значение даты и времени.


Get-Date [-Format <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

Get-Date [-UFormat <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {<Date> | <Time> | <DateTime>}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-Second <int>] [-Year <int>] [<CommonParameters>]

Командлет Get-Date получает объект DateTime, содержащий текущую или заданную дату. Он позволяет выводить дату и время в различных форматах Windows и UNIX. С помощью командлета Get-Date можно создать текстовую строку с датой или временем, а затем передать ее другим командлетам или программам.

-Date <DateTime>

Задает дату и время. По умолчанию команда Get-Date возвращает текущие значения системной даты и времени.

Введите дату в формате, определенном локалью системы, например dd-MM-yyyy (Немецкий [Германия]) или MM/dd/yyyy (Английский [США]).

Обязательно?

false

Позиция?

1

Значение по умолчанию

Принимать входные данные из конвейера?

true (ByValue, ByPropertyName)

Принимать подстановочные знаки?

false

-Day <int>

Задает отображаемое значение числа месяца. Введите значение от 1 до 31. Это значение будет отображаться вместо текущего числа.

Если указать значение, превышающее число дней в месяце, оболочка Windows PowerShell прибавит соответствующее значение к количеству дней в месяце и выведет полученный результат. Например, результатом выполнения команды «get-date -month 2 -day 31» будет «3 марта», а не «31 февраля».

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-DisplayHint <DisplayHintType>

Определяет, какие элементы даты и времени будут отображаться.

Допустимые значения:

— Date: отображается только дата;

— Time: отображается только время;

— DateTime: отображаются дата и время.

По умолчанию используется значение DateTime.

Этот параметр не влияет на объект DateTime, возвращаемый командой Get-Date.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Format <string>

Отображает дату и время в формате Microsoft . NET Framework, указанном описателем формата. Введите описатель формата. Список доступных описателей формата см. в разделе «DateTimeFormatInfo Class» библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=143638.

При использовании параметра Format оболочка Windows PowerShell возвращает только те свойства объекта DateTime, которые требуются для отображения даты в указанном формате. В результате некоторые свойства и методы объектов DateTime могут оказаться недоступными.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Hour <int>

Задает отображаемое значение часа.

Введите значение от 1 до 23. Это значение будет отображаться вместо текущего часа.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Minute <int>

Задает отображаемое значение минуты. Введите значение от 1 до 59. Это значение будет отображаться вместо текущей минуты.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Month <int>

Задает отображаемое значение месяца. Введите значение от 1 до 12. Это значение будет отображаться вместо текущего месяца.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Second <int>

Задает отображаемое значение секунды. Введите значение от 1 до 59. Это значение будет отображаться вместо текущей секунды.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-UFormat <string>

Отображает дату и время в формате UNIX.

Список описателей формата см. в разделе «Примечания».

При использовании параметра UFormat оболочка Windows PowerShell возвращает только те свойства объекта DateTime, которые требуются для отображения даты в указанном формате. В результате некоторые свойства и методы объектов DateTime могут оказаться недоступными.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

-Year <int>

Задает отображаемое значение года. Введите значение от 1 до 9999. Это значение будет отображаться вместо текущего года.

Обязательно?

false

Позиция?

named

Значение по умолчанию

Принимать входные данные из конвейера?

false

Принимать подстановочные знаки?

false

<CommonParameters>

Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.

Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.

Входные данные

None

Передать входные данные этому командлету по конвейеру невозможно.

Выходные данные

System.DateTime или System.String

При использовании параметров Format и UFormat выходной объект — System.String.

По умолчанию дата и время отображаются в определенном локалью системы полном формате даты и полном формате времени.

При передаче даты по конвейеру командлету, принимающий строковые значения, например командлету Add-Content, оболочка Windows PowerShell преобразует объект DateTime в строку, прежде чем добавить его в файл. По умолчанию метод ToString() использует короткий формат даты и полный формат времени. Чтобы указать другой формат, воспользуйтесь параметрами Format или UFormat командлета Get-Date.

Значения Uformat:

Параметр UFormat может иметь следующие значения. Формат команды таков:

get-date -uformat %<значение>

Например:

get-date -uformat %d

Дата и время:

Дата и время — полный формат

(по умолчанию) (Пятница, 16 июня 2006 г. 10:31:27)

c Дата и время — сокращенный формат (Пт 16 июн 2006 10:31:27)

Дата:

D Дата в формате мм/дд/гг (06/14/06)

x Дата в стандартном формате локали (09/12/07 в случае американского варианта английского стандарта)

Год:

C Век (в случае 2006 года — 20)

Y Год в четырехзначном формате (2006)

y Год в двузначном формате (06)

G То же, что и «Y»

g То же, что и «y»

Месяц:

b Сокращенное название месяца (Янв)

B Полное название месяца (Январь)

h То же, что и «b»

m Номер месяца (06)

Неделя:

W Неделя года (00–52)

V Неделя года (01–53)

U То же, что и «W»

День:

a Сокращенное название дня недели (Пн)

A Полное название дня недели (Понедельник)

u Номер дня недели (понедельник = 1)

d День месяца — двузначный формат (05)

e День месяца — однозначное число, которому предшествует пробел ( 5)

j День года (1–366)

w То же, что и «u»

Время:

p AM или PM (до полудня или после полудня)

r Время в 12-часовом формате (09:15:36 AM)

R Время в 24-часовом формате без секунд (17:45)

T Время в 24-часовом формате (17:45:52)

X То же, что и «T»

Z Сдвиг часового пояса от всеобщего скоординированного времени (UTC) (-07)

Час:

H Час в 24-часовом формате (17)

I Час в 12-часовом формате (05)

k То же, что и «H»

l То же, что и «I» («L» в нижнем регистре)

Минуты и секунды:

M Минуты (35)

S Секунды (05)

s Число секунд, прошедших с 00 часов 00 минут 00 секунд 1 января 1970 года (1150451174. 95705)

Специальные знаки:

n Знак новой строки (\n)

t Знак табуляции (\t)

Использование PowerShell для сбора информации об инциденте / Хабр

PowerShell достаточно распространенное средство автоматизации, которое часто используется, как разработчиками вредоносных программ, так и специалистами по информационной безопасности.

В данной статье будет рассмотрен вариант использования PowerShell для удаленного сбора данных с конечных устройств при реагировании на инциденты ИБ. Для этого потребуется написать скрипт, который будет запускаться на конечном устройстве и далее будет подробное описание данного скрипта.


function CSIRT{
param($path)
if ($psversiontable.psversion.major -ge 5)
	{
	$date = Get-Date -Format dd.MM.yyyy_hh_mm
	$Computer = $env:COMPUTERNAME
	New-Item -Path $path\$computer\$date -ItemType 'Directory' -Force | Out-Null
	$path = "$path\$computer\$date"

	$process = get-ciminstance -classname win32_process | Select-Object creationdate, processname,
	processid, commandline, parentprocessid

	$netTCP = Get-NetTCPConnection | select-object creationtime, localaddress,
	localport, remoteaddress, remoteport, owningprocess, state
	
	$netUDP = Get-NetUDPEndpoint | select-object creationtime, localaddress,
	localport, remoteaddress, remoteport, owningprocess, state

	$task = get-ScheduledTask | Select-Object author, actions, triggers, state, description, taskname|
	where author -notlike '*Майкрософт*' | where author -ne $null |
	where author -notlike '*@%systemroot%\*' | where author -notlike '*microsoft*'

	$job = Get-ScheduledJob

	$ADS =  get-item * -stream * | where stream -ne ':$Data'

	$user = quser

	$runUser = Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run\"

	$runMachine =  Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run\"

	$array = $process, $netTCP, $netUDP, $task, $user, $runUser, $runMachine, $job, $ADS
	$arrayName = "Processes", "TCPConnect", "UDPConnect", "TaskScheduled", "Users", "RunUser", "RunMachine",
	"ScheduledJob", "AlternativeDataStream"


	for ($w = 0; $w -lt $array. count; $w++){
		$name = $arrayName[$w]
		$array[$w] >> $path\$name.txt
		}

	}

}

Для начала работы создаётся функция

CSIRT

, которая будет принимать аргумент – путь для сохранения полученных данных. В силу того, что большинство командлетов работают в Powershell v5, то для корректной работы сделана проверка версии PowerShell.

function CSIRT{
		
param($path)# при запуске скрипта необходимо указать директорию для сохранения
if ($psversiontable.psversion.major -ge 5)

Для удобства навигации по созданным файлам инициализированы две переменные: $date и $Computer, которым будут присвоены имя компьютера и текущая дата.

$date = Get-Date -Format dd.MM.yyyy_hh_mm
$Computer = $env:COMPUTERNAME
New-Item -Path $path\$computer\$date –ItemType 'Directory' -Force | Out-Null 
$path = "$path\$computer\$date"

Список запущенных процессов от имени текущего пользователя получим следующим образом: создадим переменную $process, присвоив ей командлет get-ciminstance с классом win32_process. Используя командлет Select-Object можно добавить дополнительные выводимые параметры, в нашем случае это будут parentprocessid (идентификатор родительского процесса PPID), creationdate (дата создания процесса), processed (идентификатор процесса PID), processname (имя процесса), commandline (команда запуска).

$process = get-ciminstance -classname win32_process | Select-Object creationdate, processname, processid, commandline, parentprocessid

Чтобы получить список всех TCP и UDP соединений создадим переменные $netTCP и $netUDP присвоив им командлеты Get-NetTCPConnection и Get-NetTCPConnection соответственно.

$netTCP = Get-NetTCPConnection | select-object creationtime, localaddress, localport, remoteaddress, remoteport, owningprocess, state

$netUDP = Get-NetUDPEndpoint | select-object creationtime, localaddress, localport, remoteaddress, remoteport, owningprocess, state

Немаловажным будет узнать список запланированных задач и заданий. Для этого используем командлеты get-ScheduledTask и Get-ScheduledJob. Присвоим им переменные $task и $job, т.к. изначально в системе существует масса запланированных задач, то для того, чтобы определить зловредную активность стоит отфильтровать легитимные запланированные задачи. В этом нам поможет командлет Select-Object.

$task = get-ScheduledTask | Select-Object author, actions, triggers, state, description, taskname| where author -notlike '*Майкрософт*' | where author -ne $null | where author -notlike '*@%systemroot%\*' | where author -notlike '*microsoft*' # $task исключает авторов, содержащих “Майкрософт”, “Microsoft”, “*@%systemroot%\*”, а также «пустых» авторов
$job = Get-ScheduledJob

В файловой системе NTFS существует такое понятие, как альтернативные потоки данных (Alternate Data Streams, ADS). Это означает, что файл в NTFS может быть дополнительно связан с несколькими потоками данных произвольного размера. С помощью ADS можно скрыть данные, которые не будут видны стандартными проверками системы. Благодаря этому можно внедрить вредоносный код и/или сокрыть данные.

Для вывода альтернативных потоков данных в PowerShell будем использовать командлет get-item и встроенный инструмент Windows stream c символом * для просмотра всех возможных потоков, для этого создадим переменную $ADS.

$ADS = get-item * -stream * | where stream –ne ':$Data' 

Полезно будет узнать и список пользователей, вошедших в систему, для этого создадим переменную $user и присвоим ей выполнение программы quser.

$user = quser

Злоумышленники, чтобы закрепиться в системе могут внести изменения в автозапуск. Чтобы просмотреть объекты в автозапуске можно воспользоваться командлетом Get-ItemProperty.

Создадим две переменные: $runUser – для просмотра автозагрузки от имени пользователя и $runMachine – для просмотра автозагрузки от имени компьютера.

$runUser = Get-ItemProperty 
"HKCU:\Software\Microsoft\Windows\CurrentVersion\Run\"
$runMachine = Get-ItemProperty 
"HKLM:\Software\Microsoft\Windows\CurrentVersion\Run\"

Чтобы вся информация записывалась в разные файлы создаем массив с переменными и массив с именами файлов.


$array = $process, $netTCP, $netUDP, $task, $user, $runUser, $runMachine, $job, $ADS
$arrayName = "Processes", "TCPConnect", "UDPConnect" "TaskScheduled", "Users", "RunUser", "RunMachine",
"ScheduledJob", "Alternative Data Stream"

И, используя цикл for, полученные данные будут записаны в файлы.

for ($w = 0; $w -lt $array.count; $w++){
	$name = $arrayName[$w]
	$array[$w] >> $path\$name.txt

После выполнения скрипта, будут созданы 9 текстовых файлов, содержащих необходимую информацию.

В настоящее время специалисты по кибербезопасности могут использовать PowerShell для обогащения информации, необходимой при решении разнообразных задач в своей работе. Добавив скрипт в автозагрузку можно получать некоторую информацию без снятия дампов, образов и т.д.

Скрипт PowerShell для контроля работы серверов

Задача:
Пинговать сервер и при отсутствие ответа записать в файл время и имя сервера который не ответил.   А так же выводить сообщение на экран машины на которой запущен скрипт.

$file = ‘D:\Logs\servers.txt’#файл со списком серверов
$DateNow =  (Get-Date -format «dd-MM-yyyy-HH-mm-ss»).ToString() #текущая дата в заданном формате и переводим в строковый тип
$DatePing =  (Get-Date -format «dd-MM-yyyy-HH-mm-ss»).ToString() #текущая дата в заданном формате и переводим в строковый тип для пинга
$fileerr = «D:\Logs\ServerErr-$DateNow.txt» # файл для записи ошибок пинга
New-Item -Path $fileerr -ItemType file #создаем новый файл с заданным именем
$servers = gc $file
$a = 0 #просто переменная
#Цикл бесконечный
While ($a -le 5)
{
    foreach ($Server in $Servers)
    {
        $DatePing =  (Get-Date -format «dd-MM-yyyy;HH-mm-ss»).ToString() #текущая дата в заданном формате и переводим в строковый тип
        if (test-Connection -ComputerName $Server -Count 2 -Quiet)
            {
                $m = «$Server;$DatePing;Все хорошо»
                write-host $m -ForegroundColor Green #пишем в консоль результат выполнения
               
            }
        else
            {
                write-Host «$Server;$DatePing;Не пингуется» -ForegroundColor Red #передаем в консоль какой сервер не пингуется
                $m = «$server;$DatePing;Сервер не пингуется» #создаем строку в конорой фраза и сервер который не ответил на запрос
                Out-File -FilePath $fileerr -InputObject $m -Append #выводим в файл результат работы
                $m1 = «$server — Сервер не пингуется»
                [System. Reflection.Assembly]::LoadWithPartialName(«System.Windows.Forms»)
                $Result=[Windows.Forms.MessageBox]::Show($m1, «Беда»,[Windows.Forms.MessageBoxButtons]::Ok, [Windows.Forms.MessageBoxIcon]::STOP)
            }
    }#конец цикла foreach
}#end While#

Резервное копирование баз 1С из командной строки powershell

Поскольку целесообразнее делать резервные копии на любой другой жесткий диск, а лучше сетевое хранилище — первым делом подключается сетевая папка, но можно и в любое другое место — тогда первые 2 строки и последняя не нужны. Пара логин1 и пароль1 — для доступа к сетевой папке куда будут сделаны выгрузки информационных баз 1С с сервера 1С Предприятия. $ints — перечень названий информационных баз на сервере 1С. Каждое название должно в точности соответствовать названию в 1С сервере и написано в кавычках. $date — Текущая дата.

Далее идет консольная команда для конфигуратора, запускаемая из командной строки:

C:\8. 3.4.389\bin\1cv8.exe CONFIG /S abc\$i /N логин2 /P пароль2 /DumpIB Z:\1с83 $i $date.dt

C:\8.3.4.389\bin\1cv8.exe — требуется точный путь к текущей версии клиента 1с предприятия
CONFIG /S abc\$i — подключение в режиме конфигуратора к кластеру 1с предприятия с названием abc к каждой базе $i по очереди из списка $ints
/N»»логин2″» /P»»пароль2″» — пользователь в информационной базе, имеющий права на выгрузку, лучше если будет пользователь с полными правами, но непоказывающийся в списке
/IBCheckAndRepair -ReIndex -IBCompression — перед выгрузкой базы производится реиндексирование (ускоряет работу базы) и компрессия (уменьшает размер базы)
/DumpIB»»Z:\$i $date.dt — выгружает базу в папку под именем «название базы текущая дата.dt
net use Z: /delete /y — отключает подключаемую сетевую папку.

$Z = New-Object -ComObject WScript. Network

$Z.MapNetworkDrive( «T:», «\\имя_компьютера\сетевая_папка», «true», «логин1», «пароль1» )

$ints = @(

«База1″,»База 2″,»base3″,»base_4»)

foreach ($i in $ints)

{

$date = (Get-Date -UFormat «%Y-%m-%d»)

&cmd /c «C:\8.3.4.389\bin\1cv8.exe CONFIG /S»»abc\$i»» /N»»логин2″» /P»»пароль2″» /IBCheckAndRepair -ReIndex -IBCompression»»»

&cmd /c «C:\8.3.4.389\bin\1cv8.exe CONFIG /S»»abc\$i»» /N»»логин2″» /P»»пароль2″» /DumpIB»»Z:\1с83 $i $date.dt»»»

}

&cmd /c «net use Z: /delete /y»

Рассказать:

Как из даты получить год, месяц или день в T-SQL? Microsoft SQL Server | Info-Comp.ru

Привет, сегодня я покажу, как в T-SQL из даты можно получить определенную часть этой даты, например, год, месяц, день и даже час, иными словами, в данном материале мы ответим на несколько вопросов, которые связаны с извлечением данных из значения, содержащего дату.

Как в T-SQL получить текущую дату?

Для начала давайте я расскажу о том, как в Microsoft SQL Server можно получить значение текущей даты.

Для получения текущей даты в Microsoft SQL Server существует несколько специальных системных функций. Давайте некоторые из этих функций рассмотрим.

  • GETDATE – функция возвращает значение, которое содержит дату и время компьютера, на котором запущен экземпляр Microsoft SQL Server, при этом смещение часового пояса не включается. Лично мне достаточно часто приходится пользоваться именно этой функцией;
  • CURRENT_TIMESTAMP – эта функция эквивалентна функции GETDATE, она возвращает точно такое же значение. Вы можете использовать любую функцию, но как я уже сказал, лично я отдаю предпочтение функции GETDATE;
  • SYSDATETIME – данная функция также возвращает дату и время компьютера, на котором запущен экземпляр Microsoft SQL Server, смещение часового пояса тоже не включается. Но в данном случае функция возвращает значение с более высокой точностью в долях секунды.

Примечание! Для того чтобы получить значение даты и времени с учетом смещения часового пояса, необходимо использовать функцию SYSDATETIMEOFFSET, а для того чтобы получить значение даты и времени в формате UTC функции GETUTCDATE или SYSUTCDATETIME.

Заметка! Начинающим рекомендую посмотреть мой видеокурс по T-SQL.

Пример – получение текущей даты в Microsoft SQL Server

В данном примере мы вызовем три функции получения текущей даты.

   
   SELECT GETDATE() AS [GETDATE],
           CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP],
           SYSDATETIME() AS [SYSDATETIME]


Как видите, результат практически одинаковый, за исключением того, что SYSDATETIME вернула более точное значение времени.

Как получить год из даты в T-SQL?

Если у Вас возникла необходимость из даты получить год, то есть, например, из 01. 01.2019 получить 2019 в виде отдельного значения или просто из текущей даты получить год, то в Microsoft SQL Server Вы это можете сделать несколькими способами.

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

Второй способ предполагает использование другой функции T-SQL – это DATEPART, которая возвращает целое число, представляющее указанную часть даты.

DATEPART принимает два параметра: первый, datepart, т.е. какую часть даты нам нужно вернуть, второй, дата, которую необходимо обработать.

Пример – получаем год из даты в Microsoft SQL Server

В данном примере я покажу различные вариации передачи параметра DATE в указанные выше функции, так как его можно передать и в виде переменной, и в виде выражения, и в виде функции. Сразу скажу, что эти способы передачи параметра можно использовать и в других функциях, которые сегодня мы будем рассматривать.

Чтобы DATEPART нам вернула год из даты, первым параметром нам необходимо передать значение, характеризующее часть «год», допустимо передавать следующие значения: year, yyyy или yy.

   
   --Объявляем переменную для хранения даты
   DECLARE @TestDate DATETIME
   --Присваиваем значение переменной (текущая дата)
   SET @TestDate = GETDATE()

   --Запрос SELECT
   SELECT @TestDate AS [Дата],
           
           --Передаем переменную в качестве параметра
           YEAR(@TestDate) AS [Год YEAR],
           DATEPART(YY, @TestDate) AS [Год DATEPART],
           
           --Передаем выражение, приводящее к типу DATE
           YEAR('01.01.2019') AS [Год YEAR],
           
           --В качестве параметра указываем функцию
           DATEPART(YY, GETDATE()) AS [Год DATEPART]


Как получить месяц из даты в T-SQL?

В T-SQL из даты можно получить и номер месяца, для этого можно использовать функцию MONTH, она возвращает целое число, представляющее месяц указанной даты или все ту же функцию DATEPART, в которую, в данном случае необходимо будет передать значение, характеризующее часть даты «месяц», можно использовать: month, mm или m.

Пример – получаем месяц из даты в Microsoft SQL Server

В этом примере мы получаем месяц из даты снова несколькими способами.

   
   --Объявляем переменную для хранения даты
   DECLARE @TestDate DATETIME
   --Присваиваем значение переменной (текущая дата)
   SET @TestDate = GETDATE()

   --Запрос SELECT
   SELECT @TestDate AS [Дата],
           
           --Передаем переменную в качестве параметра
           MONTH(@TestDate) AS [Месяц MONTH],
           DATEPART(MM, @TestDate) AS [Месяц DATEPART],
           
           --Передаем выражение, приводящее к типу DATE
           MONTH('01.01.2019') AS [Месяц MONTH],
          
           --В качестве параметра указываем функцию
           DATEPART(MM, GETDATE()) AS [Месяц DATEPART]


Как из даты получить день в T-SQL?

Для того чтобы получить из даты день, в T-SQL можно использовать функцию DAY – это функция возвращает целое число, представляющее день указанной даты. Также можно использовать и уже знакомую функцию DATEPART со значением первого параметра: day, dd или d.

Пример – получаем день из даты в Microsoft SQL Server

Здесь также мы используем несколько способов для получения дня из даты.

   
   --Объявляем переменную для хранения даты
   DECLARE @TestDate DATETIME
   --Присваиваем значение переменной (текущая дата)
   SET @TestDate = GETDATE()

   --Запрос SELECT
   SELECT @TestDate AS [Дата],
           
           --Передаем переменную в качестве параметра
           DAY(@TestDate) AS [День DAY],
           DATEPART(DD, @TestDate) AS [День DATEPART],
           
           --Передаем выражение, приводящее к типу DATE
           DAY('01.01.2019') AS [День DAY],
          
           --В качестве параметра указываем функцию
           DATEPART(DD, GETDATE()) AS [День DATEPART]


Как из даты получить час в T-SQL?

Чтобы из даты получить час, мы можем использовать функцию DATEPART со значением hour или hh. Только в данном случае второй параметр (date), в котором мы передаем значение даты, должен обязательно содержать время, т.е. иметь тип данных DATETIME, тип DATE не допускается.

Пример – получаем час из даты в Microsoft SQL Server

В этом примере мы из даты получаем час.

   
   --Объявляем переменную для хранения даты
   DECLARE @TestDate DATETIME
   --Присваиваем значение переменной (текущая дата)
   SET @TestDate = GETDATE()

   --Запрос SELECT
   SELECT @TestDate AS [Дата],
           
           --Передаем переменную в качестве параметра
           DATEPART(HH, @TestDate) AS [Час],
          
           --В качестве параметра указываем функцию
           DATEPART(HH, GETDATE()) AS [Час]


У меня все, надеюсь, перечисленные выше примеры помогут Вам в решении Ваших задач. Начинающим программистам рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать на T-SQL в Microsoft SQL Server.

Пока!

Нравится2Не нравится3

Делаем отчет по WSUS на PoSH: ra1aie — LiveJournal

PowerShell имеет командлеты для работы с WSUS. Их можно использовать, например, для выгрузки отчетов о состоянии клиентов WSUS и отправки их на e-mail. Вот пример такого скрипта:

#Подключаем инструментарий для работы с WSUS
[void][reflection.assembly]::LoadWithPartialName`
("Microsoft.UpdateServices.Administration")
 

#Задаем настройки WSUS
$WSUSServer = «WSUS.local»
$WSUSPort=»8530″
$UseSSL=$false
 

#Задаем переменные
$Now = Get-Date
$MaxDays = “7” #Количество дней с последней синхронизации/отчета, после которых клиенты попадают в выгрузку
$Maxdate = $Now.AddDays(-$Maxdays) #Вычисляется дата «текущая дата — $MaxDays»
 

#Задаем настройки для отправки почты
$SMTPServer = «MyMailServer.local»
$EmailFrom = «[email protected]»
$EmailTo = «[email protected]»
$EmailSubject = «Weekly WSUS Reports»
$EmailEncoding = [System. Text.Encoding]::UTF8 #Устаналиваем кодировку UTF8 для корректного отображения информации в теле письма
 

$EmailCaption = » ЕЖЕНЕДЕЛЬНЫЙ ОТЧЕТ О СОСТОЯНИИ WINDOWS SERVER UPDATE SERVIVES ($WSUSServer) `n `
`n `
Список компьютеров, не синхронизировавшихся с WSUS более $MaxDays дней: `n»
 

#Подключаемся к WSUS
$WSUSSrv= [Microsoft.UpdateServices.Administration.AdminProxy]`
::getUpdateServer($WSUSServer,$UseSSL,$WSUSPort)
 

#Создаем условие для поиска клиентов в базе данных WSUS
$ComputerTargetScope = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
 

#Включаем клиентов с подчиненных серверов (если таковые есть)
$ComputerTargetScope.IncludeDownstreamComputerTargets = $true
 

#Включаем клиентов из вложенных групп
$ComputerTargetScope.IncludeSubGroups = $true
 

#Включаем клиентов, последняя синхронизация которых была до $MaxDate
$ComputerTargetScope.ToLastSyncTime = $MaxDate
 

#Включаем клиентов, последний отчет от которых была до $MaxDate
$ComputerTargetScope. ToLastReportedStatusTime = $MaxDate
 

#Находим всех клиентов WSUS, удовлетворящих условию, сортируем по времени последней синхронизации
$Report=$WSUSSrv.GetComputerTargets($ComputerTargetScope) | `
select FullDomainName, RequestedTargetGroupName, LastSyncTime, LastSyncResult, LastReportedStatusTime | `
Sort-Object -Property LastSyncTime -Descending | Format-Table -AutoSize -Wrap | Out-String
 

#Отправляем письмо
Send-MailMessage -From $EmailFrom -To $EmailTo -SmtpServer $SMTPServer -Body “$EmailCaption `n$Report” -Subject $EmailSubject -Encoding $EmailEncoding

Мониторинг записей звонков системы ZOOM CallREC при помощи powershell и post-запроса

Существует ZOOM CallREC — система записи разговоров от Cisco.
Иногда с ней возникали проблемы:
1. Звонки переставали писаться.
2. Появлялись битые звонки, которые невозможно было прослушать.
Возникла задача мониторинга таких проблем.
Был доступ только к веб-интерфейсу ZOOM CallREC.
Необходим Powershell не ниже 3 версии.
Скрипт на Powershell отправляет post-запрос веб-серверу ZOOM CallREC, получает ответ, парсит его, результат присылает на почту.
Код скрипта:
#Скрипт делает post-запрос к веб-интерфейсу проверки записей звонков.
 
#Линк на страницу авторизации
$link2 = "http://1.1.1.1/callrec/loginAction.do"
 
#Делаем get-запрос по линку. Сохраняем сессию в переменной fb.
$r = Invoke-WebRequest $link2 -SessionVariable fb
 
#Определяем параметры авторизации для дальнейшей передачи методом post
$form = $r.Forms[1]
$form.Fields["login"] = "login"
$form.Fields["password"] = "password"
 
#Делаем из сохраненной сессии post-запрос по этому же линку, но уже с передачей логина и пароля. Аналогично можно сделать
#"http://1.1.1.1/callrec/loginAction.do?login=login&password=password"
$re = Invoke-WebRequest -Uri $link2 -WebSession $fb -Method Post -Body $form.Fields
 
#Из сохраненной сессии идем по линку со звонками. Но по дефолту всего 10 звонков
#$zz = Invoke-WebRequest -Uri "http://1. 1.1.1/callrec/calldatatable" -WebSession $fb
 
#Нам нужно 500 звонков. Поэтому идем из сохранненной сессии сюда, дальше авторедирект наhttp://1.1.1.1/callrec/calldatatable
$xx = Invoke-WebRequest -Uri "http://1.1.1.1/callrec/filteroperation?countperpage=500" -WebSession $fb
 
#Получим ответ от post-запроса
$Text = $xx.Content
 
#Найдем все строки, содержащие getDayName(текущая дата), а затем в этих строках найдем строку вида "td>минус_один_или_два_часа_от_текущего:"
#Если нашли такую строку, значит за последние два часа звонки пишутся
$datestamp2 = get-date -format "\\(d','M','yyyy\\)"
$datestampfile = "getDayName" + $datestamp2
$parsedate = $Text.Split("r") | Select-String $datestampfile
 
$minus_one_hour = (get-date).AddHours(-1).ToString("%h")
$minus_two_hour = (get-date).AddHours(-2).ToString("%h")
$m1 = "td>" + $minus_one_hour + ":"
$m2 = "td>" + $minus_two_hour + ":"
 
$stringcalls1 = $parsedate | Select-String $m1
$stringcalls2 = $parsedate | Select-String $m2
 
#prehratWarning - значок звонка предупреждения.  error - значок звонка битого. Посчитаем их количество.
$parsewarningcalls = $Text.Split(" ") | Select-String "prehratWarning"
$parsebadcalls     = $Text.Split(" ") | Select-String "error"
 
#Если количество звонков-предупреждений на 500 общего количества больше либо равно 4 - ошибка.
#Если количество битых звонков на 500 общего количества больше либо равно 4 - ошибка.
if( ($parsewarningcalls.Count -le 30) -And  ($parsebadcalls.Count -le 8) -And ($stringcalls1.Count -gt 0 -Or $stringcalls2.Count -gt 0) )
{
    $Subject = "Норма при проверке: запись звонков"
    $text5 = "Все в норме"
}
else
{
    $Subject = "Ошибка при проверке: запись звонков"
    $text5 = "`n Проверить по ссылке:http://1.1.1.1/callrec/"
}
 
 
if($parsewarningcalls.Count -gt 30)
  {  $text2 =  "`n Обнаружено более 30 звонков-предупреждений из 500 последних      `n" 
  }
else
  {  $text2 = "" }
 
if($parsebadcalls.Count -gt 8)
  {  $text3 = "`n Обнаружено более 8 битых звонков из 500 последних      `n"  }
else
  {  $text3 = "" }
 
 
if(($stringcalls1. Count -eq $NULL -And $stringcalls2.Count -eq $NULL) -Or ($stringcalls1.Count -eq 0 -And $stringcalls2.Count -eq 0) )
  {  $text1 = "`n Звонков не было в течение 2 часов, либо они не пишутся      `n"  }
else
  {  $text1 = "" }
 
 
$text4 = "`n Количество звонков-предупреждений: " + $parsewarningcalls.Count +
           "`n Количество битых звонков: " + $parsebadcalls.Count + "      `n"
 
#Отправим письмо
$EmailFrom = “[email protected]”
$EmailTo = “[email protected]”
 
$body = $text1 +$text2+$text3+$text4+$text5
 
$Encoding = [System.Text.Encoding]::UTF8
 $SmtpServer = “1.1.1.1”
[string]$Encoding="utf-8"
$messageParameters = @{                       
                               Encoding = [System.Text.Encoding]::GetEncoding($Encoding)
            }
 
Send-MailMessage @messageParameters -From $EmailFrom -To $EmailTo -SmtpServer $SmtpServer -Body $body -Subject $Subject 

Get-Date (Microsoft.PowerShell.Utility) — PowerShell | Документы Microsoft

Получает текущую дату и время.

В этой статье

Синтаксис

  Дата получения
   [[-Дата] ]
   [-Год ]
   [-Месяц ]
   [-День ]
   [-Час ]
   [-Минут ]
   [-Второй ]
   [-Миллисекунды ]
   [-DisplayHint ]
   [-Формат ]
   [-AsUTC]
   [<Общие параметры>]  
  Дата получения
   [[-Дата] ]
   [-Год ]
   [-Месяц ]
   [-День ]
   [-Час ]
   [-Минут ]
   [-Второй ]
   [-Миллисекунды ]
   [-DisplayHint ]
   -UFormat 
   [<Общие параметры>]  
  Дата получения
   -UnixTimeSeconds 
   [-Год ]
   [-Месяц ]
   [-День ]
   [-Час ]
   [-Минут ]
   [-Второй ]
   [-Миллисекунды ]
   [-DisplayHint ]
   [-Формат ]
   [-AsUTC]
   [<Общие параметры>]  
  Дата получения
   -UnixTimeSeconds 
   [-Год ]
   [-Месяц ]
   [-День ]
   [-Час ]
   [-Минут ]
   [-Второй ]
   [-Миллисекунды ]
   [-DisplayHint ]
   -UFormat 
   [<Общие параметры>]  

Описание

Командлет Get-Date получает объект DateTime , представляющий текущую дату или дату, которую вы указать. Get-Date может форматировать дату и время в нескольких форматах .NET и UNIX. Вы можете использовать Get-Date для создания строки символов даты или времени, а затем отправки строки другим командлетам или программы.

Get-Date использует параметры языка и региональных параметров компьютера, чтобы определить формат вывода. Смотреть в настройках вашего компьютера используйте (Get-Culture) .DateTimeFormat .

Примеры

Пример 1: Получить текущую дату и время

В этом примере Get-Date отображает текущую системную дату и время.Вывод находится в форматы long-date и long-time.

  Дата получения

Вторник, 25 июня 2019 г. 14:53:32  

Пример 2: Получить элементы текущей даты и времени

В этом примере показано, как использовать Get-Date для получения элемента даты или времени. Параметр использует аргументы Date , Time или DateTime .

  Get-Date -DisplayHint Дата

Вторник, 25 июня 2019 г.  

Get-Date использует параметр DisplayHint с аргументом Date , чтобы получить только дату.

Пример 3. Получение даты и времени с помощью спецификатора формата .NET

В этом примере описатель формата .NET используется для настройки формата вывода. На выходе получается String объект.

  Get-Date -Format "дддд ММ / дд / гггг ЧЧ: мм K"

Вторник 25.06.2019 16:17 -07: 00  

Get-Date использует параметр Format для указания нескольких спецификаторов формата.

Спецификаторы формата .NET, используемые в этом примере, определены следующим образом:

Спецификатор Определение
дддд День недели — ФИО
ММ Номер месяца
дд День месяца — 2 цифры
гггг Год в 4-значном формате
HH: мм Время в 24-часовом формате — без секунд
К Смещение часового пояса относительно всемирной координаты времени (UTC)

Для получения дополнительной информации о. Спецификаторы формата .NET, см. Строки настраиваемого формата даты и времени.

Пример 4: Получить дату и время с помощью спецификатора UFormat

В этом примере несколько описателей формата UFormat используются для настройки формата вывода. На выходе получается объект String .

  Get-Date -UFormat "% A% m /% d /% Y% R% Z"

Вторник 25.06.2019 16:19 -07  

Get-Date использует параметр UFormat для указания нескольких спецификаторов формата.

Спецификаторы формата UFormat , используемые в этом примере, определены следующим образом:

Спецификатор Определение
% A День недели — ФИО
% м Номер месяца
% d День месяца — 2 цифры
% Y Год в 4-значном формате
% R Время в 24-часовом формате — без секунд
% Z Смещение часового пояса относительно всемирной координаты времени (UTC)

Список допустимых описателей формата UFormat см. В разделе «Примечания».

Пример 5: Получить дату в день

года

В этом примере свойство используется для получения числового дня года.

В григорианском календаре 365 дней, за исключением високосных лет, у которых 366 дней. Например, декабрь 31 декабря 2020 года — 366-й день.

  (Get-Date -Год 2020-Месяц 12-День 31) .DayOfYear

366  

Get-Date использует три параметра для указания даты: год , месяц и день .Команда заключен в круглые скобки, чтобы результат оценивался свойством DayofYear .

Пример 6: Проверить, настроена ли дата на летнее время

В этом примере используется логический метод для проверки того, настроена ли дата на летнее время.

  $ DST = Дата получения
$ DST.IsDaylightSavingTime ()

Правда  

Переменная $ DST сохраняет результат Get-Date . $ DST использует метод IsDaylightSavingTime чтобы проверить, настроена ли дата на летнее время.

Пример 7: Преобразование текущего времени во время UTC

В этом примере текущее время конвертируется во время UTC. Смещение UTC для локали системы используется для преобразования времени. В таблице в разделе «Примечания» указан действующий формат UFormat . спецификаторы формата.

  Get-Date -UFormat "% A% B /% d /% Y% T% Z"
$ Time = Get-Date
$ Time.ToUniversalTime ()

Среда / 26 июня / 2019 10:45:26 -07

Среда, 26 июня 2019 г. 17:45:26  

Get-Date использует параметр UFormat со спецификаторами формата для отображения текущей системной даты и время.Описатель формата % Z представляет смещение UTC -07 .

Переменная $ Time хранит текущую системную дату и время. $ Время использует ToUniversalTime () метод для преобразования времени на основе смещения UTC компьютера.

Пример 8: Создание отметки времени

В этом примере описатель формата создает объект отметки времени String для имени каталога. В timestamp включает дату, время и смещение по всемирному координированному времени.

  $ timestamp = Get-Date -Format o | ForEach-Object {$ _ -replace ":", "." }
New-Item -Path C: \ Test \ $ timestamp -Type Directory

Каталог: C: \ Test

Режим LastWriteTime Длина Имя
---- ------------- ------ ----
г ----- 27.06.2019 07:59 2019-06-27T07.59.24.4603750-07.00  

Переменная $ timestamp хранит результаты команды Get-Date . Get-Date использует формат параметр со спецификатором формата в нижнем регистре o для создания объекта отметки времени String .В объект отправляется по конвейеру на ForEach-Object . ScriptBlock содержит переменную $ _ который представляет текущий объект конвейера. Строка отметки времени разделяется двоеточиями, которые заменены точками.

New-Item использует параметр Path для указания местоположения нового каталога. Путь включает в себя переменную $ timestamp в качестве имени каталога. Параметр Type указывает, что каталог создан.

Пример 9: Преобразование метки времени Unix

В этом примере время Unix (представленное числом секунд с 1970-01-01 0:00:00) преобразуется в DateTime.

  Get-Date -UnixTimeSeconds 1577836800

Среда, 1 января 2020 г., 12:00:00  

Пример 10: Возвращает значение даты в формате UTC

В этом примере показано, как интерпретировать значение даты как эквивалент в формате UTC. Например, это для машины установлено значение Pacific Standard Time .По умолчанию Get-Date возвращает значения для этого часовой пояс. Используйте параметр AsUTC , чтобы преобразовать значение в эквивалентное время UTC.

  PS> Get-TimeZone

Id: стандартное тихоокеанское время
DisplayName: (UTC-08: 00) Тихоокеанское время (США и Канада)
StandardName: Стандартное тихоокеанское время
DaylightName: Тихоокеанское летнее время
BaseUtcOffset: -08: 00: 00
SupportsDaylightSavingTime: True

PS> (Get-Date -Date "2020-01-01T00: 00: 00"). Добрый
Неопределенные

PS> Get-Date -Date "2020-01-01T00: 00: 00"

Среда, 1 января 2020 г., 00:00:00

PS> (Get-Date -Date "2020-01-01T00: 00: 00" -AsUTC). Вид
Универсальное глобальное время

PS> Get-Date -Date "2020-01-01T00: 00: 00" -AsUTC

Среда, 1 января 2020 г., 8:00:00  

Параметры

-AsUTC

Преобразует значение даты в эквивалентное время в формате UTC.

Этот параметр появился в PowerShell 7.1.

107 Ложный 9010
Тип: SwitchParameter
Позиция: Именованный
Значение по умолчанию: Нет
Принять ввод конвейера: Ложный

-Дата

Задает дату и время.Время не является обязательным и, если не указано, возвращает 00:00:00.

Введите дату и время в формате, стандартном для языкового стандарта системы.

Например, в английском (США):

Get-Date -Date "6/25/2019 12:30:22" возвращается 25 июня 2019 г. , вторник, 12:30:22

Тип: DateTime
Псевдонимы: LastWriteTime
Позиция: 0
Значение по умолчанию: Нет
Вход Принимать подстановочные знаки: Ложь

-День

Задает отображаемый день месяца.Введите значение от 1 до 31.

Если указанное значение больше, чем количество дней в месяце, PowerShell добавляет количество дней в месяц. Например, Get-Date -Month 2 -Day 31 отображает 3 марта , а не 31 февраля .

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

-DisplayHint

Определяет, какие элементы даты и времени отображаются.

Допустимые значения:

  • Дата : отображает только дату
  • Время : отображает только время
  • DateTime : отображает дату и время
Тип: DisplayHintType
Допустимые значения: Дата, время, DateTime
Позиция: Именованный
Значение по умолчанию: Нет ввода Ложь
Принимать подстановочные знаки: Ложь

-Формат

Отображает дату и время в Microsoft.NET Framework, указанный спецификатором формата. Параметр Format выводит объект String .

Список доступных спецификаторов формата .NET см. Строки настраиваемого формата даты и времени.

Когда используется параметр Format , Get-Date получает только свойства объекта DateTime необходимо для отображения даты. В результате некоторые свойства и методы DateTime объекты могут быть недоступны.

Начиная с PowerShell 5.0, вы можете использовать следующие дополнительные форматы в качестве значений для Формат параметр.

  • Дата файла . Отображение текущей даты по местному времени в виде файла или удобного пути. Формат — ггггММдд (с учетом регистра, с использованием 4-значного года, 2-значного месяца и 2-значного дня). Например: 201.

  • FileDateUniversal . Отображение текущей даты в универсальном формате в формате файла или пути. время (UTC).Формат: ггггММддЗ (с учетом регистра, с использованием 4-значного года, 2-значного месяца, 2-значный день и буква Z в качестве индикатора UTC). Например: 201Z.

  • FileDateTime . Файл или представление текущей даты и времени в локальном время в 24-часовом формате. Формат: ггггMMddTHHmmssffff (с учетом регистра, с использованием 4-значного год, 2-значный месяц, 2-значный день, буква T как разделитель времени, 2-значное время, 2-значное число минуты, 2-значные секунды и 4-значные миллисекунды).Например: 201T0840107271.

  • FileDateTimeUniversal . Файл или удобное представление текущей даты и времени в всемирное время (UTC) в 24-часовом формате. Формат: ггггMMddTHHmmssffffZ (с учетом регистра, с использованием 4-значного года, 2-значного месяца, 2-значного дня, буквы T в качестве разделителя времени, 2-значного час, 2-значная минута, 2-значная секунда, 4-значная миллисекунда и буква Z в качестве всемирного координированного времени показатель). Например: 201T1540500718Z.

10 9010 Ложные символы:
Тип: Строка
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный

-Час

Задает отображаемый час. Введите значение от 0 до 23.

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

-Миллисекунды

Задает дату в миллисекундах.Введите значение от 0 до 999.

Этот параметр появился в PowerShell 3.0.

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

-минут

Задает отображаемую минуту. Введите значение от 0 до 59.

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

-Месяц

Задает отображаемый месяц. Введите значение от 1 до 12.

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

-второй

Задает второе отображаемое значение.Введите значение от 0 до 59.

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

-UFormat

Отображает дату и время в формате UNIX. Параметр UFormat выводит строковый объект.

Спецификаторам UFormat предшествует знак процента (% ), например % m , % d и % Y . Записи Раздел содержит таблицу допустимых спецификаторов UFormat .

Когда используется параметр UFormat , Get-Date получает только свойства объекта DateTime необходимо для отображения даты. В результате некоторые свойства и методы DateTime объекты могут быть недоступны.

1010
Тип: Строка
Позиция: Именованный
Значение по умолчанию: Нет
Принять ввод конвейера: Ложный
Ложный
Принять подстановочные символы

-UnixTimeSeconds

Дата и время в секундах с 1 января 1970 г., 0:00:00.

Этот параметр появился в PowerShell 7.1.

9898
Тип: Int64
Псевдонимы: UnixTime
Позиция: Именованный
Значение по умолчанию: Нет
Нет
Принять Принимать подстановочные знаки: Ложь

— Год

Задает отображаемый год. Введите значение от 1 до 9999.

10 Ложный подстановочный знак
Тип: Int32
Позиция: Именованный
Значение по умолчанию: Нет
Принять конвейерный ввод: Ложный
Ложный: Принять подстановочный знак

Входы

Ввод в трубопровод

Get-Date принимает ввод конвейера. Например, Get-ChildItem | Get-Date .

Выходы

System.DateTime или System.String

Get-Date возвращает объект DateTime , за исключением случаев, когда параметры Format и UFormat использовал. Параметры Format или UFormat возвращают объекты String .

Когда объект DateTime отправляется по конвейеру в командлет, такой как Add-Content , который ожидает строковый ввод, PowerShell преобразует объект в объект String .

Метод (Get-Date) .ToString () преобразует объект DateTime в объект String .

Чтобы отобразить свойства и методы объекта, отправьте объект по конвейеру на Get-Member . Например, Get-Date | Get-Member .

Банкноты

Объекты DateTime имеют форматы длинного и долгого времени для языкового стандарта системы.

Допустимые спецификаторы UFormat показаны в следующей таблице:

Спецификатор формата Значение Пример
% A День недели — ФИО Понедельник
% а День недели — сокращенное наименование Пн
% В Название месяца — полное Январь
% б Название месяца — сокращенное Янв
% С Века 20 за 2019 год
% c Дата и время — сокращенно Чт 27 июн 08:44:18 2019
% D Дата в формате мм / дд / гг 27. 06.19
% d День месяца — 2 цифры 05
% e День месяца — перед ним стоит пробел, если только одна цифра <пробел> 5
% F Дата в формате ГГГГ-мм-дд, равная% Y-% m-% d (формат даты ISO 8601) 2019-06-27
% G То же, что и Y
% г То же, что и y
% В Час в 24-часовом формате 17
% h То же, что и b
% I Час в 12-часовом формате 05
% и День года 1-366
% к То же, что и H
% л То же, что и ‘I’ (I в верхнем регистре) 05
% M Минуты 35
% м Номер месяца 06
% n символ новой строки
% п AM или PM
% R Время в 24-часовом формате — без секунд 17:45
% r Время в 12-часовом формате 09:15:36
% S секунд 05
% s Секунды, прошедшие с 1 января 1970 г. 00:00:00 1150451174
% т Символ горизонтальной табуляции
% T Время в 24-часовом формате 17:45:52
% U То же, что и W
% и День недели — номер Воскресенье = 0
% В Неделя года 01-53
% w То же, что и ‘u’
% Вт Неделя года 00-52
% X То же, что Т
% x Дата в стандартном формате для локали 27.06.19 для English-US
% Y Год в 4-значном формате 2019
% и Год в двузначном формате 19
% Z Смещение часового пояса относительно всемирной координаты времени (UTC) -07

Как получить текущую дату в PowerShell?

PowerShell — это платформа Microsoft для автоматизации и создания сценариев. Это язык сценариев на основе .NET Framework, а также интерактивная командная среда. PowerShell состоит из набора команд, выполняющих определенные функции. Как и любой разумный язык программирования, PowerShell может выполнять множество задач. Отображение текущей даты. — еще одна простая функция, которую легко выполняет PowerShell .

Используя команду « Get-Date », вы можете найти текущую дату, даты в формате, завтрашнюю дату и многое другое с помощью PowerShell.Он также предлагает вам различные варианты отображения дат определенным образом. Эта статья покажет вам, , как получить текущую дату в PowerShell , используя разные методы. Итак, приступим:

Что такое Get-Date в PowerShell?

Командлет Get-Date — это облегченная команда, используемая в PowerShell. Эта команда возвращает объект DateTime , который отображает текущую дату или настраиваемую дату. Get-Date поддерживает множество форматов даты и времени UNIX и . NET.Он может генерировать символьную строку даты или времени, которая затем может быть отправлена ​​другим программам или командам.

В локальной системе используйте командлет Get-Date для получения текущей даты и времени:

Вы можете использовать Get-Date, если хотите использовать « Date » в качестве атрибута. Команда получит дату и время. По умолчанию он настроен на отображение текущей даты и времени системы в формате « 00:00:00 ». Полученные настройки даты и времени зависят от культурных особенностей вашей системы:

Получение текущих элементов даты и времени в PowerShell

Вы можете использовать параметр « -DisplayHint » в команде « Get-Date », чтобы получить только текущую дату вашей локальной системы.Вы хотите попробовать эту стратегию? В PowerShell введите следующую команду:

> Get-Date -DisplayHint Date

Чтобы просматривать только текущее время в вашей системе, укажите атрибут « Time » в параметре « -DisplayHint »:

> Get-Date -DisplayHint Время

Если вы хотите получить текущую дату и время в PowerShell, добавьте « DateTime » в ту же команду « Get-Date » вместе с параметром « -DisplayHint »:

> Get-Date -DisplayHint DateTime

Он покажет вам следующий результат:

Просмотр списка форматов Get-Date

Хотя командлет « Get-Date » отображается только для возврата текущего времени и даты, он может предоставить дополнительную информацию. Ознакомьтесь со списком форматов командлета « Get-Date », чтобы понять, о чем мы говорим:

Использовать спецификатор UFormat для получения текущей даты и времени

Спецификаторы UFormat также используются для настройки формата вывода. Ниже приведены некоторые спецификаторы UFormat с их определениями:

«% A »: этот спецификатор UFormat будет извлекать день недели с полным именем.

«% m »: используйте этот спецификатор, чтобы получить номер месяца:

«% d »: «% d » отображает день месяца двумя цифрами.

«% Y »: этот спецификатор UFormat покажет текущий год в четырехзначном формате.

«% R »: используйте этот описатель для отображения времени в 24-часовом формате без секунд.

«% Z »: «% Z » обозначает смещение часового пояса от всемирной координаты времени (UTC).

В PowerShell введите эту команду, чтобы получить текущее время и дату в соответствии с определенным UFormat:

> Get-Date -UFormat «% A% m /% d /% Y% R% Z»

Эта команда также вернет результат в виде объекта String.

Использовать указатель формата .Net для получения текущей даты и времени

« Get-Date » использует различные спецификаторы формата для настройки своего вывода, .Net — один из них. Теперь давайте взглянем на некоторые спецификаторы .net:

« dddd »: этот спецификатор получит день недели (полное имя).

« MM »: покажет номер месяца.

« дд »: « дд » покажет день месяца в виде двух цифр.

« yyyy »: этот спецификатор .Net покажет текущий год в четырехзначном формате.

« ЧЧ: мм »: используйте этот спецификатор для отображения времени в 24-часовом формате без секунд.

« K »: этот спецификатор обозначает смещение часового пояса от всемирной координаты времени (UTC).

В соответствии с вашими спецификаторами .Net запишите эту команду в PowerShell для , получив текущую дату и время :

> Get-Date -Format «dddd MM / dd / yyyy HH: mm K»

Выполнение указанной выше команды вернет строку.

Получите дату свидания в PowerShell

PowerShell также может отображать дату и день. Для этого используются три параметра: « — год », « — месяц » и « — день ». Например, приведенная ниже команда получит числовой день 3 октября 2022 года по григорианскому календарю.

gt; (Get-Date -Year 2022 -Month 10-Day 03) .DayOfYear

Добавление часов в текущую системную дату в PowerShell

Вы также можете выполнить арифметическую операцию добавления часов к текущей дате.Укажите общее количество часов в качестве параметра функции « AddHours () ».

Получить вчерашнюю дату в PowerShell

Используйте функцию « AddDays () » и укажите « -1 » в качестве параметра для этой функции. Вызов функции « AddDays () » с этими указанными настройками позволит вам отображать вчерашнюю дату в PowerShell.

Проверить, установлена ​​ли дата на летнее время

В следующем примере мы увидим, установлена ​​ли указанная дата для перехода на летнее время.Переменная « DST » будет хранить значение, возвращаемое командлетом « Get-Date ». После этого он вызовет логическую функцию « IsDayLightSavingTime ()». Эта функция ответит на ваш вопрос «Верно» или «Ложь».

> $ DST = Get-Date
> $ DST.IsDaylightSavingTime ()

Дополнительные примеры форматов Get-Date

Добавление « -Format g » в качестве параметра в вашу команду Get-Date покажет вам текущую дату и время в коротком формате:

Используйте опцию « -Format t », если вы хотите получить только текущее время в коротком формате:

Аналогичным образом, вы также можете получить только текущую дату вашей системы в сокращенном формате, используя опцию « -Format d ».

Он вернет дату в определенном формате:

Используйте опцию формата « U » для получения текущего времени и даты в формате универсального времени.

Заключение

Есть ли способ получить текущую дату в PowerShell? Вы будете удивлены, узнав, что ответ на этот вопрос проще, чем кажется сам вопрос. PowerShell использует командлет Get-Date для получения текущей даты в вашей локальной системе.Эта команда также используется для форматирования выходных данных, содержащих дату и время. Мы показали вам различные форматы получения текущей даты в PowerShell. Кроме того, в этой статье также представлены различные методы настройки.

PowerShell Get-Date — Javatpoint

Командлет Get-Date в PowerShell отображает текущую дату и время в консоли PowerShell. Этот командлет получает объект DateTime .

Мы также можем использовать Get-Date для генерации и отправки строки символов даты и времени другим командлетам или программам.

Синтаксис

Get-Date [[-Дата] <дата>] [-Год ] [-Месяц ] [-День ] [-Час ] [-Минут ] [-Второй ] [-Миллисекунды ] [-DisplayHint {Дата | Время | DateTime}] [-Format <строка>] [<Общие параметры>]

Get-Date [[-Дата] <дата>] [-Год ] [-Месяц ] [-День ] [-Час ] [-Минут ] [-Второй ] [-Миллисекунды ] [-DisplayHint {Дата | Время | DateTime}] [-UFormat <строка>] [<Общие параметры>]

Параметры

Ниже приведены параметры, используемые в командлете Get-Date :

-Дата

Этот параметр позволяет указать конкретную дату и время в командлете.По умолчанию командлет get-date возвращает системные дату и время. В этом параметре время является необязательным, если вы не укажете его в команде, тогда команда вернет 00:00:00.

-год

Этот параметр используется для указания года. Введите значение года от 1 до 9999, за которым следует этот параметр.

— Месяц

Этот параметр используется для указания отображаемого месяца года. Введите значение месяца от 1 до 12, за которым следует этот параметр.

— день

Этот параметр используется для указания отображаемого дня месяца. Введите значение дня от 1 до 31, за которым следует этот параметр.

Если указанное значение дня в командлете больше, чем количество дней в месяце, то PowerShell добавляет количество дней в месяц.

— Час

Этот параметр используется для указания часа. Введите значение часа от 0 до 23, за которым следует этот параметр.

-минут

Этот параметр используется для указания минут. Введите значение минуты от 0 до 59, за которым следует этот параметр.

-второй

Этот параметр используется для указания второго. Введите значение секунды от 0 до 59, за которым следует этот параметр.

-миллисекунды

-Millisecond параметр был введен в PowerShell версии 3.0 и используется для указания миллисекунд в дате.Введите значение миллисекунды от 0 до 999.

-DisplayHint

Этот параметр определяет, какие значения даты и времени отображаются на консоли.

-Формат

Этот параметр показывает дату и время в формате платформы Microsoft .NET.

С запуском PowerShell версии 5.0 для этого параметра мы можем использовать следующие форматы в качестве значений:

  • Дата файла
  • FileDateUniversal
  • FileDateTime
  • FileDateTimeUniversal

-UFormat

Этот параметр используется для отображения даты и времени в формате UNIX.Этот параметр выводит объект строки. Перед спецификаторами этого параметра стоит знак процента (%).

Примеры

Пример 1: Отображение текущей даты и времени

В этом примере командлет Get-Date показывает текущую дату и время в системе.

Пример 2: Отображение текущей даты

В этом примере командлет Get-Date использует параметр -DisplayHint с аргументом значения, чтобы получить только дату.

Пример 3. Отображение даты и времени с помощью спецификатора формата .NET

В этом примере командлет Get-Date использует параметр -Format для отображения текущей даты и времени с помощью спецификатора формата .NET.

В этом примере мы используем следующие спецификаторы формата:

  • dddd: День недели
  • мм: Месяц года
  • dd: День месяца
  • гггг: Год в 4-значном формате
  • ЧЧ: мм: Время в 24-часовом формате

Пример 4: Отображение только месяца в году

В этом примере командлет Get-Date используется со свойством месяц .


Учебное пособие по команде

PowerShell Get-Date — WindowsTect

Windows PowerShell предоставляет команду Get-Date для получения информации о текущей дате и времени. Get-Date может предоставлять информацию о текущей дате и времени в различных форматах, таких как .NET или UNIX. Команда Get-Data может использоваться в PowerShell и не поддерживает MS-DOS . Кроме того, выходные данные команды Get-Data также могут быть перенаправлены в другие команды или командлеты.Команды PowerShell также называются командлетами, поэтому команду Get-Date также можно называть командлетом Get-Date .

Получить актуальную справочную информацию

Справочную информацию по команде

Get-Date можно распечатать с помощью команды Get-Help . В справочной информации представлены параметры, предлагаемые командой Get-Date.

  PS> Get-Help Get-Date  
Справочная информация Get-Date

Мы видим, что справочная информация команды Get-Date предоставляет синтаксис, псевдонимы и примечания.Как мы видим, команда Get-Date предоставляет параметры, относящиеся к году, месяцу, дню, часу, минуте и т. Д.

Отображение даты и времени

При использовании команды Get-Date без каких-либо параметров или опций будет полностью отображена текущая дата и время. Формат отображения будет установлен в соответствии с региональными настройками Windows.

  PS> Get-Date  

Из выходных данных видно, что текущий язык операционной системы — английский. Текущий день — воскресенье, месяц — сентябрь, день месяца — 20, год — 2020, час — 08 утра, минута — 11, а вторая — 27.

Получить только дату

Команда Get-Date предоставляет параметр -DisplayHint , в котором может отображаться только информация о дате или времени. Для отображения только информации о дате можно использовать параметр Дата , как показано ниже.

  PS> Get-Date -DisplayHint Date  

Вывод будет таким, как показано ниже, и будет содержать название текущего дня недели, текущий месяц, текущий день месяца и текущий год.

 вторник, 17 ноября 2020 г. 

Только время

Только информация о времени может отображаться с использованием опции DisplayHint с параметром Time , как показано ниже.

  PS> Get-Date -DisplayHint Время  

Текущее время будет таким, как показано ниже. Этот вывод содержит информацию о часах, минутах и ​​секундах с AM или PM.

 16:40:05 

Получить дату и время в указанном формате

Дата и время могут быть выражены или отображены в различных форматах, которые связаны с текущими региональными и языковыми настройками операционной системы. Вы можете использовать опцию -format , чтобы указать формат, отличный от формата по умолчанию.Следующие описатели формата используются для создания и установки формата для отображения даты и времени.

Год в 4-значном формате10
Указатель Значение
dd День месяца 2 цифры
dddd Полное имя дня недели
MM07 900y
yy Год в 2-значном формате
K Смещение часового пояса от UTC
hh Час в 12-часовом формате AM / PM
мм 901 Минуты
сс Секунды

Обычно используются следующие спецификаторы даты и времени.

  PS> Get-Date -format "дд-МММ-гггг ЧЧ: мм"

PS> Get-Date -format "ЧЧ: мм: сс"

PS> Get-Date -format "ЧЧ: мм: сс"

PS> Get-Date -format "дд-ММ-гг"

PS> Get-Date -format "dd-MM-yyyy"  

Получить конкретную часть / свойство даты или времени

Единственное конкретное значение данной даты можно получить с помощью команды Get-Date. Мы предоставим часть даты, такую ​​как день, день недели, год и т. Д., Как показано ниже.

  (Get-Date) .day

(Get-Date).день недели

(Get-Date) .dayofyear

(Get-Date) .month

(Get-Date). Год  
Получить конкретную часть / свойство даты или времени

Мы также можем получить конкретное значение времени. Мы предоставим имя свойства, как в примере с датой. Свойства Час , Минут , Секунда , Тики будут использоваться в следующем примере. Тик — менее известное значение даты и времени. Тики — это суммарные секунды с 1 января 1970 года.

  • Час — текущий час в 24-часовом формате.
  • Минута — текущая минута в формате 60 минут.
  • Секунда — текущая секунда в формате 60 секунд.
  • Тактов — это общее количество секунд с 1970 года, как вы можете видеть, это очень большое число.
  PS> (Get-Date) .Час

PS> (Get-Date) .Minute

PS> (Get-Date) .Второй

PS> (Get-Date) .Тики  
Получить текущую минуту, час, секунду и тики

Команда Get-Date возвращает объект даты и времени, который предоставляет множество свойств и информацию, относящуюся к дате и времени.Мы предоставили некоторые из них здесь, но все они могут быть перечислены с помощью следующего командлета Get-Member.

  PS> Дата получения | Get-Member  

Показать вчерашнюю дату

Вчера можно отобразить с помощью методов AddDays () , которые можно использовать для перемотки вперед и назад к указанному дню. Мы получим текущий день с помощью команды Get-Day, а затем удалим 1 день из этой даты, которая будет вчера. Поскольку метод AddDays () добавляет заданный день, мы укажем -1 для добавления, что означает удаление указанных дней.

  PS> (Get-Date) .AddDays (-1)

PS> (Get-Date) .AddDays (-7)  
Показать дату вчерашнего дня

Показать дату завтрашнего дня

Используя метод AddDays (), мы также можем перейти к будущим датам и времени, например, завтра. Мы можем отобразить завтрашнюю дату с помощью , добавив 1 день к текущей дате.

  PS> (Дата получения) .AddDays (1)

PS> (Get-Date) .AddDays (7)  
Показать дату завтрашнего дня

Получить день года для текущей или указанной даты

Как известно, год состоит из 365 дней.Мы можем использовать свойство DayOfYear , чтобы получить номер дня указанного дня в году.

  PS> (Дата получения) .DayOfYear

PS> (Get-Date -Year 2010 -Month 12-Day 1) .DayOfYear  

Преобразовать текущее время во время UTC

Время

UTC используется для синхронизации разных часовых поясов и установки единого времени для встреч или операций. Время в формате UTC можно преобразовать с помощью метода ToUniversalTime () .

  PS> (Дата получения).ToUniversalTime ()  
Преобразование текущего времени во время UTC

Показать переход на летнее время

Переход на летнее время — это метод изменения времени в соответствии с дневным светом, чтобы обеспечить работу при дневном свете. Обычно время меняется на 0,5, 1,0 или 1,5 часа, чтобы работать в дневное время. Переход на летнее время активируется автоматически, и его можно проверить, активно ли оно в настоящее время, с помощью метода объекта даты IsDaylightSavingTime () .

  PS> (Дата получения).IsDaylightSavingTime ()  
Отображение перехода на летнее время

Получить текущий формат даты и времени

Текущий системный формат даты и времени может быть отображен с помощью команды Get-Culture Свойство DateTimeFormat .

  PS> (Get-Culture) .DateTimeFormat  
Получить текущий формат даты и времени

Связанные команды / командлеты PowerShell

Команда или командлет

Get-Date используется для отображения текущей или указанной информации о дате и времени. Get-Date не используется для установки текущей системной даты и времени в операционной системе Windows. Set-Date может использоваться для установки текущей системной даты и времени.

Get-Date | PDQ.com

   Get-Date  [[-Date] ] [-Day ] [-DisplayHint {Date | Время | DateTime}] [-Format ] [-Hour ] [-Millisecond ] [-Minute ] [-Month ] [-Second ] [-Year ] [<Общие параметры>]  
   Get-Date  [[-Date] ] [-Day ] [-DisplayHint {Date | Время | DateTime}] [-Hour ] [-Millisecond ] [-Minute ] [-Month ] [-Second ] [-UFormat ] [-Year ] [<Общие параметры>]  

Командлет Get-Date получает объект DateTime, представляющий текущую дату или указанную вами дату.Он может форматировать дату и время в нескольких форматах Windows и UNIX. Вы можете использовать Get-Date для создания строки символов даты или времени, а затем отправить эту строку в другие командлеты или программы.

Параметры

-Date

Задает дату и время. По умолчанию Get-Date получает текущую системную дату и время.

Введите дату в формате, стандартном для языкового стандарта системы, например дд-ММ-гггг (немецкий [Германия]) или ММ / дд / гггг (английский [США]).

-Day

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Задает отображаемый день месяца. Введите значение от 1 до 31. По умолчанию текущий день.

Если указать значение, превышающее количество дней в месяце, Windows PowerShell прибавит количество дней к месяцу и отобразит результат. Например, «Get-Date -Month 2 -Day 31» отображает 3 марта, а не 31 февраля.

-DisplayHint

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Определяет, какие элементы даты и времени отображаются. Допустимые значения для этого параметра:

— Дата. Отображает только дату. — Время. Отображает только время. — DateTime. Отображает дату и время.

DateTime используется по умолчанию. Этот параметр не влияет на объект DateTime, который получает Get-Date.

-Format

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Отображает дату и время в формате Microsoft .NET Framework, указанном спецификатором формата. Введите спецификатор формата. Список доступных описателей формата см. В разделе Класс DateTimeFormatInfo http://msdn.microsoft.com/library/system.globalization.datetimeformatinfo.aspx (http://msdn.microsoft.com/library/system.globalization.datetimeformatinfo.aspx) в MSDN.

При использовании параметра Format Windows PowerShell получает только те свойства объекта DateTime, которые необходимы для отображения даты в указанном вами формате. В результате некоторые свойства и методы объектов DateTime могут быть недоступны.

Начиная с Windows PowerShell 5.0, вы можете использовать следующие дополнительные форматы в качестве значений для параметра Format.

— Дата файла. Отображение текущей даты по местному времени в виде файла или удобного пути.Он имеет формат ггггммдд (с использованием 4-х, 2-х и 2-х цифр). Пример результатов при использовании этого формата: 20150302.

— FileDateUniversal. Представление текущей даты по всемирному координированному времени в виде файла или удобного пути. Он имеет формат ггггммдд + ‘Z’ (с использованием 4-х, 2-х и 2-х цифр). Пример результатов при использовании этого формата — 20150302Z.

— FileDateTime. Представление текущей даты и времени по местному времени в 24-часовом формате в формате файла или пути.Он имеет форму ггггммдд + ‘Т’ + ччммссмсмс, где мсмс — это четырехсимвольное представление миллисекунд. Пример результатов при использовании этого формата: 20150302T1240514987.

— FileDateTimeUniversal. Представление текущей даты и времени по всемирному координированному времени в 24-часовом формате в виде файла или удобного пути. Он имеет форму ггггммдд + ‘Т’ + ччммссмсмс, где мсмс — это четырехсимвольное представление миллисекунд, + ‘Z’. Пример результатов при использовании этого формата: 20150302T0840539947Z.

-Hour

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Задает отображаемый час. Введите значение от 1 до 23. По умолчанию используется текущий час.

-Миллисекунда

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Указывает миллисекунды в дате.Введите значение от 0 до 999. По умолчанию используется текущее количество миллисекунд.

Этот параметр появился в Windows PowerShell 3.0.

-Minute

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Задает отображаемую минуту. Введите значение от 1 до 59. Значение по умолчанию — текущие минуты.

-Month

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Задает отображаемый месяц.Введите значение от 1 до 12. По умолчанию текущий месяц.

-Second

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Задает второе отображаемое значение. Введите значение от 1 до 59. По умолчанию — текущая секунда.

-UFormat

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Отображает дату и время в формате UNIX.Список спецификаторов формата см. В разделе «Примечания».

При использовании параметра UFormat Windows PowerShell получает только те свойства объекта DateTime, которые необходимы для отображения даты в указанном вами формате. В результате некоторые свойства и методы объектов DateTime могут быть недоступны.

-Year

  • Значение по умолчанию: Нет
  • Принимает ввод конвейера Ложь

Задает отображаемый год.Введите значение от 1 до 9999. По умолчанию текущий год.

Этот командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable и OutVariable.

Входы
Никто

Вы не можете передать ввод по конвейеру этому командлету.

Выходы
System.DateTime или System.String

При использовании параметров Format или UFormat Get-Date возвращает строку.В противном случае он возвращает объект DateTime.

Примеры
  1. Получите дату и отобразите ее:
      PS C: \> Get-Date -DisplayHint Date
    13 июня 2006 г., вторник
      

    Эта команда получает объект DateTime, но отображает только дату. Он использует параметр DisplayHint, чтобы указать, что должна отображаться только дата.

  2. Получите дату и время в коротком формате:
      PS C: \> Get-Date -Format g
    13.06.2006 12:43
      

    Эта команда получает текущую дату и время и форматирует их в краткий и кратковременный форматы.Он использует спецификатор формата g .NET Framework (Общий [краткая дата и короткое время]) для указания формата.

  3. Получить дату и время в формате UNIX:
      PS C: \> Get-Date -UFormat "% Y /% m /% d /% A /% Z"
    13.06.2006 / вторник / -07
      

    Эта команда получает текущую дату и время и форматирует их, как указано в команде. В этом случае формат включает полный год (% Y), двузначный числовой месяц (% m), дату (% d), полный день недели (% A) и смещение от UTC ( Зулусский).

  4. Получите день года для текущей даты:
      PS C: \> (Get-Date -Year 2000 -Month 12 -Day 31) .DayOfYear
    366
      

    Эта команда отображает день года для текущей даты. Например, 31 декабря — 365-й день 2006 года, но это 366-й день 2000 года.

  5. Определите, настроены ли дата и время на летнее время:
      PS C: \> $ A = Get -Дата
    PS C: \> $ A.IsDaylightSavingTime ()
    Правда
      

    Эти команды сообщают, настроены ли текущая дата и время для перехода на летнее время в текущем языковом стандарте.

    Первая команда создает переменную с именем $ A, а затем назначает объект, полученный Get-Date, переменной $ A. Затем он использует метод IsDaylightSavingTime для объекта в $ A.

    Чтобы увидеть свойства и методы объекта DateTime, введите:

    `Get-Date | Get-Member`.

  6. Преобразование текущей даты и времени в UTC:
      PS C: \> $ A = Get-Date
    PS C: \> $ A.ToUniversalTime ()
    13 июня 2006 г. 20:09:19
      

    Эти команды конвертируют текущую дату и время во время UTC.

    Первая команда создает переменную с именем $ A, а затем назначает объект, полученный Get-Date, переменной $ A. Затем он использует метод ToUniversalTime для объекта в $ A.

  7. Преобразование объекта WMI DATETIME в объект DateTime .NET Framework:
      PS C: \> $ A = Get-WmiObject Win32_Bios -Computer Server01
    PS C: \> $ A | Format-List -Property Name, @ {Label = "BIOS Age"; Expression = {(Get-Date) - $ _. ConvertToDateTime ($ _. ReleaseDate)}}
    Имя: BIOS системы по умолчанию
    Возраст BIOS: 1345.17: 31: 07.10
    
       Инструментарий управления Windows (WMI) использует объект DATETIME, отличный от объекта DateTime .NET Framework.
       что Get-Date возвращается. Чтобы использовать информацию DATETIME из WMI в команде с информацией DateTime из Get-Date,
       вы должны использовать метод ConvertToDateTime для преобразования объектов WMI CIM_DATETIME в .NET Framework DateTime
       объекты.  

    Команды в этом примере отображают имя и возраст BIOS на удаленном компьютере Server01.

    Первая команда использует командлет Get-WmiObject для получения экземпляра класса Win32_BIOS на Server01 и затем сохраняет его в переменной $ A.

    Вторая команда использует оператор конвейера (|) для отправки объекта WMI, хранящегося в $ A, командлету Format-List. Параметр Property командлета Format-List указывает два свойства, отображаемых в списке: имя и возраст BIOS. Свойство BIOS Age указано в хеш-таблице. Таблица включает ключ Label, который указывает имя свойства, и ключ Expression, содержащий выражение, вычисляющее возраст BIOS. Выражение использует метод ConvertToDateTime для преобразования каждого экземпляра ReleaseDate в.NET Framework DateTime объект. Затем значение вычитается из значения командлета Get-Date, который без параметров получает текущую дату.

  8. Получение длинной даты и длинного формата времени для текущей даты и времени:
      PS C: \> Get-Date
    13 июня 2006 г. 12:43:42
      

    Эта команда получает объект DateTime и отображает текущую дату и время в формате длинной даты и долгого времени для языкового стандарта системы, как если бы вы набрали `Get-Date -Format F`.

  9. Преобразуйте объект DateTime в строку и добавьте его в файл:
      PS C: \> Get-Date
    26 сентября 2006 г. 11:25:31 PS C: \> (Get-Date) .ToString ()
    26.09.2006 11:25:31 PS C: \> Get-Date | Добавить-Content Test.txt
    
    
      

    Эти команды демонстрируют, как использовать Get-Date с Add-Content и другими командлетами, которые преобразуют объект DateTime, который генерирует Get-Date, в строку.

    Первая команда показывает, что отображение по умолчанию из команды Get-Date имеет формат длинной даты и долгое время.

    Вторая команда показывает, что отображение по умолчанию из метода ToString () объекта DateTime имеет кратковременный и кратковременный форматы.

    Третья команда использует оператор конвейера для отправки объекта DateTime командлету Add-Content, который добавляет содержимое в файл Test.txt. Поскольку Add-Content использует метод ToString () объекта DateTime, добавляемая дата имеет краткий и кратковременный форматы.

    Четвертая команда использует параметр Format Get-Date для указания формата.Когда вы используете параметры Format или UFormat, Get-Date генерирует строку, а не объект DateTime. Затем, когда вы отправляете строку в Add-Content, она добавляет строку в файл Test.txt, не изменяя его.

  10. Создайте метку времени для использования в качестве имени каталога:
    1. Первая команда использует параметр * Format * со значением o для создания строки метки времени .:
        PS C: \> Get-Date -Формат o
      2012-03-08T10: 55: 55.6083839-08: 00
        

      Первая команда использует параметр * Format * со значением o для создания строки отметки времени.

    2. Вторая команда подготавливает метку времени для использования в имени каталога:
        PS C: \> $ TimeStamp = Get-Date -Format o | foreach {$ _ -replace ":", "."}
        

      Команда заменяет символы двоеточия (:) в строке точками (.) И сохраняет результат в переменной $ TimeStamp. Замена двоеточий предотвращает интерпретацию символов, предшествующих каждому двоеточию, как имени диска.

    3. Третья команда использует функцию Mkdir для создания каталога с именем в переменной $ TimeStamp:
        PS C: \> mkdir C: \ ps-test \ $ TimeStamp
      Каталог: C: \ ps-test
      
         Режим LastWriteTime Длина Имя
         ---- ------------- ------ ----
         d ---- 8 марта 2012 г. 11:01 2012-03-08T11.00.24.41-08.00  

      В этом примере показано, как использовать командлет Get-Date для создания метки времени и как использовать метку времени в имени каталога или как его часть.

Дополнительные примечания
 * По умолчанию дата-время отображается в формате длинной даты и долгого времени для языкового стандарта системы.

 Когда вы передаете дату по конвейеру командлетам, которые ожидают строкового ввода, например командлету Add-Content, Windows PowerShell
 преобразует объект DateTime в строку перед добавлением его в файл.Формат ToString () по умолчанию короткий.
 дата и долгое время. Чтобы указать альтернативный формат, используйте параметр Format или UFormat Get-Date.

 Значения Uformat:

 Ниже приведены значения параметра UFormat. Формат команды:

 Get-Date -UFormat%

 Например,

 Get-Date -UFormat% d

 Дата-время:

 Дата и время - полное

 (по умолчанию) (пятница, 16 июня 2006 г., 10:31:27)

 c Дата и время - сокращенные (Пт, 16 июня, 10:31:27 2006 г.)
 Дата:

 D Дата в формате мм / дд / гг (14.06.06)

 x Дата в стандартном формате для локали (09/12/07 для английского и американского языков)

 Год:

 C Century (20 за 2006 год)

 Y Год в 4-значном формате (2006)

 y Год в 2-значном формате (06)

 G То же, что и Y

 g То же, что и 'y'

 Месяц:

 b Название месяца - сокращенное (январь)

 B Название месяца - полное (январь)

 h То же, что и 'b'

 m Номер месяца (06)

 Неделя:

 W Неделя года (00-52)

 V неделя года (01-53)

 U То же, что и "W"

 День:

 День недели - сокращенное название (пн)

 День недели - полное название (понедельник)

 u День недели - число (понедельник = 1)

 d День месяца - 2 цифры (05)

 e День месяца - цифра, перед которой стоит пробел (5)

 j День года - (1-366)

 w То же, что и 'u'

 Время:

 p AM или PM

 r Время в 12-часовом формате (09:15:36 AM)

 R Время в 24-часовом формате - без секунд (17:45)

 T Время в 24-часовом формате (17:45:52)

 X То же, что и 'T'

 Z Смещение часового пояса от всемирной координаты времени (UTC) (-07)

 Час:

 Час Час в 24-часовом формате (17)

 I Час в 12-часовом формате (05)

 k То же, что и 'H'

 l То же, что и 'I' (I в верхнем регистре = L в нижнем регистре)

 Минуты и секунды:

 M Минуты (35)

 S секунд (05)

 s Секунды, прошедшие с 00:00:00 1 января 1970 г. (1150451174.95705)

 Специальные символы:

 n символ новой строки (\ n)

 t Символ табуляции (\ t)

 * 

Формат даты получения PowerShell — Javatpoint

В этой статье мы обсудим и воспользуемся командой PowerShell Get-Date Format (или Date Format ). Свойства даты и времени используются несколько раз в сценариях PowerShell. Используя командлет Get-Date , мы можем получить текущую дату на нашей машине. Формат даты по умолчанию определяется в локальной системе, в которой мы запускаем команду.Команда Get-Date использует несколько форматов и параметров. Здесь мы сосредоточимся только на форматировании и отображении различных результатов даты.

Перед выполнением всех операций командлета Get-Date в PowerShell мы должны знать, как запустить инструмент (приложение) PowerShell.

Запустите PowerShell от имени администратора

Есть несколько способов запустить PowerShell от имени администратора; некоторые из основных способов упомянуты ниже:

1. Запустите PowerShell от имени администратора, используя панель поиска Windows

Шаг 1: В операционной системе Windows 10 есть поле поиска на панели задач.Наведите курсор на поле поиска и введите «powershell» (или PowerShell).

Шаг 2: На основании результатов поиска щелкните правой кнопкой мыши Windows PowerShell и Запуск от имени администратора . Вы перейдете в Windows PowerShell в режиме администратора.

2. Запустите PowerShell от имени администратора в окне «Выполнить»

Шаг 1: Одновременно нажмите клавиши Windows + R , откроется диалоговое окно «Выполнить».Теперь введите PowerShell в диалоговом окне «Выполнить» и нажмите кнопку OK .

Шаг 2: Шаг 1 открывает обычные окна PowerShell для текущего пользователя. Теперь в окнах PowerShell введите команду start-process powershell -verb runas и нажмите клавишу , введите .

Шаг 3: В приведенной выше команде предлагается открыть Windows PowerShell в режиме администратора; щелкните OK , чтобы разрешить, и он передаст Windows PowerShell администратору.

Параметры форматирования даты

Ниже приведены различные типы формата даты в PowerShell:

.
  • DisplayHint
  • Формат
  • UFormat

Когда использовать Get-Date

Команда Get-Date возвращает объект DateTime, который показывает текущую дату или дату, указанную вами на локальном устройстве. Давайте посмотрим на формат системы по умолчанию, когда мы воспользуемся командой Get-Date .

Команда Get-Date возвращает значение даты и времени в виде строки различных UNIX и.NET форматирует и перемещает строку в другие командлеты.

Формат вывода, отображаемый на экране вашей оболочки, основан на ваших отформатированных настройках компьютера. Чтобы просмотреть настройки даты устройства, используйте команду (Get-Culture) .DateTimeFormat ; он вернет разные форматы даты и времени.

(Get-Культура) .DateTimeFormat


Как использовать команду Get-Date

Команда Get-Date возвращает текущую дату и время системы, и результат отображается в виде длинных и длинных форматов даты.

Если мы используем командлет Format-List с Get-Date , мы увидим полную информацию, которая возвращает различные форматы даты и времени. Команда Get-Date возвращает объект DateTime. Давайте посмотрим на результат использования Get-Date | Командлет Format-List :

Get-Date | Формат-Список


DisplayHint

Параметр DisplayHint определяет тип информации, которую мы хотим отображать на экране. Этот параметр также возвращает объект DateTime; однако у него есть три разных типа форматов, включая Date, Time и DateTime.Параметр -DisplayHint использует любое число из Date, Time или DateTime за раз.

  • Дата : возвращает только текущее значение даты.
  • Время : возвращает только текущее значение времени.
  • DateTime : возвращает текущие значения даты и времени.

Давайте посмотрим на результат использования следующих командлетов:

Get-Date -DisplayHint Дата Get-Date -DisplayHint Время Get-Date -DisplayHint DateTime


Формат

Используя параметр -Format в команде PowerShell, вы можете отображать дату и время в указанном вами формате.Параметр -Format принимает все значения, которые разрешены в платформе Microsoft .Net и включены в DateTimeFormatInfo Class . Доступны различные варианты форматирования, которые можно использовать для форматирования результатов даты и времени в соответствии с вашими требованиями.

Обратите внимание, что результат, возвращаемый параметром -Format, не является объектом DateTime; вместо этого они будут результатом String. Мы упоминаем некоторую информацию о стандартных спецификаторах формата и их краткое описание, которые предоставляются Microsoft.

Спецификаторы формата стандартных строк

Некоторые из наиболее часто используемых стандартных спецификаторов формата строк .NET определены ниже:

Спецификатор Описание
дддд возвращает полное имя дня недели
ММ возвращает номер месяца
dd возвращает день месяца в виде двух цифр
гггг возвращает год в виде 4-значного числа
HH: мм возвращает время в 24-часовом формате без секунд
К возвращает смещение часового пояса от всемирного координированного времени (UTC)

Например:

Рассмотрим пример получения даты и времени в файле.Спецификатор формата .NET, используя следующее — Параметр формата и несколько описателей формата .NET:

Get-Date -Format «дддд ММ / дд / гггг ЧЧ: мм к»


Список дополнительных форматов

рандов
Дата
d возвращает шаблон короткой даты
D возвращает шаблон длинной даты
f возвращает полный шаблон даты / времени (кратковременный)
Ф возвращает полный шаблон даты / времени (долгое время)
г возвращает общую дату / время (короткое время)
G возвращает общую дату / время (долгое время)
м или M возвращает шаблон дня месяца
или возвращает шаблон даты и времени туда и обратно
r или возвращает шаблон RFC1123
с возвращает сортируемый шаблон даты / времени; соответствует ISO 8601
u или U возвращает сортируемый шаблон даты / времени
y или Y возвращает шаблон год месяц
Время
т возвращает кратковременный шаблон
т возвращает длинный шаблон

Давайте применим следующий формат один за другим и посмотрим их результат:

Get-Date -Format d Get-Date -Format D Get-Date -Format f Get-Date -Format F Get-Date -Format g Get-Date -Format G Get-Date -Format m Get-Date -Format y


UFormat

Параметры UFormat позволяют нам указать формат, который мы хотим отображать в формате Unix.Синтаксис этой команды форматирования следующий: Get-Date -UFormat% \ <значение \> . Командлет -UFormat всегда возвращает вывод в виде строкового значения. Ниже приведен список различных спецификаторов и их описания, которые используются с параметрами -UFormat, предоставленными Microsoft.

Список спецификаторов UFormat

Дата и время с Возвращает дату и время в сокращенном виде (среда, 6 января, 18:35:23 2021 г.)
Время с. AM или PM
r возвращает время в 12-часовом формате (08:24:43 AM)
R возвращает время в 24-часовом формате без секунд (15:32)
T или X возвращает время в 24-часовом формате (15:32:43)
Z возвращает смещение часового пояса от всемирного координированного времени (UTC)
Час k или H возвращает час в 24-часовом формате (17)
I или l (верхний регистр ‘I’, (нижний регистр L) возвращает час в 12-часовом формате (05)
Минуты и секунды M минут с возвратом (40)
S возвращает секунды (04)
с возвращает секунды, прошедшие с 1 января 1970 г., 00:00:00 (1150451174.95705)
Дата D возвращает дату в формате мм / дд / гг (например, 18.01.21)
x возвращает дату в стандартном формате для локали (12.06.21 для английского (США))
Месяц b или h возвращает сокращенное название месяца (январь)
B возвращает название месяца полностью (январь)
м возвращает номер месяца (06)
Год С век возвращения (21 на 2021 год)
г или возвращает год в 2-значном формате (21)
G или Y возвращает год в 4-значном формате (2021)
неделя U или W возвращает неделю года (00-52)
В возвращает неделю года (01-53)
Сутки a возвращает день недели как сокращенное название (Пн)
А возвращает день недели как полное имя (понедельник)
u или w возвращает день недели как число (понедельник = 1)
д возвращает день месяца в виде двух цифр (05)
e возвращает день месяца — цифру с пробелом (5)
j день возврата в году — (1-366)
Специальные символы n возвращает символ новой строки (\ n)
т возвращает символ табуляции (\ t)

Get-Date с параметром -UFormat, который использует различные спецификаторы формата, возвращает вывод String.Например, посмотрите на результат следующего командлета -UFormat:

Get-Date -UFormat «% A% m /% d /% Y% R% Z


Как указанные выше спецификаторы UFormat возвращают строковое значение, определено ниже:

Спецификатор Определение
% А возвращает день недели как полное имя (среда)
% m возвращает номер месяца (01)
% d возвращает день месяца в виде двух цифр (06)
% Y возвращает год в 4-значном формате (2021)
% R возвращает время в 24-часовом формате без секунд (21:38)
% Z возвращает смещение часового пояса от всемирной координаты времени (UTC) (+05).

Вычислить и отобразить день года в дате (Get-Date -Year 2021 -Month 12 -Day 31) .DayOfYear

Чтобы вычислить дату года, Get-Date использует три параметра для определения даты. Это параметры -Год, -Месяц и -День . Его команда заключена в круглые скобки, так что свойство DayofYear оценивает выходной результат. Например, вычисление общего дня в указанную дату года.

(Get-Date — Год 2021 — 12 месяцев — 31 день) .DayOfYear (Get-Date -Год 2021-Месяц 06-День 31) .DayOfYear (Get-Date — Год 2021 — 2 месяца — 31 день) .DayOfYear


Проверка, настроена ли дата на летнее время:

Чтобы проверить, настроена ли дата на летнее время или нет, требуется логический метод. Например:

$ DST = Get-Date $ DST.IsDaylightSavingTime ()


В приведенной выше команде мы используем переменную $ DST, которая хранит результат Get-Date .Переменная $ DST вызывает метод IsDaylightSavingTime () , чтобы проверить, настроена ли дата на летнее время или нет.

Преобразование текущего времени в UTC:

Метод ToUniversalTime () используется для преобразования текущего времени локальной системы в всемирную координату времени (UTC). Давайте посмотрим на пример преобразования текущего времени в смещение по всемирному координированному времени. Прежде всего, мы получим текущую дату и время с UTC; после этого мы переводим его во всемирное время.

Get-Date -UFormat «% A% B /% d /% Y% T% Z» $ Time = Get-Date $ Time.ToUniversalTime ()


Команда Get-Date использует параметр -UFormat и некоторые спецификаторы формата для возврата текущей даты и времени локальной системы. Спецификатор формата % Z задает смещение координаты всемирного времени +05 .

Переменная $ Time хранит результат текущей даты и времени, возвращаемый функцией Get-Date .Возвращаемое значение ($ Time) вызывает метод ToUniversalTime () для преобразования текущей даты и времени локальной системы в смещение по всемирному координированному времени.

Создайте метку времени с помощью Get-Date -Format:

Чтобы создать метку времени с помощью Get-Date -Format, рассмотрим следующий пример командлета:

$ timestamp = Get-Date -Format o | ForEach-Object {$ _ -replace «:», «.» } New-Item -Path D: \ TestFolder \ $ timestamp -Type Directory


В приведенном выше примере описатель формата создает объект String метки времени для имени входного каталога.Эта временная метка содержит значения даты, времени и смещения по всемирному координированному времени.

В приведенной выше команде переменная $ timestamp хранит результаты команды Get-Date . Get-Date использует параметр Format и спецификатор формата o , который создает объект String метки времени в нижнем регистре.

Объект отправляется обратно по конвейеру на ForEach-Object , а переменная $ _ представляет текущий объект конвейера.Строковые значения временной метки указываются двоеточиями, которые заменяются точками.

Новый элемент использует параметр -Path , который определяет расположение вновь созданного каталога. Переменная $ timestamp , включенная в путь, представляет имя каталога, а параметр -Time указывает, что каталог создан.


Командлет Get-Date

Windows PowerShell | Примеры Расчет с DateTime

Формат даты получения Windows PowerShell

Манипулировать датами всегда сложно.Однако командлет PowerShell Get-Date отлично справляется с интерпретацией различных международных форматов для дня / месяца / года. В результате, независимо от страны, в которой находится ваш компьютер, будет легко подсчитать, сколько дней осталось до Рождества.

Темы для Windows PowerShell Get-Date и DateTime

Введение в командлет Get-Date

На этой странице я изменяю свой обычный порядок работы. Я хочу начать с решения проблемы, которую представляет собой задача из реальной жизни.После демонстрации примеров использования Get-Date в действии я рекомендую вам изучить дополнительные методы и свойства для этого командлета PowerShell. В результате у вас появятся навыки для выполнения других проектов DateTime.

Сколько дней до Рождества? (или День Благодарения)

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

Здесь, в Великобритании, наши операционные системы показывают даты в формате: дд мммм гггг.В то время как в Соединенных Штатах ваш регион отображается как мммм дд гггг. Следовательно, я был поражен тем, что PowerShell может преобразовывать как «25 декабря 2014 года», так и «28 ноября 2014 года» в значения даты, которые он может понимать и выполнять вычисления.

Пример 1. Расчет дней до Рождества с использованием множества переменных

В первом примере я использовал несколько переменных, которые не являются строго необходимыми, я просто хотел показать свой мыслительный процесс при создании этого очень простого сценария PowerShell.

# PowerShell DateTime Script для отображения дней до Рождества
Clear-Host
$ DecDate = «25 декабря 2014 г.»
$ NovDate = «28 ноября 2014 г.»
$ Thanksgiving = [system.datetime] $ NovDate
$ Christmas = [system. datetime] $ DecDate
$ Today = Get-Date
$ Xmas = ($ Christmas.DayOfYear — $ Today.DayOfYear)
$ Thanks = ($ Thanksgiving.DayOfYear — $ Today.DayOfYear)
«Есть» + $ Xmas + «дней до» + $ DecDate
«Осталось» + $ спасибо + «дней до» + $ NovDate

Примечание 1: Вы можете проверить значения для $ DecDate и $ NovDate, а затем изменить последовательность дней месяца в соответствии с вашей локалью.

Примечание 2: Интересно посмотреть, как PowerShell использует .Net Framework, например, он использует System.DateTime для преобразования текстовой строки в формат даты.

Note 3: Я все удивляюсь, как PowerShell может понимать оба формата: дд мммм гггг и мммм дд гггг.

Guy рекомендует: Бесплатная пробная версия монитора производительности сети (NPM) v11.5

Монитор производительности сети

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

Что мне больше всего нравится, так это то, как NPM предлагает решения сетевых проблем. Он также имеет возможность отслеживать состояние отдельных виртуальных машин VMware. Если вы заинтересованы в устранении неполадок и создании сетевых карт, я рекомендую вам попробовать NPM прямо сейчас.

Загрузите бесплатную пробную версию Network Performance Monitor

компании Solarwinds.

Пример 2 — Производственная версия «Сколько дней до Рождества»

# Пример PowerShell DateTime
«Есть» + (([system.datetime] «25 декабря 2014 г.»). DayOfYear — `
(Get-Date) .DayOfYear) +« дней до »+« 24 декабря 2014 г. »

Примечание 4: Это всего лишь одна длинная команда. Обратите внимание на то, как обратная кавычка (`) позволяет команде перейти во вторую строку. В качестве альтернативы можно разорвать линию на символе открытой скобки следующим образом:

— (
Get-Date) .DayOfYear) + «дней до» + «24 декабря 2014 года»

Примечание 5: Для этой команды требовался дополнительный набор круглых скобок для заключения [system.datetime] «25 декабря 2014»

Note 6: Интересно посмотреть, как PowerShell интерпретирует смесь «текстовых строк» ​​и вычислений даты. Как и в случае с скобками, здесь вам понадобится правильный тип «двойных» речевых знаков.

Дальнейшее исследование PowerShell’s Get-Date

Я надеюсь, что приведенный выше простой пример даст вам идеи для сценариев дат, которые будут полезны в ваших проектах PowerShell. Если да, то стоит изучить свойства Get-Date и, в частности, его методы.

a) Методы и свойства Get-Date

# Research Свойства Get-Date PowerShell
Get-Date | Get-Member

Примечание 7: Обычно меня больше всего интересуют свойства командлета, но с Get-Date меня заинтриговали методы , например .AddDays () и .IsDaylightSavingTime ().

б) Метод добавления дней

Цель этого сценария — вывести список всех сообщений о системных ошибках за последние 8 дней.Кстати, удивительно, как часто мы используем этот метод с отрицательным числом, чтобы вернуться в прошлое.

# PowerShell Get-Date, пример
Clear-Host
$ Log8d = @ {
Logname = ‘System’
EntryType = ‘Error’
After = (Get-Date) .AddDays (-8)
}

Get-EventLog @ Log8d

Примечание 8: Подробнее об этой @ {.. технике PowerShell «Splatting»

c) Другое задание для .AddDays
Сценарий: вы хотите вывести список сообщений журнала событий младше 30 дней.

# Расчет даты с помощью .AddDays ()
Clear-Host
$ DateCut = (Get-Date) .AddDays (-20)
Get-EventLog System -EntryType Error |
Where-Object {$ _. TimeWritten -ge $ DateCut}

Парень рекомендует: SolarWinds Engineer’s Toolset v10

Этот набор инструментов инженера v10 предоставляет комплексную консоль из 50 утилит для устранения неполадок компьютера. Гай говорит, что это помогает мне отслеживать, что происходит в сети, и каждый инструмент учит меня больше о том, как работает основная система.

Есть так много хороших гаджетов; это все равно, что получить полную свободу действий в кондитерской. К счастью, утилиты отображаются логично: мониторинг, обнаружение сети, диагностика и инструменты Cisco. Попробуйте набор инструментов SolarWinds Engineer прямо сейчас!

Загрузите полнофункциональную пробную копию Engineer’s Toolset v10

Параметры получения даты

# Research PowerShell’s Get-Date Parameters
Clear-Host
Get-Help Get-Date -full

Благодаря помощи PowerShell я узнал о формате -Uformat.

Форматирование Get-Date Challenge:
Читатели из Великобритании могут оценить использование этого параметра -Uformat для изменения порядка дней и месяцев:

# Пример формата Get-Date PowerShell
Clear-Host
$ Now = Get-Date -Uformat «% A,% d:% m:% Y»
Write-Host «Сегодня в Великобритании $ »

Бонусная техника — DateTime и ParseExact

И снова PowerShell работает с классом DateTime .Net Framework. ParseExact — изящный метод, который может преобразовывать текстовую строку в ее эквивалент DateTime.

# ParseExact Изменить дату и время с помощью настраиваемого спецификатора.
Clear-Host
$ DateString = «Вс, 26 января 2014 г., 12:30 -06: 00»
$ Format = «ddd dd MMM yyyy h: mm tt zzz»
$ Translate = [DateTime] :: ParseExact ($ DateString , $ Format, $ Provider)
Write-Host «$ DateString преобразуется в $ ($ Translate.ToString ()).»

Формат Get-Date CSV

Вот пример, в котором для управления форматом даты используется другой командлет PowerShell, называемый ConvertTo-Csv.

Clear-Host
$ DateCsv = Get-Date
ConvertTo-Csv -Inputobject $ DateCsv -NoTypeinformation

Примечание 9: Вы можете изменить разделитель с запятой на точку с запятой, добавив этот параметр: -Delimiter «;»

Подробнее о ConvertTo-CSV »

Сводная информация о PowerShell Get-Time и DateTime

Сценарии дат всегда сложно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *