$path = 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
$vision = Get-ItemProperty $path -ErrorAction SilentlyContinue |
Where-Object { $_.displayname -like "*tanium client 7*" }
$CreationTime = get-item -Path 'C:\Program Files (x86)\Tanium'
$TaniumService= Get-service | ? { $_.displayname -like "*tanium Client*" }
$TaniumProcess= Get-Process | ? { $_.processname -like "*taniumClient*" }
$RunningTime = (Get-Date).ToString()
$TaniumProcessStates=
if ((($TaniumProcess).ProcessName)[0] -like "TaniumClient" ) {
Write-Host "running"
}else{
Write-Host 'no running'
}
[PSCustomObject]@{
Vision = $vision.displayname
TaniumProcessStates = $TaniumProcessStates
TaniumService = $TaniumService.Status
CreationTime = $CreationTime.CreationTime
RunningTime = $RunningTime
}
This is the output
Vision : Tanium Client 7.4.4.1362
TaniumProcessStates :
TaniumService : Running
CreationTime : 6/26/2017 9:06:14 PM
RunningTime : 6/30/2022 11:34:40 AM
You’re not assigning anything to $TaniumProcessStates. Assuming you want ‘Running’ or 'Not running, you should change your code to:
if ((($TaniumProcess).ProcessName)[0] -like "TaniumClient" ) {
$TaniumProcessStates = "Running"
}
else {
$TaniumProcessStates = 'Not running'
}
- I used your suggestion, but still no output
$TaniumProcess= Get-Process | ? { $_.processname -like "*taniumClient*" }
$TaniumProcessStates=
if ((($TaniumProcess).ProcessName)[0] -like "TaniumClient" ) {
$TaniumProcessStates = "Running"
}
else {
$TaniumProcessStates = 'Not running'
}
[PSCustomObject]@{
TaniumProcessStates = $TaniumProcessStates
}
TaniumProcessStates
-------------------
You didn’t remove the $TaniumProcessStates = before the if statement
Even so, I think your code will always return ‘Not running’ because (($TaniumProcess).ProcessName)[0] will return the first letter of the process name. I think you want this:
if ($TaniumProcess[0].ProcessName -like "TaniumClient")
OK, I’ve removed the $TaniumProcessStates =, It’s work,Thanks.