Last active
November 5, 2018 14:47
-
-
Save potatoqualitee/81ac7fd28bdfdf006b4983d5458cb98b to your computer and use it in GitHub Desktop.
filestream_enable.vbs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' | |
' USAGE: | |
' | |
' cscript filestream_enable.vbs [/Machine:<MachineName>] [/Instance:<InstanceName>] [/Level:<0|1|2|3>] [/Share:<ShareName>] | |
' from the codeplex site https://archive.codeplex.com/?p=sqlsrvengine | |
' | |
InstanceName = "MSSQLSERVER" | |
MachineName = "." | |
TargetLevel = 3 | |
ShareName = "" | |
If WScript.Arguments.Named.Exists("Machine") Then | |
MachineName = WScript.Arguments.Named("Machine") | |
End If | |
If WScript.Arguments.Named.Exists("Instance") Then | |
InstanceName = WScript.Arguments.Named("Instance") | |
End If | |
If WScript.Arguments.Named.Exists("Level") Then | |
TargetLevel = WScript.Arguments.Named("Level") | |
End If | |
If WScript.Arguments.Named.Exists("Share") Then | |
ShareName = WScript.Arguments.Named("Share") | |
End If | |
WScript.Echo "Machine: " & MachineName | |
WScript.Echo "Instance: " & InstanceName | |
WScript.Echo "Level: " & TargetLevel | |
WScript.Echo "ShareName: " & ShareName | |
WScript.Echo vbNewLine & "Current Filestream configuration:"& vbNewLine | |
set fsInstance = GetObject("WINMGMTS:\\" & MachineName & "\root\Microsoft\SqlServer\ComputerManagement10:FilestreamSettings='" & InstanceName & "'") | |
WScript.Echo "InstanceName = " & fsInstance.InstanceName | |
WScript.Echo "AccessLevel = " & cstr(fsInstance.AccessLevel) | |
WScript.Echo "ShareName = " & fsInstance.ShareName | |
WScript.Echo "RsFxVersion = " & fsInstance.RsFxVersion | |
WScript.Echo vbNewLine & "Calling method EnableFilestream with new level" & vbNewLine | |
Set method = fsInstance.Methods_("EnableFilestream") | |
Set inParam = method.inParameters.SpawnInstance_() | |
inParam.AccessLevel = TargetLevel | |
inParam.ShareName = ShareName | |
Set outParam = fsInstance.ExecMethod_("EnableFilestream", inParam) | |
If outParam.returnValue = 0 Then | |
WScript.Echo "Method executed successfully" & vbNewLine | |
Else | |
WScript.Echo "Method failed: hr = " & cstr(outParam.returnValue) | |
' WBEM_E_INVALID_OPERATION == IDS_FILESTREAM_CANNOT_CHANGE_SHARE (0x80041016 : -2147217386) | |
' HRESULT_FROM_WIN32 (ERROR_ALREADY_EXISTS) == IDS_FILESTREAM_DUP_SHARE_NAME (0x800700B7 : -2147024713) | |
' HRESULT_FROM_WIN32 (ERROR_ACCESS_DENIED) == IDS_FILESTREAM_ACCESS_DENIED (0x80070005 : -2147024891) | |
' HRESULT_FROM_WIN32 (ERROR_INVALID_SHARENAME) == IDS_FILESTREAM_INVALID_SHARENAME (0x800704BF : -2147023681) | |
' HRESULT_FROM_WIN32 (ERROR_FILENAME_EXCED_RANGE) == IDS_FILESTREAM_SHARENAME_TOO_LONG (0x800700CE : -2147024690) | |
' HRESULT_FROM_WIN32 (ERROR_RESOURCE_NOT_FOUND) == IDS_FILESTREAM_PRIMARY_NODE_NOT_ENABLED (0x8007138F : -2147019889) | |
' HRESULT_FROM_WIN32 (ERROR_CLUSTER_INVALID_REQUEST) == IDS_FILESTREAM_SHARENAME_NODE_MISMATCH (0x800713B8 : -2147019848) | |
' HRESULT_FROM_WIN32 (ERROR_SUCCESS_RESTART_REQUIRED) == IDS_FILESTREAM_DISABLED_RESTART (0x80070bc3 : -2147021885) | |
' WBEM_E_INVALID_PARAMETER == IDS_FILESTREAM_GENERAL_ERROR (0x80041008 : -2147217400) | |
If outParam.returnValue = -2147217386 Then | |
WScript.Echo "WBEM_E_INVALID_OPERATION == IDS_FILESTREAM_CANNOT_CHANGE_SHARE (0x80041016 : -2147217386)" | |
Else If outParam.returnValue = -2147024713 Then | |
WScript.Echo "HRESULT_FROM_WIN32 (ERROR_ALREADY_EXISTS) == IDS_FILESTREAM_DUP_SHARE_NAME (0x800700B7 : -2147024713)" | |
Else If outParam.returnValue = -2147024891 Then | |
WScript.Echo "HRESULT_FROM_WIN32 (ERROR_ACCESS_DENIED) == IDS_FILESTREAM_ACCESS_DENIED (0x80070005 : -2147024891)" | |
Else If outParam.returnValue = -2147023681 Then | |
WScript.Echo "HRESULT_FROM_WIN32 (ERROR_INVALID_SHARENAME) == IDS_FILESTREAM_INVALID_SHARENAME (0x800704BF : -2147023681)" | |
Else If outParam.returnValue = -2147024690 Then | |
WScript.Echo "HRESULT_FROM_WIN32 (ERROR_FILENAME_EXCED_RANGE) == IDS_FILESTREAM_SHARENAME_TOO_LONG (0x800700CE : -2147024690)" | |
Else If outParam.returnValue = -2147019889 Then | |
WScript.Echo " HRESULT_FROM_WIN32 (ERROR_RESOURCE_NOT_FOUND) == IDS_FILESTREAM_PRIMARY_NODE_NOT_ENABLED (0x8007138F : -2147019889)" | |
Else If outParam.returnValue = -2147019848 Then | |
WScript.Echo "HRESULT_FROM_WIN32 (ERROR_CLUSTER_INVALID_REQUEST) == IDS_FILESTREAM_SHARENAME_NODE_MISMATCH (0x800713B8 : -2147019848)" | |
Else If outParam.returnValue = -2147021885 Then | |
WScript.Echo "HRESULT_FROM_WIN32 (ERROR_SUCCESS_RESTART_REQUIRED) == IDS_FILESTREAM_DISABLED_RESTART (0x80070bc3 : -2147021885)" | |
Else If outParam.returnValue = -2147217400 Then | |
WScript.Echo "WBEM_E_INVALID_PARAMETER == IDS_FILESTREAM_GENERAL_ERROR (0x80041008 : -2147217400)" | |
End If | |
End If | |
End If | |
End If | |
End If | |
End If | |
End If | |
End If | |
End If | |
End If | |
WScript.Echo vbNewLine & vbNewLine & "New Filestream configuration:"& vbNewLine | |
set fsInstance = GetObject("WINMGMTS:\\" & MachineName & "\root\Microsoft\SqlServer\ComputerManagement10:FilestreamSettings='" & InstanceName & "'") | |
WScript.Echo "InstanceName = " & fsInstance.InstanceName | |
WScript.Echo "AccessLevel = " & cstr(fsInstance.AccessLevel) | |
WScript.Echo "ShareName = " & fsInstance.ShareName | |
WScript.Echo "RsFxVersion = " & fsInstance.RsFxVersion |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment