一个命令行PowerShell脚本

5

我创建了一个基本的一行PowerShell脚本,其中执行如果我运行ad命令用于AD然后进行其余查询。但是试图在同一行中运行它们只会加载命令并不执行命令的其余部分。

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个回答

9
答案是要转义双引号:
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无法访问该属性。

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

1

看起来是引用问题。尝试用大括号替换周围的过滤引号:

-filter {name -eq "xxxx"}

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

0

如果您对复杂命令不确定,可以尝试将它们编码为Base64并使用-EncodedCommand。请参见powershell /?以获取示例。

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


当我直接在PowerShell中使用这行代码时,它是有效的。如果导入AD模块然后运行其余部分,它每次都能正常工作。 - IT Department

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接