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


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. Получение свойства в указанном каталоге

В этом примере возвращается свойство C:\Windows LastAccessTime каталога. 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 помощью in la---

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

В PowerShell 7.1 в системах Get-Item Unix командлет предоставляет такие выходные данные, как 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 содержит понятное имя и поля OID для EKU.

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

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

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

-Exclude

Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Можно использовать подстановочные знаки. Параметр Exclude действует только в том случае, если команда включает содержимое элемента, например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 . Поставщик FileSystem — единственный установленный поставщик 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 не интерпретировать какие-либо символы как escape-последовательности.

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

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

-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

Это динамический параметр, доступный поставщиком FileSystem . Этот параметр доступен только в 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.