前回の記事で、Notes文書をXMLファイルとして書き出しすることができたので、このXMLファイルをPowerShellでSharePointに取り込みできれば、Notes→SharePointのマイグレーションができると思ったのですが…。
SharePointでの取込処理
最初に試したのは、Add-PSSnapin コマンドレットでした。
MicroSoftの説明より
The Add-PSSnapin cmdlet adds registered Windows PowerShell snap-ins to the current session. After the snap-ins are added, you can use the cmdlets and providers that the snap-ins support in the current session.
To add the snap-in to all future Windows PowerShell sessions, add an Add-PSSnapin command to your Windows PowerShell profile.
ソースコードを書いて実行した結果、Add-PSSnapin コマンドレットは、SharePointが端末にインストールされていないと利用できないことが判明しました。(私が利用しているのはSharePointOnline)
1行目でコケたコードですが、SharePointがインストールされている端末を使ったときの役に立つかもしれないので、備忘としてサンプルコードだけ置いておきます。
PowerShellのXML取込処理サンプルコード
# SharePointを利用するスナップイン
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
# Const
$SiteURL="https://xxxxx.sharepoint.com/"
$ListName="TestList"
$XMLFile ="C:\Temp\Document.xml"
$web = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
Try{
#SharePoint呼び出し
$web = Get-SPWeb $SiteURL
$ProjectList = $web.Lists[$ListName]
#XMLファイル呼び出し
[xml]$ProjectXmlFile = Get-Content $XMLFile
#XMLのアイテムを取得
Foreach ($XMLProject in $ProjectXmlFile.projects.project)
{
$NewProject = $ProjectList.Items.Add()
$NewProject["Uname"] = $XMLProject.Uname
#$NewProject["xxx01"] = $XMLProject.xxx01
$NewProject.Update()
Write-Host "インポート成功"
}
$Ctx.ExecuteQuery()
}
Catch {
write-host -f Red "インポートエラー" $_.Exception.Message
}
SharePointOnlineでの取込処理
MicroSoft の「SharePoint Online 管理シェルを使用して作業を開始する」を参考にして、最新の SharePoint Online 管理シェルをインストールして、SharePoint Online に接続……という方法を試したのですが
Connect-SPOService -Url https://xxxxxx.sharepoint.com -Credential Yamada-san@xxxxxx.onmicrosoft.com
と入力をすると
Connect-SPOService : Current site is not a tenant administration site.
が返ってきます。
色々と調べた結果、.sharepoint.com の前に「-admin」のパラメータを付ければ良いということがわかったのですが…。
Connect-SPOService -Url https://xxxxxx-admin.sharepoint.com -Credential Yamada-san@xxxxxx.onmicrosoft.com
Connect-SPOService : リモート サーバーがエラーを返しました: (401) 許可されていません
という結果でした。
私が使用しているO365アカウントは一般ユーザー用で、管理者用ではないため、PowerPointでSharePointOnlineでの接続はできないようです。
EXCELでの取込処理
MicroSoft 「Excel の XML の概要」
を参考にして、EXCELの[開発]タブからXMLファイルをインポートすることはできたのですが、以下の問題がありました。
- アイテムがNULLの場合、アイテム名がデータと判断され、複数行となってしまう。
- 日付時刻が数値データとして取り込まれる。
取り込んだExcelファイルの状態
また、XMLファイルの冒頭にを記述しないと、アイテムの値が日本語の時に「テキストの内容に無効な値がありました」エラーが発生して、データの取込が開始されません。
今回は成功しませんでしたが、何かの役に立つかと思って、記録として残しておきます。なにか、助言がありましたら、ご指摘いただけるとありがたいです。