アプリ版:「スタンプのみでお礼する」機能のリリースについて

Powershell2.0(Windows7 Pro)にてNASの共有フォルダ一覧を取得する方法を探しています。

---------------------------------------------
NASのネットワークパス:\\NAS001
【構成】
   \\NAS001\share001
\share002
\share003
\share0xx
---------------------------------------------
上記の構成の場合に、share001~share0xx の共有フォルダ一覧情報を取得したいと考えています。
最終的には、複数のNASに対して全ての共有フォルダ一覧を取得し、更に内部にある拡張子「*.abc」のファイル情報を自動取得するスクリプトを記載したいと考えています。

get-chileItem \\NAS001
とした場合には、\\NAS001が存在しないため検出できませんとのエラー
get-chileItem \\NAS001\*
とした場合には、なにも取得できません。

いろいろ探しましたが、見つけることができず、皆様のお知恵を拝借できればと存じます。
宜しくお願い板hします。

A 回答 (1件)

PowerShell で共有フォルダー自体を列挙するにはいくつか選択肢がありそうですが、実用で考えると制限があるようです。


WMI を使って調べるには相手が Windows じゃなきゃダメっぽい。
gwmi -Class Win32_Share -ComputerName fst001 -Credential (Get-Credential)
しかもユーザー資格を求められてしまう。 ダイアログを出さないでユーザ資格を指定する方法は調査すれば出てくると思います。

これも Windows に絞られてしまうのですが Windows 8.1 や Windows Server 2012 以降同士であれば SmbShare というモジュールが追加されているようです。
Get-SmbShare というコマンドが使えるかもしれません。

で、相手が NAS であるとか、諸々考えれば結局のところ従来の NET VIEW コマンドの実行結果を解析してフォルダー名だけ取り出したほうが早いかもしれません。
(net view \\NAS001) | % {if($_.IndexOf(' Disk ') -gt 0){$_.Split(' ')[0] }}
    • good
    • 4
この回答へのお礼

解決しました

x-1919様ありがとうございます!!
助かりました。Powershellコマンドばかり探していて全くの盲点でした^^;

お礼日時:2016/02/08 14:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!