TFS에 설치된 SharePoint 의 PowerShell 콘솔 띄우는 방법
SharePoint를 설치하면 전용 PowerShell 아이콘이 하나 생기고, 그 안에서 SharePoint 객체를 다룰 수 있는데요. TFS를 통해 SharePoint를 설치한 경우에는 그 아이콘이 없습니다. 그래서, 일반 PowerShell 콘솔을 띄우고 SP 개체를 접근하려면 오류가 발생합니다.
PS D:\bin> $h = Get-SPServiceHostconfig
Get-SPServiceHostconfig : The term 'Get-SPServiceHostconfig' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:29
+ $h = Get-SPServiceHostconfig <<<<
+ CategoryInfo : ObjectNotFound: (Get-SPServiceHostconfig:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
이런 경우, 수작업으로 PowerShell 용 SharePoint 어셈블리를 추가해 주면 됩니다. 그런데, 저는 다음과 같은 오류가 발생하는군요. ^^
PS C:\Windows\system32> Add-PSSnapin Microsoft.SharePoint.PowerShell
The local farm is not accessible. Cmdlets with FeatureDependencyId are not registered.
이는 현재 PowerShell 콘솔을 실행한 윈도우의 사용자 계정이 SharePoint_Config 데이터베이스에 권한이 없기 때문입니다. 이와 관련해서는 다음의 글을 참고하셔서 SharePoint_Shell_Access 와 DB_Owner 권한을 추가해 주면 됩니다.
The local farm is not accessible. Cmdlets with FeatureDependencyId are not registered
; http://www.sharepointassist.com/2010/01/29/the-local-farm-is-not-accessible-cmdlets-with-featuredependencyid-are-not-registered/comment-page-1/
이젠 Add-PSSnapin 명령어 실행은 잘 되지만, 끝이 아니었습니다. ^^
PS C:\Windows\system32> $h = Get-SPServiceHostconfig
Get-SPServiceHostconfig : Microsoft SharePoint is not supported with version 4.0.30319.18010 of the Microsoft .Net Runtime.
At line:1 char:6
+ $h = Get-SPServiceHostconfig
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (Microsoft.Share...ServiceSettings:SPCmdletGetIisWebServiceSettings) [Get-SPServiceHostConfig], PlatformNotSupportedException
+ FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletGetIisWebServiceSettings
이 문제는 "Microsoft.SharePoint.PowerShell" 어셈블리는 .NET 2.0 용 어셈블리이고 .NET 2.0 기반에서만 정상동작하지만, 윈도우 서버 2012에 포함된 PowerShell 이 .NET 4.0 기반으로 실행되기 때문입니다.
해결책은 다음의 글에 나오는데요.
SharePoint 2010 Management Shell - .Net 4.0 runtime version error
; http://blogs.technet.com/b/mspfe/archive/2012/09/06/sharepoint-2010-management-shell-net-4-0-runtime-version-error.aspx
즉, PowerShell 콘솔을 .NET 2.0 기반으로 실행하라고 지정해 주면 되는 것입니다.
C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe -Version 2
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]