通过用户名搜索最终用户的 ipaddress
search end users ipaddress by their username
您好,我正在尝试进行 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
}
}
命令管道位置 1 处的 cmdlet Get-WmiObject
为以下参数提供值:
Class:
PS C:\Windows\system32>
正如提示所示,您需要为 Get-WmiObject
; it's required. Based on your use of the UserName
property, it looks like you want the Win32_ComputerSystem
class 的 -Class
参数提供一个值...
$usr = Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem | Select-Object UserName
此外,因为您正在使用 Select-Object
的(位置)-Property
参数来检索 UserName
属性,$usr
将不包含直接 UserName
属性 而是一个带有单个 UserName
属性 的对象。您在以下 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){
您好,我正在尝试进行 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
}
}
命令管道位置 1 处的 cmdlet Get-WmiObject 为以下参数提供值: Class: PS C:\Windows\system32>
正如提示所示,您需要为 Get-WmiObject
; it's required. Based on your use of the UserName
property, it looks like you want the Win32_ComputerSystem
class 的 -Class
参数提供一个值...
$usr = Get-WmiObject –ComputerName $device -Class Win32_ComputerSystem | Select-Object UserName
此外,因为您正在使用 Select-Object
的(位置)-Property
参数来检索 UserName
属性,$usr
将不包含直接 UserName
属性 而是一个带有单个 UserName
属性 的对象。您在以下 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){