Ошибка - Невозможно привязать аргумент к параметру «InputObject», поскольку он имеет значение null - PullRequest
0 голосов
/ 25 марта 2020

Я использую SCCM 2016, Windows Server 2012. Я использую приведенный ниже код для перемещения коллекции в другую папку. Я получаю сообщение об ошибке Move-CMObject : Cannot bind argument to parameter 'InputObject' because it is null.

Я исследовал ошибку через Google, но я все еще не могу понять, как 'InputObject' является нулевым. Я видел другой PS-скрипт, отформатированный таким же образом, и это рабочий скрипт. Я хотел бы знать, как это исправить и переместить коллекцию в другую папку.

$sitecode = "123"
$colltomove = "SLS00287"
$destcollfolder = '$($sitecode):\DeviceCollection\Test Operational' 

$collID = Get-CMCollection -Name $colltomove
Move-CMObject -InputObject $collID -FolderPath $destcollfolder

1 Ответ

1 голос
/ 25 марта 2020

Ошибка, которую вы видите, говорит нам, что $collID - это $null - что означает, что вызов Get-CMCollection ничего не дал.

Как вы обнаружили, SLS00287 - это идентификатор коллекции , а не имя, поэтому сначала обновите:

$deviceCollection = Get-CMDeviceCollection -CollectionId -CollectionID $colltomove

Далее, чтобы PowerShell правильно развернул переменную $siteCode в $destcollfolder, необходимо использовать двойные кавычки (") вместо одинарных кавычек ('):

$destcollfolder = "$($sitecode):\DeviceCollection\Test Operational"

Наконец, я бы предложил использовать преимущества конвейерной привязки при вызове Move-CMObject:

$deviceCollection |Move-CMObject -FolderPath $destcollfolder
...