Отчет локальных администраторов не показывает группы доменов

http://mongodb.github.io/node-mongodb-native/api-generated/db.html#collection

strict, (Boolean, default: false) возвращает ошибку, если коллекция не существует

blockquote>

Прямо там, в документации.

Это значит, что ваше приложение может не создавать новые коллекции и может ссылаться только на то, что было создано ранее. Следовательно, потребность в обратном вызове , чтобы уловить ошибку.

-3
задан Kris 16 January 2019 в 20:25
поделиться

1 ответ

Ах, радости от попытки получить доступ к сетевым ресурсам с удаленного компьютера. Вы потеряете все, что связано с учетной записью домена, делая то, что вы делаете. Это просто, как это работает. Хорошей новостью является то, что есть еще способ получить нужную информацию, и вы даже можете использовать Get-WmiObject, чтобы сделать это, если хотите. Если вы еще не переименовали группу «Администраторы» (потому что на самом деле, кто это делает?), Вы можете сделать это легко, но если вы это сделали и вам нужно искать группу по SID, как вы выше, вам придется запросить удаленный сервер, как вы, и внесите коррективы с помощью запроса ниже с измененным именем, которое вы получите. Вот что я бы порекомендовал сделать, используя вместо этого класс Win32_GroupUser:

Get-WmiObject -ComputerName $Server -Query "SELECT * FROM win32_GroupUser WHERE GroupComponent = ""Win32_Group.Domain='$computerName',Name='Administrators'"""

Чтобы поставить его вместо того, что вы используете для своей функции, он может выглядеть примерно так:

function Get-LocalAdminGroupMember {
    param(
        [String] $computerName,
        [System.Management.Automation.PSCredential] $credential
    )
    $params = @{
        "ComputerName" = $computerName
        "Query" = "SELECT * FROM win32_GroupUser WHERE GroupComponent = ""Win32_Group.Domain='$computerName',Name='Administrators'"""
    }
    if ( $credential ) {
        if ( $computerName -eq [Net.Dns]::GetHostName() ) {
        Write-Warning "The -Credential parameter is ignored for the current computer."
        }
        else {
        $params.Add("Credential", $credential)
        }
    }
    Get-WmiObject @params | 
        Where{

Ах, радости от попытки получить доступ к сетевым ресурсам с удаленного компьютера. Вы потеряете все, что связано с учетной записью домена, делая то, что вы делаете. Это просто, как это работает. Хорошей новостью является то, что есть еще способ получить нужную информацию, и вы даже можете использовать Get-WmiObject, чтобы сделать это, если хотите. Если вы еще не переименовали группу «Администраторы» (потому что на самом деле, кто это делает?), Вы можете сделать это легко, но если вы это сделали и вам нужно искать группу по SID, как вы выше, вам придется запросить удаленный сервер, как вы, и внесите коррективы с помощью запроса ниже с измененным именем, которое вы получите. Вот что я бы порекомендовал сделать, используя вместо этого класс Win32_GroupUser:

[110]

Чтобы поставить его вместо того, что вы используете для своей функции, он может выглядеть примерно так:

[111].PartComponent -match ':(.+?)\.Domain="(.+?)",Name="(.+?)"'}| ForEach{ [PSCustomObject]@{ "ComputerName"=$computerName "Name"='Administrators' "Member"=$Matches[2..3] -join '\' -replace "^$computerName\\" "Type"=$Matches[1] } } }
0
ответ дан TheMadTechnician 16 January 2019 в 20:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: