前提・実現したい事
・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
1############################################### 2# ビューを変更し、アイテム削除 3############################################### 4 5# SDK の読み込み 6[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client") | Out-Null 7[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime") | Out-Null 8 9# 取得する SharePoint Online の URL 10$url = "SharePoint Online のURL" 11$accountName = "アカウント名" 12$passWord = ConvertTo-SecureString -AsPlainText -Force "パスワード" 13 14# SharePoint Online 認証情報 15$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($accountName, $passWord) 16 17# SharePoint Client Context インスタンスを生成 18$context = New-Object Microsoft.SharePoint.Client.ClientContext($url) 19$context.Credentials = $credentials 20 21# リストを取得 22$listName = "都道府県" 23$list = $context.Web.Lists.GetByTitle($listName) 24 25# ビュー取得 26$viewName = "すべてのアイテム" 27$view.DefaultView = $true 28$view = $list.Views.GetByTitle($viewName) 29 30#-----------------------------------------------# 31①ビューを「中部地方」に切り替えるコードを書く。 32・ 33・ 34・ 35#-----------------------------------------------# 36②ビュー上の中部地方データのみ削除。 37・ 38・ 39・ 40#-----------------------------------------------# 41 42# ビュー情報更新 43$context.Load($view) 44$context.ExecuteQuery() 45 46# ビューフィールド更新 47$viewFields = $view.ViewFields 48$context.Load($viewFields) 49 50# 更新 51$context.ExecuteQuery() 52$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
回答1件
あなたの回答
tips
プレビュー