none
特定の文字または数字を抜き取る RRS feed

  • 質問

  • お世話になります。

    Get-Smbopenfileにてでたoutputをテキストに出してその中からClientComputerNameのIPアドレスのみを摘出していのですが。

    Get-Smbopenfile |Where-Object {$_.ClientUserName -Like "Hoge"} > C:\Temp\connecteduser.txt

    テキストの中はこのようになります。

    FileId                SessionId             Path                 ShareRelativePath    ClientComputerName   ClientUserName      
    ------                ---------             ----                 -----------------    ------------------   --------------      
    674041430953          670014898193          D:\HomeShare\Hoge                      10.1.2.3       Domain\hoge

    最終的にはそのIPを摘出してnetstat -a 10.1.2.3 コマンドにつなげてNetNiosNameを出したいのですがいい方法があるでしょうか?

    よろしくお願いします。

    2016年3月16日 21:07

回答

  • ・ファイルに書き出すのと、netstatを実行するのは別のタイミングでしょうか。同時で良いのなら、次のような記述が可能です。

    Get-Smbopenfile | ? (略) | tee "test.txt" | %{netstat -a $_.ClientComputerName}

    ・リダイレクトでそのまま出力しなければいけませんか。出力形式にこだわらないのであれば、Export-Csvでcsvファイルとして出力し、そのcsvファイルをImport-Csvでオブジェクトとして再構築できます。

    Get-Smbopenfile | ? (略) | Export-Csv "test.csv"
    Import-Csv "test.csv" | %{netstat -a $_.ClientComputerName}
    2016年3月17日 1:39

すべての返信

  • ・ファイルに書き出すのと、netstatを実行するのは別のタイミングでしょうか。同時で良いのなら、次のような記述が可能です。

    Get-Smbopenfile | ? (略) | tee "test.txt" | %{netstat -a $_.ClientComputerName}

    ・リダイレクトでそのまま出力しなければいけませんか。出力形式にこだわらないのであれば、Export-Csvでcsvファイルとして出力し、そのcsvファイルをImport-Csvでオブジェクトとして再構築できます。

    Get-Smbopenfile | ? (略) | Export-Csv "test.csv"
    Import-Csv "test.csv" | %{netstat -a $_.ClientComputerName}
    2016年3月17日 1:39
  • Hongliang様

    返事が遅れて申し訳ございません。

    Get-Smbopenfile | ? (略) | tee "test.txt" | %{nbtstat -a $_.ClientComputerName}

    上記の記述でうまくいきました。

    どうもありがとうございました。

    2016年3月22日 17:09