项目开发需要,需要调查在linux平台上面运行PowerShell的方法。
我再微软的官方博客中找到了PowerShell的linux平台解决方案(http://blogs.msdn.com/b/powershell/archive/2008/04/08/powershell-on-linux-solaris-mac-etc.aspx)
主要实现技术是:mono + pash ,其中
mono:开源的跨平台.NET运行环境(http://www.mono-project.com/)
pash: 运行在mono环境的PowerShell开源实现方案(https://github.com/Pash-Project/Pash)
一: 安装.NET运行环境 mono
下载地址见官网 (http://www.mono-project.com/)
1) 进入mono-4.2.1 的目录, 执行命令
# ./autogen
2) 获取并安装 monolite(包含运行mcs编译器的相关文件),执行下面命令需要当前linux系统能够用wget命令联网。
# make get-monolite-latest
(注:如果无法联网,可以手动下载相应monolite-138-latest.tar.gz包 http://storage.bos.xamarin.com/mono-dist-master/latest/monolite-138-latest.tar.gz )
3 ) 执行make命令# make
4
二: 安装pash
下载地址见官网 (https://github.com/Pash-Project/Pash)
1) 解压安装包,进行到 Pash-master 目录#cd Pash-master
2 ) 执行命令
但是,经过在SUSE Linux Enterprise Server 11环境上安装mono+pash进行测试发现。虽然可以执行大部分PowerShell命令,确并没有完全移植实现Windows平台上PowerShell的所有命令。
(见PowerShell的命令库 https://msdn.microsoft.com/en-us/library/powershell_mref_reference_home%28v=vs.85%29.aspx 和 Pash移植实现的命令库 https://github.com/Pash-Project/Pash/tree/master/Source)
诸如命令 new-pssession 、New-PSsessionOption和Invoke-command 命令等不在pash的命令库中。