【问题标题】:search end users ipaddress by their username通过用户名搜索最终用户的 ipaddress
【发布时间】:2023-03-25 01:35:01
【问题描述】:

您好,我正在尝试进行 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
    }
}

cmdlet Get-WmiObject 在命令管道位置 1 为以下参数提供值: 班级: PS C:\Windows\system32>

【问题讨论】:

    标签: powershell powershell-3.0


    【解决方案1】:

    正如提示所示,您需要为Get-WmiObject-Class 参数提供一个值;这是必需的。根据您对UserName 属性的使用,您似乎想要Win32_ComputerSystem class...

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

    另外,由于您使用Select-Object 的(位置)-Property 参数来检索UserName 属性,$usr 将不直接包含UserName 属性,而是包含单个@987654334 的对象@ 财产。您在以下if 语句$usr -eq $selectUser 中的条件不会像您预期的那样运行。

    要解决此问题,请与 $usr.UserName 属性进行比较...

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

    或者,要让$usr 直接存储UserName 文本,您可以使用Select-Object-ExpandProperty 参数...

    $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){
    

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-23
      • 2021-11-22
      相关资源
      最近更新 更多