首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按用户名搜索最终用户的ipaddress

按用户名搜索最终用户的ipaddress
EN

Stack Overflow用户
提问于 2019-10-30 10:02:41
回答 1查看 36关注 0票数 0

您好,我正在尝试做一个PowerShell搜索,我可以输入最终用户的SAMaccountName,它可以推送出他们登录的计算机IPv4地址。

当尝试运行脚本时,它要求提供一个类:而不会给我一个用户的IPv4地址。

代码语言:javascript
运行
复制
$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
    }
}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-30 10:14:11

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

代码语言:javascript
运行
复制
$usr = Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem | Select-Object UserName

此外,由于您使用Select-Object的(positional) -Property参数来检索UserName属性,因此$usr将不会直接包含UserName属性,而是包含一个具有单个UserName属性的对象。以下if语句$usr -eq $selectUser中的条件将不会按照您的预期运行。

要修复此问题,请改为与$usr.UserName属性进行比较...

代码语言:javascript
运行
复制
if($usr.UserName -eq $selectUser){

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

代码语言:javascript
运行
复制
$usr = Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem | Select-Object -ExpandProperty UserName
if($usr -eq $selectUser){

...or使用成员语法检索UserName属性...

代码语言:javascript
运行
复制
$usr = (Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem).UserName
if($usr -eq $selectUser){
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58617766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档