Hi,I wrote the script, but taniumprocessstates has no output in the hash

    $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.