none
Передача $null в Invoke-Expression RRS feed

  • Вопрос

  • Всем привет!

    Надо выполнить через Invoke-Expression команду вида set-aduser IvanovII -Title $null

    В непосредственном виде она выполняется на отлично, у пользователя стирается свойство Title, а при попытке передать через Invoke-Expression например так:

    Invoke-Expression "set-aduser IvanovII -Title $null"
    Set-ADUser : Missing an argument for parameter 'Title'. Specify a parameter of type 'System.String' and try again.
    At line:1 char:26
    + set-aduser IvanovII -Title
    +                          ~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Set-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : MissingArgument,Microsoft.ActiveDirectory.Management.Commands.SetADUser

    4 декабря 2014 г. 8:52

Ответы

Все ответы

  • Или экранировать:

    Invoke-Expression "set-aduser IvanovII -Title `$null"

    Или использовать одинарные кавычки:

    Invoke-Expression 'set-aduser IvanovII -Title $null'

    4 декабря 2014 г. 9:10
    Отвечающий
  • Экранировать не работает,

    [PS] C:\Scripts\Exchange\_Drafts>Invoke-Expression "set-aduser IvanovII -Title '$null"
    Invoke-Expression : At line:1 char:33
    + set-aduser IvanovII -Title '
    +                                 ~
    The string is missing the terminator: '.
    At line:1 char:1
    + Invoke-Expression "set-aduser IvanovII -Title '$null"
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException
        + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString,Microsoft.PowerShell.Commands.InvokeExpressionCommand


    одинарные кавычки - да.

    Спасибо!

    4 декабря 2014 г. 9:18
  • Работает, просто скопировать правильно не можете.

    ' - одинарная кавычка (в вашем)

    ` - обратная кавычка ( в моем примере)

    4 декабря 2014 г. 9:23
    Отвечающий