当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 以 PowerShell 方式获取本地用户帐户

作者:精品下载站 日期:2024-12-14 07:48:18 浏览:14 分类:玩电脑

以 PowerShell 方式获取本地用户帐户


我似乎总是看到有关使用 PowerShell 获取本地用户帐户的请求和问题。然而,即使我们已经使用了 PowerShell 5.0,Microsoft 也从未发布过一组用于管理本地用户帐户的 cmdlet。我们中的许多人都求助于创建自己的工具。我现在有了最新版本的函数,可以从远程计算机获取本地用户帐户信息。

该功能通过使用 ADSI 类型加速器连接到远程计算机来采取某种快捷方式。这与我们在 VBScript 时代使用的技术相同。然而,这种技术不利于替代凭证,并且需要 RPC 和 DCOM 等遗留协议。但这不一定是问题,几分钟后我将向您展示。

该函数连接到远程计算机,然后使用一些 COM 对象 voodoo 来枚举本地帐户信息。默认情况下,该命令将列出所有用户帐户。

[玩转系统] 以 PowerShell 方式获取本地用户帐户

或者您可以指定单个用户帐户名。

[玩转系统] 以 PowerShell 方式获取本地用户帐户

该函数接受管道输入,可以轻松地同时检查多个服务器。

import-csv s:\computers.csv | get-localuser Administrator | Select Computername,User,Enabled,PasswordAgeDays

[玩转系统] 以 PowerShell 方式获取本地用户帐户

重要提示:如果您查询域控制器,您将获得域帐户。

请记住我提到过此命令使用旧协议。一种替代方法是使用 PowerShell 远程处理和 Invoke-Command。首先,创建必要的 PSSession,如有必要,请使用备用凭据。

$s = new-pssession -computer chi-core01,chi-web02,chi-fp02

然后获取函数的脚本块。

$sb = ${function:Get-localuser}

现在您可以将其与 Invoke-Command 一起使用:

invoke-command -scriptblock $sb -session $s -hidecomputername | select * -exclude RunspaceID | out-gridview -title "Local"

[玩转系统] 以 PowerShell 方式获取本地用户帐户

或者查询指定账户:

invoke-command -scriptblock $sb -session $s -hidecomputername -ArgumentList Administrator

[玩转系统] 以 PowerShell 方式获取本地用户帐户

您可以在 Github 上找到完整的脚本,其中包括别名。

:

我希望您能让我知道您的想法,并希望您发现这是对您的 PowerShell 工具箱的有用补充。如果您遇到问题,请将其发布在要点页面上。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯