2012-04-30 18 views
4

Я создал этот базовый однострочный скрипт PowerShell, который выполняется, если я запускаю командлет ad для AD, а затем остальную часть запроса. Но, пытаясь запустить их вместе, кажется, что загружает только командлет и не выполняет оставшуюся часть cmd.Сценарий PowerShell с одним слоем

powershell.exe -command "&{Import-Module ActiveDirectory; Get-AdGroup -Server DC.Mydomain.com -filter 'name -eq "xxxx"'| set-Adgroup -Replace @{wWWHomePage='10.24.218.194'}}" 

Почему он не работает вместе?

ответ

0

Если вы сомневаетесь в сложных командах, вы можете попробовать их кодировать в Base64 и использовать -EncodedCommand. См. Пример powershell /?.

Ли линия работает по назначению, когда вы вводите ее непосредственно в PowerShell?

+0

Линия работает, когда я использую ее непосредственно в powershell. Если импортировать модуль AD, а затем запустить его, он будет работать каждый раз. –

0

Это похоже на цитату. Попробуйте заменить окружающие кавычки фильтра с фигурными скобками:

-filter {name -eq "xxxx"} 

Чтобы избежать подобных ситуаций, когда у вас есть длинный список команд для выполнения, я предлагаю вам поместить команды в файл сценария и передать его путь к -File параметр.

5

Ответ был бежать двойные кавычки:

powershell.exe -noprofile -command "&Import-Module ActiveDirectory; Get-AdGroup -Server server.mydomain.com -filter 'name -eq *\"xxxx\"*'| set-Adgroup -Replace @{wWWHomePage='10.10.10.10'}" 

В принципе, я бег это от SQL для обновления ActiveDirectory атрибута, который не доступен с DSADD.

0
# Start-Run, type: 
powershell.exe -noprofile -command "[guid]::newguid()|Set-Clipboard" 
Смежные вопросы