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

[玩转系统] 使用 PowerShell 管理本地管理员

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

使用 PowerShell 管理本地管理员


[玩转系统] 使用 PowerShell 管理本地管理员

在 HTA 中,我使用 ADSI 连接到远程计算机并获取本地管理员帐户。您返回的对象有一个PasswordAge 属性,它是自密码更改以来的秒数。这是一个代码示例。

$computers="chi-win8-01","chi-win81","chi-core01","chi-fp02","chi-hvr2"
$account="administrator"
#get password age
$computers | foreach {
 [int]$Age = ([adsi]"WinNT://$_/$account,user").passwordage.value/86400
 $LastChange=(Get-Date).AddHours(-$age)
 New-Object -TypeName PSObject -Property @{
  Computername = $_
  Account = $Account
  Age = $Age
  LastChange = $LastChange
 }
}

在此示例中,我定义了一个名称列表。但您可以使用 Get-Content 轻松读取文本文件的内容或查询 Active Directory。因为您可能已重命名管理员帐户,或者可能需要检查不同的本地帐户,所以我为帐户名称创建了一个变量。然后,PowerShell 获取每台计算机名称并建立与管理员帐户的 ADSI 连接,获取密码值并将其除以一天中的秒数。因此 $Age 成为帐户密码年龄(以天为单位)。由于 PowerShell 完全与对象有关,因此我创建了一个包含一些相关信息的自定义对象。这是结果。

[玩转系统] 使用 PowerShell 管理本地管理员

您可能想知道为什么我使用 ForEach-Object 而不是 ForEach 枚举器。这是因为后者不会向管道写入任何内容,我可能想将结果保存到文本文件或导出到 CSV。

$computers="chi-win8-01","chi-win81","chi-core01","chi-fp02","chi-hvr2"
$account="administrator"
#get password age
$computers | foreach {
 [int]$Age = ([adsi]"WinNT://$_/$account,user").passwordage.value/86400
 $LastChange=(Get-Date).AddHours(-$age)
 New-Object -TypeName PSObject -Property @{
  Computername = $_
  Account = $Account
  Age = $Age
  LastChange = $LastChange
 }
} | Export-CSV -path c:\work\local-admin-report.csv -notypeinformation

请注意,我只是演示一些 PowerShell 示例。理想情况下,您希望构建一个工具来获取可以与其他 PowerShell 工具结合使用的密码信息。事实上,我给你的已经接近于一个函数了,但我会让你看看你是否能解决它。您希望能够运行这样的命令:

get-content computers.txt | get-localpasswordAge | export-csv -path c:\work\age.csv

中间的命令是您将构建的工具。

现在,更改密码怎么样?这也可以通过一行命令来完成。

([adsi]"WinNT://COMPUTER01/administrator,user").setpassword("P@ssw0rd")

如果您想更改您报告的所有计算机的密码,则修改“get”代码并不需要太多工作。因此,您会发现,在 PowerShell 中使用 ADSI 与在 VBScript 中使用 ADSI 一样简单,甚至更简单。

有一些注意事项:

  • 不要忘记 WinNT 名称区分大小写。
  • 没有简单的方法可以使用备用凭据。
  • 没有 WhatIf 支持,除非您编写提供它的脚本。

我这里的代码示例旨在用于教育目的。您应该花时间根据您的需求构建和测试更强大的解决方案。因此,下次您认为需要 VBScript 时,请停下来并前往 PowerShell Place。

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

取消回复欢迎 发表评论:

关灯