我创建了这个基本的单行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'}}"
为什么它不像这样一起运行?
答案 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
参数。