iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >PowerShell简介
  • 294
分享到

PowerShell简介

linux运维服务器 2023-09-07 05:09:29 294人浏览 独家记忆
摘要

Powershell 简介:PowerShell 是一种命令行 shell 和脚本语言一体化工具。 它被设计为任务引擎,使用 cmdlet 来包装用户需要执行的任务。 在 PowerShell 中,

Powershell


简介:PowerShell 是一种命令行 shell 和脚本语言一体化工具。 它被设计为任务引擎,使用 cmdlet 来包装用户需要执行的任务。 在 PowerShell 中,可以在本地或远程计算机上运行命令。 可以执行管理用户和自动执行工作流等任务
**

什么是 PowerShell?

**

  1. PowerShell 由命令行 shell 和脚本语言两部分组成。 它最初是一种框架,用于在 windows 中自动执行管理任务。
  2. PowerShell 现已发展为一种跨平台工具,用于执行多种任务。
  3. 命令行 shell 缺少图形界面,让你无法使用鼠标与图形元素进行交互。 相反,你需要在计算机控制台中键入文本命令。 下面是使用控制台的一些优点:
  4. 与控制台交互通常比使用图形界面快。
  5. 在控制台中,可以运行成批命令,因此它非常适合用于持续集成管道的任务自动化
  6. 你可使用控制台与云资源和其他资源交互。
  7. 可在文本文件中存储命令和脚本,并使用源代码管理系统。 这可能是最大的优点之一,因为你的命令可重复且可审核。
    在许多系统(特别是政府系统)中,必须跟踪和评估或审核一切内容。 审核涵盖了从数据库更改到脚本所做的更改的所有内容。

功能


PowerShell 通过传统 shell 共享某些功能:

  1. 内置帮助系统:大多数 shell 都有一些帮助系统,你可以在其中了解有关命令的详细信息。 例如,你可以了解命令的作用以及它支持的参数。 PowerShell 中的帮助系统提供有关命令的信息,并与联机帮助文章集成。
  2. 管道:传统 shell 使用管道按顺序运行多个命令。 一个命令的输出是下一个命令的输入。 PowerShell 实现了传统 shell
  3. 传达的这种概念,但它又有所不同,因为它对文本上的对象进行操作。 本模块稍后会详细介绍此功能。
  4. 别名:别名是可用于运行命令的替代名称。 PowerShell 支持使用常见别名,如 cls(清除屏幕)和 ls(列出文件)。 因此,对于熟悉的命令,新用户可利用其对其他框架的知识,而不必记住 PowerShell 名称。

PowerShell 不同于传统的命令行 shell,具体体现在以下几方面:

  1. 它对文本上的对象进行操作。 在命令行 shell 中,你必须运行输出和输入可能不同的脚本,因此你最终会对输出进行格式化并提取所需的数据。 而在 PowerShell 中,可以使用对象作为输入和输出。 这意味着格式设置和数据提取所需时间会更少。
  2. 它具有 cmdlet。 PowerShell 中的命令称为 cmdlet(念作 commandlet)。 与其他许多 shell 环境不同,在 PowerShell 中,cmdlet 是在常见运行时而不是单独的可执行文件上生成的。 此特性在参数分析和管道行为方面提供了一致的体验。
  3. Cmdlet 通常采用对象输入并返回对象。 PowerShell 中的核心 cmdlet 是在 .net core 中生成的,采用的是开放源代码形式。 你可以使用来自社区和其他来源的更多 cmdlet、脚本和函数来扩展 PowerShell,也可以在 .Net Core 或 PowerShell 中生成自己的 cmdlet。
  4. 它具有多种类型的命令。 PowerShell 中的命令可以是本机可执行文件、cmdlet、函数、脚本或别名。 运行的每个命令都属于这些类型之一。 由于 cmdlet 是一种命令,因此,命令和 cmdlet 通常可互换使用。

安装

在此模块中,你将练习如何在计算机上使用 PowerShell。 PowerShell 可用于多种平台,但如果你使用的计算机运行的是 linuxMacOS 或早期版本的 Windows,则需要安装它。
每个 OS 对安装 PowerShell 的说明各不相同。 在继续之前,请花几分钟时间安装 PowerShell 或验证 PowerShell 安装。 此模块的下一个单元将介绍如何验证你的安装。


Windows

如果运行的是 Windows 8 或更高版本,则应已安装名为 Windows PowerShell 的 PowerShell 版本。 此版本与最新的 PowerShell 版本略有不同,但它可用于学习目的。

可从“开始”菜单打开 Windows PowerShell。

其他操作系统

如果你的计算机运行的不是 Windows 8 或更高版本,则需要安装 PowerShell。 若要查找针对你的 OS 的安装说明,请参阅安装各种版本的 PowerShell。

PowerShell使用

启动PowerShell
方法一: 直接在cmd中执行powershell,切换为powershell

方法二: 开始菜单中输入powershell启动powershell
方法三: 开始菜单----附件----powershell启动

使用powershell

powershell启动后界面如下:

get-help查看帮助

我们一无所知,所以我们输入help试一下,很好,powershell确实支持help(不过我们前边说过powershell命令是cmdlet格式,help也使用cmdlet格式,help只是get-help的一个别名)

get-command查看有哪些命令

在确定powershell支持get-help之后,首先我们需要知道powershell支持哪些命令,在上图get-help中可以看到可以使用get-command查看powershell支持的命令
CommandType列,表示命令类型,Alias是别名、Cmdlet是powershell格式的命令、Function是函数
Name列,就是命令
Definition列,命令功能的简单描述

get-command缩小范围

上面的命令太多了,我们需要缩小范围以确定类似ps功能的命令在powershell中是什么(当然我们说过powershell兼容cmd所以可以直接用ps,但这不是我们这里想要的)
查看信息都是get-开头,所以我们猜测查看进程的命令也以get-开头,执行get-command get-*试一下
结果如下图所示,列出了所有get开头的命令,其中我们看到有一个叫get-process的命令,一看就是获取进程信息的
在这里插入图片描述
或者我们直接尝试获取进程(process)相关的命令:get-command "*process*"
在这里插入图片描述

get-process查找进程

我们将命令定在了get-process但是我们不知道这个命令怎么用,可以通过get-help command的形式查看帮助,我们也试一下
可以看到所有选项都是带中括号的,所以直接执行get-process就可以了
但是可以猜测,没有任何过滤条件返回的肯定是所有进程列表这需要过滤,可以看到-name参数可以过滤进程名,为保险起见我们还加上号通配符
整个要执行的命令就是:get-process -name *notepad

stop-process杀除进程

第一个思路是:在get-help get-process中已看到相关链接中有stop-process,这大概率是杀除进程的命令
第二个思路是:获取进程是get-process,那么杀除进程也大概率是xxx-process
执行:get-command *process

可以看到就5个命令,而其中只有stop-process比较像,一样使用get-help来查看帮助顺便确认是不是

显而易见确实是,而且杀除命令就是:stop-process -id pid

好了,现在我们开始进入主题


在哪里可以找到 PowerShell?

查找 PowerShell 的最简单方法是在搜索栏中键入“PowerShell”***

如何启动 PowerShell?

我通过单击“Windows PowerShell”快捷方式启动了 PowerShell 控制台

请注意,PowerShell 控制台的标题栏显示为“Windows PowerShell”

正在运行的是哪个版本的 PowerShell?

PowerShell 中有许多用于存储状态信息的自动变量。 其中某个变量是 $PSVersionTable,它包含可用于显示相关 PowerShell 版本信息的哈希表:

$PSVersionTable
Name                           Value----                           -----PSVersion                      5.1.19041.1PSEdition                      DesktopPSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}BuildVersion                   10.0.19041.1CLRVersion                     4.0.30319.42000WSManStackVersion              3.0PSRemotingProtocolVersion      2.3SerializationVersion           1.1.0.1

执行策略

与通常的看法相反,PowerShell 中的执行策略不是安全边界。 它的作用是防止用户无意间运行脚本。 已确定的用户可以轻松绕过 PowerShell 中的执行策略。
无论采用怎样的执行策略设置,任何 PowerShell 命令都可以通过交互方式运行。 执行策略仅影响脚本中运行的命令。 Get-ExecutionPolicy cmdlet 用于确定当前的执行策略设置,而 Set-ExecutionPolicy cmdlet 用于更改执行策略。 建议使用 RemoteSigned 策略,该策略要求下载的脚本必须由受信任的发布者签名才能运行。

检查当前的执行策略:Get-ExecutionPolicy
OutputRestricted

当执行策略设置为“受限”时,PowerShell 脚本根本无法运行。 这是所有 Windows 客户端操作系统上的默认设置。 为了演示该问题,将以下代码另存为名为 Stop-TimeService.ps1.ps1 文件。

Get-Service -Name W32Time | Stop-Service -PassThru

只要以管理员身份运行提升的 PowerShell,该命令就可通过交互方式运行而不会出错。 不过,一旦将其保存为脚本文件并尝试执行该脚本,就会生成错误:

.\Stop-TimeService.ps1
.\Stop-TimeService.ps1 : File C:\demo\Stop-TimeService.ps1 cannot be loaded becauserunning scripts is disabled on this system. For more infORMation, seeabout_Execution_Policies at Http://Go.microsoft.com/fwlink/?LinkID=135170.At line:1 char:1+ .\Stop-TimeService.ps1+    + CategoryInfo          : SecurityError: (:) [], PSSecurityException    + FullyQualifiedErrorId : UnauthorizedAccess

请注意,上一组结果中显示的错误明确指示了发生了什么问题(在此系统上禁用了运行脚本)。 在 PowerShell 中运行命令后如果生成错误消息,请确保阅读该错误消息,而不是只重新运行该命令并希望它成功运行。
将 PowerShell 执行策略更改为远程签名。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
OutputExecution Policy ChangeThe execution policy helps protect you from scripts that you do not trust. Changing the executionpolicy might expose you to the security risks described in the about_Execution_Policies help topicat http://go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy?[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):y

务必阅读更改执行策略时显示的警告。 另外建议查看 about_Execution_Policies 帮助主题,确保已了解更改执行策略带来的安全影响。
由于已将执行策略设置为 RemoteSignedStop-TimeService.ps1 脚本将正常运行。

.\Stop-TimeService.ps1
outputStatus   Name               DisplayName------   ----               -----------Stopped  W32Time            Windows Time

在继续之前,请务必启动 Windows 时间服务,否则可能会遇到无法预料的问题。

Start-Service -Name w32time

总结

在本章中,你了解了如何查找和启动 PowerShell,以及如何创建以管理员身份启动 PowerShell 的快捷方式。 你还了解了默认执行策略及其更改方式。

来源地址:https://blog.csdn.net/zaoyuxuan/article/details/129052643

--结束END--

本文标题: PowerShell简介

本文链接: https://www.lsjlt.com/news/397748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PowerShell简介
    PowerShell 简介:PowerShell 是一种命令行 shell 和脚本语言一体化工具。 它被设计为任务引擎,使用 cmdlet 来包装用户需要执行的任务。 在 PowerShell 中,...
    99+
    2023-09-07
    linux 运维 服务器
  • 3. Powershell关键命令介绍
    3. Powershell关键命令介绍 我们将在这介绍三种简单的但是很关键的命令,这些命令能够让你的 Powershell之旅更加顺利。 当你学习的时候,请记住一条军规,那就是Powershell的动词-名词(Verb-noun)结构,...
    99+
    2023-01-31
    命令 关键 Powershell
  • PowerShell与Python的异同介绍
    目录1、Python定义2、Python用途4、PowerShell用途5、PowerShell和Python对比5.1 共同点5.2 不同点6、总结1、Pyth...
    99+
    2023-05-20
    PowerShell和Python区别 PowerShell Python
  • PowerShell如何实现简单的grep功能
    这篇文章将为大家详细讲解有关PowerShell如何实现简单的grep功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PowerShell中,无法像*nix中一样使用grep命令,直接对一个目录下的所...
    99+
    2023-06-09
  • Python~~简介介绍
    Python (英国发音:/paθn/ 美国发音:/paθɑn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于...
    99+
    2024-04-02
  • Windows PowerShell:(
    一、概述   Cmdlets 用于服务器的管理方面主要体现在4个方面:服务、日志、进程、服务器管理器。 1、服务 •  Get-Service。查看某个服务的属性。 •  New-Service。创建一个新的服务。 •  Restart-S...
    99+
    2023-01-31
    Windows PowerShell
  • Django简介
    MVC与MTV模型MVCWeb服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户...
    99+
    2023-01-30
    简介 Django
  • IPv6简介
    IPv6仅仅只是“长”吗?IPv6的地址长什么样?平时我们是怎么使用IPv6的呢?编写网络程序的时候要怎么处理IPv6?且待本篇一一道来。 为什么需要IPv6 全球的IP地址由一个名字叫IANA(Internet Assigned Num...
    99+
    2023-01-31
    简介
  • java3d简介
    Java3D用其自己定义的场景图和观察模式等技术构造了3D的上层结构,实现了在Java平台使用三维技术。本文在原理上着重介绍Java3D特有的两个重要概念:场景图(Scene Graph)、观察模式(View Model)。在接口使用上的...
    99+
    2023-01-31
    简介 java3d
  • Python——简介
    1、Python社区 Pypi:https://pypi.org/GitHub:https://github.com/StackOverFolw:https://stackoverflow.com/开源中国:https://www.osc...
    99+
    2023-01-31
    简介 Python
  • VMotion简介
    源起:...
    99+
    2023-06-04
  • JavaScript 简介
    JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序...
    99+
    2023-06-03
  • MySQL简介
    MySQL介绍:简介、特点与应用示例 概述:MySQL是当前最常用的关系型数据库管理系统之一。作为一个开源的数据库管理系统,MySQL具有许多优点,如高性能、可靠性强以及易于使用等。本...
    99+
    2024-02-22
    mysql sql 数据库
  • Python-简介
      @ Python的由来    Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Pyt...
    99+
    2023-01-30
    简介 Python
  • Python 简介
    Python介绍与特点(自学python知识整理) Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计: Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于P...
    99+
    2023-01-31
    简介 Python
  • OpenCV简介
    OpenCV简介 OpenCV(开源计算机视觉库:http://opencv.org)是一个开源库,包含数百种计算机视觉算法。OpenCV 具有模块化结构,主要包括下列模块: 核心功能(core) - 定义基本数据结构的紧凑模块,包括密集多...
    99+
    2023-08-30
    opencv 人工智能 计算机视觉
  • argparse简介
    一、argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。 ar...
    99+
    2023-09-01
    python
  • Ajax简介
    一、Ajax简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指⼀种创建交互式⽹⻚应⽤的⽹⻚开发技术。 Ajax 是⼀种⽤于创建快速动态⽹⻚的技术。 Aja...
    99+
    2023-09-02
    ajax javascript 服务器
  • DevOps简介
    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。     DevOps的概念 DevOps一词的来自于Development和Ope...
    99+
    2023-01-30
    简介 DevOps
  • LDAP简介
    LDAP简介: LDAP是LightWeight Directory Access Protocol的简称,是一种轻量目录访问协议。 它是基于X.500标准的,可以根据需要定制。与X.500不同,...
    99+
    2023-09-03
    网络 服务器 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作