web-dev-qa-db-ja.com

SqlServer.Management.Smo.Wmi.Serviceを使用してStartModeプロパティを変更するメソッドを設定します

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
2
user3154761

うまくいけば、私はあなたの質問に答えて、私がそうした方法を説明することができます。

上記のコードを使用してサービス開始モードを変更するには、

# 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                                                                                                                     

同じ結果を達成するために

2