PowerShellから直接ssh接続でNetAppにログインして設定情報を取得してCSV化するスクリプト


先日「NetAppの設定内容をcsvファイルに出力したい」という記事で手動でやる手法について記載した。

最近のWindowsだと直接sshコマンドが実行できるようになっているので、NetApp側に公開鍵を登録して、パスワードなしでアクセスできるように設定した上で、PowerShellスクリプトを実行することで、設定をスクリプト化できないかを実施してみた。

とりあえず全項目とればいいか、と「-showallfields true」設定でやっているが、下記スクリプトはONTAP 9.10.1の場合のもので、バージョンが異なると全部の項目数が変わる可能性があるので、一度手動で「set -privilege admin -rows 0 -units GB -showallfields true ; vserver cifs share show”」を実行し、出力される項目名を確認しておくこと

# タブ区切りのため `t を指定
$count=0
$flag=0
$results=@()

$results=cmd /c ssh.exe -l admin NetAppクラスタ "set -privilege admin -rows 0 -showseparator `t -units GB -showallfields true ; vserver cifs share show" | ForEach-Object {
    $line=$_.split("`t")
    if(($line[0] -eq "vserver") -and ($flag -eq 0)){
        $flag=1
        $titlecount=$count
    }
    if(($flag -eq 1) -and ($count -gt ($titlecount+1))){
        $output = New-Object -TypeName psobject
        $output | Add-Member -MemberType NoteProperty -Name "vserver" -Value $line[0]
        $output | Add-Member -MemberType NoteProperty -Name "share-name" -Value $line[1]
        $output | Add-Member -MemberType NoteProperty -Name "cifs-server" -Value $line[2]
        $output | Add-Member -MemberType NoteProperty -Name "path" -Value $line[3]
        $output | Add-Member -MemberType NoteProperty -Name "share-properties" -Value $line[4]
        $output | Add-Member -MemberType NoteProperty -Name "symlink-properties" -Value $line[5]
        $output | Add-Member -MemberType NoteProperty -Name "file-umask" -Value $line[6]
        $output | Add-Member -MemberType NoteProperty -Name "dir-umask" -Value $line[7]
        $output | Add-Member -MemberType NoteProperty -Name "comment" -Value $line[8]
        $output | Add-Member -MemberType NoteProperty -Name "acl" -Value $line[9]
        $output | Add-Member -MemberType NoteProperty -Name "attribute-cache-ttl" -Value $line[10]
        $output | Add-Member -MemberType NoteProperty -Name "volume" -Value $line[11]
        $output | Add-Member -MemberType NoteProperty -Name "offline-file" -Value $line[12]
        $output | Add-Member -MemberType NoteProperty -Name "vscan-fileop-profile" -Value $line[13]
        $output | Add-Member -MemberType NoteProperty -Name "max-connections-per-share" -Value $line[14]
        $output | Add-Member -MemberType NoteProperty -Name "force-group-for-create" -Value $line[15]
        $output
    }
    $count++
}

$results | Export-Csv test.csv -Encoding UTF8 -NoTypeInformation  -NoClobber

ONTAPのCIFSファイルサーバで複数のホスト名でアクセスできるようにしたい


ONTAPでCIFSファイルサーバを作る時、本来のホスト名とは違うホスト名でもアクセスできるようにしておきたい、ということがある。

(サーバ統合で2台が1台になるけど、どちらでも使える様にした、など)

NetAppの標準設定では、SVMをActive Directoryに参加させる際に指定したNetBIOS名とIPアドレスでのアクセス以外は受け付けないようになっている。

例えば、下記の様に「システムエラー 59」「予期しないネットワーク エラーが発生しました。」といったエラーが出力される。

C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。

'winserver' のユーザー名を入力してください: ADOSAKANA\testuser1
winserver のパスワードを入力してください:
システム エラー 59 が発生しました。

予期しないネットワーク エラーが発生しました。


C:\Users\Administrator>

SVMの設定を確認すると下記の様になっている。

netapp9101::> vserver cifs show -ins
                                          Vserver: svm0
                         CIFS Server NetBIOS Name: SVM0
                    NetBIOS Domain/Workgroup Name: ADOSAKANA
                      Fully Qualified Domain Name: ADOSAKANA.LOCAL
                              Organizational Unit: CN=Computers
Default Site Used by LIFs Without Site Membership:
                                   Workgroup Name: -
                             Authentication Style: domain
                CIFS Server Administrative Status: up
                          CIFS Server Description:
                          List of NetBIOS Aliases: -
 netapp9101::>

上記の場合、「svm0」とIPアドレス指定でのアクセス以外は受け付けない。

他のホスト名でもアクセスできるようにするにはNetBIOS Aliasを追加する必要がある。

(なお、別途、標準では無効となっているNetBIOSを有効にする必要がある。ただし、これを有効にした場合、NetApp SVM名と同じNetBIOS名の告知も始めてしまうので注意)

netapp9101::> vserver cifs add-netbios-aliases -netbios-aliases WINSERVER -vserver svm0
netapp9101::> vserver cifs show -ins
                                          Vserver: svm0
                         CIFS Server NetBIOS Name: SVM0
                    NetBIOS Domain/Workgroup Name: ADOSAKANA
                      Fully Qualified Domain Name: ADOSAKANA.LOCAL
                              Organizational Unit: CN=Computers
Default Site Used by LIFs Without Site Membership:
                                   Workgroup Name: -
                             Authentication Style: domain
                CIFS Server Administrative Status: up
                          CIFS Server Description:
                          List of NetBIOS Aliases: WINSERVER
 netapp9101::>

さて、これでアクセスできるようになったかな?と試してみるが、同じエラーが継続

C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。

'winserver' のユーザー名を入力してください: ADOSAKANA\testuser1
winserver のパスワードを入力してください:
システム エラー 59 が発生しました。

予期しないネットワーク エラーが発生しました。


C:\Users\Administrator>

NetApp KB:Access by NETBIOS Alias fails に該当する問題だった。

今回のADOSAKANAドメインには、既に「WINSERVER」としてコンピュータアカウントがあった。

これが残っていると問題が発生するらしい。

まず、Windows上からコンピュータアカウントWINSERVERに関する情報をsetspn -lコマンドで確認すると下記の様な内容で登録されていた。

C:\Users\Administrator>setspn -l winserver
次の項目に登録されている CN=WINSERVER,CN=Computers,DC=ADOSAKANA,DC=LOCAL:
        HOST/winserver.adosakana.local
        RestrictedKrbHost/winserver.adosakana.local
        HOST/WINSERVER
        RestrictedKrbHost/WINSERVER
        WSMAN/winserver.adosakana.local
        WSMAN/WINSERVER
        TERMSRV/winserver.adosakana.local
        TERMSRV/WINSERVER

C:\Users\Administrator>

次に、NetApp SVMとして登録されているsvm0について確認してみると、だいぶ少ない内容で登録されていた。

C:\Users\Administrator>setspn -l svm0
次の項目に登録されている CN=SVM0,CN=Computers,DC=ADOSAKANA,DC=LOCAL:
        HOST/SVM0
        HOST/svm0.adosakana.local

C:\Users\Administrator>

まず、WindowsのActive Directgory側でコンピュータアカウント「WINSERVER」を削除。

続いてNetApp KBにあるようにsetspn -aコマンドでWINSERVERをsvm0に追加する形で登録

C:\Users\Administrator>setspn -a HOST/WINSERVER svm0
ドメイン DC=ADOSAKANA,DC=local を確認しています

CN=SVM0,CN=Computers,DC=ADOSAKANA,DC=LOCAL の ServicePrincipalNames を登録しています
        HOST/WINSERVER
更新されたオブジェクト

C:\Users\Administrator>

どのような登録になったのかを確認してみると、svm0の出力にwinserverが追加されており、winserverというエントリは無くなったことが分かる。

C:\Users\Administrator>setspn -l svm0
次の項目に登録されている CN=SVM0,CN=Computers,DC=adosakana,DC=local:
        HOST/SVM0
        HOST/svm0.adosakana.local
        HOST/WINSERVER

C:\Users\Administrator>setspn -l winserver
FindDomainForAccount: DsGetDcNameWithAccountW への呼び出しが失敗し、戻り値 0x00000525 が返されました
アカウント winserver は見つかりませんでした

C:\Users\Administrator>

この状態で先ほどエラーになったnet useコマンドを実行すると、正常に実行ができる。

C:\Users\Administrator>net use \\winserver\testvol
\\winserver\testvol のパスワードが無効です。

'winserver' のユーザー名を入力してください: adosakana\testuser1
winserver のパスワードを入力してください:
コマンドは正常に終了しました。


C:\Users\Administrator>

Lifebook U938/SやMU937のバッテリーについてのメモ


ほぼ同型であるLiebook U938/SとFUTRO MU937を入手して、いろいろ資料を調べていると、「大容量バッテリー」というものが存在しているらしい、というのを知る

うちにあるジャンク屋で買ったLifebook U938/Sのバッテリーはこんな感じ

FUTRO MU937の1台目はこう

実家にもっていったFUTRO MU937の2台目の方はこう

どちらも同じサイズで、「容量min 3310mAh」とでかく書いてあったので、これが標準サイズなのかと勘違いしていた。

で・・・検索で見つけた「富士通LIFEBOOK U938/S メモリ増設・SSD交換してみた」に掲載されている写真・・・

富士通LIFEBOOK U938/S メモリ増設・SSD交換してみた より引用

そう、標準サイズは同じく「容量 min 3310mAh」とかいてあるけど、あからさまにサイズが小さかったのです。

で・・・バッテリーに書いてある文面を確認してみると、同じ大きさにみえるMU937とLifebook U938/Sのバッテリーでしたが、Lifebookと2台目のMU937は14.4V構成と強力なものでした。

どおりで、1台目のMU937よりバッテリーが減らないわけですね

ノート機種富士通型番富士通P/NProduct No
ジャンクMU937 1台目(Win10 LTSB 2015版)FPB0339SP/N:CP749819-01FPCBP5357.2V 25Wh 3490mAh
ジャンクMU937 2台目
(Win10 LTSB 2016版)
FPB0340SP/N:CP749820-01FPCBP53614.4V 50Wh 3490mAh
ジャンクLifebook U938/SFPB0340SP/N:CP76085?-01FPCBP53614.4V 50Wh 3490mAh
標準Liebook U938/SFPB0343S ?P/N:CP749821-01FPCBP544 ?7.2V 25Wh 3490mAh
ジャンクLifebook U938/S 2台目FPB0343SP/N:CP749821-01FPCBP5447.2V 25Wh 3490mAh
ジャンクLifebook U938/S 3台目 LTEモデルFPB0339SP/N:CP737633-01FPCBP5357.2V 25Wh 3490mAh

7.2V 25WhバッテリーのMU937

14.4V 50WhのU938/S


2023/07/19追加

また違うU938/Sを入手したところ、こちらのバッテリーはFPB0343S 7.2V 3490mAhでした。


2023/12/21追加

LTEモデルのU938/S。FPCBP535なんだけど、よく見たら富士通P/Nの番号が違った

WiFi/Bluetooth搭載のOrange Pi 5Bが登場する?


Orange Pi 公式のビルドスクリプト の最近の更新に「Update for Orange Pi 5 v1.1.2 and support Orange Pi 5B」というのがあった

内容を確認すると

options+=("orangepi5"                 "Rockchip  RK3588S octa core 4-16GB RAM GBE USB3 USB-C NvME")
#options+=("orangepi5b"                 "Rockchip  RK3588S octa core 4-16GB RAM GBE USB3 USB-C WiFi/BT")

とある。

M.2スロットが削除され、WiFi/Bluetoothが搭載されている、ということになっている。

最初の発表の時に出てたスペックがOrange Pi 5Bとして登場してくるようだ

価格がどれくらいの違いがでるのかちょっと気になりますね

ドコモのらくらくスマートフォン ユーザについての設定確認でやったこと


まあ、実家から、ドコモのらくらくスマートフォン F-52Bを自宅のWiFi環境に繋いでからメールが取れなくなってる、というレスキュー要請があったので見に行った。

その際に、いまのアカウント情報とか聞いて見たんだが、そういうのは店の人にやってもらった、というのだが、アカウントに関する資料をもらっていなかった模様。

これは積んだかな?と思いつつ調べていったらなんとかなったのでメモ書きとして残しておく

まず、これだけは最低必要なことは以下の2つ

・スマホをドコモのSPモード接続で使うこと(WiFiでは駄目)
・ドコモのネットワーク暗証番号(数字4桁)が分かっていること

この状態であれば、スマホからdメニューをたどっていくことで、以下を調べることができる。

・dアカウント名
・dアカウントのパスワード(画面に表示されます)
・IMAP接続用ユーザ名
・IMAP接続用パスワード

Googleアカウントについては、gmailの画面などからメールアドレスを確認することができるかと思います。

パスワードは、まずは、dアカウントのパスワードと同じものを入力して通るか確認します。

通らなかった場合は、パソコンなどからgmailにアクセスし、Googleのメールアドレスを入力して、「パスワード不明」を選び、パスワードの再設定を行います。

そうすると、スマホ側に確認がくるので、はい、と答えると、パソコン側でパスワードの再設定ができるようになるので、新しいパスワードを設定します。

これでなんとかアカウントに関する情報を調べることができました。

で・・・冒頭のメールが取れない、という件は、SPモードメールはdアカウントの登録がちゃんとされていないとWiFi経由で取得出来ないから、という話だったようでした。

なので、dアカウントに関する設定を行うことで、メールは復旧しました。