Microsoft.SqlServer.Management.Smo.Wmi.Service
を使用してSQLサーバー構成マネージャーの設定を変更しようとしています。 Microsoftは、ここにメソッドとプロパティのリストを提供しました。次のコードを使用して、特定のサービスのサービスアカウントを変更しました。
$MyServerObject.SetServiceAccount($UName, $PWord)
SetServiceAccount
というメソッドが存在するためです。しかし、どのプロパティをStartMode
に設定するかがわかりません。現在、私のサービスは自動であると言っていることを知っています。このコード行を使用して確認できます
$MyServerObject.StartMode
結果は次のとおりです。Auto
このプロパティを設定する方法を知っている人はいますか?
誰かが私が話していることを知りたい場合は、SQL ServerがインストールされているコンピューターのPowerShell(管理者として実行)でこれらの行を実行します。
#Load assemblies
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | out-null
#Create Server Object
$SMOWmiserver = New-Object ('Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer')
#Query Server object
$SMOWmiserver.Services |
select name, type, ServiceAccount, DisplayName, Properties, StartMode, StartupParameters |
Format-List
#Select a service
$MyServerObject=$SMOWmiserver.Services | where {$_.name -eq "MSSQLSERVER"}
$MyServerObject.StartMode
うまくいけば、私はあなたの質問に答えて、私がそうした方法を説明することができます。
上記のコードを使用してサービス開始モードを変更するには、
# Check Start Mode
$MyServerObject.StartMode
# Set Start Mode
$MyServerObject.StartMode ='Manual'
# Alter Start Mode
$MyServerObject.Alter()
# Check Start Mode again
$MyServerObject.StartMode
以下に示すように、Get-Memberを使用して確立できます。
$MyServerObject|Get-Member
結果のリストに表示されます
StartModeプロパティMicrosoft.SqlServer.Management.Smo.Wmi.ServiceStartModeStartMode {get; set;}
{get; set;}は、プロパティを変更できることを示しています
また、表示されます
AlterメソッドvoidAlter()、void IAlterable.Alter()
これは、オブジェクトに変更を適用するために使用するメソッドです。
PowerShellの使用全体で同じ原則を使用できます。
アカウントに適切な権限がある場合は、これをリモートで実行して、次のことを実行することもできます。
# Get Service
$Service = Get-WmiObject win32_service -ComputerName COMPUTERNAME -Filter "Name = 'MSSQLSERVER'"
# Get Start Mode
$Service.StartMode
# Change Start Mode
$Service.ChangeStartMode('Manual')
#Check Start Mode
$Service.StartMode
同じ結果を達成するために