【转】PowerShell入门(六):远程操作
转至:http://www.cnblogs.com/ceachy/archive/2013/02/20/PowerShell_Remoting.html
PowerShell远程操作是远程管理的基础,它为集中管理分布式系统提供了又一种可靠、高效的方法。
一般来说PowerShell远程操作依赖于远程处理基础结构,但为数不多的几个自身具有远程处理能力的命令除外,如Get-Service、Get-Process、Get-WMIObject、Get-EventLog和Get-WinEvent等。(不难看出,这些命令都是“读取”系统的某些方面的信息,不做更改。它们依赖.Net Framework完成远程操作。)
配置远程基础结构
远程基础结构是远程操作的基础,正确设置远程基础结构才能使远程命令正确执行。好在远程基础结构虽然重要,但是配置起来非常简单。实际上,只要设置好以下两点就可以进行远程操作了:
1、以管理员身份运行。要进行远程操作,必须以管理员身份启动PowerShell命令行,即使当前用户是系统管理员也要如此。
2、启用远程处理模式。启用远程处理模式之后,依赖远程基础结构的命令才能正确执行。启用远程处理模式请使用enable-psremoting命令。有的系统默认已经开启了远程处理模式,检查远程处理模式是否启动,可以执行new-pssession命令。如果新的会话成功创建,则说明远程模式启动,远程基础结构配置成功。
执行远程操作
配置好远程基础结构,就可以执行远程操作了。远程操作主要依赖几个Session(会话)命令和Invoke-Command命令来进行。常见的使用情况有三种场景:
场景一:远程交互式会话
这个场景一般用于手动进行远程操作,输入命令,查看结果。方法很简单。进入交互式会话的命令是Enter-PSSession,退出时键入Exit-PSSession或者exit都可以。远程交互式操作期间,输入的命令在远程计算机上运行,就像直接在远程计算机上输入并执行这些命令一样。期间所定义的变量和命令的执行结果在退出交互式会话之后不再可用。
场景二:脚本块、脚本文件的一次性执行
这种场景,是在本地计算机与远程计算机上建立一个临时会话。将脚本块或者脚本文件的内容发送到远程计算机执行,并将结果发回本地计算机。这种方法执行效率很高,是PowerShell推荐的执行远程命令的方法。除非需要在会话中共享数据,否则建议使用该方法。
场景三:脚本块、脚本文件在命名会话中执行
这种场景是最复杂的,也是功能最强大的。会话会保持所有定义的变量、函数和脚本,导入的模块和管理单元,有利于共享数据。使用方法如下:
1、定义会话: 请使用new-pssession命令定义会话,如$session1 = new-pssession –computer server1。(如果必要请使用Credential参数。)
2、在会话中远程执行脚本(或者脚本文件): 请使用Invoke-Command命令执行远程脚本,如Invoke-Command -Session $session1 -ScriptBlock {dir c:\}或者Invoke-Command -Session $session1 -FilePath .\dirDriveC.ps1
3、获得结果: 可以将执行结果赋于变量,如$sub = Invoke-Command -Session $session1 -ScriptBlock {dir c:\}或者$sub = Invoke-Command -Session $session1 -FilePath .\dirDriveC.ps1
后续命令可参照步骤2或者3继续执行,所有执行的命令就好像在同一个上下文中执行一样。
结语
网络时代的Shell或者脚本语言必须具有很强的网络处理能力,PowerShell就是这样的语言。微软的产品一般来说将安全性看得很重,所以PowerShell在网络处理方面有诸多限制。比如PowerShell不能在远程机器上显示界面,即使是有界面的程序,也只能在后台运行。熊掌和鱼肉不可兼得,好在我们总能找到一些解决办法。比如上述问题可以借助微软的PsExec工具来实现,详细信息见Windows Sysinternals.
【转】PowerShell入门(六):远程操作的更多相关文章
- Git知识总览(六) Git分支中的远程操作实践
前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探 ...
- 网络编程懒人入门(六):深入浅出,全面理解HTTP协议
本文引用了自简书作者“涤生_Woo”的文章,内容有删减,感谢原作者的分享. 1.前言 HTTP(全称超文本传输协议,英文全称HyperText Transfer Protocol)是互联网上应用最为广 ...
- powershell入门教程-v0.3版
powershell入门教程-v0.3版 来源 https://www.itsvse.com/thread-3650-1-1.html 参考 http://www.cnblogs.com/piapia ...
- C#基础入门 六
C#基础入门 六 静态类进阶 静态构造方法 用于初始化任何静态数据,或用于执行仅需执行一次的特定操作,在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数,静态构造方法是无参数的. publ ...
- Android入门之文件系统操作
Android入门之文件系统操作(二)文件操作相关指令 (转) (一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 // ...
- git入门三(远程、标签)
git 入门三 (远程.标签) 分布式版本控制管理系统本地仓库和中心服务器仓库数据是本地的镜像仓库,中心服务器数据仓库的是为了多用户数据合并和获取同步的中心,多人协作需要管理这些远程仓库,以便 ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Git远程操作详解
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
随机推荐
- checkbox全选与反选
用原生js跟jquery实现checkbox全选反选的一个例子 原生js: <!DOCTYPE html> <html lang="en"> <hea ...
- 利用iframe将div放置在object的上面
这两天在写一个用object上传照片的网页,在上传时,需要弹出一个进度条的div,我就按照正常的思维模式,将进度条div设为绝对定位,将其z-index设置的很大,结果,进度条div被object给遮 ...
- Material Design - CollapsingToolbarLayout
一.概述 CollapsingToolbarLayout是Material Design的一个Layout,直接继承于FrameLayout. 二.使用 1.导包 2.使用 - 设置相关属性 三.参考 ...
- QTabWiget Remove Line Border 去除边框
Qt中的QTabWiget 类提供了一个标签控件,但是这个控件默认是有边框的,如果我们不想要边框,也可以去掉这个边框,我们可以在cpp文件中添加一行代码: tabwidget.setStyleShee ...
- 类库,委托,is和as运算符,泛型集合
类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs 类库是.dll 新建项目为类库,在debu ...
- Java面试题大全(二)
41.是否可以继承String类? String类是final类故不可以继承. 42.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? switch(expr1 ...
- param STRING $username 要检查的用户名
检查用户名是否符合规定 两位以上的字母,数字,或者下划线,代码如下: php;auto-links:false;">/** * 检查用户名是否符合规定 * * @param STRIN ...
- php课程---初学练习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Construct a tree from Inorder and Level order traversals
Given inorder and level-order traversals of a Binary Tree, construct the Binary Tree. Following is a ...
- mysql怎么导入大文件的sql文件
这个方法在windows上或者linux上都可以使用 多数人习惯使用phpmyadmin或者一些客户端比如workbench,navicat 但是最有效的是原生的php工具 命令都差不多 请在cmd的 ...