微软终于宣布Powershell开源了,也就是可以在Linux和OSX上执行了。
豆子参考这篇博文,简单的测试了一下。
http://www.howtogeek.com/267858/how-to-install-microsoft-powershell-on-linux-or-os-x/
找了一个CentOS7的服务器,https://github.com/PowerShell/PowerShell/releases/ 这个上面下载对应的rpm文件,然后拷贝到我的/tmp目录,然后执行yum install的操作
目前的版本还是alpha版本,所以肯定有很多bug,先尝尝鲜看看
[[email protected] ~]# yum install /tmp/powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm Loaded plugins: fastestmirror, langpacks Examining /tmp/powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm: powershell-6.0.0_alpha.9-1.x86_64 /tmp/powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm: does not update installed package.
等安装完成之后就可以直接使用powershell了
[[email protected] ~]# powershell PowerShell Copyright (C) 2016 Microsoft Corporation. All rights reserved. PS /root>
随便执行几条命令试试
比较有趣的是, 我确实可以用ps命令导出结果,甚至也能导入,不过导入的结果不像window里面把所有的内容自动作为属性来保存,而是整个字符串作为一个属性,如果要处理这个文件的内容,我还是得和Linux一样去处理字符串,powershell的对象特性完全没有体现出来
PS /root> get-process | out-file /tmp/test.csv PS /root> $a=import-csv /tmp/test.csv WARNING: One or more headers were not specified. Default names starting with "H" have been used in place of any missing headers. PS /root> ¥ PS /root> $a | gm TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() H1 NoteProperty string H1=Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
另外一个豆子很期待的功能是远程操作,可惜invoke-command 这个命令根本就不存在,enter-pssession虽然存在,但是执行会报错,找不到对应的dll文件。我尝试谷歌了一下这个文件,一条线索都没有,估计太新了,还没有人遇见过这个问题。
PS /root> Enter-PSSession -ComputerName sydit01 -Credential ominicom\yli Windows PowerShell credential request Enter your credentials. Password for user ominicom\yli: ********** Enter-PSSession : Unable to load DLL ‘libpsrpclient‘: The specified module could not be found. (Exception from HRESULT: 0x8007007E) At line:1 char:1 + Enter-PSSession -ComputerName sydit01 -Credential ominicom\yli + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Enter-PSSession], DllNotFoundException + FullyQualifiedErrorId : System.DllNotFoundException,Microsoft.PowerShell.Commands.EnterPSSessionCommand
总之呢,很开心看见PS开源,也能够在*ix上执行,不过现在模块很少,命令总共才300多条,加上各种bug,还不太实用。希望成熟的版本能尽快出来,这样在苹果和Linux下也能远程的管理Windows了。
时间: 2024-11-07 08:59:35