0

プログラムを使用して SQL Server で FILESTREAM を有効にする必要があります。私が見つけたドキュメントによると、これは次のコードを使用して WMI を介して実行できます。

set fsInstance = GetObject("WINMGMTS:\\" & MachineName & "\root\Microsoft\SqlServer\ComputerManagement10:FilestreamSettings='" & InstanceName & "'")
Set method = fsInstance.Methods_("EnableFilestream")
Set inParam = method.inParameters.SpawnInstance_()
inParam.AccessLevel = TargetLevel
inParam.ShareName = ShareName
Set outParam = fsInstance.ExecMethod_("EnableFilestream", inParam)

これを C# に変換すると、次のようになります。

ManagementClass mc = new ManagementClass(new ManagementScope(@"\\.\root\Microsoft\SqlServer\ComputerManagement10"), 
                new ManagementPath("FilestreamSettings"), 
                new ObjectGetOptions(new ManagementNamedValueCollection() {
                    {"InstanceName", "MSSQLSERVER"}
            }));
ManagementBaseObject inParams = mc.GetMethodParameters("EnableFilestream");
inParams["AccessLevel"] = 1;
inParams["ShareName"] = "ALLIANCE";
mc.InvokeMethod("EnableFilestream", inParams, null);

ただし、これを試みるたびに、InvokeMethod で例外がスローされます。メッセージは「Invalid method parameter(s)」です。AccessLevel と ShareName を設定してそのように実行した 2 行を削除しようとしましたが、同じ例外が発生します。ここで何が間違っていますか?

4

0 に答える 0