4 个仅通过 PowerShell 访问的 Windows 基本功能

4 个仅通过 PowerShell 访问的 Windows 基本功能

Windows 计算机的功能远超微软图形界面所能展现的范围。在众所周知的点击功能背后,隐藏着强大的命令行实用程序 PowerShell,它能够展现 Windows 典型菜单和设置中无法实现的功能。尽管经过数十年的改进,Windows 的许多实用工具仍然只能通过命令行访问。

有趣的是,这些工具并不太复杂,也并非仅供开发人员或系统管理员使用。虽然 Windows 具备基本功能,但图形界面却无法呈现这些功能。微软有意以这种方式设计 Windows,是为了保持简洁易用的体验。为每个 PowerShell 功能添加一个 GUI 会导致工具数量过多,界面也变得过于复杂。

这种设计选择使得无数用户没有意识到这些隐藏在命令行中的宝贵功能。

检索计算机上存储的Wi-Fi密码

快速访问已保存的无线网络

使用 PowerShell 泄露已保存的 Wi-Fi 密码
揭示已保存的 Wi-Fi 密码 – Jayric Maning 截图(无需署名)

您是否遇到过需要与访客分享 Wi-Fi 密码却忘记的情况?您使用过的所有 Wi-Fi 密码都存储在 Windows 电脑上。然而,微软并没有提供通过标准界面直接查看这些密码的选项。虽然您可以通过控制面板访问当前连接的网络密码,但您之前连接过的其他网络的密码怎么办呢?

幸运的是,Windows 系统自带了netsh wlan show profiles命令,它可以列出设备上保存的所有 Wi-Fi 网络配置文件。通过组合使用一系列命令,您可以轻松获取所有存储的 Wi-Fi 密码。虽然最初的命令可能看起来很复杂,但一旦您掌握了管道、cmdlet 和参数的概念,它就变得易于理解。命令如下:

(netsh wlan show profiles) | Select-String "All User Profile"| %{$name=$_. Line. Split(':')[1].Trim().Replace('"', ''); $_} | %{(netsh wlan show profile name="$name"key=clear)} | Select-String "Key Content"| %{$password=$_. Line. Split(':')[1].Trim(); [PSCustomObject]@{WIFI_NAME=$name; PASSWORD=$password}}

此命令会枚举您的 Wi-Fi 配置文件并检索每个配置文件的相应密码。片刻之后,您就会得到一个有序的列表,其中显示了每个网络的名称及其密码。就我个人而言,我曾多次使用此命令来设置新设备或帮助需要连接到我忘记的网络的朋友。

我不用每次都输入这个命令,而是将其保存为 PS1 文件(用于存储 PowerShell 脚本),并保存在指定的文件夹中。如果经常使用,还可以使用 AutoHotkey 为 PowerShell 命令创建快捷键,实现即时访问。

识别占用存储空间的重复文件

通过消除重复来节省存储空间

使用 PowerShell 显示重复文件
识别重复文件 – Jayric Maning 的截图(无需注明出处)

许多用户都为混乱的下载文件夹而苦恼。我也遇到过同样的问题,直到我发现了一个实用的 PowerShell 功能。Windows 缺乏内置的方法来通过其标准界面检测重复文件,导致许多人在不知不觉中积累了相同文档、图像和视频的多个副本。

PowerShell通过简洁的管道命令提供了解决方案:

Get-ChildItem -File | Group-Object Length | Where-Object {$*.Count -gt 1} | ForEach-Object {$*.Group | Get-FileHash} | Group-Object Hash | Where-Object {$*.Count -gt 1} | ForEach-Object { Write-Host "Duplicate files:"; $*.Group. Path; Write-Host "---"}

此命令会为每个文件的内容生成一个唯一的哈希值,即使文件名不同,也能识别真正的重复文件。我经常在我的“下载”文件夹中执行此命令,每次删除重复文件后都能恢复大量空间,这让我非常惊讶。

Windows 图形用户界面 (GUI) 中缺少此功能,可能是因为重复检测会占用大量资源,尤其是在处理大型文件时。微软可能认为大多数用户不会频繁使用此功能,因此增加界面的复杂性是合理的。

同时测试多个站点的互联网连接

通过基本速度测试来识别连接问题

使用 PowerShell 测试服务连接
测试互联网连接 – Jayric Maning 截图(无需署名)

当网络连接变得缓慢时,大多数用户会本能地依赖速度测试。然而,这些测试仅提供单个服务器的数据。如果问题出在特定网站或在线服务上,该怎么办?Windows 没有提供内置的 GUI 工具来同时检查多个站点的连接性,但 PowerShell 可以简化这项任务。

您可以使用简单的Test-Connection命令一次检查各个目的地:

Test-Connection google.com, facebook.com, youtube.com, microsoft.com

此命令会同时 ping 所有四个站点,并显示每个站点的响应时间。您可以快速判断是某个服务出现问题,还是整个网络连接都很慢。当我的网络不稳定时,我经常使用这个命令,因为它能更清楚地显示正在发生的情况。

Test-Connection google.com, cloudflare.com, amazon.com -Count 10

此变体会向每个网站发送 10 次 ping,从而提供可取平均值的数据。如果某个网站的响应时间持续过长,而其他网站则表现良好,那么您可以断定,根本问题不在于您的网络连接。

确认下载的文件合法且安全

通过文件哈希验证确保安全

将下载的哈希值与提供的合法文件哈希值进行比较
下载安全哈希值比较 – Jayric Maning 截图(无需署名)

许多用户喜欢在 Microsoft Store 之外下载可执行文件。为了验证下载内容的安全性,您应该能够检查它们是否直接来自开发者。许多合法软件提供商会在其下载内容中发布哈希值,作为唯一的指纹,如果文件的任何部分被修改,这些哈希值就会改变。

PowerShell 包含Get-FileHash命令,该命令允许您查看下载的文件哈希值(将“filename.exe”替换为您的特定文件名):

Get-FileHash "filename.exe"

此命令会生成一个 SHA256 哈希值,可将其与软件发布者提供的官方哈希值进行比较。如果匹配,则表示文件与发布者预期的完全一致;如果不一致,则表示下载过程中可能出现了问题,或者文件已被篡改。

使用 PowerShell 解锁隐藏功能

讨论的 PowerShell 功能凸显了隐藏在 Windows 友好界面之下的强大功能。PowerShell 看似复杂,实则并非如此。我个人只使用少数几个命令,但足以访问许多用户认为 Windows 中根本不存在的一些重要功能。

这些功能并非缺乏,只是隐藏在许多人可能从未探索过的命令行界面背后。掌握这些基本命令的知识,可以将日常的烦恼转化为快速的解决方案。下次您在 Windows 界面中遇到限制时,请记住 PowerShell 或许能提供您想要的答案。

来源和图片

发表回复

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