【问题标题】:ADSI - Local disabled users list from multiple computers in a txt fileADSI - txt 文件中多台计算机的本地禁用用户列表
【发布时间】:2020-09-03 18:20:20
【问题描述】:

我正在尝试使用文本文件作为计算机列表来查询并获取每个计算机上所有活动和禁用的本地帐户的列表。

这部分适用于单台计算机(名为 glm4453):

([ADSI]('WinNT://glm4453' -f $env:COMPUTERNAME)).Children | Where { $_.SchemaClassName -eq 'user' } | ForEach {
$user = ([ADSI]$_.Path)
$lastLogin = $user.Properties.LastLogin.Value
$enabled = ($user.Properties.UserFlags.Value -band 0x2) -ne 0x2
if ($lastLogin -eq $null) {$lastLogin = 'Never'}

Write-Host
Write-Host Username: ( " " * 5 ) $user.name
Write-Host Last Login: ( " " * 3 ) $lastLogin
Write-Host Enabled: ( " " * 6 )  $enabled
}

当我尝试从 txt 文件添加计算机列表时,我得到一个空输出。

foreach ($name in (get-content C:\temp\computer.txt))
{

([ADSI]('WinNT://$name' -f $env:COMPUTERNAME)).Children | Where { $_.SchemaClassName -eq 'user' } | ForEach {
$user = ([ADSI]$_.Path)
$lastLogin = $user.Properties.LastLogin.Value
$enabled = ($user.Properties.UserFlags.Value -band 0x2) -ne 0x2
if ($lastLogin -eq $null) {$lastLogin = 'Never'}

Write-Host
Write-Host Username: ( " " * 5 ) $user.name
Write-Host Last Login: ( " " * 3 ) $lastLogin
Write-Host Enabled: ( " " * 6 )  $enabled
}}

请注意,我运行的是 Server 2008,这限制了我可以运行的 PowerShell 命令。

提前感谢您提供的任何帮助

【问题讨论】:

    标签: powershell adsi


    【解决方案1】:

    PowerShell -f Format operator 用于替换字符串中的编号占位符。这些占位符采用{0}{1} 等形式,可以与额外的格式结合使用。

    在您的代码中,'WinNT://glm4453' -f $env:COMPUTERNAME 什么都不做,因为没有要替换的占位符,所以字符串只是保持 'WinNT://glm4453'。

    在第二个代码中,发生了同样的事情,但在这种情况下,由于您使用的是单引号$name 变量不会被扩展。

    您需要删除-f $env:COMPUTERNAME,因为它在那里没有用,并且还使用了双引号,因此名称被扩展了。

    假设$name 中的计算机名是“PC-01”。

    使用单引号,'WinNT://$name' 将按字面意思表示字符串。
    使用双引号,"WinNT://$name" 将导致 WinNT://PC-01

    About Quoting Rules

    【讨论】:

    • 完美运行。非常感谢您在完成这项工作方面的帮助和指导
    • @Xtropy 不客气。作为 SO 新手,您可能不知道这一点,但习惯于通过单击左侧的 ✓ 图标来 accept the answer that solved your problem。这将帮助其他有类似问题的人更轻松地找到它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    相关资源
    最近更新 更多