Dell EMC Unity、VNXe: UEMCLI使用時の管理者パスワードの特殊文字に関する問題(ユーザー修正可能)

概要: 一部の特殊文字は、さまざまなオペレーティング システムで特定の方法で解釈されます。

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

現象



LinuxおよびMicrosoftオペレーティング システム上のVNXeおよびDell EMC UnityアレイでUEMCLIを使用する場合、パスワード内の一部の特殊文字は、パスワード文字列の一部としてではなく、OSによって決定されるものとして解釈されます

これがLinux OSで発生すると、次のエラーが表示されます(パスワードの$に注意してください)。

[user@localhost ~]$ uemcli -d <IP> -u linuxtest -p xRz4bJH$Wxv /sys/general show
Storage system address: <IP>
ストレージ システム ポート: 443
HTTPS接続

操作に失敗しました。エラー コード:0x6000001
リクエストされた操作を実行するためのアクセス権がありません。(エラー コード:0x6000001)


Microsoft Windowsでは、「$」は異なる扱いを受けませんが、二重引用符は扱います。パスワードに二重引用符が含まれている場合、エラーは報告されませんが、予期されるコマンド出力の代わりに、ヘルプ構文が提供されます。

C:\Users\user>uemcli -d <IP> -u microsofttest -p Pass"word123! /sys/general showを実行します
[クライアント オプションに関するヘルプの表示]
uemcli-help {CMDHELP |CMDの |-アップロード |-ダウンロード |
            -バージョン |-saveUser |-removeUser |-removeAllUsers |
            -デフォルト |-certList |-certDel |-certClear |
            -certImport}

原因

これは、特定の文字がオペレーティング システムにとって特別な意味を持つか、文字列内の単純な文字以外の何かを表すためです。  

これはUnisphere CLIのバグではなく、オペレーティング システムの機能の問題です

特殊文字とエスケープの詳細については、OSベンダーのドキュメントを確認してください。

解決方法

これを回避する最も簡単な方法は、UEMCLIで-pスイッチの代わりに-securePasswordスイッチを使用することです。これにより、ユーザーはパスワードを入力するように求められますが、画面やログには表示されません。   

[user@localhost ~]$ uemcli -d <IP> -u linuxtest -securePassword /sys/general show
Password:               
<<<<<<<< 入力時にパスワードが画面に出力されません
ストレージ システム アドレス: <IP>
ストレージ システム ポート: 443
HTTPS接続

1:    システム名 = Unityアレイ
    モデル = Unity 300
プラットフォーム タイプ = EMCストレージ システム
製品シリアル番号 = CKM00161XXXXXX
自動フェールバック = オン
稼働状態 = 重大な障害 (20)


Unisphere CLIを主にスクリプト作成に使用する場合は、次の推奨事項に従ってください。特殊文字をエスケープする標準的な方法は、特殊文字の前にバックスラッハ (\) を置くことです。この方法は、Windows OSとLinux OSの両方で機能します。

Linuxでこの問題を回避するには、パスワードを一重引用符で囲み、特殊文字をバックスラッシュでエスケープします(一重引用符のみを使用しても機能しません)。  

一重引用符で囲まれ、特殊文字をエスケープすると、コマンドは成功します。   

[user@localhost ~]$ uemcli -d <IP> -u linuxtest -p 'xRz4bJH\$Wxv' /sys/general show
Storage system address: <IP>
ストレージ システム ポート: 443
HTTPS接続

1:    システム名 = Unityアレイ
    モデル = Unity 300
プラットフォーム タイプ = EMCストレージ システム
製品シリアル番号 = CKM00161XXXXXX
自動フェールバック = オン
稼働状態 = Major failure (20)


エスケープなしで一重引用符で囲むと、コマンドが失敗する。   

[user@localhost ~]$ uemcli -d <IP> -u linuxtest -p 'xRz4bJH$Wxv' /sys/general show
Storage system address: <IP>
ストレージ システム ポート: 443
HTTPS接続

操作に失敗しました。エラー コード:0x6000001
リクエストされた操作を実行するためのアクセス権がありません。(エラー コード:0x6000001)


Windowsオペレーティング システムでこの問題を回避するには、バックスラッシュを使用して、コマンドが失敗する原因となっている特殊文字をエスケープするだけで済みます。この例では、二重引用符文字 (") によってパスワードが失敗するため、バックスラッシュでエスケープされます。  

C:\Users\user>uemcli -d <IP> -u microsofttest -p Pass\"word123! /sys/general show
Storage system address: <IP>
ストレージ システム ポート: 443
HTTPS接続

1:    システム名 = Unityアレイ
モデル = Unity 300
プラットフォーム タイプ = EMCストレージ システム
製品シリアル番号 = CKM00161XXXXXX
、自動フェールバック = オン
稼働状態 = 重大な障害(2


対象製品

Dell EMC Unity Family

製品

Dell EMC Unity Family, VNX1 Series, VNX2 Series, VNXe1 Series, VNXe2 Series
文書のプロパティ
文書番号: 000062950
文書の種類: Solution
最終更新: 07 11月 2025
バージョン:  3
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。