Показать информацию о компьютере powershell
Обновлено: 21.11.2024
Вы можете использовать командлет PowerShell Get-ADComputer для получения различной информации об объектах учетных записей компьютеров (серверах и рабочих станциях) из домена Active Directory. Это один из самых полезных командлетов для поиска компьютеров AD по различным критериям (для получения информации об учетных записях пользователей AD используется еще один командлет — Get-ADUser).
Предположим, ваша задача — найти все неактивные компьютеры в Active Directory, которые не были зарегистрированы в домене более 120 дней, и отключить эти учетные записи.
Перед использованием командлета Get-ADComputer необходимо импортировать модуль Active Directory для Windows PowerShell с помощью команды:
Совет. В PowerShell 3.0 (представлен в Windows Server 2012) или более поздних версиях этот модуль импортируется по умолчанию, если установлен следующий компонент: Средства удаленного администрирования сервера -> Средства администрирования ролей -> Инструменты AD DS и AD LDS -> Модуль Active Directory для Windows PowerShell. Чтобы использовать командлет Get-ADComputer в настольных ОС (Windows 10, 8.1 или Windows 7), необходимо загрузить и установить RSAT для вашей версии ОС и включить модуль AD-Powershell из Панели управления или с помощью команды:
Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
Get-ADComputer — синтаксис командлета
Вы можете получить справку по параметрам командлета Get-ADComputer, как обычно, с помощью команды Get-Help:
Чтобы получить информацию из AD с помощью командлетов из модуля AD для PowerShell, вам не нужны права администратора домена. Достаточно, чтобы учетная запись, под которой запускается командлет, была членом группы Пользователи домена / Прошедшие проверку.
Чтобы получить информацию о конкретной учетной записи компьютера в домене, укажите ее имя в качестве аргумента параметра -Identity:
Get-ADComputer-Identity SRV-DB01
Командлет Get-ADComputer возвратил только основные свойства объекта Computer из AD. Нас интересует время последней регистрации компьютера в домене AD, но эта информация не отображается в выводе команды выше. Вы можете перечислить все доступные свойства этого объекта компьютера из Active Directory:
Get-ADComputer -Identity SRV-DB01 -Свойства *
Используя Get-Member, вы можете получить список всех свойств класса Computer в AD:
Get-ADComputer -Filter * -Properties * | Get-Member
Как видите, дата последнего входа этого компьютера в сеть указана в атрибуте компьютера LastLogonDate — 21.09.2015 0:20:17.
Командлет Get-ADComputer позволяет отображать любые свойства компьютера в результатах выполнения команды. Удалите всю ненужную информацию, оставив только значения атрибутов Name и LastLogonDate.
Get-ADComputer -identity SRV-DB01 -Свойства * | Имя FT, LastLogonDate -Autosize
Итак, мы получили данные о времени последней регистрации в домене для одного компьютера. Затем вам нужно изменить команду, чтобы она отображала информацию о времени последней сетевой регистрации для всех компьютеров в домене. Для этого замените –Identity на –Filter *:
Get-ADComputer -Filter * -Properties * | Имя FT, LastLogonDate -Autosize
Мы получили простую таблицу, содержащую всего 2 поля: имя компьютера и дату LastLogonData. Вы можете добавить в эту таблицу другие поля объекта Компьютер из AD.
Чтобы отобразить информацию об объектах-компьютерах в определенной OU (организационной единице), используйте параметр –SearchBase:
Get-ADComputer -SearchBase 'OU=Paris,DC=woshub,DC=loc' -Filter * -Properties * | Имя FT, LastLogonDate -Autosize
Отсортируйте результаты запроса по дате последнего входа в систему с помощью командлета Sort:
Get-ADComputer -Filter * -Properties * | Сортировать LastLogonDate | Имя FT, LastLogonDate -Autosize
Итак, у нас есть список компьютеров и дата их последнего входа в домен Active Directory. Теперь мы хотим отключить учетные записи компьютеров, которые не использовались в течение 120 или более дней.
Используя Get-Date, мы можем получить значение текущей даты в переменной и уменьшить его до 120 дней:
Полученную переменную даты можно использовать в качестве фильтра запроса Get-ADComputer в поле LastLogonDate:
Get-ADComputer -Properties LastLogonDate -Filter | Сортировать LastLogonDate | Имя FT, LastLogonDate -Autosize
Итак, мы создали список неактивных учетных записей компьютеров, которые не были зарегистрированы в сети более 120 дней. Используйте команду Disable-ADAccount или Set-ADComputer, чтобы отключить их.
Совет. В первый раз лучше протестировать результаты команды с ключом –WhatIf, который позволяет увидеть, что произойдет, если команда была запущена без изменений в системе.
Get-ADComputer -Properties LastLogonDate -Filter | Set-ADComputer-Enabled $false-whatif
Теперь вы можете отключить все неактивные учетные записи компьютеров:
Get-ADComputer -Properties LastLogonDate -Filter | Set-ADComputer-Enabled $false
Примечание. Также вы можете получить список заблокированных, отключенных и неактивных компьютеров и пользователей домена с помощью отдельного командлета Search-ADAccount.
Get-ADComputer — примеры
Ниже приведены еще несколько полезных примеров использования командлета Get-ADComputer для запроса и поиска объектов-компьютеров в домене по определенным критериям.
Получить общее количество всех активных (разблокированных) компьютеров в Active Directory:
Подсчитайте количество экземпляров Windows Server в домене AD:
Получить список компьютеров в определенной организационной единице, имена которых начинаются с LonPC:
Get-ADComputer -Filter -SearchBase ‘OU=London,DC=woshub,DC=com’ -Properties IPv4Address | Имя таблицы форматов,DNSHostName,IPv4Address | ft -Wrap –Авто
При поиске в OU можно использовать дополнительный параметр -SearchScope 1, что означает, что искать нужно только в корне OU. Параметр -SearchScope 2 указывает на рекурсивный поиск компьютеров во всех вложенных подразделениях.
Чтобы найти все компьютеры рабочих станций под управлением Windows 10:
Получить список серверов в домене с версией ОС, установленным пакетом обновлений и IP-адресом:
Get-ADComputer -Filter 'операционная система -например, "*Windows server*" -и включено -eq "true"' -Properties Name,Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack,IPv4Address | Сортировка-Объект-Свойство Операционная система | Select-Object -Property Name,Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address| ft -Wrap –Авто
На выходе получилась такая красивая таблица со списком Windows Server в AD:
Атрибут -LDAPFilter позволяет использовать различные запросы LDAP в качестве параметра командлета Get-ADComputer, например:
Get-ADComputer -LDAPFilter "(name=*db*)"|ft
Найти все отключенные компьютеры в определенном подразделении Active Directory:
Get-ADComputer -filter * -SearchBase ‘OU=Computers,OU=London,DC=woshub,dc=com’ | Где-объект
Чтобы удалить все учетные записи компьютеров, которые не входили в домен более 6 месяцев, можно использовать команду:
Get-ADComputer -properties lastLogonDate -filter * | где < $_.lastLogonDate -lt (get-date).addmonths(-6) >| Remove-ADComputer
Результат команды Get-ADComputer можно экспортировать в обычный текстовый файл:
Get-ADComputer -Filter < OperatingSystem -Like '*Windows Server 2008*' >-Properties OperatingSystem | Выберите DNSHostName, Операционная система | Таблица форматов -AutoSize C:\Script\server_system.txt
Вы также можете получить список компьютеров и экспортировать его в файл CSV:
Get-ADComputer -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemServicePack | Export-CSV All-Windows.csv -NoTypeInformation -Кодировка UTF8
Или получите файл отчета в формате HTML со списком компьютеров и необходимыми свойствами:
Get-ADComputer -Filter -Properties * | Select-Object Name,OperatingSystem | Преобразовать в HTML | Исходящий файл C:\ps\ad_computers_list.html
Чтобы выполнить определенное действие со всеми компьютерами в результирующем списке, необходимо использовать цикл Foreach. В этом примере мы хотим создать список серверов в домене и запросить определенную информацию с каждого сервера (результирующий файл должен содержать имя сервера, производителя и модель сервера).
$Computers = Get-ADComputer -Filter
Foreach ($Computer в $Computers)
$Hostname = $Computer.Name
$ComputerInfo = (Get-WmiObject -Computername $Hostname Win32_ComputerSystem )
$Производитель = $Компьютер.Производитель
$Model = $Computer.Model
Write-Host "Имя: $Hostname"
Write-Host "Производитель: $Manufacturer"
Write-Host "Модель: $Model "
Write-Host " "
$Content = "$Hostname;$Производитель;$Модель"
Add-Content -Value $Content -Path "C:\PS\ServersInfo.txt"
>
Вы можете использовать более короткий синтаксис цикла. Предположим, вам нужно выполнить определенную команду на всех компьютерах в определенной OU (в этом примере я хочу запустить команду обновления групповой политики на всех серверах):
Используя Get-AdComputer и сценарий запуска PowerShell, вы можете управлять различными настройками компьютера. Например, я слежу за состоянием агента (службы) SCCM на компьютерах пользователей. При запуске на каждом компьютере выполняется небольшой сценарий входа, который сохраняет статус службы ccmexec в неиспользуемом атрибуте компьютера — extensionAttribute10.
Затем с помощью следующей команды я могу найти компьютеры, на которых служба CCMExec отсутствует или не запущена.
get-adcomputer -filter -SearchBase "OU=Compters,OU=London,DC=woshub,DC=com" -properties dNSHostName,extensionAttribute10,LastLogonDate |select-object dNSHostName,extensionAttribute10,LastLogonDate
Командлеты из модуля CimCmdlets являются наиболее важными командлетами для общих задач управления системой. Все важные параметры подсистемы доступны через WMI. Кроме того, WMI обрабатывает данные как объекты, находящиеся в наборах из одного или нескольких элементов. Поскольку Windows PowerShell также работает с объектами и имеет конвейер, позволяющий одинаково обрабатывать один или несколько объектов, общий доступ к WMI позволяет выполнять некоторые сложные задачи с минимальными затратами.
Вывод параметров рабочего стола
Мы начнем с команды, которая собирает информацию о рабочих столах на локальном компьютере.
Это возвращает информацию обо всех рабочих столах, независимо от того, используются они или нет.
Информация, возвращаемая некоторыми классами WMI, может быть очень подробной и часто включает метаданные о классе WMI.
Поскольку большинство этих свойств метаданных имеют имена, начинающиеся с Cim, вы можете отфильтровать свойства с помощью Select-Object . Укажите параметр -ExcludeProperty со значением "Cim*". Например:
Чтобы отфильтровать метаданные, используйте оператор конвейера (|) для отправки результатов команды Get-CimInstance в Select-Object -ExcludeProperty "CIM*" .
Вывод информации о BIOS
Класс WMI Win32_BIOS возвращает довольно компактную и полную информацию о системе BIOS на локальном компьютере:
Вывод информации о процессоре
Вы можете получить общую информацию о процессоре с помощью класса WMI Win32_Processor, хотя вы, вероятно, захотите отфильтровать информацию:
Для общей строки описания семейства процессоров можно просто вернуть свойство SystemType:
Список производителей и моделей компьютеров
Информация о модели компьютера также доступна в Win32_ComputerSystem. Стандартный отображаемый вывод не нуждается в какой-либо фильтрации для предоставления данных OEM:
Ваши выходные данные от таких команд, которые возвращают информацию непосредственно с некоторого оборудования, настолько хороши, насколько хороши данные, которые у вас есть. Некоторая информация неправильно настроена производителями оборудования и поэтому может быть недоступна.
Список установленных исправлений
Вы можете получить список всех установленных исправлений с помощью Win32_QuickFixEngineering:
Этот класс возвращает список исправлений, который выглядит следующим образом:
Для более краткого вывода вы можете исключить некоторые свойства. Хотя вы можете использовать параметр Property Get-CimInstance, чтобы выбрать только HotFixID, это на самом деле вернет больше информации, поскольку по умолчанию отображаются все метаданные:
Возвращаются дополнительные данные, поскольку параметр Property в Get-CimInstance ограничивает свойства, возвращаемые из экземпляров класса WMI, а не объект, возвращаемый в PowerShell. Чтобы уменьшить вывод, используйте Select-Object :
Вывод сведений о версии операционной системы
Свойства класса Win32_OperatingSystem включают информацию о версии и пакете обновлений. Вы можете явно выбрать только эти свойства, чтобы получить сводку информации о версии из Win32_OperatingSystem:
Вы также можете использовать подстановочные знаки с параметром Property Select-Object. Поскольку здесь важно использовать все свойства, начинающиеся с Build или ServicePack, мы можем сократить это до следующей формы:
Список локальных пользователей и владельцев
Локальную общую информацию о пользователе — количество лицензированных пользователей, текущее количество пользователей и имя владельца — можно найти, выбрав свойства класса Win32_OperatingSystem. Вы можете явно выбрать свойства для отображения следующим образом:
Более краткая версия с использованием подстановочных знаков:
Получение доступного места на диске
Чтобы увидеть дисковое пространство и свободное место на локальных дисках, вы можете использовать WMI-класс Win32_LogicalDisk.Вам нужно просмотреть только экземпляры с DriveType, равным 3 – значение, которое WMI использует для несъемных жестких дисков.
Получение информации о сеансе входа
Общую информацию о сеансах входа, связанных с пользователями, можно получить с помощью класса WMI Win32_LogonSession:
Вход пользователя в компьютер
Вы можете отобразить пользователя, вошедшего в определенную компьютерную систему, с помощью Win32_ComputerSystem. Эта команда возвращает только пользователя, выполнившего вход на рабочий стол системы:
Получение местного времени с компьютера
Вы можете получить текущее местное время на определенном компьютере с помощью класса WMI Win32_LocalTime.
Отображение статуса службы
Чтобы просмотреть состояние всех служб на конкретном компьютере, можно локально использовать командлет Get-Service. Для удаленных систем можно использовать WMI-класс Win32_Service. Если вы также используете Select-Object для фильтрации результатов по Status, Name и DisplayName, формат вывода будет почти идентичен формату Get-Service :
Чтобы разрешить полное отображение имен для случайных служб с очень длинными именами, вы можете использовать Format-Table с параметрами AutoSize и Wrap, чтобы оптимизировать ширину столбца и разрешить перенос длинных имен вместо усечения:< /p>
Для работы в среде с большим количеством серверов необходимо знать информацию о компьютерной системе, такую как: общий объем физической памяти на каждом сервере, количество процессоров, количество логических процессоров, состояние загрузки и т. д.
Чтобы получить информацию о компьютерной системе с помощью PowerShell, мы можем использовать классы WMI или CIM, Win32_ComputerSystem или CIM_ComputerSystem соответственно.
Если это то, что вам нужно собрать для своих серверов, прочитайте эту статью, чтобы получить все необходимые ответы.
Оглавление
Получение информации о системе компьютера с помощью PowerShell — Решения
Вот несколько решений для локального компьютера, удаленных компьютеров и написания собственного CmdLet PowerShell.
Решение 1. Получите информацию о системе компьютера с помощью PowerShell для локального компьютера.
Чтобы получить информацию о системе компьютера для локального компьютера, мы вызываем Get-CimInstance CmdLet и получаем необходимые данные из CIM-класса CIM_ComputerSystem.
Вот набор результатов для локальной машины:
Набор результатов "Информация о системе компьютера"
Решение 2. Получите информацию о системе компьютера с помощью PowerShell для удаленных компьютеров.
Для списка компьютеров мы можем использовать тот же вызов, что и для предыдущего решения, только для использования параметра ComputerName и добавления списка серверов в виде текстового файла.
Создайте список серверов в текстовом файле и сохраните его, например, в папке C:\Temp и выполните ту же команду, что и в предыдущем решении, просто используйте ComputerName параметр дополнительно. В основном мы загружаем содержимое текстового файла с помощью Get-Content CmdLet, и PowerShell просматривает список и выполняет ту же команду, что и в предыдущем решении, для каждого сервера в списке.
Вот набор результатов для списка серверов:
Набор результатов информации о системе компьютера для списка серверов
У меня нет серверов в моей домашней сети, поэтому для их имитации я создал очень простой входной список серверов в текстовом файле, просто скопировав значение localhost несколько раз.
Содержимое файла Servers.txt
Решение 3. Напишите собственный CmdLet PowerShell ( Get-ComputerSystemInfo ) для получения информации о системе компьютера с помощью PowerShell
Этот подход требует немного больше времени, но дает нам больше преимуществ в долгосрочной перспективе, поэтому я предпочитаю этот способ, и мы можем объединить этот CmdLet с библиотекой CmdLet в проекте PowerShell Efficiency Booster.
Я написал свой собственный CmdLet Get-ComputerSystemInfo CmdLet, который вскоре вам объясню.
Вот один из примеров вызова Get-ComputerSystemInfo CmdLet:
Вот набор результатов при вызове Get-ComputerSystemInfo CmdLet:
Набор результатов Get-ComputerSystemInfo CmdLet
ИНФОРМАЦИЯ: я написал две дополнительные функции PowerShell (Get-CIMClassProperty и Select-CIMClassAllProperties), которые помогают нам работать с классами WMI и CIM. Первый перечисляет все свойства и типы данных классов WMI или CIM, а второй делает операторы выбора со всеми свойствами для класса WMI или CIM.Как перечислить все свойства класса CIM или WMI и их типы данных с помощью PowerShell И как написать оператор выбора для всех свойств класса CIM или WMI с помощью PowerShell.
Объяснение команды Get-ComputerSystemInfo
Get-ComputerSystemInfo CmdLet собирает информацию о компьютерной системе для списка серверов, и этот CmdLet принадлежит проекту PowerShell Efficiency Booster. Этот проект представляет собой библиотеку различных CmdLet, которые могут помочь ИТ-специалистам выполнять наши повседневные задачи более эффективно и точно.
Исходный код Get-ComputerSystemInfo CmdLet можно загрузить из этого zip-файла, поэтому не стесняйтесь загружать его, и вам будет легче следовать за мной.
Get-ComputerSystemInfo CmdLet является частью общего модуля, и если вы загрузили исходный код, его можно найти в папке …\[My] Documents\WindowsPowerShell\Modules\03common
ИНФОРМАЦИЯ. Если вы хотите узнать, как установить и настроить файлы PowerShell проекта Efficiency Booster, прочитайте следующую статью: Установка и настройка PowerShell: CmdLets, модули, профили.
Get-ComputerSystemInfo CmdLet — входные параметры
- компьютеры — это список серверов, переданный в качестве входного параметра со значением по умолчанию «localhost» и принимающий оба варианта конвейера. Параметр принадлежит к набору параметров «ServerNames». Набор параметров «ServerNames» является набором параметров по умолчанию.
- имя_файла — это имя текстового файла со списком серверов, представляющее собой альтернативу параметру «компьютеры». Параметр принадлежит к набору параметров FileName.
- errorlog — переключает тип данных и при включении будет записывать ошибки во внешний файл журнала ошибок с помощью Write-ErrorLog CmdLet. Файл журнала ошибок находится в папке PSLogs папки [My] Documents.
- client — это обязательный входной параметр, и по соглашению я использую две буквы для шорткода клиента (например, OK = O client, BK = B client и т. д.). Это значение параметра является частью соглашения об именовании параметров имени файла.
- solution — это обязательный входной параметр, и по соглашению я использую две-три буквы для шорткода решения (например, FIN = Финансовое решение, HR = HR решение и т. д.).
Соглашение об именах для параметра имени файла следующее: Client + Solution + Text.txt. Текстовый файл должен находиться в папке …[My] Documents\WindowsPowerShell\Modules\01servers. папка.
- OKFINTestServers.txt — список серверов тестовой среды для клиента OK и решения FIN
- OKFINProdServers.txt – список серверов рабочей среды для клиента OK и решения FIN.
- OKFINAllServers.txt – список всех серверов для клиента OK и решения FIN.
ИНФОРМАЦИЯ. Чтобы получить более подробные сведения о входных параметрах клиента и решения, ознакомьтесь с двумя разделами: Параметры клиента, Параметры решения.
ИНФОРМАЦИЯ: Чтобы настроить установку CmdLet в соответствии с вашими потребностями и настроить необходимый CSV-файл, прочитайте следующую статью Как установить и настроить PowerShell: CmdLets, модули, профили
Вот код определения параметров:
ИНФОРМАЦИЯ. Чтобы узнать больше о параметрах и наборах параметров PowerShell с некоторыми замечательными примерами, прочитайте следующие статьи Как создавать параметры в PowerShell и Как использовать наборы параметров в функциях PowerShell.
ИНФОРМАЦИЯ: PowerShell Pipelining — очень важная концепция, и я настоятельно рекомендую вам прочитать статью, написанную на эту тему. Как работает конвейер PowerShell. Здесь я показал на многих примерах реальную мощь PowerShell с использованием конвейерной обработки.
Блок НАЧАТЬ
- Если использовался набор параметров FileName, мы проверяем, существует ли текстовый файл со списком серверов.
- Если файл существует, прочитайте его и создайте список серверов в виде массива строк в переменной $computers.
- … и если нет, напишите предупреждение с информацией для вызывающей стороны для создания файла.
Блок ПРОЦЕСС
- Мы заменяем значение по умолчанию localhost для локального сервера на фактическое имя локального компьютера.
- Мы используем Get-ComputerInfo CmdLet для чтения дополнительных данных о каждом сервере (имя, среда, логическое имя, IP-адрес).
- Мы реализуем обработку ошибок с помощью блоков try-catch и записываем ошибки во внешний текстовый файл с помощью Write-ErrorLog CmdLet.
- Мы используем разбивку PowerShell, чтобы подготовить входные параметры для следующего вызова Get-CimInstance CmdLet.
- Мы вызываем класс CIM CIM_ComputerSystem, используя Get-CimInstance CmdLet
- Мы просматриваем информацию о каждой компьютерной системе каждого сервера и готовим набор результатов Get-ComputerSystemInfo CmdLet.
В блоке PROCESS мы хотели бы подчеркнуть три вещи, используемые в коде:
1 — Разбрызгивание
2 – Создание набора результатов и тип имени набора результатов
Снова для создания набора результатов мы используем разбрызгивание, как вы можете видеть в исходном коде:
Вот результат:
3 — Использование выражений для получения общей физической памяти в ГБ и явное преобразование
Обратите внимание на использование Expression для получения общего объема физической памяти в ГБ, а также на явное преобразование в десятичный тип данных результирующих свойств.
Я написал для себя напоминание не использовать форматирование 0:N2, если впоследствии я захочу использовать явное десятичное преобразование.
Наконец, вот исходный код блока PROCESS:
ИНФОРМАЦИЯ. Чтобы узнать об обработке ошибок PowerShell и отладке кода, прочитайте следующие статьи: Как регистрировать ошибки PowerShell и многое другое и Как отлаживать сценарии PowerShell.
Конец блока
Блок END пуст.
ИНФОРМАЦИЯ. Чтобы понять, что такое блоки BEGIN, PROCESS и END в PowerShell, прочтите статью PowerShell Function Begin Process End Blocks с примерами.
Раздел справки на основе комментариев
Для каждого из моих собственных CmdLet я также пишу справку на основе комментариев.
ИНФОРМАЦИЯ. Если вы хотите узнать, как написать справку на основе комментариев для собственных функций и сценариев PowerShell, прочитайте эти статьи Как написать справку PowerShell (шаг за шагом). В этой статье «Как написать справку для функции PowerShell или CmdLet (быстро)» я расскажу о надстройке PowerShell, которая помогает нам быстро писать справку.
Как использовать Get-ComputerSystemInfo CmdLet — советы
Чтобы получить информацию о системе компьютера для локального компьютера, мы просто вызываем Get-ComputerSystemInfo CmdLet и указываем значения обязательных параметров (клиент и решение):
Вот набор результатов:
Набор результатов Get-ComputerSystemInfo CmdLet для локального компьютера
Как мы видели в разделе решения этой статьи, мы можем вызвать Get-ComputerSystemInfo CmdLet для получения списка серверов:
Вот набор результатов для списка серверов:
Набор результатов Get-ComputerSystemInfo CmdLet
Мы можем передать результат PowerShell из Get-ComputerSystemInfo CmdLet в Save-ToExcel CmdLet и получить набор результатов в виде листа Excel:
Вот результат листа Excel:
Результат Get-ComputerSystemInfo установлен как лист Excel
Дополнительный совет: я использовал Get-ComputerSystemInfo CmdLet для документирования при создании PDF-документа для клиента, на котором мы установили наше решение.
Полезные информационные статьи о компьютерных системах PowerShell
Вот несколько полезных статей и ресурсов:
Исходный код Get-ComputerSystemInfo CmdLet
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Функция Get-ComputerSystemInfo является частью проекта PowerShell Efficiency Booster и поэтому использует другие CmdLet, являющиеся частью того же проекта. Так что лучший вариант для вас, чтобы эта функция работала без какой-либо дополнительной настройки, это скачать исходный код всего проекта отсюда.
ИНФОРМАЦИЯ. Мой лучший совет каждому сценаристу PowerShell — научиться писать собственные расширенные функции PowerShell и CmdLet, и я написал несколько статей, объясняющих это, поэтому, пожалуйста, прочтите их. Как создать собственный CmdLet PowerShell (шаг за шагом). Здесь я объясню, как использовать дополнительную функцию PowerShell, чтобы быстрее писать функции PowerShell. Как писать расширенные функции или CmdLet с помощью PowerShell (быстро).
Вот исходный код всего CmdLet Get-ComputerSystemInfo:
ПОМНИТЕ: PowerShell каждый день!
О Деяне Младеновиче
Привет всем! Я надеюсь, что эта статья, которую вы прочитали сегодня, перенесла вас из места разочарования в место кодирования радости! Пожалуйста, дайте мне знать в комментариях ниже, что вам нужно для Windows PowerShell, что может помочь вам в достижении ваших целей!
У меня более 18 лет опыта работы в ИТ, и вы можете проверить мои учетные данные Microsoft. Идентификатор стенограммы: 750479 и код доступа: DejanMladenovic
Учетные данные
Обо мне.
Мои сообщения | Веб-сайт
Поделиться этим сообщением:
Привет всем! Я надеюсь, что эта статья, которую вы прочитали сегодня, перенесла вас из места разочарования в место кодирования радости!Пожалуйста, дайте мне знать о том, что вам нужно для Windows PowerShell в комментариях ниже, что может помочь вам достичь ваших целей! У меня более 18 лет опыта работы в ИТ, и вы можете проверить мои учетные данные Microsoft. Идентификатор стенограммы: 750479 и код доступа: DejanMladenovic
Учетные данные Обо мне.
Последние сообщения
Эта статья представляет собой шаг вперед по сравнению с предыдущей статьей о написании функций PowerShell. Мы покажем вам, что нужно преобразовать ваши существующие функции PowerShell в расширенные функции PowerShell.
Написать функцию PowerShell несложно, но по какой-то причине некоторым людям неудобно их писать. Не волнуйтесь, эта статья покажет вам простые шаги с примерами, чтобы вы могли написать свой.
О Деяне Младеновиче
Здравствуйте, меня зовут Деян Младенович
На протяжении многих лет я использовал PowerShell для решения многих своих повседневных ИТ-задач, чтобы повысить эффективность, поэтому я хотел бы поделиться с вами своим опытом написания сценариев Windows PowerShell.
Если вы нашли сообщение полезным и хотите вознаградить меня за чашку кофе, сделайте пожертвование здесь!
ПРАВОВАЯ ИНФОРМАЦИЯ
Мы получаем компенсацию за направление трафика и бизнеса на Amazon и другие компании, ссылки на которые есть на этом сайте.
О Деяне Младеновиче
Деян Младенович
Здравствуйте, если вы нашли сообщение PowerShell полезным и хотите вознаградить меня ценой за чашку кофе, сделайте пожертвование здесь!
Вам не нужно устанавливать сторонние программы, чтобы получить информацию о вашей компьютерной системе. С помощью Windows PowerShell вы можете получить всю необходимую системную информацию.
Базовый командлет PowerShell для получения информации о системе
С PowerShell у вас есть доступ к почти любой информации о вашем компьютере. Вам просто нужно собрать правильные команды вместе. В PowerShell есть множество команд, которые вы можете использовать для извлечения любой информации из вашей системы. Вы можете получить результат прямо на экране или экспортировать его в файл CSV для дальнейшего анализа. Позвольте мне показать вам несколько примеров того, что вы можете сделать с помощью PowerShell для Windows.
Получить информацию о вашей материнской плате
С помощью приведенной ниже команды можно получить информацию о вашей материнской плате.
(Получить информацию о BIOS материнской платы)
(Получить информацию об установленных в вашей системе блоках памяти)
Get-WmiObject win32_physicalmemory | Выберите производителя, метку банка, настроенную тактовую частоту, локатор устройств, емкость, серийный номер
Получить информацию об операционной системе
С помощью приведенной ниже команды вы можете получить информацию о вашей операционной системе:
Объединить все команды в одну строку
Чтобы создать однострочную команду, объединяющую все вышеперечисленные команды, вы можете скопировать/вставить приведенную ниже команду в командную строку PowerShell:
Get-WmiObject win32_baseboard; Get-WmiObject Win32_Bios; Get-WmiObject win32_physicalmemory | Выберите производителя, метку банка, настроенную тактовую частоту, локатор устройств, емкость, серийный номер; Get-ComputerInfo OSName, OsArchitecture
На моем компьютере результат команды выглядит так:
Получить данные из EventLog
Еще одна полезная команда PowerShell — Get-EventLog, которую можно использовать для поиска в журнале событий определенной ошибки или предупреждения. В приведенном ниже примере я ищу в системном журнале все записи с типом уровня «Ошибка»:
С PowerShell нет предела возможностям
Об авторе:
Я ИТ-специалист и веду этот блог в качестве хобби в свободное время. Я работаю в ИТ-бизнесе с 1996 года и хочу поделиться с людьми, которые посещают этот блог, тем, что накопилось за эти годы.
Читайте также: