#!/bin/sh
# Read-only ESXi post-access inventory. Run: sh /tmp/esxi_recon.sh
OUT=${1:-/tmp/esxi_recon.txt}
{
  echo "=== date ==="; date
  echo "=== uname ==="; uname -a
  echo "=== version ==="; esxcli system version get 2>&1
  echo "=== hostname ==="; hostname 2>&1; cat /etc/hostname 2>&1
  echo "=== uptime ==="; uptime 2>&1
  echo "=== interfaces ==="; esxcli network ip interface list 2>&1
  echo "=== interface ipv4 ==="; esxcli network ip interface ipv4 get 2>&1
  echo "=== routes ==="; esxcli network ip route ipv4 list 2>&1
  echo "=== vswitches ==="; esxcli network vswitch standard list 2>&1
  echo "=== portgroups ==="; esxcli network vswitch standard portgroup list 2>&1
  echo "=== storage ==="; esxcli storage filesystem list 2>&1
  echo "=== devices ==="; esxcli storage core device list 2>&1
  echo "=== vms ==="; vim-cmd vmsvc/getallvms 2>&1
  echo "=== host net info ==="; vim-cmd hostsvc/net/info 2>&1
  echo "=== host summary ==="; vim-cmd hostsvc/hostsummary 2>&1
  echo "=== vibs ==="; esxcli software vib list 2>&1
  echo "=== passwd ==="; cat /etc/passwd 2>&1
  echo "=== shadow ==="; cat /etc/shadow 2>&1
  echo "=== hosts ==="; cat /etc/hosts 2>&1
  echo "=== resolv ==="; cat /etc/resolv.conf 2>&1
  echo "=== sshd ==="; grep -E '^(PermitRootLogin|PasswordAuthentication|AllowTcpForwarding|Port)' /etc/ssh/sshd_config 2>&1
  echo "=== boot config ==="; cat /bootbank/boot.cfg 2>&1
  echo "=== bootbank ==="; ls -la /bootbank 2>&1
  echo "=== altbootbank ==="; ls -la /altbootbank 2>&1
  echo "=== local.sh ==="; cat /etc/rc.local.d/local.sh 2>&1
  echo "=== end ==="
} > "$OUT" 2>&1
echo "wrote $OUT"
