Выход из амперсанда (&) и знака плюс (+) в Powershell - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь выполнить команду Set-ADUser в Active Directory, чтобы обновить атрибуты mobile и title , как показано ниже:

Set-ADUser -Identity "UID1234" -Mobile "+2345678" -Server \$domainController[0] -Credential $mycred;

This Команда проходит. К сожалению, знак плюс (+) заменяется пробелом в учетной записи.

Я также хочу выполнить эту же команду для обновления атрибута title :

Set-ADUser -Identity "UID1234" -Title "Employee & Manager" -Server \$domainController[0] -Credential $mycred;

Здесь я получаю следующую ошибку: The string is missing the terminator \" из-за символа амперсанда (&), который не понимается как правильный символ, поскольку он обычно используется для вызова переменных.

Для обоих этих В некоторых случаях я понимаю, что должен быть способ избежать этих символов, но я не добился успеха, используя escape-символы, такие как backsla sh () или обратная одиночная кавычка (`).

Любая помощь будет очень ценится!

1 Ответ

0 голосов
/ 16 января 2020

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

Пример:

$i = 10
Write-Host 'The value of i is $i'
> The value of i is $i

Во-вторых,

Если вы sh оставите двойные кавычки, которые вы чтобы это работало, поместите `(символ обратного удара / серьезный акцент) перед знаками" & "и" + ".

"`+2345678"
"Employee `& Manager"
...