WindowsバッチファイルからPowerShellスクリプトを実行しようとしています。これは、Import-SPData
を使用するSharePoint関連のスクリプトです。
USERA
のログインを使用する場合、これは問題なく機能します。ただし、USERB
のログインから同じバッチファイルを実行しようとすると、次のエラーが発生します。
c:\PS>ExecMyPowershellScript.bat
c:\PS>C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -psconsolefile "
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\P
OWERSHELL\Registration\psconsole.psc1" -command "c:\ps\MyPSScript.ps1"
地元の農場にはアクセスできません。 FeatureDependencyIdを持つコマンドレットは登録されません。
Import-SPData:ローカルファームにアクセスできません。再試行する前に、ローカルファームが適切に構成され、現在使用可能であり、データベースにアクセスするための適切な権限があることを確認してください。
At C:\ps\Run_MyPSScript.ps1:5 char:18
USERB
には、bat
ファイルとps1
ファイルを実行する権限があります。
エラーは、batまたはPowerShellファイルのいずれかへのアクセス許可に関連していると想定しています。
発生するエラーはSPコマンドレットから発生するため、batファイルを正常に開き、PowerShellスクリプトを正常に実行しました。その後、エラーがスローされます。UserBにはファームに対する適切な権限がありません。したがって、エラー:
...そして、再試行する前にデータベースにアクセスするための適切な権限があること。
ファームとデータベースのUserAとUserBからのアクセス許可を比較します。
または、スレッジハンマーを使用してUserAにログインし、次のPowerShellスクリプトを実行することもできます。
$db = Get-SPDatabase | Where {$_.Name -eq "SharePoint_ConfigDB"}
Add-SPShellAdmin "domain\UserB" -database $db