返回顶部
首页 > 资讯 > 后端开发 > Python >python调用powershell,f
  • 710
分享到

python调用powershell,f

pythonpowershell 2023-01-31 03:01:33 710人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

1、Get_RemoteAPP.ps1 set-executionpolicy remotesigned Import-Module RemoteDesktopServices function GetAPP(){     $result


1、Get_RemoteAPP.ps1

set-executionpolicy remotesigned
Import-Module RemoteDesktopServices

function GetAPP(){
    $result = ls -l RDS:\RemoteApp\RemoteAppPrograms\
    $res = $result | ForEach-Object {$_.Name}
    return $res
}

GetAPP

2、New_RemoteAPP.ps1

set-executionpolicy remotesigned
Import-Module RemoteDesktopServices

$appList="C:\Program Files\PremiumSoft\Navicat Premium\navicat.exe","C:\Program Files (x86)\JetBrains\PyCharm CommUnity Edition 2016.2.3\bin\pycharm.exe","C:\Program Files\PremiumSoft\Navicat Premium\navicat.exe","C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.2.3\bin\pycharm.exe","C:\Program Files (x86)\Open×××\bin\open***-gui.exe","C:\Program Files (x86)\Mozilla Firefox\firefox.exe","C:\Program Files (x86)\KuGou\KGMusic\KuGou.exe","C:\Program Files (x86)\TeamViewer\TeamViewer.exe","C:\Program Files (x86)\Youdao\YoudaoNote\YoudaoNote.exe","C:\Users\Administrator.WIN-403TF0V1RLC\AppData\Local\youdao\dict\Application\YodaoDict.exe",""


function CheckAppPath($app)
{

    foreach($list in $appList){
        if ($list -like "*$app*"){
           $index = $list | % {[array]::IndexOf($appList,$_)}
           $appPath = $appList[$index]
       return $appPath
    }
    }
}

function New-RDSRemoteApp($appName)
{
    #返回值说明:
    # 2 :程序已存在
    # 1 : 添加成功
    # 0 : 添加失败

    if (Test-Path RDS:\RemoteApp\RemoteAppPrograms\$appName) {
        return 2
    }else {
    $appPath = CheckAppPath $appName
        New-Item -path RDS:\RemoteApp\RemoteAppPrograms -Name $appName -applicationpath $appPath >$null
        if (Test-Path RDS:\RemoteApp\RemoteAppPrograms\$appName) {
            return 1
        } else {
            return 0
        }
    }
}

New-RDSRemoteApp $args[0]

3、Remove_RemoteAPP.ps1

set-executionpolicy remotesigned
Import-Module RemoteDesktopServices

function RemoveAPP($appName){
    #返回值0 :软件不存在
    #返回值1 : 删除成功
    #返回值2 : 删除失败
    if (-not (Test-Path RDS:\RemoteApp\RemoteAppPrograms\$appName)){
        return 0
    }else{
    Remove-Item -path RDS:\RemoteApp\RemoteAppPrograms\$appName -Recurse -Force -Confirm:$false | Out-Null
    if (-not (Test-Path RDS:\RemoteApp\RemoteAppPrograms\$appName)){
        return 1
    }else{
        return 2
    }
    
    }
}

RemoveAPP $args[0]

4、CallPowershell.py

import subprocess
import JSON

def NewApp(param1):
    try:
        args = [r"powershell", r"C:\flask_remoteAPP_Http\PosershellModule\New_RemoteAPP.ps1",param1]
        p = subprocess.Popen(args, stdout=subprocess.PIPE)
        dt = p.stdout.read()
        return dt
    except Exception, e:
        print e
    return False

def DelApp(param1):
    try:
        args = [r"powershell", r"C:\flask_remoteAPP_http\PosershellModule\Remove_RemoteAPP.ps1",param1]
        p = subprocess.Popen(args, stdout=subprocess.PIPE)
        dt = p.stdout.read()
        return dt
    except Exception, e:
        print e
    return False

def GetApp():
    try:
        args = [r"powershell", r"C:\flask_remoteAPP_http\PosershellModule\Get_RemoteAPP.ps1"]
        p = subprocess.Popen(args, stdout=subprocess.PIPE)
        dt = p.stdout.read()
        datalist = dt.split("\n")
        data = json.dumps(datalist)
        return data
    except Exception, e:
        print e
    return False

def QueryAllapp():
    f1 = open(r"C:\flask_remoteAPP_http\PosershellModule\appInventory.txt","r")
    data = {}
    appData = {}
    for i in f1.readlines():
        a = i.decode("gbk").split(",")
        data[a[1]] = a[0]
    appData["all"] = data
    jsondata = json.dumps(appData)
    return jsondata

5、run.py

from flask import Flask,request
import json
from CallPowerShell import NewApp,DelApp,GetApp,QueryAllapp


app=Flask(__name__)  

@app.route('/newapp', methods=['GET','POST'])  
def newapps():
    try:
        if request.method == 'POST':
            jsondata = request.get_data()
            dictdata = json.loads(jsondata)
            response = NewApp(dictdata["appName"])
            return response
            
        else:
            mes = '''
                <p><h1>Not Found</H1></p>
                <p>Request of this path cannot be found, or the server does not exist</p>
            '''
            return mes
        
    except Exception,error:
        print Exception,":",error
    

@app.route('/delapp', methods=['GET','POST'])  
def delapps():
    try:
        if request.method == 'POST':
            jsondata = request.get_data()
            dictdata = json.loads(jsondata)
            res = DelApp(dictdata['appName'])
            return res
        else:
            mes = '''
                <p><h1>Not Found</H1></p>
                <p>Request of this path cannot be found, or the server does not exist</p>
            '''
            return mes
    
    except Exception,error:
        print Exception,":",error


@app.route('/getapp')
def getapps():
    try:
        res = GetApp()
        return res
    
    except Exception,error:
        print Exception,":",error


@app.route('/queryall')
def queryalls():
    try:
        res = QueryAllapp()
        return res
    
    except Exception,error:
        print Exception,":",error
        
if __name__ == '__main__':  
    app.run(debug=True,host='0.0.0.0')

6、client.py

#coding:utf-8
import urllib2
import json

def newApp(appName):
    url = 'http://192.168.1.115:5000/newapp'
    #url = 'http://192.168.1.115:5000/delapp'
    data = {'appName': appName}
    headers = {'Content-Type': 'application/json'}
    req = urllib2.Request(url=url, headers=headers, data=json.dumps(data))
    response = urllib2.urlopen(req)
    return response.read()

def delApp(appName):
    url = 'http://192.168.1.115:5000/delapp'
    data = {'appName': appName}
    headers = {'Content-Type': 'application/json'}
    req = urllib2.Request(url=url, headers=headers, data=json.dumps(data))
    response = urllib2.urlopen(req)
    return response.read()

def getApp():
    url = 'http://192.168.1.115:5000/getapp'
    req = urllib2.Request(url=url)
    response = urllib2.urlopen(req)
    return response.read()

def queryAllApp():
    url = 'http://192.168.1.115:5000/queryall'
    req = urllib2.Request(url=url)
    response = urllib2.urlopen(req)
    return response.read()

if __name__ == "__main__":
    a = queryAllApp()
    b  = json.loads(a)
    print b

7、接口说明

1、添加APP接口
请求方式:POST
传送数据类型:JSON
请求URL:http://192.168.1.115:5000/newapp
请求参数:{'appName':程序别名}
返回数据类型:字符串
返回结果:
返回 "1" 添加成功
返回 "2" 程序已存在
返回 "0" 添加失败

2、删除APP接口
请求方式:POST
传送数据类型:JSON
请求URL:http://192.168.1.115:5000/delapp
请求参数:{'appName':程序别名}
返回数据类型:字符串
返回结果:
返回 "1" 删除成功
返回 "2" 删除失败
返回 "0" app不存在

3、获取已添加的APP列表
请求方式:GET
请求URL:http://192.168.1.115:5000/getapp
请求参数:无参数
返回数据类型:json
返回数据:['app1','app2','app3']

4、获取可进行添加的APP列表(包含已添加)的APP列表
请求方式:GET
请求URL:http://192.168.1.115:5000/getapp
请求参数:无参数
返回数据类型:json
返回数据:{'all':{'app1别名':'app1中文名','app2别名':'app2中文名'}}

--结束END--

本文标题: python调用powershell,f

本文链接: https://lsjlt.com/news/187472.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python调用powershell,f
    1、Get_RemoteAPP.ps1 set-executionpolicy remotesigned Import-Module RemoteDesktopServices function GetAPP(){     $result...
    99+
    2023-01-31
    python powershell
  • python调用本地powershell
    # -*- coding: utf-8 -*- import subprocess def python_call_powershell(ip): try: args=[r"powershell",r"D:\j...
    99+
    2023-01-31
    python powershell
  • python之print(f“ “)用法
    python之print(f" ")用法 Python输出函数print加上 f 的作用:即print(f" “) 主要作用就是格式化字符串,加f后可以在字符串里面使用用花括号括起来的变量和表达式,使...
    99+
    2023-10-20
    python 开发语言
  • python中f怎么用
    f-字符串是 python 3.6 中引入的格式化字符串语法糖,提供了简洁且安全的方式来插入表达式和变量。f-字符串以字符串前缀 f 为标志,使用大括号包含表达式或变量。f-字符串支持条...
    99+
    2024-05-15
    python
  • python中f‘{}‘用法小结
    python中f‘{}‘用法 #先定义一个类class Desk():def desk(self):print(‘能放东西’)prin...
    99+
    2023-03-01
    python中f‘{}‘用法 python中f用法
  • Python 中 f-Strings 的作用
    目录1、变量名2、直接改变输出结果3、直接格式化日期4、2/8/16 进制输出真的太简单5、格式化浮点数6、字符串对齐7、使用 !s,!r8、自定义格式学过 Python 的朋友应该...
    99+
    2024-04-02
  • Python F-Strings怎么使用
    本篇内容主要讲解“Python F-Strings怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python F-Strings怎么使用”吧!日期和时间格式使用 f 字符串应用数字格式非...
    99+
    2023-07-06
  • python yield、yield f
    从生成器到协程 协程是指一个过程,这个过程与调用方协作,产出由调用方提供的值。生成器的调用方可以使用 .send(...)方法发送数据,发送的数据会成为yield表达式的值。因此,生成器可以作为协程使用。 从句法上看,生成器与协程都是包含...
    99+
    2023-01-30
    python yield
  • python中的f‘{}‘怎么使用
    这篇文章主要讲解了“python中的f‘{}‘怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中的f‘{}‘怎么使用”吧!python中f&lsquo;{}&...
    99+
    2023-07-05
  • Python之%s%d%f
    %s 字符串string="hello" #%s打印时结果是hello print ("string=%s" % string) # output: string=hello #%2s...
    99+
    2023-01-31
    Python
  • PowerShell怎么用
    这篇文章主要介绍PowerShell怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是powershellPowerShell首先是个Shell,定义好了一堆命令与操作系统,特别是与文件系统交互,能够启动应用...
    99+
    2023-06-22
  • python如何使用F字符串
    这篇文章主要介绍了python如何使用F字符串,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。F字符串(F-Strings)F字符串提供了一种简洁方便的方法,可以将Python...
    99+
    2023-06-27
  • Python中str.format()和f-string的使用
    目录方式一 (str.format()) :print('{}'.format(var))方式二 (f-string) :print(f'{var}'...
    99+
    2023-02-27
    Python str.format() Python f-string
  • 使用PowerShell调用MTools分析MongoDB性能并发送邮件
    使用PowerShell调用MTools分析MongoDB性能并发送邮件问题描述:在MongoDB日常运维中,经常需要查看连接数的趋势图、慢查询、Overflow语句、连接来源。解决方案:1. 将Windo...
    99+
    2024-04-02
  • 【Python】Python中如何实现f
    >>> for i in xrange(0,10,2): print(i) 0 2 4 6 8 >>> for i in xrange(10,0,-2): print(i) 10 8...
    99+
    2023-01-31
    如何实现 Python
  • PowerShell与Python的异同介绍
    目录1、Python定义2、Python用途4、PowerShell用途5、PowerShell和Python对比5.1 共同点5.2 不同点6、总结1、Pyth...
    99+
    2023-05-20
    PowerShell和Python区别 PowerShell Python
  • Python中str.format()和f-string如何使用
    这篇文章主要介绍“Python中str.format()和f-string如何使用”,在日常操作中,相信很多人在Python中str.format()和f-string如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-07-05
  • python中print(f)的用法是什么
    在Python中,print(f)是用于打印格式化字符串的一种方式。其中,f是一个字符串,可以包含特定的格式化标记,如{},用来表示...
    99+
    2024-04-02
  • Python中的f是什么?
    Python中的f是什么? 在Python中,f是格式化字符串的前缀。它用于创建格式化字符串,其中可以插入变量和表达式的值。f字符串是Python 3.6引入的一种新的字符串格式化方法,它提供了一种简...
    99+
    2023-10-11
    python java linux Python
  • 在 PowerShell 中使用 SQ
    一、安装PowerShell for SQL Server 2008 插件   两种方法: 1、安装SQL Server Management Studio   使用SQL Server 2008 R2的安装光盘,安装SSMS,即可将所需的...
    99+
    2023-01-31
    PowerShell SQ
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作