参考: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. (译)Web是如何工作的(3):HTTP&REST

    原文地址:https://medium.freecodecamp.org/how-the-web-works-part-iii-http-rest-e61bc50fa0a   我们在第一篇文章中介绍了 ...

  2. Java学习笔记19(String类)

    String代表字符串,在Java中,所有的字符串字面值都作为此类的实例实现 字符串的特点以及简单的原理分析: package demo; /* * String类的特点: * 所有的"&q ...

  3. 如何将nupkg文件安装到VS2017

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 开发工具:VS2017 系统:Win10 X64 一.首先在https://www.nuget ...

  4. js获取指定时间的前几秒

    最近项目上有一个需求是:根据一张图片的拍摄时间获取到这个时间前二后三的一个五秒钟的视频信息,通过查找相关资料写了一个方法拿来记录分享一下. //指定时间减2秒function reduceTwoS(d ...

  5. 利用树莓派实现监控系统二(用motion实现监控)

    终于要开始实现监控啦!ಠ౪ಠ 看起来很简单的步骤,但是过程却无比艰辛,踩坑是最好的成长 (/= _ =)/~┴┴ 第一步,不是安装!而是 update!ㄟ( ▔, ▔ )ㄏ sudo apt-get ...

  6. 入门干货之Electron的.NET实现-Electron.NET

    0x01.Electron.NET 1.介绍 Electron是由Github上的一支团队和一群活跃贡献者维护.用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库. Elec ...

  7. 【读书笔记】【深入理解ES6】#2-字符串和正则表达式

    更好的Unicode支持 在ES6出现以前,JS字符串一直基于16位字符编码(UTF-16)进行构建. 每16位的序列是一个编码单元(code unit),代表一个字符. length.charAt( ...

  8. HDFS中namenode启动失败

    1.环境配置: -1.core-site.xml文件 <configuration> <property> <name>fs.defaultFS</name& ...

  9. 【JavaScript for循环实例】

    1.大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食,要用100匹马,驮100石粮食,该如何调配? //驮100石粮食,大马需要50匹 for(var a=0;a<=50;a++){ //驮1 ...

  10. sqlmap完成简单的sql注入

    扫描目标站点,是否存在注入 --users获取用户名 --dump --tables探测表和数据库信息 跑出来的字段 admin --dump -T admin -C admin,password暴库 ...