【问题标题】:How to "read" a user account with Powershell如何使用 Powershell “读取”用户帐户
【发布时间】:2018-04-09 05:59:17
【问题描述】:

我正在尝试为用户文档创建备份 powershell 脚本。我创建了一个脚本,我在表单框中放置了我要备份的用户名,然后脚本继续执行。最后一件事是我想要一个规则,如果我输入错误的名称,脚本将不会继续。

有谁知道我如何在笔记本电脑上“读取”当前的用户帐户,以便创建规则以交叉检查用户帐户的输入?

最好的问候。

【问题讨论】:

    标签: powershell user-accounts


    【解决方案1】:

    这将读取C:\Users中的所有文件夹并尝试在AD中找到对应的帐户:

    Get-Childitem C:\users -Directory |
        ForEach-Object {
            $profilePath = $_.FullName
    
            Get-AdUser -Filter {SamAccountName -eq $_.Name} |
                ForEach-Object {
                    New-Object -TypeName PsCustomObject |
                        Add-Member -MemberType NoteProperty -Name Name -Value $_.Name -PassThru |
                        Add-Member -MemberType NoteProperty -Name ProfilePath -Value $profilePath -PassThru |
                        Add-Member -MemberType NoteProperty -Name SID -Value $_.SID -PassThru
            }
    
        } | Format-Table Name,SID, profilePath -AutoSize
    

    显然,如果需要,您可以修改以获得不同的 AD 属性。此外,删除Format-Table 命令以便通过管道传输输出对象以供进一步操作。

    注意:

    • 这需要在您运行脚本的系统上安装AD PowerShell Module
    • 它仅在找到用户帐户时才输出一个对象,因此对于它找到的没有帐户的文件夹,您将看不到任何内容。

    【讨论】:

    • 真的很有帮助,感谢您的宝贵时间!我将尝试以某种方式导出结果并与我正在使用的变量进行比较
    【解决方案2】:
    Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True'" | Select Name
    

    将为您提供本地帐户的名称。其他可供选择的字段列于here

    【讨论】:

    • 虽然这与我正在寻找的内容相关,但问题是我想要的结果与用户出现在路径 C:\Users 上的结果完全相同。你发给我的命令返回不同的结果,考虑到我最感兴趣的帐户是域帐户,结果无法使用。还有其他解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 2021-12-22
    相关资源
    最近更新 更多