2016-12-15 9 views
1

Как передать объекты CSV-файла в параметр DeviceName для Get-CMUserDeviceAffinity?Как получить список первичных пользователей компьютеров

У меня есть список компьютеров. Я хотел бы создать список основных пользователей для каждого из компьютеров в этом списке. Я использую powershell и модуль SCCM, и до сих пор я пробовал использовать один лайнер, а также что-то более многословное безрезультатно.

Однострочник неудачу:

Import-CSV C:\temp\computerlist.csv | Get-CMUserDeviceAffinity -DeviceName $($_.Name) 

Сценарий неудачу:

$Computers = C:\computers.CSV 
    ForEach ($Computer in $Computers) { 
     Get-CMUserDeviceAffinity -DeviceName $_.Name 

Результаты обоих не удается:

Cannot validate argument on parameter 'DeviceName'. The argument is null or empty. Provide 
an argument that is not null or empty, and then try the command again. 
At line:1 char:77 
+ ... p\computerlist.csv | Get-CMUserDeviceAffinity -DeviceName $($_.Name) 
+                ~~~~~~~~~~ 
    + CategoryInfo   : InvalidData: (:) [Get-CMUserDeviceAffinity], ParameterBindingValidationException 
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ConfigurationManagement.Cmdlets.Collections.C 
    ommands.GetUserDeviceAffinityCommand 
+2

'Import-CSV C: \ temp \ computerlist.csv | ForEach-Object {Get-CMUserDeviceAffinity -DeviceName $ _. Name} ' – sodawillow

ответ

5

Вы используете автоматический конвейер$_ тогда Название переменной вы не имеете объект конвейера в цикле Еогеасп. Просто используйте $Computer вместо:

$Computers = C:\computers.CSV 
    ForEach ($Computer in $Computers) { 
     Get-CMUserDeviceAffinity -DeviceName $Computer.Name 
} 
+0

По крайней мере, это должно быть' $ Computers = Import-Csv 'C: \ computers.CSV'' – n01d

0

Предполагая, что ваш CSV, как это
enter image description here

Вы можете попробовать использовать ниже PowerShell скрипт:

$Computers = Import-Csv C:\computerlist.CSV 
    ForEach ($Computer in $Computers) { 
     $Name = (Get-CMUserDeviceAffinity -DeviceName $Computer.Name).uniqueusername 
     write-host "$($computer.name) ------> $($Name) " 
} 

Выход:
enter image description here

+0

Удалось решить эту проблему? –

 Смежные вопросы

  • Нет связанных вопросов^_^