改变我工作流程的 PowerShell 模块

改变我工作流程的 PowerShell 模块

如果您仍在依赖自定义 PowerShell 脚本进行简单的文件传输或生成 Excel 报告,那么现在是时候简化您的工作流程了。预构建的 PowerShell 模块可以比您手动编写的任何脚本更高效地处理大多数日常任务。

要开始使用这些模块,请确保您至少运行的是 PowerShell 5.1。虽然许多模块在各个平台上都与 PowerShell 7 兼容,但有些模块可能仅限于 Windows。通过调整执行策略来启用脚本执行也至关重要,如下所示:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

安装模块时,始终使用-Scope CurrentUser参数以消除对管理权限的需求。

6 PSReadLine

PSReadLine 是 PowerShell 的默认功能,但即使是经验丰富的用户也常常未得到充分利用。该模块通过语法高亮、多行编辑和预测性 IntelliSense 等功能增强了您的命令行体验。

安装了 PSReadLine 模块的 PowerShell 终端
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

要获取 PSReadLine 的最新版本,请使用以下命令:

Install-Module -Name PSReadLine -Scope CurrentUser -Force

启用 IntelliSense 将增强你的命令历史记录,并在你输入时提供建议。使用以下命令激活它:

Set-PSReadLineOption -PredictionSource HistorySet-PSReadLineOption -PredictionViewStyle ListView

执行过一些先前的命令(例如ipconfigGet-Service )后,IntelliSense 会在你开始输入时根据历史记录提供建议。你可以使用向上向下箭头键浏览这些建议,并使用Enter键确认你的选择。

5导入Excel

ImportExcel 的下载量超过 1400 万次,对于想要创建 Excel 电子表格而不需要 Excel 本身的用户来说是一个受欢迎的选择——非常适合服务器环境或自动化脚本。

在 PowerShell 终端上导入 Excel 模块
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

要安装 ImportExcel,请输入以下命令:

Install-Module -Name ImportExcel -Scope CurrentUser

此模块可以执行各种任务,从基本导出到更复杂的功能(例如数据透视表和条件格式)。例如,要将正在运行的进程信息导出到格式化的电子表格,请使用:

Get-Service | Where-Object {$_.Status -eq "Running"} |Export-Excel -Path "ServiceReport.xlsx" -AutoSize -TableStyle Medium9 -FreezeTopRow

此命令收集所有活动服务并将其导出到 Excel 文件,格式化列以适合内容并冻结标题行以方便使用。

ImportExcel 生成的 Excel 报告
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

4 PSWriteHTML

PSWriteHTML 允许您将 PowerShell 输出转换为 HTML 报告,包括表格和图表,无需事先了解 HTML 编码。

PSWriteHTML模块导出命令
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

使用以下命令安装模块:

Install-Module -Name PSWriteHTML -Scope CurrentUser

要创建突出显示 CPU 使用率排名前十的进程的系统报告,请使用:

Import-Module PSWriteHTML;$procs = Get-Process | Select-Object Name, CPU, WorkingSet -First 10New-HTML -TitleText "System Report" -FilePath "Report.html" -ShowHTML {New-HTMLSection -HeaderText "Process Information" {New-HTMLTable -DataTable $procs -Filtering -Buttons @('copyHtml5', 'excelHtml5')}}

生成的 HTML 具有 JavaScript 驱动的排序、过滤和导出功能。

PSWriteHTML模块导出结果
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

3 PSWindows更新

PSWindowsUpdate 是 PowerShell 库中最受欢迎的模块,下载量超过 3300 万次,它提供专门用于管理 Windows 更新客户端的 cmdlet。

PSWindowsUpdate PowerShell 模块
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

使用以下命令安装它:

Install-Module -Name PSWindowsUpdate -Scope CurrentUser

此模块提供用于全面管理 Windows 更新的 cmdlet,非常适合自动执行任务。使用以下命令同时检查多台服务器上待处理的更新:

$Servers = 'SERVER01', 'SERVER02', 'SERVER03'Invoke-Command -ComputerName $Servers -ScriptBlock {Import-Module PSWindowsUpdate<|image_sentinel|>Get-WindowsUpdate -MicrosoftUpdate | Select-Object @{n='Computer';e={$env:COMPUTERNAME}}, KB, Title, Size, IsDownloaded, IsInstalled, RebootRequired} | Sort-Object Computer, KB | Format-Table -AutoSize

这会快速显示您服务器上待处理的更新。您可以安装特定更新、隐藏有问题的更新或方便地安排安装。使用-AcceptAll参数可以绕过确认提示。

2 个终端图标

使用 Terminal-Icons 改进您的 PowerShell 终端体验,它为目录列表中的文件添加了可识别的图标。每种文件类型都以其独特的图标和颜色表示,从而提高可见性和导航的便捷性。

Terminal-Icons PowerShell 模块
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

要安装,请运行:

Install-Module -Name Terminal-Icons -Scope CurrentUser

此模块增强了Get-ChildItem的输出。安装后,要查看图标,请使用:

Import-Module Terminal-Icons

随后,运行Get-ChildItem或其别名时,每种文件类型将显示其各自的图标和颜色。PowerShell 脚本将显示 PowerShell 徽标,文件夹将显示指定的文件夹图标。此美学升级不仅改善了终端的外观,还有助于在选项卡之间导航时快速识别文件。请注意,需要安装 Nerd Font 才能正确呈现图标。

带有 Get-ChildItem 的 Terminal-Icons PowerShell 模块
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

1转乘

Transferetto 是一个 PowerShell 模块,旨在简化与 FTP、FTPS 和 SFTP 的交互。它无需深入研究. NET 类或使用第三方工具,而是提供直观的 PowerShell 原生 cmdlet。

转移到 PowerShell 模块
图片来源 – 自己拍摄(Tashreef Shareef)– 无需署名

要安装 Transferetto,请使用:

Install-Module -Name Transferetto -Scope CurrentUser

工作流程与数据库模块的工作流程非常相似:连接、执行任务和断开连接:

$Client = Connect-FTP -Server "ftp.example.com" -Credential (Get-Credential)Send-FTPFile -Client $Client -LocalPath "C:\Reports\Report1.xlsx" -RemotePath "/uploads/"Disconnect-FTP -Client $Client

除了基本功能外,Transferetto 还支持 SSL 配置、加密方法、证书验证选项和Request-FTPConfiguration命令,可以自动测试您的服务器连接设置。

此外,它不仅限于单个文件;您可以使用Send-FTPDirectory上传整个目录,甚至执行 FXP 传输(服务器到服务器的文件复制)。由于支持 SFTP 和 SSH,它还允许您在文件传输过程中运行远程命令。

由于 Transferetto 可在 Windows PowerShell 5.1 和 PowerShell 7+ 上运行,因此您的脚本无需进行任何修改即可在 Windows、Linux 和 macOS 平台上正常运行。

即使你只使用 PowerShell 完成一些基本任务,熟悉一些模块也能提升你的效率。PSReadLine 等模块可以通过预测建议加速输入速度,ImportExcel 等模块让你无需 Excel 即可轻松管理电子表格,而 Terminal-Icons 等模块则可以增强终端界面的可读性。

PowerShell 库中提供了丰富的模块。安装前,请务必查看它们的兼容性和更新历史记录。先从一两个能够直接满足您最迫切需求的模块开始,然后随着您逐渐熟悉,逐步扩展您的工具包。

来源和图片

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注