Не могу принять $ null - PullRequest
       2

Не могу принять $ null

0 голосов
/ 01 октября 2018

Я пытаюсь создать пользователя AD в моем OU с именем public, у которого включено имя пользователя с номерами и установлен пароль, который является password1.Когда я запускаю команду, я получаю сообщение об ошибке. Не удается найти позиционный параметр, который принимает аргумент '$ null'.

Буду признателен за любую помощь

Вот то, что я положил в powershell

`New-ADUser -Name "BoB Glen" -GivenName "BoB"-Surname "Glen" -DisplayName "2003487" $secpasswd = ConvertTo-SecureString -String "pa$$word1" -AsPlainText -Force -AccountPassword $secpsswd -Enabled $true -Path "OU=Public,DC=Company,DC=epl,DC=local"`

Вот вся ошибка

New-ADUser : A positional parameter cannot be found that accepts argument '$null'.
At line:1 char:1
+ New-ADUser -Name "Adam Bandola" -GivenName "Adam" -Surname "Bandola"  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [New-ADUser], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.NewADUser

1 Ответ

0 голосов
/ 01 октября 2018

Хорошо, давайте разберем, что происходит:

New-ADUser -Name "BoB Glen" -GivenName "BoB"-Surname "Glen" 
    -DisplayName "2003487" $secpasswd = ConvertTo-SecureString 
    -String "pa$$word1" -AsPlainText -Force -AccountPassword $secpsswd 
    -Enabled $true -Path "OU=Public,DC=Company,DC=epl,DC=local"

Символ `- это escape-символ в powershell.Пример того, как его использовать:

write-output " `" "

это выдает: " вместо ошибки and: отсутствует терминатор , который будет брошенЯ сделал " " ".Вы также можете использовать его для разделения длинных команд на многострочные строки, такие как

Get-Alias`
-name "%"

В Команде вы пытаетесь использовать -почему является параметром, и следующая вещь после него, какзначение, которое вы передаете этому параметру

-parameter Value

Также в powershell $ является переменной.

$Hello = "World"

Текущая проблема, с которой вы столкнулись, это то, что вы вызываете команду, а затем пытаетесь создать переменную в середине команды, а также запустить команду с помощью клавиши escape и завершить ее нажатием клавиши.escape-ключ (если он не является частью более крупной команды, которую вы разбиваете на новые строки)

Вы можете заключить значение в круглые скобки , например: (новая команда здесь)

Рабочая команда будет выглядеть следующим образом:

New-ADUser -Name "BoB Glen" -GivenName "BoB"-Surname "Glen" -DisplayName "2003487"`
    -AccountPassword (ConvertTo-SecureString -String 'pa$$word1' -AsPlainText -Force)`
    -Enabled $true -Path "OU=Public,DC=Company,DC=epl,DC=local"

Вы заметите, что переменная $ secpasswd удалена, команда ConvertTo-SecureString находится внутри круглые скобки () первый и последний escape-символы `удалены, добавлены escape-символы в новые строки в команде, чтобы сделать это визуально более понятным, и, наконец, заключили в кавычки слово pa $$word , потому что двойные кавычки будут пытаться читать $ как переменную, а одинарные кавычки читаются буквально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...