Benutzer mit den meisten Antworten
Web Deploy, Publish Settings not found Error

Frage
-
Hallo!
Ich möchte gerne alle Webseiten von meinem alten IIS auf den neuen Synchronisieren über Web Deploy mit einem PowerShell Script. Ich nutze dazu das WDeploy PSSnapin. Ich kriege jedoch folgenden Error:
______________________________________
PS C:\Users\Administrator\desktop> $error
Sync-WDSite : Die Datei mit den Veröffentlichungseinstellungen
"C:\Users\Administrator\desktop\Microsoft.Web.Deployment.PowerShell.PublishSettings" wurde nicht gefunden. Weitere
Informationen unter: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_PUBISH_SETTINGS_FILE_NOT_FOUND.
In C:\Users\Administrator\desktop\wdeploy.ps1:87 Zeichen:17
+ $sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Sync-WDSite], DeploymentPowerShellException
+ FullyQualifiedErrorId : Microsoft.Web.Deployment.PowerShell.SyncSite______________________________________
Witzig daran ist, dass der Link welcher mir vorgeschlagen wird für die Fehlersuche, den Fehler nicht beinhaltet.
Der Code sieht folgendermassen aus:
______________________________________
# Einlesen alles PublishSettings
$sitepublish = gci "W:\PublishSettings\$remoteIIS" | ? {!$_.PSiscontainer} | select FullName,BaseName
switch ($remoteIIS)
{
'BBIIS-DVLP1' {
[hashtable] $path = @{
"SwyxSkin" = "D:\wwwroot\Swyx"
}
}
'BBIIS' {
[hashtable] $path = @{
"SwyxSkin" = "D:\inetpub\Swyx"
}
}
}
Write-Host "Starten von der Synchronisation der Webseiten von $remoteIIS zu $env:computername"
$sitepublish | % {
$Name = ($_.BaseName).split('_')[2]
Write-Host "Synchronistaion von Seite $Name startet jetzt" -fore Green
$spp = $path.Get_Item($Name)
Try {
$publishsettings = Get-WDPublishSettings -FileName $_.FullName -ErrorAction Stop
$sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
-SourcePublishSettings $publishsettings `
-IncludeAppPool `
-ErrorAction Stop `
-WarningAction Continue
Write-Host "Synchronistaion von Seite $Name fertig" -fore Green
} Catch {
Write-Host "Fehler von Synchronistation von Seite $Name." -fore Red
}
}______________________________________
Wie ihr seht liegen die Publish settings hier: W:\PublishSettings\$remoteIIS
und werden auch von dort geholt: Get-WDPublishSettings -FileName $_.FullName
Im Error steht aber der Pfad zum Desktop: "C:\Users\Administrator\desktop\Microsoft.Web.Deployment.PowerShell.PublishSettings" wurde nicht gefunden.
Was mache ich falsch? die Publishsettings Datei liegt auf einem Servershare auf den ich vollzugriff habe (W:\ wurde als PSDrive hinzugefügt mit administrator Berechtigungen vom remoteserver)
Komisch scheint mir auch, dass der Fehler erst bei sync-wdsite auftritt und nicht bereits bei get-wdpublishsettings
Danke!
- Bearbeitet Simon Stauber Mittwoch, 20. Juli 2016 14:12
Antworten
-
Workaround Lösung:
Ich nehme an dieser Fehler ist im Sync-WDSite cmdlet einprogrammiert und ist meines Erachtens nur per Workaround lösbar: Datei auf Desktop kopieren und nach der Synchronisation wieder löschen.
Code:
___________________________________________
$sitepublish | % {
$error.clear()
$copy = copy-item $_.FullName $env:USERPROFILE\Desktop
$rename = gci $env:USERPROFILE\Desktop -Filter '*.PublishSettings' | % {
Rename-Item -Path $_.FullName -NewName Microsoft.Web.Deployment.PowerShell.PublishSettings
}
$Name = ($_.BaseName).split('_')[2]
Write-Host "Synchronistaion von Seite $Name startet jetzt" -fore Green
$spp = $path.Get_Item($Name)
Try {
$publishsettings = Get-WDPublishSettings -FileName $_.FullName -ErrorAction Stop
$sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
-SourcePublishSettings $publishsettings `
-IncludeAppPool `
-WarningAction Continue `
-ErrorAction Stop
Write-Host "Synchronistaion von Seite $Name fertig" -fore Green
$clear = gci $env:USERPROFILE\Desktop -Filter '*.PublishSettings' | % { Remove-Item -Path $_.FullName -Force }
} Catch {
Write-Host "Fehler von Synchronistation von Seite $Name. Fehlerbeschrieb:" -fore Red
$Error
$clear = gci $env:USERPROFILE\Desktop -Filter '*.PublishSettings' | % { Remove-Item -Path $_.FullName -Force }
}
}- Als Antwort markiert Simon Stauber Freitag, 22. Juli 2016 09:01
- Bearbeitet Simon Stauber Freitag, 22. Juli 2016 09:21
Alle Antworten
-
kleines Update: Wenn man die Datei "Microsoft.Web.Deployment.PowerShell.PublishSettings" auf dem source und destination server erstellt, geht es einen schritt weiter, jedoch ist es trotzdem noch sehr komisch. Wieso müssen diese Dateien erstellt sein?
- Bearbeitet Simon Stauber Donnerstag, 21. Juli 2016 09:32
-
Workaround Lösung:
Ich nehme an dieser Fehler ist im Sync-WDSite cmdlet einprogrammiert und ist meines Erachtens nur per Workaround lösbar: Datei auf Desktop kopieren und nach der Synchronisation wieder löschen.
Code:
___________________________________________
$sitepublish | % {
$error.clear()
$copy = copy-item $_.FullName $env:USERPROFILE\Desktop
$rename = gci $env:USERPROFILE\Desktop -Filter '*.PublishSettings' | % {
Rename-Item -Path $_.FullName -NewName Microsoft.Web.Deployment.PowerShell.PublishSettings
}
$Name = ($_.BaseName).split('_')[2]
Write-Host "Synchronistaion von Seite $Name startet jetzt" -fore Green
$spp = $path.Get_Item($Name)
Try {
$publishsettings = Get-WDPublishSettings -FileName $_.FullName -ErrorAction Stop
$sync = Sync-WDSite $Name $Name -sitephysicalpath $spp `
-SourcePublishSettings $publishsettings `
-IncludeAppPool `
-WarningAction Continue `
-ErrorAction Stop
Write-Host "Synchronistaion von Seite $Name fertig" -fore Green
$clear = gci $env:USERPROFILE\Desktop -Filter '*.PublishSettings' | % { Remove-Item -Path $_.FullName -Force }
} Catch {
Write-Host "Fehler von Synchronistation von Seite $Name. Fehlerbeschrieb:" -fore Red
$Error
$clear = gci $env:USERPROFILE\Desktop -Filter '*.PublishSettings' | % { Remove-Item -Path $_.FullName -Force }
}
}- Als Antwort markiert Simon Stauber Freitag, 22. Juli 2016 09:01
- Bearbeitet Simon Stauber Freitag, 22. Juli 2016 09:21