Microsoft ファイルのホスティングおよび同期サービス。
こんにちは、
コミュニティへのご連絡ありがとうございます。 OneDriveのバージョン履歴を一括で削除するのがどれほど大変か、お気持ちお察しします。 お手伝いさせていただきますね。
OneDrive (Microsoft 365) でバージョン履歴を一括削除するのは、ちょっと面倒かもしれません。 マイクロソフトには、複数のファイルのバージョン履歴を一度に消せる機能が標準装備されてないんです。 でもご心配なく! PowerShellやサードパーティ製のツールを使うか、普通にファイルを1つずつ処理すれば何とかなります。
OneDriveのバージョン履歴を一括で消すには、次の手順でやってみてください。 始める前に、大事なデータは必ずバックアップしてくださいね。 バージョン履歴を消しちゃうと元に戻せないので。 まず、必要なモジュールをインストールします。 PowerShellを管理者として開いて、次のコマンドを実行してSharePoint Online Management Shellをインストールします。
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force
「Y」を入力してEnterキーを押して確認を求められたら、そうしてください。
次に、OneDriveに接続します。 次のコマンドを実行して、OneDriveアカウントに接続します。
Connect-SPOService -Url https://<あなたのドメイン>-admin.sharepoint.com
<あなたのドメイン> を実際のドメインに置き換えてください。 プロンプトが表示されたら、Microsoft 365の管理者アカウントでサインインします。
これでバージョン履歴を削除できます。 次のPowerShellスクリプトを使って、OneDriveにあるすべてのファイルのバージョン履歴を削除します。
$siteUrl = https://<あなたのドメイン>-my.sharepoint.com/personal/<あなたのメールアドレス>
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$credentials = Get-Credential
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
$web = $ctx.Web
$ctx.Load($web)
$ctx.ExecuteQuery()
$list = $web.Lists.GetByTitle(ドキュメント)
$ctx.Load($list)
$ctx.ExecuteQuery()
$items = $list.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
$ctx.Load($items)
$ctx.ExecuteQuery()
foreach ($item in $items) {
$file = $item.File
$ctx.Load($file)
$ctx.ExecuteQuery()
$versions = $file.Versions
$ctx.Load($versions)
$ctx.ExecuteQuery()
foreach ($version in $versions) {
$version.DeleteObject()
}
$ctx.ExecuteQuery()
Write-Host 削除されたファイルのバージョン: $($file.Name)
}
<あなたのドメイン> と <あなたのメールアドレス> は、実際のOneDriveのURLとメールアドレスに置き換えてくださいね。 このスクリプトを実行すると、OneDrive内の全ファイルのバージョン履歴が消えます。
これで問題が解決すれば幸いです。 もし何か疑問点があれば、遠慮なくご連絡ください。
よろしくお願いいたします。
マルセロ