質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
SharePoint

SharePointは、マイクロソフトにより開発された、ソフトウェア開発のドキュメント管理やコラボレーションを行うプラットフォームの総称です

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

解決済

PowerShellで、SharePoint Online のアイテムを削除したい!!

mie.8
mie.8

総合スコア0

SharePoint

SharePointは、マイクロソフトにより開発された、ソフトウェア開発のドキュメント管理やコラボレーションを行うプラットフォームの総称です

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。

1回答

0評価

0クリップ

5141閲覧

投稿2017/05/16 02:24

編集2022/01/12 10:58

前提・実現したい事

・PowerShellを使い、SharePoint Online上にあるリストのアイテムを削除したいです。

【例】
リスト名:都道府県
列名1:東日本 or 西日本
列名2:地方
列名3:都道府県

【実データ例】
リスト名:都道府県
列名1:東日本,東日本,西日本・・・
列名2:関東,関東,四国・・・
列名3:東京,千葉,香川・・・

等、全47都道府県が入力された「都道府県リスト」があるとします。

【ビュー】*全ビュー、"ID"も表示させる。
1.すべてのアイテム(既定のビュー)
2.東日本
3.西日本
4.北海道地方
5.東北地方
6.関東地方
7.中部地方



11.九州・沖縄地方


★ここで、「中部地方」のみ削除したいとします。★

PowerShellで作成したバッチを起動し、
①ビューを「中部地方」に切り替える。
②ビュー上の中部地方データのみ削除。
を行いたいですが、どの様にコードを記述するか分からず、ご質問させて頂きました。

発生している問題・Error Message

・ビューの内部データは取得出来ていると思うのですが、ビューの切替(変更)の仕方が分かりません。
実行結果は、「すべてのアイテム」の物になります。

★★そもそも、PowerShellを使いビューの変更は出来ますでしょうか?
★★ビューを変更して削除しなくても、「ビュー:すべてのアイテム」 から、
対象の項目・値だけを指定して削除は出来ますでしょうか。

よろしくお願い致します。

実際のソースコード

途中まで記述したコードになります。

PowerShell

############################################### # ビューを変更し、アイテム削除 ############################################### # SDK の読み込み \[System\.Reflection\.Assembly\]::LoadWithPartialName\("Microsoft\.SharePoint\.Client"\) | Out-Null \[System\.Reflection\.Assembly\]::LoadWithPartialName\("Microsoft\.SharePoint\.Client\.Runtime"\) | Out-Null # 取得する SharePoint Online の URL \$url = "SharePoint Online のURL" \$accountName = "アカウント名" \$passWord = ConvertTo-SecureString -AsPlainText -Force "パスワード" # SharePoint Online 認証情報 \$credentials = New-Object Microsoft\.SharePoint\.Client\.SharePointOnlineCredentials\(\$accountName, \$passWord\) # SharePoint Client Context インスタンスを生成 \$context = New-Object Microsoft\.SharePoint\.Client\.ClientContext\(\$url\) \$context\.Credentials = \$credentials # リストを取得 \$listName = "都道府県" \$list = \$context\.Web\.Lists\.GetByTitle\(\$listName\) # ビュー取得 \$viewName = "すべてのアイテム" \$view\.DefaultView = \$true \$view = \$list\.Views\.GetByTitle\(\$viewName\) #-----------------------------------------------# ①ビューを「中部地方」に切り替えるコードを書く。 #-----------------------------------------------# ②ビュー上の中部地方データのみ削除。 #-----------------------------------------------# # ビュー情報更新 \$context\.Load\(\$view\) \$context\.ExecuteQuery\(\) # ビューフィールド更新 \$viewFields = \$view\.ViewFields \$context\.Load\(\$viewFields\) # 更新 \$context\.ExecuteQuery\(\) \$context\.Dispose\(\)

試した事

様々なキーワードで検索し、似たようなページを参考にしましたが上手く動作しませんでした。
【検索キーワード】
「PowerShell SharePoint ビュー」,「PowerShell SharePoint view」,「PowerShell SharePoint ビュー 変更」
「PowerShell SharePoint ビュー 編集」・・・。

補足情報(言語/FW/ツール等のVersion)

【動作環境】
・Window 7
・PowerShell Version 5.0
・SharePoint Online(Office365)

上記、コードを実行し取得した「$view」と「$context」

【$view】
Aggregations :
AggregationsStatus : Off
BaseViewId : 1
ContentTypeId : 0x
DefaultView : True
DefaultViewForContentType : False
EditorModified : False
Formats :
Hidden : False
HtmlSchemaXml : <View Name="{XXXX-XXXX-XXXX-XXXX-XXXX}" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" Type="HTML" DisplayName="すべてのアイテム" Url="○○・・・/AllItems.aspx" Level="1" BaseViewID="1" ~・・・
Id : XXXX-XXXX-XXXX-XXXX-XXXX
ImageUrl : ○○・・・
IncludeRootFolder : False
ViewJoins :
JSLink : clienttemplates.js
ListViewXml : <View Name="{XXXX-XXXX-XXXX-XXXX-XXXX}" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" Type="HTML" ~・・・
Method :
MobileDefaultView : True
MobileView : True
ModerationType :
OrderedView : False
Paged : True
PersonalView : False
ViewProjectedFields :
ViewQuery : <OrderBy><FieldRef Name="ID" /></OrderBy>
ReadOnlyView : False
RequiresClientIntegration : False
RowLimit : 30
Scope : DefaultValue
ServerRelativePath : Microsoft.SharePoint.Client.ResourcePath
ServerRelativeUrl : /○○/AllItems.aspx.
StyleId :
TabularView : True
Threaded : False
Title : すべてのアイテム
Toolbar :
ToolbarTemplateName :
ViewType : HTML
ViewData :
ViewFields : {ID, LinkTitle, Text, name...}
VisualizationInfo :
Context : Microsoft.SharePoint.Client.ClientContext
Tag :
Path : Microsoft.SharePoint.Client.ObjectPathIdentity
ObjectVersion :
ServerObjectIsNull : False
TypedObject : Microsoft.SharePoint.Client.View

【$context】
Web : Microsoft.SharePoint.Client.Web
Site : Microsoft.SharePoint.Client.Site
RequestResources : Microsoft.SharePoint.Client.RequestResources
FormDigestHandlingEnabled : True
ServerVersion : ○.○.○.○
Url : サイトのURL
ApplicationName : .NET Library
ClientTag :
DisableReturnValueCache : False
ValidateOnClient : True
AuthenticationMode : Default
FormsAuthenticationLoginInfo :
Credentials : Microsoft.SharePoint.Client.SharePointOnlineCredentials
WebRequestExecutorFactory : Microsoft.SharePoint.Client.DefaultWebRequestExecutorFactory
PendingRequest : Microsoft.SharePoint.Client.ClientRequest
HasPendingRequest : True
Tag :
RequestTimeout : 180000
StaticObjects : {[Microsoft$SharePoint$SPContext$Current, Microsoft.SharePoint.Client.RequestContext]}
ServerSchemaVersion : ○.○.○.○
ServerLibraryVersion : ○.○.○.○
RequestSchemaVersion : ○.○.○.○
TraceCorrelationId : XXXX-XXXX-XXXX-XXXX-XXXX

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

Zuishin
Zuishin

2017/05/16 08:25

私は PowerShell は多少わかりますが SharePoint の知識は皆無です。逆に、SharePoint ならわかるけど PowerShell は分からないという人もいらっしゃるでしょう。条件から PowerShell を抜いて言語不問で尋ねた方が回答がつくのではないでしょうか?
Zuishin
Zuishin

2017/05/16 08:27

もし私が回答するのであれば、手探りですることになります。また最終目標が削除ということなので、実際に削除して確認していただくことになります。つまりこのデータ、最悪他のデータも消えてしまうことになりますが、それでもよろしいでしょうか? バックアップがとってあり、リストアが容易ならそのような手段もとれます。
mie.8
mie.8

2017/05/16 08:34 編集

Zuishin様 ご回答ありがとうございます。 データに関してですが、テストデータなので全データ削除されてしまっても構いません。 作成はすぐに出来ますので。 参考サイト:https://translate\.google\.co\.jp/translate\?hl=ja&sl=en&u=http://get-spscripts\.com/2012/02/managing-creating-and-deleting\.html&prev=search こちらのサイトが、自分のやりたいことに一番近いかなーと思い、参考にしているのですが上手く行きませんでした。
Zuishin
Zuishin

2017/05/16 08:35

参考サイトの URL を間違えていませんか? 翻訳ページが開きました。
Zuishin
Zuishin

2017/05/16 08:45

アイテムの削除ということなので、https://msdn\.microsoft\.com/ja-jp/library/office/ee539976\(v=office\.14\)\.aspx を参考に、まず削除すべきアイテムを列挙できることを確認し、各アイテムの DeleteObject\(\) メソッドを呼び出し、コンテクストの ExecuteQuery\(\) を呼び出してコミットすればいいのではないかと考えています。
mie.8
mie.8

2017/05/16 09:00

参考サイトの件、失礼致しました。こちらになります。http://get-spscripts\.com/2012/02/managing-creating-and-deleting\.html
mie.8
mie.8

2017/05/16 09:00

アドバイスありがとうございます。試してみます!

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

SharePoint

SharePointは、マイクロソフトにより開発された、ソフトウェア開発のドキュメント管理やコラボレーションを行うプラットフォームの総称です

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Office 365

Office 365は、マイクロソフトが販売している企業向けクラウドベースのグループウエアサービス。電子メールや予定表、Webサイト構築、オンラインストレージ、ビデオ会議などビジネスで必要な機能を備えています。クラウドサービスのため、自社での専用サーバーの設置の必要がないことが特徴です。