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 |
-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>
Задает отображаемое значение часа.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
|
Принимать подстановочные знаки? |
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.
Тип: | 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 февраля .
Тип: | 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.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять конвейерный ввод: | Ложный |
-Час
Задает отображаемый час. Введите значение от 0 до 23.
Тип: | Int32 | |
Позиция: | Именованный | |
Значение по умолчанию: | Нет | |
Принять конвейерный ввод: | Ложный | |
Ложный | Ложный подстановочный знак: Принять подстановочный знак |
-Миллисекунды
Задает дату в миллисекундах.Введите значение от 0 до 999.
Этот параметр появился в PowerShell 3.0.
Тип: | Int32 | |
Позиция: | Именованный | |
Значение по умолчанию: | Нет | |
Принять конвейерный ввод: | Ложный | |
Ложный | Ложный подстановочный знак: Принять подстановочный знак |
-минут
Задает отображаемую минуту. Введите значение от 0 до 59.
Тип: | Int32 | |
Позиция: | Именованный | |
Значение по умолчанию: | Нет | |
Принять конвейерный ввод: | Ложный | |
Ложный | Ложный подстановочный знак: Принять подстановочный знак |
-Месяц
Задает отображаемый месяц. Введите значение от 1 до 12.
Тип: | Int32 | |
Позиция: | Именованный | |
Значение по умолчанию: | Нет | |
Принять конвейерный ввод: | Ложный | |
Ложный | Ложный подстановочный знак: Принять подстановочный знак |
-второй
Задает второе отображаемое значение.Введите значение от 0 до 59.
Тип: | Int32 | |
Позиция: | Именованный | |
Значение по умолчанию: | Нет | |
Принять конвейерный ввод: | Ложный | |
Ложный | Ложный подстановочный знак: Принять подстановочный знак |
-UFormat
Отображает дату и время в формате UNIX. Параметр UFormat выводит строковый объект.
Спецификаторам UFormat предшествует знак процента (%
), например % m
, % d
и % Y
. Записи
Раздел содержит таблицу допустимых спецификаторов UFormat .
Когда используется параметр UFormat , Get-Date
получает только свойства объекта DateTime необходимо для отображения даты. В результате некоторые свойства и методы DateTime объекты могут быть недоступны.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Ложный | Ложный | 10Принять подстановочные символы |
-UnixTimeSeconds
Дата и время в секундах с 1 января 1970 г., 0:00:00.
Этот параметр появился в PowerShell 7.1.
Тип: | Int64 |
Псевдонимы: | UnixTime |
Позиция: | Именованный |
Значение по умолчанию: | Нет | Нет | 98Принять | Принимать подстановочные знаки: | Ложь |
— Год
Задает отображаемый год. Введите значение от 1 до 9999.
Тип: | 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
[[-Дата] <дата>]
[-Год
Get-Date
[[-Дата] <дата>]
[-Год
Параметры
Ниже приведены параметры, используемые в командлете 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 , чтобы указать формат, отличный от формата по умолчанию.Следующие описатели формата используются для создания и установки формата для отображения даты и времени.
Указатель | Значение | |||
dd | День месяца 2 цифры | |||
dddd | Полное имя дня недели | |||
MM | 07 900y | Год в 4-значном формате | ||
---|---|---|---|---|
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.
Примеры
- Получите дату и отобразите ее:
PS C: \> Get-Date -DisplayHint Date 13 июня 2006 г., вторник
Эта команда получает объект DateTime, но отображает только дату. Он использует параметр DisplayHint, чтобы указать, что должна отображаться только дата.
- Получите дату и время в коротком формате:
PS C: \> Get-Date -Format g 13.06.2006 12:43
Эта команда получает текущую дату и время и форматирует их в краткий и кратковременный форматы.Он использует спецификатор формата g .NET Framework (Общий [краткая дата и короткое время]) для указания формата.
- Получить дату и время в формате UNIX:
PS C: \> Get-Date -UFormat "% Y /% m /% d /% A /% Z" 13.06.2006 / вторник / -07
Эта команда получает текущую дату и время и форматирует их, как указано в команде. В этом случае формат включает полный год (% Y), двузначный числовой месяц (% m), дату (% d), полный день недели (% A) и смещение от UTC ( Зулусский).
- Получите день года для текущей даты:
PS C: \> (Get-Date -Year 2000 -Month 12 -Day 31) .DayOfYear 366
Эта команда отображает день года для текущей даты. Например, 31 декабря — 365-й день 2006 года, но это 366-й день 2000 года.
- Определите, настроены ли дата и время на летнее время:
PS C: \> $ A = Get -Дата PS C: \> $ A.IsDaylightSavingTime () Правда
Эти команды сообщают, настроены ли текущая дата и время для перехода на летнее время в текущем языковом стандарте.
Первая команда создает переменную с именем $ A, а затем назначает объект, полученный Get-Date, переменной $ A. Затем он использует метод IsDaylightSavingTime для объекта в $ A.
Чтобы увидеть свойства и методы объекта DateTime, введите:
`Get-Date | Get-Member`.
- Преобразование текущей даты и времени в UTC:
PS C: \> $ A = Get-Date PS C: \> $ A.ToUniversalTime () 13 июня 2006 г. 20:09:19
Эти команды конвертируют текущую дату и время во время UTC.
Первая команда создает переменную с именем $ A, а затем назначает объект, полученный Get-Date, переменной $ A. Затем он использует метод ToUniversalTime для объекта в $ A.
- Преобразование объекта 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, который без параметров получает текущую дату.
- Получение длинной даты и длинного формата времени для текущей даты и времени:
PS C: \> Get-Date 13 июня 2006 г. 12:43:42
Эта команда получает объект DateTime и отображает текущую дату и время в формате длинной даты и долгого времени для языкового стандарта системы, как если бы вы набрали `Get-Date -Format F`.
- Преобразуйте объект 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, не изменяя его.
- Создайте метку времени для использования в качестве имени каталога:
- Первая команда использует параметр * Format * со значением o для создания строки метки времени .:
PS C: \> Get-Date -Формат o 2012-03-08T10: 55: 55.6083839-08: 00
Первая команда использует параметр * Format * со значением o для создания строки отметки времени.
- Вторая команда подготавливает метку времени для использования в имени каталога:
PS C: \> $ TimeStamp = Get-Date -Format o | foreach {$ _ -replace ":", "."}
Команда заменяет символы двоеточия (:) в строке точками (.) И сохраняет результат в переменной $ TimeStamp. Замена двоеточий предотвращает интерпретацию символов, предшествующих каждому двоеточию, как имени диска.
- Третья команда использует функцию 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 для создания метки времени и как использовать метку времени в имени каталога или как его часть.
- Первая команда использует параметр * Format * со значением o для создания строки метки времени .:
Дополнительные примечания
* По умолчанию дата-время отображается в формате длинной даты и долгого времени для языкового стандарта системы. Когда вы передаете дату по конвейеру командлетам, которые ожидают строкового ввода, например командлету 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
Сценарии дат всегда сложно.