Próbuję wykonać kopię zapasową listy i otrzymuję błąd
Export-SPWeb: nie można znaleźć obiektu SPWeb o identyfikatorze lub adresie URL
. Domyślam się, że jest to związane ze spacją w nazwie listy. Próbowałem tego polecenia na milion różnych sposobów, więc jaki jest najlepszy sposób, aby to zrobić? Czytałem o podwójnych cudzysłowach, ale nie mogę tego zrobić.
Export-SPWeb -Identity https://servername/path -Path C: \ backup.cmp -ItemUrl „/ Lists / Mortgage Referrals”
Komentarze
- Jestem pewien masz dostęp do centralnego administratora, spróbuj wyeksportować od centralnego administratora
- Zgaduję ', ponieważ twój -ItemUrl nie jest ' t ważne. Export-SPWeb -ItemUrl states " Określa adres URL aplikacji internetowej, identyfikator GUID lub obiekt do wyeksportowania. Typ musi być prawidłowym adresem URL; na przykład nazwa_serwera . "
Odpowiedź
Polecenie powinno wyglądać następująco
Export-SPWeb -Identity https://servername/path -Path C:\backup.cmp -ItemUrl "Lists/Mortgage Referrals"
- w tożsamości pełny adres URL zbioru witryn .
- w ItemURL nie należy używać znaku „/”, jeśli znajduje się on w katalogu głównym zbioru witryn.
Komentarze
- To było to! Po -ItemUrl miałem: " / lists / etc " zamiast " list / etc ". Czy ' nie mogę uwierzyć, że to przegapiłem. Dzięki!
- Jestem pewien, że zaznaczysz to odpowiedź i również zagłosuj. 🙂
- Czy na pewno wymaga
/
jeśli nie w katalogu głównym zbioru witryn? Myślałem, żeItemUrl
dotyczy sieci (mogę się mylić) - @JamesLove Cytując Briana z zespołu MS PFE (link znajduje się w mojej odpowiedzi): zasadniczo pod okładkami cmdlet Export-SPWeb wywoła SPWeb.GetList (), ale przed wywołaniem tej funkcji doda SPWeb.ServerRelativeUrl i dodatkowe „/”, jeśli ciąg w ItemUrl nie ma wiodącego „ / ”. Krótko mówiąc, aby zachować bezpieczeństwo, jeśli zawsze ustawiasz parametr ItemUrl na względny adres URL serwera, a następnie ścieżkę do listy, powinno to zawsze działać niezależnie od lokalizacji internetowej.
Odpowiedź
Ogólna składnia jest taka:
Export-SPWeb -Identity "http://site" -Path D:\list.cmp -ItemUrl "/Lists/{ListUrl}"
Ale to, co musisz umieścić w {List}
częścią -ItemUrl
argumentu jest URL, a nie tytuł listy . Aby go znaleźć, spójrz na URL dowolnego widoku swojej listy, „Polecenia hipoteki”. Wygląda na to, że http://site/Lists/{ListUrl}/view.aspx
. To wszystko. Skopiuj tę część do Export-SPWeb
.
Pobierz w PowerShell:
($w.Lists["Mortgage Referrals"].DefaultViewUrl -split "/")[2] # this will return {ListUrl} part
Tak więc połączenie dwuwierszowe wygląda tak:
$itemUrl = (((Get-SPWeb "http://site").Lists["Mortgage Referrals"].DefaultViewUrl -split "/") | select -first 3) -join "/" Export-SPWeb -Identity "http://site" -Path D:\list.cmp -ItemUrl $itemUrl
Aktualizacja: och, jeszcze jedna rzecz. Export-SPWeb
różni się, gdy jest uruchamiany w witrynach głównych i innych niż root. Spójrz na http://blogs.msdn.com/b/briangre/archive/2014/03/18/export-spweb-syntax-changes-between-root-site-and-sub-sites.aspx