Я пытаюсь использовать CSV-файл для автоматического именования компьютеров с помощью powershell. Наши имена компьютеров содержат общие номера моделей, которые говорят мне о фактическом типе компьютера. Например, модель # 2537CU1 - это Lenovo T410. Я хочу вывести номер модели и изменить переменную на T410.Powershell - Изменение переменных на основе CSV-файла
Я уже могу получить номер модели с вызовом get-wmiobject классу компьютеров, но для создания переменной с данными типа, например T410, мне нужно использовать кучу операторов If и elseif , Это связано с огромным числом или моделями/типами, которые мы поддерживаем. Моя цель - иметь CSV для редактирования вместо самого скрипта. Я просто хочу, чтобы соответствующая модель получала правильную переменную для «типа» машины.
Так вот где моя голова до сих пор, и я знаю, что я далеко:
$model = Get-WmiObject -Class Win32_ComputerSystem | select -ExpandProperty Model
$modelCSV = "0"
$typeCSV = "0"
Import-Csv -Path "C:\TechDiv\ComputerModel_Type.csv" |
ForEach-Object {
$modelCSV += $_.Model
$typeCSV += $_.Type
}
if ($modelCSV -like $model)
{
$model = $typeCSV
}
Где моя CSV выглядит следующим образом:
Model, Type
0401B7U, A70Z
0401R6U, A70Z
1165A3U, A70Z
25521H8, 0E31
2552Ck1, 0E31
7360, 0M58
7483, 0M58
7630, 0M58
В конечном итоге мой компьютер именования скрипт сростить модель и серийный номер для удобных коллекций и обновлений. Пример с моделью/серийным названием (0 в блокнот левый серийному для заполнения 10 пробелов): T410000R84D06Z
Как перевести «Модель», которую вызывает WMI-вызов, и изменить на «Тип» из CSV. Тип - это то, что я действительно хочу. Таким образом, вызов WMI дает мне, например, 3257CU1 (модель). Я хочу, чтобы перевести мою переменную в T410 (тип). – LiquidCourage11
Я использовал вашу линию Where-Object и пошел немного дальше, так как мне понадобилась информация типа «Type». Проводка кода в ответе ниже, поскольку ответы не могут содержать фрагменты кода. – LiquidCourage11
$ model = Get-WmiObject -Class Win32_ComputerSystem | select -ExpandProperty Model $ modelType = Import-Csv -Path "C: \ TechDiv \ ComputerModel_Type.csv" | Where-Object {$ _. Model -eq $ model} | выберите -ExpandProperty type – LiquidCourage11