поиск конечных пользователей ipaddress по их имени пользователя - PullRequest
0 голосов
/ 30 октября 2019

Привет! Я пытаюсь выполнить поиск в PowerShell, который я могу ввести для конечного пользователя SAMaccountName и выдать IPv4-адрес компьютера, на котором они вошли.

При попытке запуститьскрипт, который запрашивает Class: и не даст мне IPv4-адрес для пользователя.

$selectUser = Read-Host 'What is the endusers username?'
$compname = Get-ADComputer -Filter * -Properties ipv4Address | select Name
ForEach($device in $compname) {
    $usr = Get-WmiObject –ComputerName $device | Select-Object UserName
    if($usr -eq $selectUser){
        $compip = Get-ADComputer -Filter * -Properties ipv4Address | select ipv4Address
    }
}

командлет Get-WmiObject в позиции конвейера команд 1 Задайте значения для следующих параметров: Class: PS C: \ Windows\ system32>

1 Ответ

0 голосов
/ 30 октября 2019

Как подсказывает подсказка, вам необходимо ввести значение для параметра -Class Get-WmiObject;это требуется. В зависимости от того, как вы используете свойство UserName, похоже, что вам нужен Win32_ComputerSystem класс ...

$usr = Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem | Select-Object UserName

Кроме того, поскольку вы используете (позиционное) -Property параметр Select-Object для извлечения свойства UserName, $usr не будет напрямую содержать свойство UserName, а вместо этого объект с одним свойством UserName. Ваше условие в следующем операторе if, $usr -eq $selectUser, не будет работать так, как вы ожидаете.

Чтобы исправить это, сравните его со свойством $usr.UserName вместо ...

if($usr.UserName -eq $selectUser){

В качестве альтернативы, чтобы $usr сохранял текст UserName напрямую, вы можете использовать параметр -ExpandProperty Select-Object ...

$usr = Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem | Select-Object -ExpandProperty UserName
if($usr -eq $selectUser){

... или использовать синтаксис члена для получения UserName свойство ...

$usr = (Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem).UserName
if($usr -eq $selectUser){
...