2012-04-30 89 views
4

我已經創建了這個基本的單線程PowerShell腳本,該腳本在我運行AD的ad cmdlet並執行其餘查詢時執行。但試圖一起運行它們似乎只加載該cmdlet並且不執行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"