[powershell] Skript um Snap-Ins zu laden
Gepostet am: May 13, 2014 9:32:37 AM
Load Snapin
$myprogram = "SharePoint" $myversion = 2013#Funktion zum Laden des Snap-Ins function LoadSnapin([string]$SnapInName) { add-pssnapin $SnapInName write-host "Loading $SnapInName in session" -ForegroundColor DarkRed -BackgroundColor White } #Funktion zum Ermitteln der benötigten Snapins für ein entsprechendes Programm #kann erweitert werden function GetSnapin([string]$program, [int]$Version) { if ($program -eq "SQL") { if ($Version -eq 2012) { return,"SqlServerProviderSnapin110" } elseif ($Version -eq 2010) { return,"SqlServerProviderSnapin100" } } elseif ($program -eq "SharePoint") { return,"Microsoft.SharePoint.PowerShell" } } #Funktion zum Ermitteln der für das SnapIn benötigten DLLs #kann erweitert werden function GetSnapinDLL([string]$program, [int]$Version) { if ($program -eq "SQL") { return @("Microsoft.SqlServer.Management.PSSnapins.dll","Microsoft.SqlServer.Management.PSProvider.dll") } elseif ($program -eq "SharePoint") { return @("Microsoft.SharePoint.PowerShell.dll") } } #Header Write-host "Snapin für $myprogram $myversion"#Ermitteln, welches Snapin benötigt wird $mySnapIn = GetSnapin -program $myprogram -Version $myversion Write-Host "benötigtes SnapIn: $mySnapIn"#Lade das Snapin if (!(Get-PSSnapin | ?{$_.name -eq $mySnapIn})) { if(Get-PSSnapin -registered | ?{$_.name -eq $mySnapIn}) { LoadSnapin($mySnapIn) } else { write-host "$mySnapIn is not registered with the system." -Backgroundcolor Red –Foregroundcolor White write-host "Registering SnapIn" $framework=$([System.Runtime.InteropServices.RuntimeEnvironment]::GetRuntimeDirectory()) Set-Alias installutil "$($framework)installutil.exe" #Ermitteln der benötigten DLLs $myDLLs = GetSnapinDLL -program $myprogram -Version $myversion foreach($myDLL in $myDLLs) { Get-ChildItem -Path "C:\" -Filter $myDLL -Recurse | % { $myDLLPath = $_.FullName Write-Host "Pfad der DLL: $myDLLPath" installutil $myDLLPath } } LoadSnapin($mySnapIn) } } else { write-host "$mySnapIn is already loaded" -ForegroundColor DarkGreen -BackgroundColor White }