5

adAD のコマンドレットを実行してから残りのクエリを実行すると実行される、この基本的なワンライナー 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'}}"

なぜこのように一斉に動かないのでしょうか?

4

4 に答える 4

8

答えは、二重引用符をエスケープすることでした:

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 から実行して、DSADD ではアクセスできない ActiveDirectory 属性を更新しています。

于 2012-05-01T18:09:51.137 に答える
1

見積もりの​​問題のようです。周囲のフィルター引用符を中括弧に置き換えてみてください。

-filter {name -eq "xxxx"}

このような状況を回避するために、実行するコマンドのリストが長い場合は、コマンドをスクリプトファイルに入れて、そのパスを-Fileパラメーターに渡すことをお勧めします。

于 2012-05-01T08:58:16.240 に答える
0

複雑なコマンドに疑問がある場合は、Base64 でエンコードして-EncodedCommand. 例については、を参照powershell /?してください。

PowerShell に直接入力すると、行は意図したとおりに機能しますか?

于 2012-04-30T22:59:13.343 に答える