0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft365(Office365)の認証情報を削除する。

0
Last updated at Posted at 2026-02-22

はじめに

背景としてはへーしゃでは現場や常駐先より本社に戻ってきた社員が一時的(当日返却)に利用するPCがあります。

がっ、1つのアカウントを使いまわしているので以前にMicrosoft365を利用したユーザーがサインアウトしていないと、情報が残ってしまうし、サインアウトしていても情報は残っていると懸念点がありました。
(デスクトップ、ドキュメント、ダウンロード、ピクチャーフォルダなどはシャットダウン時に自動削除するようにスクリプト設定済みだが、Microsoft365については設定していなかった)

その際思いついたのが今回のコマンドであります。
※ユーザーデータ自体削除すれば済む話しではありますが…

【注意】

ご利用は最新の公式情報を参照の上、自己責任でお願い申し上げます。
また、ある程度コマンドプロンプトや、PowerShellを実行経験済みの方が参考にされる事をお勧めします。

※本記事では以下の部分を省略しております。

①「.bat」ファイルの作成&保存方法

一部手順を省略している場合や情報が古い可能性があり、お使いのOS環境によりましては上手く動作しない場合がございます。



手順

1.「.bat」ファイルを作成する

2.実行するだけ




1.「.bat」ファイルを作成する


.batファイルのコード
<# : 
@echo off & setlocal EnableDelayedExpansion
if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
set BATCH_ARGS=%*
for %%A in (!BATCH_ARGS!) do set "ARG=%%~A" & set "ARG=!ARG:'=''!" & set "PWSH_ARGS=!PWSH_ARGS! "'!ARG!'""
endlocal &  Powershell -NoProfile -Command "$input|&([ScriptBlock]::Create((gc '%~f0'|Out-String)))" %PWSH_ARGS%
exit/b
: #>

# ここから下にPowerShellスクリプトを書き込むとコマンドプロンプトでPowerShellを実行できるようになる。
# ----------------------------------------------------------------------------------
# ========================================Office 365 Apps EnterPriseの強制ログアウト========================================

# --- 隠しフォルダ表示を有効化 ---
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name Hidden -Value 1
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name ShowSuperHidden -Value 1

# --- エクスプローラーの再起動 ---
Get-Process explorer -ErrorAction SilentlyContinue | Stop-Process -Force
Start-Process explorer.exe
         
 
         # ライセンストークンを削除する

         remove-item "$Env:LocalAppData\Microsoft\Office\Licensing" -Force -Recurse
 
         #共有コンピューター ライセンス認証の場合は以下のフォルダ

         remove-item "$Env:LocalAppData\Microsoft\Office\16.0\Licensing" -Force -Recurse
 
         #ライセンスキーを削除する

#         $LicenseKey = ((cscript "$Env:ProgramFiles\Microsoft Office\Office16\ospp.vbs" /dstatus | Select-String 'last 5 chara') -split ': ')[1]

#         if ($LicenseKey -ne $Null) {cscript "$Env:ProgramFiles\Microsoft Office\Office16\ospp.vbs"  /unpkey:$LicenseKey}
 
         #レジストリ上のライセンスキーも削除する

#         reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Licensing" /f
 
         #OfficeアカウントIDを削除する

         reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Identity" /f

         #共有アカウントの場合は以下のレジストリキー

         $Sid = (Get-WmiObject win32_Useraccount | Where-Object {$_.caption -like "*$env:Computername\$env:UserName*"}).sid

         reg delete "HKEY_USERS\$SID\SOFTWARE\Microsoft\Office" /f
 
         #Microsoftアカウントからサインアウト

         remove-item "$Env:LocalAppData\Packages\Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy\AC\TokenBroker\Accounts" -force -Recurse

         remove-item "$Env:LocalAppData\Packages\Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy\AC\TokenBroker\Accounts" -force -Recurse

         remove-item "$Env:LocalAppData\Microsoft\TokenBroker\Cache" -force -Recurse

         remove-item "$Env:LocalAppData\Microsoft\OneAuth" -force -Recurse

         remove-item "$Env:LocalAppData\Microsoft\IdentityCache" -force -Recurse
 
         # キャッシュ削除

         cmd /c 'rmdir "%Appdata%\Microsoft\Office" /s /q'

         cmd /c 'rmdir "%LOCALAPPDATA%\Microsoft\Office" /s /q'

         cmd /c 'rmdir "%LOCALAPPDATA%\Microsoft\IdentityCache" /s /q'

         reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office" /f
 
         # 資格管理情報マネージャーにあるログイン情報の削除

         cmdkey /delete:MicrosoftAccount:target=SSO_POP_Device
 
 
         

#====================================================================================================================================================================================================================================================================================================================

         if(-not [Windows.Foundation.Metadata.ApiInformation,Windows,ContentType=WindowsRuntime]::IsMethodPresent("Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager", "FindAllAccountsAsync"))

         {

             throw "This script is not supported on this Windows version. Please, use CleanupWPJ.cmd."

         }
 
         Add-Type -AssemblyName System.Runtime.WindowsRuntime
 
         Function AwaitAction($WinRtAction) {

           $asTask = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and !$_.IsGenericMethod })[0]

           $netTask = $asTask.Invoke($null, @($WinRtAction))

           $netTask.Wait(-1) | Out-Null

         }
 
         Function Await($WinRtTask, $ResultType) {

           $asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]

           $asTask = $asTaskGeneric.MakeGenericMethod($ResultType)

           $netTask = $asTask.Invoke($null, @($WinRtTask))

           $netTask.Wait(-1) | Out-Null

           $netTask.Result

         }

         $provider = Await ([Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager,Windows,ContentType=WindowsRuntime]::FindAccountProviderAsync("https://login.microsoft.com", "organizations")) ([Windows.Security.Credentials.WebAccountProvider,Windows,ContentType=WindowsRuntime])

         $accounts = Await ([Windows.Security.Authentication.Web.Core.WebAuthenticationCoreManager,Windows,ContentType=WindowsRuntime]::FindAllAccountsAsync($provider, "d3590ed6-52b3-4102-aeff-aad2292ab01c")) ([Windows.Security.Authentication.Web.Core.FindAllAccountsResult,Windows,ContentType=WindowsRuntime])

         $accounts.Accounts | % { AwaitAction ($_.SignOutAsync("d3590ed6-52b3-4102-aeff-aad2292ab01c")) }


Write-Host "エクスプローラー設定を元に戻しますEnterを押してください。"
Read-Host

Clear-Host

# --- 隠しフォルダ表示を無効化 ---
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name Hidden -Value 2
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name ShowSuperHidden -Value 2

# --- エクスプローラーの再起動 ---
Get-Process explorer -ErrorAction SilentlyContinue | Stop-Process -Force
Start-Process explorer.exe
   
Write-Host "完了しました。終了するにはEnterを押してください。"
Read-Host 




参考サイト

https://officesupportjp.github.io/blog/clla7sav30001akkj8j1m1u3f/

https://learn.microsoft.com/ja-jp/office/troubleshoot/activation/reset-office-365-proplus-activation-state

以上です。最後まで閲覧いただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?