参考:Running Powershell, VBScript, or bat files via NSH

如果你直接在NSH命令行执行的话,可以参考我翻译的下面的东东,如果想运行NSH 脚本作业的话,可以参考上面链接。

一步步来

## 1 执行Powershell脚本

1.1 首先需要在远程机上修改Powershell的执行策略,使远程机可以运行受信任的脚本

打开Powershell,执行:Set-ExecutionPolicy RemoteSigned

1.2 创建Powershell脚本

假设脚本名为a.ps1,位于c:/tmp/路径下,脚本内容为:echo "hello baby"

1.3 执行NSH命令运行脚本

此处可以使用NSH 脚本作业执行,也可以直接使用命令,命令如下:

nexec -i 10.200.108.92 cmd /c "echo . | powershell C:\\tmp\\a.ps1"

或者

nexec -i 10.200.108.92 cmd /c "powershell -inputformat none c:\\tmp\\a.ps1"

返回结果:

cloudexpress# nexec -i 10.200.108.92 cmd /c "echo . | powershell C:\\a.ps1"    

hellow baby

cloudexpress#

## 2 在BAT脚本中嵌入执行Powershell脚本

当windows机器只能执行bat脚本时,可以在这里面嵌入powershell脚本来执行

@findstr/v "^@f.*&" "%~f0"|powershell -&goto:eof

Write-output "Hello World"

Write-output "Hello some&com & again"

替换第二、三行为你要执行的powershell脚本即可

解释下脚本的意思:

@:关闭本行显示

goto:eof:执行完毕后退出

%~f0:指这个批处理本身

findstr/v:则是不打印匹配到的行

## 3 执行VBScripts/JScript

nexec -i vm1 cmd /c "cscript //nologo C:/tmp/a.js"

其中a.js脚本内容为:

WScript.StdOut.Write("Hello World")

## 4 执行BAT脚本

nexec <hostname> cmd /c "<batchFilePath>"

其中

<hostname> is the IP address of the host machine

<batchFilePath> is the Windows file path of the batch file

例如:

nexec 10.20.47.91 cmd /c "c:\\cli\\test.bat"

参考:

goto :eof作用

How to run a PowerShell script within a DOS batch file

Frequently used NSH commands

BSA Network Shell系列-通过NSH执行Powershell,VBScript或bat files脚本的更多相关文章

  1. BSA Network Shell系列-nexec | runcmd | runscript | scriptutil的异同

    说明下nexec.runcmd.runscript.scriptutil的异同 相同点: 四者都可以在远程机器执行命令.或者调用脚本. 不同点: nexec支持NSH命令,可以执行远程机的本地命令(非 ...

  2. BSA Network Shell系列-nexec命令

    # nexec ## 1 说明:nexec是远程命令接口引擎 ,用于在远程主机执行命令 nexec [-?] [-t term] [-o] [-i] [-l] [-nohup hostname &qu ...

  3. BSA Network Shell系列-nsh命令

    nsh nsh命令软链接到zsh,直接运行nsh可进入Network Shell,所有的Network Shell命令都需要运行nsh进入Network Shell执行 1 使用cd命令访问远程主机和 ...

  4. BSA Network Shell系列-runcmd/runscript命令

    runcmd和runscript ## 1 功能概述 runcmd/runscript:runcmd在一台或多台机器执行Network Shell命令(单个命令),而runscript执行的是脚本,二 ...

  5. BSA Network Shell系列-scriptutil命令

    scriptutil ## 1 功能概述 scriptutil复制脚本到远程机的某个目录,然后在该目录执行脚本. 它的优点就是脚本是non-NSH的脚本.不支持NSH命令,执行起来的效果和runscr ...

  6. BSA Network Shell系列-redi命令

    redi ## 1 功能概述 redi将输出重定向到一个文件中 ## 2 语法 redi [-?] [-a] filename ## 3 使用示例 1 将输出重定向到隐式路径所在主机的/tmp/hah ...

  7. BSA Network Shell系列-nlogin命令

    nlogin 1 说明 nlogin 是一种通过RSCD Agent的通信的安全远程登录,使用和NSH工具相同的加密协议.可以作为telnet.rlogin或者ssh的替代工具(假如这些端口或协议禁用 ...

  8. Linux Shell系列教程之(十七) Shell文件包含

    本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...

  9. Linux Shell系列教程之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

随机推荐

  1. Java学习笔记27(集合框架一:ArrayList回顾、Collection接口方法)

    集合:集合是java中提供的一种容器,可以用来存储多个数据 集合和数组的区别: 1.数组的长度是固定的,集合的长度是可变的 2.集合中存储的元素必须是引用类型数据 对ArrayList集合的回顾 示例 ...

  2. C#串口发送数据

    使用指定的端口名.波特率.奇偶校验位.数据位和停止位初始化 SerialPort 类的新实例 SerialPort serialPort = new SerialPort("COM3&quo ...

  3. web服务器,应用程序服务器,http服务器的区别

    WEB服务器.应用程序服务器.HTTP服务器有何区别?IIS.Apache.Tomcat.Weblogic.WebSphere都各属于哪种服务器? 这个概念很重要. Web服务器的基本功能就是提供We ...

  4. golang 类型断言的学习

    在php中有一个 serialize() 函数 可以把数组序列化成字符串进行存储和传输 如果想反序列化这种字符串,在php中只需要一个简单的unserialize() 函数就可以完成了.但是在gola ...

  5. scrollify - 滚动条方式的全屏滚动

    jQuery Scrollify Version Beta v1.0.5 Date:2017-04-25 23:45 源代码 (function($, window, document) { 'use ...

  6. MYSQL:python 3.x连接数据库的方式

    我们想要在我们的mython程序中使用mysql,首先需要安装pymysql模块,安装方式可以使用cmd命令安装, pip3.x install pymysql 首先在我们连接数据库之前先创建一个us ...

  7. vi/vim 如何添加和删除多行注释

    1.进入vi/vim编辑器,按CTRL+V进入可视化模式(VISUAL BLOCK). 2.移动光标上移或者下移,选中多行的开头. 3.选择完毕后,按大写的I键,此时下方会提示进入"inse ...

  8. Oracle02——oracle分页、子查询、集合运算、处理数据、创建和管理表和其他数据库对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7289451.html --oracle分页(Pageing Query) select ...

  9. [PHP] PHP与Apache的模块配合说明

    1.当PHP需要在Apache服务器下运行时 一般来说,它可以mod_php5模块的形式集成, 此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求, 然后将处理后 ...

  10. 图的简单应用(C/C++实现)

    存档: #include <stdio.h> #include <stdlib.h> #define maxv 10//定义最大顶点数 typedef char elem;// ...