
如果您仍在依赖自定义 PowerShell 脚本进行简单的文件传输或生成 Excel 报告,那么现在是时候简化您的工作流程了。预构建的 PowerShell 模块可以比您手动编写的任何脚本更高效地处理大多数日常任务。
要开始使用这些模块,请确保您至少运行的是 PowerShell 5.1。虽然许多模块在各个平台上都与 PowerShell 7 兼容,但有些模块可能仅限于 Windows。通过调整执行策略来启用脚本执行也至关重要,如下所示:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force
安装模块时,始终使用-Scope CurrentUser参数以消除对管理权限的需求。
6 PSReadLine
PSReadLine 是 PowerShell 的默认功能,但即使是经验丰富的用户也常常未得到充分利用。该模块通过语法高亮、多行编辑和预测性 IntelliSense 等功能增强了您的命令行体验。

要获取 PSReadLine 的最新版本,请使用以下命令:
Install-Module -Name PSReadLine -Scope CurrentUser -Force
启用 IntelliSense 将增强你的命令历史记录,并在你输入时提供建议。使用以下命令激活它:
Set-PSReadLineOption -PredictionSource HistorySet-PSReadLineOption -PredictionViewStyle ListView
执行过一些先前的命令(例如ipconfig或Get-Service )后,IntelliSense 会在你开始输入时根据历史记录提供建议。你可以使用向上和向下箭头键浏览这些建议,并使用Enter键确认你的选择。
5导入Excel
ImportExcel 的下载量超过 1400 万次,对于想要创建 Excel 电子表格而不需要 Excel 本身的用户来说是一个受欢迎的选择——非常适合服务器环境或自动化脚本。

要安装 ImportExcel,请输入以下命令:
Install-Module -Name ImportExcel -Scope CurrentUser
此模块可以执行各种任务,从基本导出到更复杂的功能(例如数据透视表和条件格式)。例如,要将正在运行的进程信息导出到格式化的电子表格,请使用:
Get-Service | Where-Object {$_.Status -eq "Running"} |Export-Excel -Path "ServiceReport.xlsx" -AutoSize -TableStyle Medium9 -FreezeTopRow
此命令收集所有活动服务并将其导出到 Excel 文件,格式化列以适合内容并冻结标题行以方便使用。

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

使用以下命令安装模块:
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 驱动的排序、过滤和导出功能。

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

使用以下命令安装它:
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 终端体验,它为目录列表中的文件添加了可识别的图标。每种文件类型都以其独特的图标和颜色表示,从而提高可见性和导航的便捷性。

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

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

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