Я использую переменную в PowerShell для получения информации о Active Directory. Переменная не получает значение, которое мне нужно в двойных кавычках. Что я делаю не так?Ошибка в кавычках
переменного отображения правильно, но в Move-AdObject
командлете значение является $CN
, а не tok12
.
Вот код: сообщение
$CN = "tok12"
$company = "acme"
$CN
$company
Get-ADGroup $CN | Set-ADGroup -Description $company
Start-Sleep -s 1
Move-ADObject -Identity "CN=$CN,OU=UnassignedPortalTokens,OU=Portal,OU=testdomain,DC=testdomain,DC=com" -TargetPath "OU=Customers,OU=testdomain,DC=testdomain,DC=com"
Ошибка:
Get-ADGroup : Cannot find an object with identity: 'Kentest' under:
'DC=testdomain,DC=com'.
At C:\PSH\Newport.ps1:13 char:2
+ Get-ADGroup $company | Set-ADGroup -Description "$token"
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Kentest:ADGroup) [Get-ADGroup], ADIdentityNotFoundException
+ FullyQualifiedErrorId : Cannot find an object with identity: 'Kentest' under: 'DC=testdomain,DC=com'.,Microsoft.ActiveDirectory.Management.Commands.GetADGroup
Вместо '$ CN' попробовать' $ ($ Cn) ' – xXhRQ8sD2L7Z
Ваш код работал нормально когда я его протестировал. В какой системе вы работаете, и каково точное сообщение об ошибке? –
Я запускаю это на Windows 7 Professional edition. Команда активного каталога проходит, но терпит неудачу, потому что токен не имеет значения. Я могу поместить эту команду в write-host, и она выглядит нормально, по какой-то причине командлет AD не может обрабатывать переменную в кавычках. –