我使用linux python winrm模块使用“run_ps”从远程Windows机器上的linux机器运行powershell脚本。
它适用于小尺寸的脚本,但如果通过太长的电源shell代码则无法执行。
“run_ps”方法有以下代码。
def run_ps(self, script):
"""base64 encodes a Powershell script and executes the powershell
encoded script command
"""
# must use utf16 little endian on windows
base64_script = base64.b64encode(script.encode("utf_16_le"))
rs = self.run_cmd("powershell -encodedcommand %s" % (base64_script))
if len(rs.std_err):
# if there was an error message, clean it it up and make it human
# readable
rs.std_err = self.clean_error_msg(rs.std_err)
return rs
我想可能是“utf_16_le”编码问题或字节大小问题但不确定。我尝试过使用“utf_32_le”但没有结果。
我正在使用Python 2.6.6从CentOS 6.2版(最终版)运行脚本。
Linux Python Winrm模块链接:https://github.com/diyan/pywinrm/