2017-11-21 2 views
0

여기 내 질문 : SQL Server 2008 R2 (SP3)를 실행하는 서버가 있고 일부 관리를 수행하기 위해 PowerShell 스크립트를 만들려고합니다. 작업.다른 SQL Server 버전간에 Microsoft.SqlServer.Management.Smo.Server 클래스 호환성

이 PowerShell 스크립트는 Microsoft.SqlServer.Management.Smo 클래스에서 EnumServerPermissions이라는 메서드를 사용합니다. official MS documentation on this method에 따르면 SQL Server 2012 이후 버전에서만 지원됩니다.

이제 내 질문입니다.이 클래스는 Microsoft.SqlServer.Smo.dll 안에 있기 때문에 이전 버전에서도이 메서드 호출과 호환되는 SQL Server Management Objetcs (SMO)의 업데이트 된 버전을 실행할 수있는 방법이 없습니다. SQL Server (예 : 내 2008 R2)? 이 버전을 받아 들일 필요가 있습니까? 아니면 무언가를 업데이트하여 작동하게하는 방법이 있습니까?

감사합니다.

+0

이 특정 클래스의 세부 사항에 대해서는 확신 할 수 없지만 일반적으로 특정 버전에서이 기능이 지원되지 않으면 해당 메소드가 상호 작용하거나 변경할 수있는 인터페이스/설정을 사용할 수 없기 때문입니다 업데이트 된 클래스가 있다면. – BenH

답변

1

은 Microsoft 문서가 그것을 알리는 것을 말하는 경우에만이 때문에 SQL 서버를 2012 +를 지원합니다 : 잘못된, 그리고 공식적으로 지원하고 지원하지 않는 버전을 진술하지 않을 enter image description here

. SMO는 SQL Server Management Studio처럼 취급됩니다. 새 버전을 사용하여 모든 버전의 SQL Server에 연결할 수 있습니다. SQL Server 2008의 하위 버전에는없는 속성이나 클래스가 실패하거나 기능을 사용할 수없는 특정 속성이나 클래스 만 사용할 수 있습니다 (예 : SQL Server 2008 R2의 AvailabilityGroup 네임 스페이스가 실패 함).

예를 들어 PowerShell 모듈 dbatools에는 최신 버전의 SMO가 해당 모듈과 함께 제공됩니다. 따라서 새로운 컴퓨터에이 모듈을 설치 한 경우 2000 년부터 모든 버전의 SQL Server에 연결할 수 있습니다. 이 모듈에는 SQL Server 2000에 대한 실행을 지원하는 명령이 있고 그 중 일부는 2012+ 버전의 SQL Server에 대해서만 지원합니다.

+0

@ShawnMelton 감사합니다. EnumServerPermissions와 내 서버 사이의이 비 호환성 문제가 발생한 이유는 실패한 Puppet 코드 (일부 PowerShell 코드 실행)가 실행 되었기 때문입니다. 어떤 시점에서 나는이 에러를 gettching하고 있었다. 'Powershell dsc resource MSFT_xSQLServerPermission이 Test-TargetResource를 실행하는데 실패했다. EnumServerPermissions와 인수 카운트 2에 대한 오버로드를 찾을 수 없다. ' 그러나 오늘 (같은 서버에서)이 오류를 재현하려고 시도했습니다 ... –

+0

... 2 매개 변수로 EnumServerPermissions를 사용하여 15 행 PowerShell 스크립트를 만들고 놀랍게도 효과가있었습니다. 그래서 원래의 Puppet 코드로 돌아갔습니다. 다시 ...! 하나님의 사랑 때문에 나는 왜 그것이 며칠 전에 실패했는지 설명 할 수 없으며 지금 일하고 있습니다. (나는이 일이 생길 때가 싫다.)하지만 나는 나의 목표 박스에있는 뭔가가 Microsoft.SqlServer.Management.Smo가 업데이트되어 현재 작동 중입니다. 내가 궁금해하는 두 가지 마지막 사항 : 1. 문서의 콤보 상자가 호환성을 나타내는 것이라면 무엇입니까? ... –

+0

2012 년과 2014 페이지 만 표시된다는 사실은 무엇입니까? ? 2. 내 Microsoft.SqlServer.Management.Smo 버전을 확인하려면 어떻게합니까? Microsoft.SqlServer.Smo.dll의 속성을 조사해야합니까, 아니면이를 확인하는 더 좋은 방법이 있습니까? –

관련 문제