Поделиться через


Get-Item

Возвращает элемент в указанном расположении.

Синтаксис

Get-Item
   [-Path] <string[]>
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-Stream <string[]>]
   [<CommonParameters>]
Get-Item
   -LiteralPath <string[]>
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-Stream <string[]>]
   [<CommonParameters>]
Get-Item
   [-Path] <string[]>
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-CodeSigningCert]
   [-DocumentEncryptionCert]
   [-SSLServerAuthentication]
   [-DnsName <string>]
   [-Eku <string[]>]
   [-ExpiringInDays <int>]
   [<CommonParameters>]
Get-Item
   -LiteralPath <string[]>
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-CodeSigningCert]
   [-DocumentEncryptionCert]
   [-SSLServerAuthentication]
   [-DnsName <string>]
   [-Eku <string[]>]
   [-ExpiringInDays <int>]
   [<CommonParameters>]
Get-Item
   [-Path] <string[]>
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [<CommonParameters>]
Get-Item
   -LiteralPath <string[]>
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [<CommonParameters>]

Описание

Командлет Get-Item получает элемент в указанном расположении. Он не получает содержимое элемента в указанном месте, если вы не используете подстановочный знак (*), чтобы запросить все содержимое элемента.

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

Примеры

Пример 1. Получение текущего каталога

В этом примере получается текущая директория. Точка ('.') представляет элемент в текущем расположении (а не его содержимое).

Get-Item .

Directory: C:\

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         7/26/2006  10:01 AM            ps-test

Пример 2. Получение всех элементов в текущем каталоге

В этом примере извлекаются все элементы из текущего каталога. Подстановочный знак (*) представляет все содержимое текущего элемента.

Get-Item *

Directory: C:\ps-test

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         7/26/2006   9:29 AM            Logs
d----         7/26/2006   9:26 AM            Recs
-a---         7/26/2006   9:28 AM         80 date.csv
-a---         7/26/2006  10:01 AM         30 filenoext
-a---         7/26/2006   9:30 AM      11472 process.doc
-a---         7/14/2006  10:47 AM         30 test.txt

Пример 3. Получение текущего каталога диска

В этом примере возвращается текущий каталог диска C:. Полученный объект представляет только каталог, а не его содержимое.

Get-Item C:

Пример 4. Получение элементов на указанном диске

В этом примере получаются элементы с диска C:. Подстановочный знак (*) представляет все элементы в контейнере, а не только контейнер.

Get-Item C:\*

В PowerShell используйте одну звездочку (*) для получения содержимого вместо традиционного *.*. Формат интерпретируется буквально, поэтому *.* не будет извлекать каталоги или имена файлов без точки.

Пример 5. Получение свойства в указанном каталоге

В этом примере получается свойство LastAccessTime каталога C:\Windows. LastAccessTime — это только одно свойство каталогов файловой системы. Чтобы просмотреть все свойства каталога, введите (Get-Item <directory-name>) | Get-Member.

(Get-Item C:\Windows).LastAccessTime

Пример 6: Отображение содержимого раздела реестра

В этом примере показано содержимое раздела реестра Microsoft.PowerShell. Этот командлет можно использовать вместе с поставщиком реестра PowerShell для получения ключей и подключей реестра. Однако для извлечения значений и данных реестра нужно использовать командлет Get-ItemProperty.

Get-Item HKLM:\Software\Microsoft\Powershell\1\Shellids\Microsoft.Powershell\

Пример 7. Получение элементов в каталоге, которые имеют исключение

Этот пример извлекает элементы в каталоге Windows, имена которых содержат точку (.), но не начинаются с w*. Этот пример работает только в том случае, если путь содержит подстановочный знак (*) для обозначения содержимого элемента.

Get-Item C:\Windows\*.* -Exclude "w*"

Пример 8. Получение сведений о жёсткой ссылке

В PowerShell 6.2 добавлено альтернативное представление для получения сведений о жесткой связи. Чтобы получить сведения о жесткой связи, передайте выходные данные в Format-Table -View childrenWithHardlink

Get-Item C:\Windows\System32\ntoskrnl.exe |
    Format-Table -View childrenWithHardLink

Directory: C:\Windows\System32

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
la---           5/12/2021  7:40 AM       10848576 ntoskrnl.exe

Свойство Mode идентифицирует жесткую ссылку по l в la---.

Пример 9. Выходные данные для операционных систем, отличных от Windows

В PowerShell 7.1 на системах Unix командлет Get-Item предоставляет вывод, как на Unix:

PS> Get-Item /Users

Directory: /

UnixMode    User  Group   LastWriteTime      Size  Name
--------    ----  -----   -------------      ----  ----
drwxr-xr-x  root  admin   12/20/2019 11:46   192   Users

Новые свойства, которые теперь являются частью выходных данных:

  • UnixMode — это разрешения файлов, представленные в системе Unix.
  • пользователь является владельцем файла
  • Группа является владельцем группы
  • Размер — это размер файла или каталога, представленного в системе Unix.

Заметка

Эта функция была перенесена из экспериментального в основной в PowerShell 7.1.

Параметры

-CodeSigningCert

Это динамический параметр, доступный поставщиком сертификатов . Этот параметр и поставщик сертификатов доступны только в Windows.

Чтобы получить сертификаты, имеющие Code Signing в значении свойства EnhancedKeyUsageList, используйте параметр CodeSigningCert.

Дополнительные сведения см. в about_Certificate_Provider.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

Заметка

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.

Тип:PSCredential
Position:Named
Default value:Current user
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-DnsName

Это динамический параметр, доступный поставщиком сертификатов . Этот параметр и поставщик сертификатов доступны только в Windows.

Указывает доменное имя или шаблон имени для сопоставления со свойством DNSNameList сертификатов, которые получает командлет. Значение этого параметра может быть Unicode или ASCII. Значения Punycode преобразуются в Юникод. Разрешены подстановочные символы (*).

Этот параметр был повторно введен в PowerShell 7.1

Дополнительные сведения см. в about_Certificate_Provider.

Тип:DnsNameRepresentation
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-DocumentEncryptionCert

Это динамический параметр, доступный поставщиком сертификатов . Этот параметр и поставщик сертификатов доступны только в Windows.

Чтобы получить сертификаты, имеющие Document Encryption в значении свойства EnhancedKeyUsageList, используйте параметр DocumentEncryptionCert.

Дополнительные сведения см. в about_Certificate_Provider.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Eku

Это динамический параметр, доступный поставщиком сертификатов . Этот параметр и поставщик сертификатов доступны только в Windows.

Задает текст или текстовый шаблон, соответствующий свойству EnhancedKeyUsageList сертификатов, которые получает командлет. Разрешены подстановочные символы (*). Свойство EnhancedKeyUsageList содержит понятное имя и поля идентификатора EKU.

Этот параметр был повторно введен в PowerShell 7.1

Дополнительные сведения см. в about_Certificate_Provider.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-Exclude

Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешены подстановочные знаки. Параметр Исключить действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-ExpiringInDays

Это динамический параметр, доступный поставщиком сертификатов . Этот параметр и поставщик сертификатов доступны только в Windows.

Указывает, что командлет должен возвращать только сертификаты, срок действия которых истекает в течение или до указанного числа дней. Значение ноль (0) используется для получения сертификатов, срок действия которых истек.

Этот параметр был повторно введен в PowerShell 7.1

Дополнительные сведения см. в about_Certificate_Provider.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Filter

Указывает фильтр для квалификации параметра Path. Поставщик файловой системы является единственным установленным поставщиком PowerShell, поддерживающим фильтры. Фильтры более эффективны, чем другие параметры. Поставщик применяет фильтр, когда командлет получает объекты, а не PowerShell фильтрует их после получения. Строка фильтра передается API .NET для перечисления файлов. API поддерживает только подстановочные знаки * и ?.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-Force

Указывает, что этот командлет получает элементы, к которым в противном случае невозможно получить доступ, например, скрытые элементы. Реализация зависит от поставщика к поставщику. Дополнительные сведения см. в разделе about_Providers. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.

Тип:SwitchParameter
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Include

Указывает, как строковый массив, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешены подстановочные знаки. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

-LiteralPath

Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так, как оно введено. Символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки указывают PowerShell не интерпретировать какие-либо символы как последовательности экранирования.

Дополнительные сведения см. в about_Quoting_Rules.

Тип:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Path

Указывает путь к элементу. Этот командлет извлекает элемент в указанном расположении. Разрешены подстановочные знаки. Этот параметр является обязательным, но имя параметра path является необязательным.

Используйте точку (.), чтобы указать текущее расположение. Используйте подстановочный знак (*) для указания всех элементов в текущем расположении.

Тип:String[]
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:True

-SSLServerAuthentication

Это динамический параметр, доступный поставщиком сертификатов . Этот параметр и поставщик сертификатов доступны только в Windows.

Чтобы получить сертификаты с Server Authentication в значении свойства EnhancedKeyUsageList, используйте параметр SSLServerAuthentication.

Дополнительные сведения см. в about_Certificate_Provider.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Stream

Это динамический параметр, доступный поставщиком файловой системы. Этот параметр доступен только в Windows.

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

Этот параметр появился в PowerShell 3.0. По состоянию на PowerShell 7.2 Get-Item могут получать альтернативные потоки данных из каталогов, а также файлов.

Дополнительные сведения см. в about_FileSystem_Provider.

Тип:String[]
Position:Named
Default value:No alternate file streams
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:True

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

String

Можно передать строку, содержащую путь к этому командлету.

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

AliasInfo

Командлет выводит этот тип при доступе к диску Alias:.

X509StoreLocation

X509Store

X509Certificate2

Командлет выводит эти типы при доступе к диску Cert:.

DictionaryEntry

Командлет выводит этот тип при доступе к диску Env:.

DirectoryInfo

FileInfo

Командлет выводит эти типы при доступе к дискам файловой системы.

FunctionInfo

FilterInfo

Командлет выводит эти типы при доступе к Function: дискам.

RegistryKey

Командлет выводит этот тип при доступе к дискам реестра.

PSVariable

Командлет выводит этот тип при доступе к дискам Variable:.

WSManConfigContainerElement

WSManConfigLeafElement

Командлет выводит эти типы при доступе к WSMan: дискам.

Примечания

PowerShell включает следующие псевдонимы для Get-Item:

  • Все платформы:
    • gi

Этот командлет не имеет параметра Recurse, так как он получает только элемент, а не его содержимое. Чтобы получить содержимое элемента рекурсивно, используйте Get-ChildItem.

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

Этот командлет предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в сеансе, введите Get-PsProvider. Дополнительные сведения см. в разделе about_Providers.