Вызвать переменную из строки - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь использовать Powershell, чтобы открыть AD U & C в другом домене (/ переключатель домена) с помощью переменной.

Переключатель домена не используется, работает (только не тот домен, который я хочу):

Start-Process powershell -Credential $domvar'\'$id -ArgumentList '-command &{Start-Process mmc -verb Runas -ArgumentList "C:\Windows\System32\dsa.msc"}'

Определение конкретного домена в массиве работает:

Start-Process powershell -Credential $domvar'\'$id -ArgumentList '-command &{Start-Process mmc -verb Runas -ArgumentList @("C:\Windows\System32\dsa.msc" /domain=domain.com)}'

НО Добавление /domain=$domain не помогает (двойные кавычки в ArgumentList не помогли):

Start-Process powershell -Credential $domvar'\'$id -ArgumentList '-command &{Start-Process mmc -verb Runas -ArgumentList "C:\Windows\System32\dsa.msc" /domain=$domain}'

NOR Изменение domain.com на мою переменную $domain:

Start-Process powershell -Credential $domvar'\'$id -ArgumentList '-command &{Start-Process mmc -verb Runas -ArgumentList @("C:\Windows\System32\dsa.msc" /domain=$domain)}'

Кроме того, появляется новое окно, и я вижу красный шрифт ошибки, но я не уверен, как получить эту информацию.Пробовал использовать отладку и входить, но не работал.

1 Ответ

0 голосов
/ 30 ноября 2018

В одинарных кавычках powershell НЕ выполняйте подстановку переменных.В вашем случае вы можете просто заменить одинарные кавычки вокруг вашей команды на двойные кавычки.Для двойных кавычек внутри строки в кавычках вы можете включить $ в качестве литерала, поставив перед ним обратную черту.

"-command &{Start-Process mmc -verb Runas -ArgumentList `"C:\Windows\System32\dsa.msc`" /domain=$($domain)}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...