Powershell枚举远程机器上的本地权限组

2019-06-16 02:07栏目:技术创新
TAG:

# ==============================================================================================
# 
# NAME: Get-LocalGroupMembers
# 
# AUTHOR: Ben Baird
# DATE  : 8/12/2011
# 
# COMMENT: 
# Given a machine name, retrieves a list of members in
# the specified group.
# ==============================================================================================

function Get-LocalGroupMembers
{
    param(
        [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
        [Alias("Name")]
        [string]$ComputerName,
        [string]$GroupName = "Administrators"
    )

    begin {}

    process
    {
        # If the account name of the computer object was passed in, it will
        # end with a $. Get rid of it so it doesn't screw up the WMI query.
        $ComputerName = $ComputerName.Replace("`$", '')

        # Initialize an array to hold the results of our query.
        $arr = @()

        $wmi = Get-WmiObject -ComputerName $ComputerName -Query `
            "SELECT * FROM Win32_GroupUser WHERE GroupComponent=`"Win32_Group.Domain='$ComputerName',Name='$GroupName'`""

        # Parse out the username from each result and append it to the array.
        if ($wmi -ne $null)
        {
            foreach ($item in $wmi)
            {
                $arr  = ($item.PartComponent.Substring($item.PartComponent.IndexOf(',')   1).Replace('Name=', '').Replace("`"", ''))
            }
        }

        $hash = @{ComputerName=$ComputerName;Members=$arr}
        return $hash
    }

    end{}
}
#该片段来自于http://outofmemory.cn

版权声明:本文由新浦京娱乐站_新浦京娱乐场官网_新浦京娱乐发布于技术创新,转载请注明出处:Powershell枚举远程机器上的本地权限组