Нужен способ протестировать пользователя на удаленном сервере с помощью Powershell - PullRequest
0 голосов
/ 14 февраля 2019

Моя единственная цель - проверить учетную запись пользователя на нескольких серверах.Для этого я использую приведенные ниже команды.

$creds2= Get-Credential
$servers = Get-Content ('C:\Users\vishnuvardhan.chapal\Documents\Widnows Servers success in 139 and 445.txt')
$servers | ForEach-Object {Get-WmiObject Win32_ComputerSystem -ComputerName $_ -Credential $creds2} | Out-GridView

Здесь я сталкиваюсь с двумя проблемами.

1) В представлении Grid я просто получаю имя хоста, но без FQDN, как показанона скриншоте ниже.

Screen shot of the oupput

2) Выше экрана только для успешных серверов и для неисправных (для серверов, где аутентификация не проходит) Яполучить вывод в окне Powershell, как показано ниже:

enter image description here

Теперь моя цель - объединить оба вывода в одном месте.Является ли это возможным?Если да, как это сделать?Пожалуйста, проясните это.

Помимо вышесказанного, есть ли способ проверить это проще, я имею в виду прямую команду для проверки подлинности пользователя на удаленном сервере ??

К вашему сведению ... Моя единственная цель в этом упражнении - проверить аутентификацию пользователя, чтобы не получать некоторые данные с удаленного компьютера.

1 Ответ

0 голосов
/ 14 февраля 2019

Out-GridView не очень хороший способ справиться с этими вещами.Рекомендуется преобразовать это в JSON или в какой-то другой формат, а затем проанализировать его в файлах или по вашему усмотрению.Есть несколько способов проверить это, но обработка ошибок решит вашу проблему:

try
{
    $creds2= Get-Credential
    $servers = Get-Content ('C:\Users\vishnuvardhan.chapal\Documents\Widnows Servers success in 139 and 445.txt')
    $servers 

    foreach($server in $servers)
    {
        try
        {
        Get-WmiObject Win32_ComputerSystem -ComputerName $Server -Credential $creds2
        }
        catch
        {
        "Error in accessing the server - $Server with the given credential. Kindly validate."
        }
    }
}
catch
{
$_.Exception.Message
}

Так что в цикле я также добавил ловушку try, потому что, если один сервер выходит из строя, он продолжит работу со следующим сервером изсписок, и это будет фиксировать ошибку с именем сервера вместе с сообщением.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...