Skip to main content

PowerShell script to manage Maximo

#run powershell script remotely
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND }
Invoke-Command -ComputerName COMPUTER -ScriptBlock { COMMAND } -credential a.jsun

#find computer last reboot time
systeminfo -S servername   |findstr /I "boot time"
PS > Invoke-Command -ComputerName servername  -ScriptBlock { Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime }

#find computer last 10 reboot time
invoke-command -computername $servername -scriptblock {get-eventlog system | where-object {$_.eventid -eq 6006 -or $_.eventid -eq 6005 }  | select -first 10}

#query status of windows service
sc \\servername  query "OracleWeblogic ship76domain_Vessel_ManSrv"
PS > Invoke-Command -ComputerName servername  -ScriptBlock { Get-Service -Name "OracleWeblogic ship76domain_Vessel_ManSrv" }

#query history of a service start/stop in eventlog
PS > (Get-EventLog -LogName "System" -Source "Service Control Manager" -EntryType "Information" -Message "*ship76domain_Vessel_ManSrv*running*" -Newest 3).TimeGenerated;
PS > Invoke-Command -ComputerName servername  -ScriptBlock { (Get-EventLog -LogName "System" -Source "Service Control Manager" -EntryType "Information" -Message "*ship76domain_Vessel_ManSrv*running*" -Newest 3).TimeGenerated; }
PS > Invoke-Command -ComputerName servername  -ScriptBlock { (Get-EventLog -LogName "System" -Source "Service Control Manager" -EntryType "Information" -Message "*OracleWeblogic*" -Newest 5)|format-list timegenerated,message,pscomputername; }
PS > Invoke-Command -ComputerName servername  -ScriptBlock { (Get-EventLog -LogName "System" -Source "Service Control Manager" -EntryType "Error" -Message "*start*" -Newest 5)|format-list timegenerated,message,pscomputername; }

#list the 3 most recently modified logfile
#D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\Vessel_ManSrv\logs\Vessel_ManSrv.txt
Get-ChildItem -Path 'c:' |
    Where-Object { -not $_.PsIsContainer } |
    Sort-Object LastWriteTime -Descending |
    Select-Object -first 3
Invoke-Command -ComputerName servername  -ScriptBlock { Get-ChildItem -Path 'D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\Vessel_ManSrv\logs\' 
    Where-Object { -not $_.PsIsContainer } |
    Sort-Object LastWriteTime -Descending |
    Select-Object -first 3
    }
Invoke-Command -ComputerName servername  -ScriptBlock { Get-ChildItem -Path 'D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\AdminServer\logs\' 
Where-Object { -not $_.PsIsContainer } |
Sort-Object LastWriteTime -Descending |
Select-Object -first 3
}

#filter fail message from logfile
Get-Content c:\dropit\maximo\vessel_mansrv.log | ? { $_ -match 'fail|error' }
Invoke-Command -ComputerName servername  -ScriptBlock {Get-Content "D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\Vessel_ManSrv\logs\Vessel_ManSrv.log00088" | ? { $_ -match 'fail|error' }}
Invoke-Command -ComputerName servername  -ScriptBlock {Get-Content "D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\AdminServer\logs\adminserver.log" | ? { $_ -match 'fail|error' }}
Invoke-Command -ComputerName servername  -ScriptBlock {Get-Content "D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\AdminServer\logs\ship76domain.log" | ? { $_ -match 'fail|error' }}
invoke-command -computername servername  -scriptblock {get-content c:\maximojobs\weblogic_bounce\weblogic_bounce.log}

#get the last 10 lines of logfile and wait for further output.
Invoke-Command -ComputerName servername  -ScriptBlock {Get-Content "D:\Oracle\product\FMW12\user_projects\domains\ship76domain\servers\Vessel_ManSrv\logs\Vessel_ManSrv.log" -wait -tail 10}

#The port can be found in confiugration file below: 7011 and 7020
#D:\Oracle\product\FMW12\user_projects\domains\ship76domain\config\config.xml

# to find and kill a process that hold the port
netstat -a -o -n |find "7011"
tasklist /FI “PID eq #PID?
taskkill /F /PID #PID
PS >invoke-command -Computername sobcwmaxprd01 -scriptblock {netstat -ano | findstr "7011"}
PS > Stop-Process -Id #PID
PS > Get-Process | Where-Object {$_.HasExited}


Comments

Popular posts from this blog

Opatch apply/lsinventory error: oneoff is corrupted or does not exist

I am applying the quarterly patch for 19c RDBMS, I tried using napply but failed, but somehow it corrupted the inventory though nothing applied. further apply and lsinventory command ran into error like this: $ ./OPatch/opatch lsinventory Oracle Interim Patch Installer version 12.2.0.1.21 Copyright (c) 2020, Oracle Corporation.  All rights reserved. Oracle Home       : /u02/app/oracle/19.0.0 Central Inventory : /u01/app/oraInventory    from           : /u02/app/oracle/19.0.0/oraInst.loc OPatch version    : 12.2.0.1.21 OUI version       : 12.2.0.7.0 Log file location : /u02/app/oracle/19.0.0/cfgtoollogs/opatch/opatch2020-09-08_13-35-59PM_1.log Lsinventory Output file location : /u02/app/oracle/19.0.0/cfgtoollogs/opatch/lsinv/lsinventory2020-09-08_13-35-59PM.txt -------------------------------------------------------------------------------- Inventory load failed... OPatch cannot load inventory for the given Oracle Home. LsInventorySession failed: Unable to create patchObject Possible ca

non-existent process lock port on windows server

I have a database link created between oracle and sqlserver using oracle tg4odbc, the product is installed on windows server and run as service "OracleOraGtw11g_home1TNSListener", but sometime the service cannot started, the root cause of this problem is that the port number 1521 is used by an non-existent process. The first step is to use netstat -bano|find "1521" to get the process id, in my case it's 5844, which shows the connection is from my oracle server 10.8.0.169 H:\>netstat -bano|find "1521"   TCP    0.0.0.0:1521           0.0.0.0:0              LISTENING       5844   TCP    10.14.45.33:1521       10.8.0.169:42987       ESTABLISHED     5844 however the process id does not show in either task manager or process explorer. The next step is to run tcpview, which shows non-existent under process column, there are three rows, two show status as "listening", the other one shows status "established", right click and k

shell script to clean up oracle dumpfile

https://github.com/iacosta/personal/blob/master/shells/cleanhouse.sh #!/bin/ksh # # Script used to cleanup any Oracle environment. # # Cleans:      audit_file_dest #              background_dump_dest #              core_dump_dest #              user_dump_dest #              Clusterware logs # # Rotates:     Alert Logs #              Listener Logs # # Scheduling:  00 00 * * * /networkdrive/dba/scripts/purge/cleanup.sh -d 7 > /u01/dba/bin/cleanup.log 2>&1 # # Created By:  Lei Dao # # # RM="rm -f" RMDIR="rm -rf" LS="ls -l" MV="mv" TOUCH="touch" TESTTOUCH="echo touch" TESTMV="echo mv" TESTRM=$LS TESTRMDIR=$LS SUCCESS=0 FAILURE=1 TEST=0 HOSTNAME=`hostname` ORAENV="oraenv" TODAY=`date +%Y%m%d` ORIGPATH=/usr/local/bin:$PATH ORIGLD=$LD_LIBRARY_PATH export PATH=$ORIGPATH # Usage function. f_usage(){   echo "Usage: `basename $0` -d DAYS [-a DAYS] [-b DAYS] [