Python Winrm无法执行长电源shell脚本

时间:2016-02-24 06:25:38

标签: python linux shell powershell winrm

我使用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/

0 个答案:

没有答案