5

我创建了这个基本的单行 PowerShell 脚本,如果我运行adAD 的 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

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 回答
1
# Start-Run, type:
powershell.exe -noprofile -command "[guid]::newguid()|Set-Clipboard"
于 2017-06-26T05:45:29.190 回答
0

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

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

于 2012-04-30T22:59:13.343 回答