zoukankan      html  css  js  c++  java
  • PowerShell 2.0如何将远程线程保存在本地

    在上篇文章里,介绍了如何用Import-PSSession cmdlet将远程命令导入到本地来直接执行,如同在本地直接管理多台主机。当然这样的技术能在持久线程存活的情况下使用,如果使用Remove-PSSession杀死了线程或线程过期后,隐式远程线程也会同时被终止。

    在本文中将会讨论如何将远程线程保存到本地硬盘,这样就可以不必在每次执行命令前,显式的创建PS线程到远程主机上执行命令了,直接导入本地已经保存的线程信息初始化相关环境即可。

    将远程线程作为模块导出到本地

    Export-PSSessioon用于从远程线程导入命令并将其保存到本地硬盘作为PowerShell的模块。这个cmdlet能够将cmdlet、函数、别名和其他的命令类型保存到PowerShell模块中。下面是如何使用该cmdlet的例子:

    $s = New-PSSession -ComputerName WinServ-wfe

    Invoke-Command -Session $s -ScriptBlock {Import-Module ActiveDirectory}

    Export-PSSession -Session $s -OutputModule ADRemoteCommands -AllowClobber -Module ActiveDirectory

    上面的例子中,前两行分别创建持久线程并导入活动目录模块,第三行用Export-PSSession将别名、函数等所有在$s线程中可用的命令作为模块导出到本地硬盘并命名为ADRemoteCommands

    从本地导入模块

    能够看到被导出的的模块文件时存放在$Env:PSModulePath中的,这样在导入的过程中就不需要显式的指明导入模块的路径了,执行的命令如下例所示:

    Import-Module ADRemoteCommands

    上述命令将会导入保存在本地模块中线程所有可用功的命令。导入模块后无论何时,不需要执行任何远程相关的cmdlet,用户就可执行远程命令,隐式远程管理,创建远程线程,在远程线程中执行命令并返回结果。如果创建远程线程需要密码,将会提示用户输入。

    Export-PSSession的局限性

    使用Export-PSSession也有类似于隐式远程管理的局限性,用户不能通过Export-PSSession导出PowerShell提供者。导出的模块不包含用于创建线程的线程选项,如果需要在运行远程命令之前指定任何线程选项,则需要用户在导入硬盘保存模块之前,先创建带有所需线程选项的PS线程。

    总结

    用Export-PSSession将远程线程信息保存到本地文件中,能够不用显式创建PS线程或者启动交互式远程线程的情况下,快速执行远程主机上的命令。在前面的文章里介绍了各种情境下启用远程管理,执行远程命令以及导入导出远程线程的方法

    赛迪网地址:http://tech.ccidnet.com/art/302/20100702/2104179_1.html

    作者: 付海军
    出处:http://fuhj02.cnblogs.com
    版权:本文版权归作者和博客园共有
    转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
    要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
    个人网站: http://txj.shell.tor.hu/

  • 相关阅读:
    MaskRCNN模型解读
    Centos7下WebLogic安装部署
    CentOS 7 安装 JAVA环境(JDK 1.8)
    Linux下如何查看tomcat是否安装、启动、文件路径、进程ID
    Nacos enable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
    多线程系列(三)之线程池
    多线程系列(二)之Thread类
    多线程系列(一)之多线程基础
    Vue2/Vue3 自定义组件库
    EF Core使用单独的项目管理迁移
  • 原文地址:https://www.cnblogs.com/fuhj02/p/1903557.html
Copyright © 2011-2022 走看看