单线程PowerShell脚本

时间:2012-04-30 22:56:51

标签: powershell

我创建了这个基本的单行PowerShell脚本,如果我为AD运行ad cmdlet,然后运行其余查询,则会执行该脚本。但是尝试在一起运行它们似乎只加载cmdlet并且不执行其余的cmd。

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 个答案:

答案 0 :(得分:6)

答案是逃避双引号:

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属性。

答案 1 :(得分:1)

# Start-Run, type:
powershell.exe -noprofile -command "[guid]::newguid()|Set-Clipboard"

答案 2 :(得分:0)

如果对复杂命令有疑问,您可以尝试在Base64中使用-EncodedCommand对它们进行编码。有关示例,请参阅powershell /?

直接在PowerShell中输入时,该行是否按预期工作?

答案 3 :(得分:0)

它看起来像一个引用问题。尝试用大括号替换周围的过滤器引号:

-filter {name -eq "xxxx"}

为了避免这种情况,当你有长列表命令要执行时,我建议你把命令放在脚本文件中并将其路径传递给-File参数。