saltstack远程操作WINDOWS的POWERSHELL脚本

这个东东,花了两天来查找资料和测试,终于算是搞定。作记录:

 

直接在MASTER上执行的命令:

salt '*' cmd.script salt://scripts/windows_task.ps1 args=' -Input c:\tmp\infile.txt' shell='powershell'

直接通过SALT-API执行的命令:

curl -k https://127.0.0.1:8000/ -H "Accept: application/x-yaml" -H "X-Auth-Token: 0ef19709d068834637758b1b5a9af6927a7a651d" -d client='local' -d tgt='cnsz121685-10.25.174.81' -d fun='cmd.script' -d arg='salt://tengine_root/autodeploy/opscripts/test/sbp.ps1' -d arg="static ADE 20160127091855DB backup" -d arg='shell=powershell'

通过我们的API传参考:

if server_sys == 'LINUX':
            args = [salt_cmd.strip(), server_type+' '+site_name+' '+app+' '+deploy_version+' '+action, 'runas='+op_name]
        if server_sys == 'WINDOWS':
            args = [salt_cmd.strip(), server_type+' '+site_name+' '+app+' '+deploy_version+' '+action, 'shell=powershell']
        result = saltapi_inst(server_env).cmd_script(tgt, args)

而自制API用了REQUESTS。

def cmd_script(self, tgt, arg, expr_form='compound', fun='cmd.script'):
        r = requests.post(self.host, verify=False, cookies=self.cookies, data={'tgt': tgt,
                                                                               'client': 'local',
                                                                               'expr_form': expr_form,
                                                                               'fun': fun,
                                                                               'arg': arg})
        if r.status_code == 200:
            # print r.json()
            return r.json()
        else:
            raise Exception('Error from source %s' % r.text)

时间: 2024-08-31 10:36:20

saltstack远程操作WINDOWS的POWERSHELL脚本的相关文章

PowerShell脚本写的文件.ps1文件介绍_PowerShell

.ps1文件是PowerShell写好的脚本文件.在Windows系统中,默认情况下是不允许执行.ps1文件的,那么怎么才能让系统允许执行.ps1文件呢? 什么是".ps1"文件? 这个是PowerShell写的脚本文本,你可以在记事本中写一段PowerShell代码,然后将其保存为"xxx.ps1",后面要使用它的时候,双击即可运行了.这有点像批处理的".bat"文件,也有点像VBScript的".vbs"文件.这些都是Wi

PowerShell入门教程之远程操作运行PowerShell的方法_PowerShell

PowerShell远程操作是远程管理的基础,它为集中管理分布式系统提供了又一种可靠.高效的方法. 一般来说PowerShell远程操作依赖于远程处理基础结构,但为数不多的几个自身具有远程处理能力的命令除外,如Get-Service.Get-Process.Get-WMIObject.Get-EventLog和Get-WinEvent等.(不难看出,这些命令都是"读取"系统的某些方面的信息,不做更改.它们依赖.Net Framework完成远程操作.) 配置远程基础结构 远程基础结构是

使用HTTP api简单的远程执行PowerShell脚本_PowerShell

可能有些情况下,你不想完全体验通过PSRP(PowerShell远程处理协议)远程管理,或有需要从非Windows系统上执行一些PowerShell脚本.你可能会像我很久之前在这篇文章中写的那样直接基于WS-Man来写代码.但是那样很复杂,并且需要WS-Man和SOAP的一些知识. 我在PowerShell脚本中使用.Net HttpListener类写了个HTTP监听器.你可以非常简单地启动一个监听器的实例(需要提升权限监听网络),现在你可以执行任意的PowerShell命令了,它还可以返回多

PowerShell脚本中控制Windows DNS服务的方法_PowerShell

PowerShell可以很方便的操作WMI,而DNS服务又提供了很好的WMI支持,所以,PowerShell可以通过操作WMI来操作Windows DNS服务. 1.获取DNS对象. 复制代码 代码如下: PS> $mydns = [WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_ResourceRecord" 2.创建解析记录,使用CreateInstanceFromTextRepresentation方法. 复制代码 代码如下: PS>

如何运行PowerShell脚本

  新版本的PowerShell随着Windows Server 2012 R2到来.现在,使用PowerShell 4.0的唯一途径就是获取并使用Windows Management Framework 4.0. PowerShell在Windows虚拟化任务方面能发挥最大帮助和用途.现在网上有关于此话题的资料库,最热的是TechNet博客中的一个五部分的系列文章.通过这些信息,你可以找到大量有关PowerShell脚本自动化多虚拟化设置.配置和维护任务的相关细节. TechNet系列文章提供

传播恶意软件最有效帮手:超95%的PowerShell脚本都是恶意脚本

对很多IT专业人士来说,Powershell的确是Windows系统中一个相当强大的工具,而且微软也有意将PowerShell作为Windows系统的默认命令行工具.但赛门铁克最近的一份报告指出,超过95%的PowerShell脚本实际上都是恶意脚本. 赛门铁克在报告(传送门)中指出,绝大部分恶意PowerShell脚本都是扮演下载的角色.当然PowerShell脚本的终极目标还是要在设备上执行恶意代码,在整个网络传播恶意软件. 绝大多数PowerShell脚本是恶意脚本 由于PowerShel

空白密码引发远程连接Windows Server 2008失败

故障现象 单位网络管理员将局域网中的一台文件服务器升级为了Windows Server 2008系统,并在该系统中安装了某个应用控制软件.局域网中的某位用户想借助远程桌面连接功能,来在普通客户端系统中对Windows Server 2008服务器系统中的目标控制软件进行数据备份操作:可是在尝试与目标服务器系统建立远程桌面连接时,该用户却傻眼了,无论怎么进行连接操作,系统总提示远程连接Windows Server 2008失败的故障提示,这该如何是好呢? 网络管理员接到故障"求援"电话后

用Windows XP启动脚本恢复系统的用户密码

用一种不用第三方软件的方法来恢复管理员密码,大家可以看看这招技巧如何. Windows XP启动脚本(startup scripts)是计算机在登录屏幕出现之前运行的批处理文件,它的功能类似于Windows 9×和DOS中的自动执行批处理文件autoexec.bat.利用这个特性,可以编写一个批处理文件重新设置用户密码,并将它加入启动脚本中,这样就达到了目的.以下是具体步骤(假设系统目录为C:\Windows). 1.使用Windows98启动盘启动电脑.编写一个能恢复密码的批处理文件a.bat

阿里云如何远程登录Windows实例

  登录 Windows 实例 本地操作系统不同,远程登录云服务器 ECS 实例的工具也不同.登录实例的方式,请参见下表. 本地 OS 实例 OS 管理终端 MSTSC rdesktop 微软远程桌面MSTSC APP Linux Windows     √   Windows Windows √ √     Mac Windows √ √     iPhone 手机 Windows       √ Android 手机 Windows       √ 本地为 Windows 系统 本节介绍本地