以前もちょっと取り上げたV3で追加になったコマンド。
実際に使う機会があったのでサンプルとして記載しておく。
かつてノーツで作られていた議事録をSharePointに移行したリストがあったのだが、移行ツールに不具合があるのか稀に添付文書のリンク切れが発生している。
そこで、リンク切れをチェックしてリストアップするスクリプトを書いた。
リスト形式(一覧)では添付の有無しか判らず、そのパスは明細を読む必要がある。
そこで、リストを一旦CSVに落として添付があるものについて「Invoke-WebRequest」で読み込んでみる。
そこから「href」に「Attachment」(すなわち添付)の文字があるものを抽出して存在チェックする。
とりあえず存在チェック自体も「Invoke-WebRequest」で読んでみてエラーになるかどうかで判断している。(これについては他にもっと良い方法が有るのかも・・・)
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 | $url = "http://server/sites/hoge/MEETING/Lists/List/DispForm.aspx?ID={0}" $csv = Import-Csv "F:\Desktop\打ち合わせ報告書.csv" -Encoding default $csv | %{ if($_.添付 -eq 1){ $_.整理番号 | Tee-Object -Variable number $urlString = $url -f $_.ID $web = Invoke-WebRequest -uri $urlString -UseDefaultCredentials $web.links | ?{$_.href -like "*attachment*"} | %{ $_.href | %{ Invoke-WebRequest -uri $_ -UseDefaultCredentials | Out-Null if($? -eq $false){$number >> "F:\Desktop\整理番号.txt"} } } } } |
0 件のコメント:
コメントを投稿