使用 hponcfg 和 RIBCL 删除 HP 刀片服务器中的所有用户帐户

使用 hponcfg 和 RIBCL 删除 HP 刀片服务器中的所有用户帐户

我需要从许多旧 HP 刀片服务器上的 iLO2 中删除所有现有用户帐户和配置。至于是否可以清除配置/日志并hponcfg <bay number> << EOF粘贴我的脚本,我无法删除所有用户帐户。我尝试过

<USER_INFO MODE="write">
  <DELETE_USER USER_LOGIN=*>
</USER_INFO>

但我收到语法错误,因为*,似乎它只接受一个用户名。我找到了一个GET_ALL_USERS返回所有用户名的命令,但我不知道如何在循环中解析它。我该怎么做?

编辑: 尽管已经有了可接受的答案,但如果有人碰上这个帖子,并且知道如何在不恢复出厂设置的情况下删除用户,我会很感激这个提示。有时删除除管理员之外的所有用户可能会有用。

答案1

为什么不运行命令来将 ILO 单元恢复出厂设置?

看这里。

就像是:

hponcfg “Insert Blade Bay Number” << @


<RIBCL VERSION="2.0">
  <LOGIN USER_LOGIN="Dontcare" PASSWORD="UsingAutologin">
    <RIB_INFO MODE="write">
      <FACTORY_DEFAULTS/>
    </RIB_INFO>
  </LOGIN>
</RIBCL>

答案2

这是一个简单的脚本,用于删除除管理员之外的所有用户帐户......

#!/bin/bash

HPONCFG=/usr/sbin/hponcfg
[ -x $HPONCFG ] || exit 1
MYTMPDIR="$(mktemp -d)"
trap 'rm -rf -- "$MYTMPDIR"' EXIT

GETUSER=$MYTMPDIR/get_user.xml
DELUSER=$MYTMPDIR/del_user.xml

cat > $GETUSER << EOF
<RIBCL VERSION="2.0">
 <LOGIN USER_LOGIN="admin" PASSWORD="password">
  <USER_INFO MODE="read">
   <GET_ALL_USERS/>
  </USER_INFO>
 </LOGIN>
</RIBCL>
EOF

cat > $DELUSER << EOF
<RIBCL VERSION="2.0">
 <LOGIN USER_LOGIN="admin" PASSWORD="password">
  <USER_INFO MODE="write">
   <DELETE_USER USER_LOGIN="%username%"/>
  </USER_INFO>
 </LOGIN>
</RIBCL>
EOF

LIST=$($HPONCFG -f $GETUSER | sed -n '/USER_LOGIN/p' | awk -F\" '{print $2}')
if (( $(echo $LIST | wc -w ) \< 2 )); then
        echo "Nothing to remove"
        exit
fi
for item in $LIST; do
        if [ "$item" != "Administrator" ]; then
                echo "Removing user: ${item}"
                $HPONCFG -f ${DELUSER} -s username=${item} >/dev/null 2>&1
        fi
done

第一部分读取 iLO 配置中的所有用户,然后第二部分删除除管理员之外的所有用户。

相关内容