試用期間後にSQLサービスを再起動して使用を続行する
この問題は、通常、SQL Serverの評価インスタン 有効期限が切れていてもSQLを使用し続けることができる回避策を示します。
私のように、SQLインスタンスの有効期限が発生しました。現時点ではSQLライセンスを手元に持っていないかもしれませんが、SQLまたはSQL Management Studioを使用する必要があります。 少なくとも、新しいインストールの可能性のあるデータを抽出する。
続行する前に、SQL studioの管理が無料になったことに言及する必要があります。 あなたは実際にSSMSの期限切れのライセンスを心配する必要はありません。 Microsoftから無料でダウンロードできます。 リンクはここにあります:https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
SQLサービスは、ライセンスがまだ評価期間内であるかどうかを判断するときにシステム時刻を見ます。 だから、評価期間内に戻って時間を変更することで、あなたはサービスを開始することができるようになります。 完了したら、時間を通常の時間に戻します。 🙂
つまり、SQL試用期間を延長しています。
あなたの中には、SQL2016以降では動作しないと報告している人もいます。 SQL2016以上で動作するようにした場合。 コメントしてください。
以下がユーザーによって確認されています:
- SQL Server2016WS2016
- SQL Server2017WS2019
- SQL Server2019(注:時間を最大180日に調整します)
方法:
サービスを開きます。 この例では、サービスが実行されておらず、時間が有効期限をはるかに超えていることがわかります:
サービスが開始されると、有効期限エラーであるエラー17051のプロンプトが表示されます。
有効期限内にシステム時刻を戻すと、エラーなしでサービスを開始し、SQL management studioを起動できるようになります。
元の日付に戻って時間を回すことを忘れないでください、またはあなたの挿入された日付が間違っています。
タスクを自動化するpowershellスクリプトがあります。 あなたが感じるように編集します。
スクリプトは現在の日付、substract360を取得します(これは180の評価期間に一致するように変更できます)。 名前にSQLを使用してすべてのサービスを開始し、それらが開始するのを待ってから、時間を通常に戻します。
$currentDate = Get-Date // Get current date
$pastTime = $currentDate.AddDays(-360) // Substract 1 year
set-date $pastTime // set current time to the past
Start-Service -Name "*sql*" -ErrorAction SilentlyContinue // Try to start the service
$areServicesStopped = $true // Check for service
while($areServicesStopped){ // Loop trying to get service up
$serviceStatus = get-service -Name "*sql*" | select status
if ($serviceStatus -notlike "Stopped") {
$areServicesStopped = $false
}
Start-Sleep -Seconds 1
}
$currentDate = $pastTime.AddDays(360) // Set date time to current date
set-date $currentDate