【问题标题】:Powershell inside AutohotKey is not workingAutohotKey 中的 Powershell 无法正常工作
【发布时间】:2018-08-12 13:15:49
【问题描述】:

我可以在 AHK 文件中运行任何 PowerShell 命令。比如下面这个命令:

Run, PowerShell.exe -noexit -Command "Start notepad; start calc.exe",, hide

我有 Powershell 命令,我可以从 PowerShell 很好地运行它,而且它工作得很好,可以将用户添加为远程机器上的本地管理员:

([ADSI]"WinNT://serverabc123/Administrators,Group").Add("WinNT://HMM.org.br/Paul1")

但是,当我在 AHK 上使用上面的代码时,好像它不起作用!

Run, PowerShell.exe -noexit -Command "([ADSI]"WinNT://serverabc123/Administrators,Group").Add("WinNT://HMM.org.br/Paul1")",, hide

我不断收到此错误:

在 line:1 char:8 + ([ADSI]WinNT://serverabc123/Administrators + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
表达式或语句中出现意外的令牌“WinNT://serverabc123/Administrators”。
在 line:1 char:8
+ ([ADSI]WinNT://serverabc123/管理员
+ ~
表达式中缺少结束 ')'。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken

任何人都可以建议做什么吗?我可以编写外部文件 PS1 并从 AHK 调用它然后删除它,但我希望它从我的单个 AHK 文件中运行。

【问题讨论】:

  • 对 AutoHotKey 不太熟悉,但您需要转义命令中的双引号字符。可能使用反引号 ` 或反斜杠:Run, PowerShell.exe -noexit -Command "([ADSI]`"WinNT://serverabc123/Administrators,Group`").Add(`"WinNT://HMM.org.br/Paul1`")",, hide
  • 也可以完全放弃",只做"([ADSI]'WinNT://serverabc123/Administrators,Group').Add('WinNT://HMM.org.br/Paul1')"
  • 请允许我给你一个标准的建议给新手:如果一个答案解决了你的问题,请点击它旁边的大复选标记 (✓) 接受它,也可以选择给它投票(up - 投票需要至少 15 个声望点)。如果您发现其他答案有帮助,请给他们投票。接受(您将获得 2 个声望点)和投票可以帮助未来的读者。请参阅the relevant help-center article。请考虑重新审视您的旧问题并酌情接受答案。

标签: powershell autohotkey


【解决方案1】:

尝试以下方法:

Run, powershell.exe -noexit -command ([ADSI]\"WinNT://serverabc123/Administrators`,Group\").Add(\"WinNT://HMM.org.br/Paul1\")

即:

  • 不要使用外引号。

  • \-escape " 字符(PowerShell 需要)

  • `-escape , 字符(AutoHotkey 需要)

【讨论】:

  • @shadad:我的荣幸;很高兴听到它有帮助;确实,解决方案并不十分明显。
猜你喜欢
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 2014-05-13
  • 2011-12-11
  • 1970-01-01
相关资源
最近更新 更多