Acquisitions Editor: Agatha Kim

Development Editor: Gary Schwartz

Technical Editor: Spencer Harbar

Production Editor: Christine O'Connor

Copy Editor: Judy Flynn

Editorial Manager: Pete Gaughan

Production Manager: Tim Tate

Vice President and Executive Group Publisher: Richard Swadley

Vice President and Publisher: Neil Edde

Proofreader: Paul Sagan, Scott Klemp, Sheilah Ledwidge,

Word One New York

Indexer: Nancy Guenther

Project Coordinator, Cover: Katherine Crocker

Cover Designer: Ryan Sneed

Copyright © 2011 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

ISBN: 978-0-470-93920-8

ISBN: 978-1-118-11279-3 (ebk.)

ISBN: 978-1-118-11281-6 (ebk.)

ISBN: 978-1-118-11280-9 (ebk.)

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this work was written and when it is read.

For general information on our other products and services or to obtain technical support, please contact our Customer Care Department within the U.S. at (877) 762-2974, outside the U.S. at (317) 572-3993 or fax (317) 572-4002.

Wiley also publishes its books in a variety of electronic formats and by print-on-demand. Not all content that is available in standard print versions of this book may appear or be packaged in all book formats. If you have purchased a version of this book that did not include media that is referenced by or accompanies a standard print version, you may request this media by visiting http://booksupport.wiley.com. For more information about Wiley products, visit us at www.wiley.com.

Library of Congress Cataloging-in-Publication Data is available from the Publisher.

TRADEMARKS: Wiley, the Wiley logo, and the Sybex logo are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Microsoft, SharePoint, and Windows Powershell are registered trademarks of Microsoft Corporation. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.

Dear Reader,

Thank you for choosing Automating Microsoft SharePoint 2010 Administration with Windows PowerShell 2.0. This book is part of a family of premium-quality Sybex books, all of which are written by outstanding authors who combine practical experience with a gift for teaching.

Sybex was founded in 1976. More than 30 years later, we're still committed to producing consistently exceptional books. With each of our titles, we're working hard to set a new standard for the industry. From the paper we print on, to the authors we work with, our goal is to bring you the best books available.

I hope you see all that reflected in these pages. I'd be very interested to hear your comments and get your feedback on how we're doing. Feel free to let me know what you think about this or any other Sybex book by sending me an email at nedde@wiley.com. If you think you've found a technical error in this book, please visit http://sybex.custhelp.com. Customer feedback is critical to our efforts at Sybex.

To Pamela and Tessa, for keeping me sane through many difficult moments. I love you both!

Gary Lapointe

To Anna, Eden, and Kenna, with all my love, for making each and every day special.

Shannon Bray

Acknowledgments

Writing a book is something that I've always wanted to do, but I never had the confidence or time to do it. Thankfully, my wife, Pamela, convinced me that I needed to just go for it—she believed in me even when I didn't. Writing this book has been a test of skill, patience, and endurance, and I couldn't have gotten through it without her encouragement and understanding. And, of course, through it all was my daughter, Tessa, who has been extraordinarily understanding for a 10-year-old who has had to miss out on her father for way too many nights and weekends while he toiled away in the “dungeon.” Thank you both for keeping me going, even when I didn't want to.

I also need to thank my co-author and friend, Shannon Bray, for bringing this opportunity to me in the first place. I definitely couldn't have written the entire book by myself, and having someone as smart as Shannon write the book with me definitely made the idea of writing a book more appealing.

Throughout high school and college, I tended to avoid any subject that would require me to write, and I always gravitated toward mathematics and, eventually, programming. So when Shannon, on behalf of Sybex, approached me about writing a book, I knew that the editing team would be earning their pay with whatever I put together. That team has been absolutely wonderful with their feedback and responsiveness, and they have helped me grow considerably as a writer. Specifically, I'd like to thank the following people from the Sybex team: Agatha Kim, the acquisitions editor; Pete Gaughan, the editorial manager; Gary Schwartz, the development editor; Christine O'Connor, the production editor; Judy Flynn, the copy editor; and Paul Sagan, Scott Klemp, and Sheilah Ledwidge, the proofreaders.

And, finally, I need to give a special thanks to my friend, Spence Harbar, for being the book's technical editor and making sure that Shannon and I were as technically accurate as possible; Spence is never afraid to tell it like it is, and he did a great job in keeping us honest and making sure we weren't “drinking the Kool-Aid.”

Gary Lapointe

One always hears of the challenges of writing a book, but it is difficult to understand without actually taking the plunge. There are many people who helped bring this content to life. First and foremost, I would like to thank my lovely wife, Anna, who is the cornerstone of our family. Her efforts help streamline the operation of our home, and without those efforts, this would not be possible. I would also like to thank my two lovely daughters, Eden and Kenna, for inspiring me to be the best I can.

When Sybex approached me to write this book, I was truly excited. I have always wanted to take the time to publish something. The timing, however, was tough. I was in the midst of prepping for the Microsoft Certified Master's program for SharePoint 2010, and I knew there would be no way that I would be able to complete this book alone. I wanted to take this task on, but I decided I could do it only if I could share the opportunity with my friend Gary Lapointe. Gary is well known for many of his enhancements to STSADM, and he had now turned his efforts to produce a very robust scripting solution for SharePoint 2010. I knew that if he would join me in this opportunity, we would be successful. Thank you, Gary, for bringing this book to life. Your continuous efforts and attention to detail have made this title something of which we can be very proud.

I would also like to thank my friend, C.A. Callahan, for recommending me to Sybex. Sybex provided a wonderful staff. I would like to thank the Sybex team: Agatha Kim, for entrusting us to bring this title to completion; Gary Schwartz, for helping to keep me on task when life was overwhelming; and Pete Gaughan, Christine O'Connor, the copy editor Judy Flynn, and the proofreaders, Paul Sagan, Scott Klemp, and Sheilah Ledwidge for helping us bring it to fruition.

I would also like to thank my friend and the book's technical editor, Spence Harbar, for stepping in and helping us make this book the best it can be. Spence provided support not only through his editing, but also as a contributor to the community. His contributions to the SharePoint world have made it easier to understand the inner workings of the SharePoint platform, and without him, many areas of this book would have been impossible.

Last, I would like to thank the instructors and candidates of SharePoint MCM R6. Many of these scripts were battle-tested in one of the most exhausting, yet rewarding experiences of my life. #WUB.

Shannon Bray

About the Authors

Gary Lapointe is an independent consultant and owner of Falchion Consulting, LLC, as well as a principal and founding partner of Aptillon, Inc. Lapointe got his start with SharePoint in 2007, when his employer at the time decided to do an upgrade from SharePoint 2003 to SharePoint 2007. The upgrade was anything but simple, requiring significant structural changes to the existing information. In an attempt to make the upgrade process repeatable and testable, Lapointe wrote his first STSADM customizations. Always wanting to give back to the community from which he has learned so much, Lapointe convinced his employer to allow him to release the commands and their source on his new blog, which he dedicated to the topic of SharePoint automation: http://blog.falchionconsulting.com/.

Six months after his first blog post, Lapointe earned his status as a Microsoft SharePoint MVP, which only spurred his desire to do more within the community. Not long after this, he decided that his career goals did not line up with his employer's goals for him, so he moved from Tennessee to Colorado and returned to the consulting space. As time went on, Lapointe released more and more STSADM commands and, foreseeing the power and future of Windows PowerShell, soon began to create custom Windows PowerShell cmdlets for SharePoint 2007.

When SharePoint 2010 was eventually released to beta, Lapointe sought the help of his good friend and colleague Todd Baginski, and together, they created a first-class installation and configuration script for SharePoint 2010. This script was originally created for a proposed session at the Microsoft SharePoint Conference in 2009. The session topic was not picked up, but Lapointe still had this great beginning to an extremely powerful script. (Baginski had created the environmental installation portion, and Lapointe created the SharePoint configuration portion.) Around this time, Lapointe went to work for a different consulting company and spent the majority of his time there productizing the script. A year after the SharePoint conference, the company sold its first licenses to this new product.

Shortly before the product was released, however, Lapointe decided that the time was right to go out on his own and be his own boss. But Lapointe maintained the rights to the original scripts, and he has since created his own productized version, which he has sold to companies wishing to do large-scale SharePoint deployments in an automated fashion.

Lapointe's new company, Falchion Consulting, got its name from his love of swords—he has a collection of them on the walls in his basement office, and this collection prompted his wife, Pamela, to suggest that he name the company after one of them. Though he was terrified about the prospect of having to find his own clients, he was aided considerably by his friends, who provided some incredible engagements that helped him get on his feet. In particular, Todd Baginski and Jason Medero made Lapointe's jump into the world of independent consulting a successful one.

Lapointe was also encouraged by another business opportunity that presented itself immediately after he made the leap—he was invited to take part in the forming of a new company composed of experts in the SharePoint community; what's better is that he was good friends with several of the members, and he has since become good friends with all of them. The company, Aptillon, Inc., was formed in August 2010 and has since served as an incredible leads channel and partnership. This partnership has enabled Lapointe to remain independent while still having a great team of individuals upon whom he can rely and with whom work in a variety of roles.

Within the same week that Lapointe decided to go independent, his friend and Denver SharePoint User Group cohort Shannon Bray approached him about writing a Windows PowerShell for SharePoint book. Lapointe had recently written a Windows PowerShell for SharePoint chapter for another book, and throughout the writing process, it became apparent to him that there was enough material for two books, let alone just one chapter. However, time and schedule prevented Lapointe from taking on this challenge alone, so the offer from Bray to cowrite a book was extremely appealing. Many months and even more gray hairs later, Lapointe and Bray finally finished the book you are now reading.

Shannon Bray, a New Orleans native, entered the information technology space in 1997, shortly after leaving the United States Navy and heading back to the New Orleans area. Computer technology had changed dramatically from the time he first entered the Navy until the time he was discharged. While it appeared to be a steep learning curve, the attraction to Microsoft's Visual Studio products made it a very enticing journey. Shannon received his first Microsoft certification in 2000 for Visual Basic 6.

The job opportunities were limited in the environs of Louisiana, so Shannon packed up his computer and moved to the Denver area in 2002, where he then pursued the MCAD certification for Microsoft's C# .Net. The certification launched many opportunities, and with those opportunities came the desire to achieve more certifications. Shortly after acquiring his MCAD, Shannon was inspired to become a Microsoft Certified Trainer (MCT). The path would require that he upgrade his MCAD to the Microsoft Certified Solution Developer (MCSD) certification. It took another year before this would be complete, but then Shannon focused on training. In 2005, Shannon earned his MCT and started working at TechEd as an MCT Ambassador. In 2006, Shannon was encouraged to enter into the SharePoint space, where he saw a large number of opportunities. He would soon become the SharePoint Certification Coach for Microsoft's TechEd and TechReady events, where he would help others obtain certification for SharePoint technologies. Through this effort, Shannon met many great MCTs, which ultimately enabled him to get the opportunity to write this book. Shannon has always had a passion for training, and with his new passion for SharePoint, he decided to combine the two.

Shannon now actively speaks at many technology conferences around the globe, and he has focused the majority of his attention on SharePoint. He continues to provide certification training through Microsoft webcasts, TechEd, and career conferences. He serves the Denver community as the president of the Colorado SharePoint User Group and, with a strong leadership team, has enabled Colorado to host three user groups dedicated to SharePoint.

Shannon has recently completed the training course for Microsoft's new certification program, Microsoft Certified Master for SharePoint, and he is hoping to complete the requirements shortly after this book is published.

Introduction

When SharePoint 2007 was released, there was very limited support for automating administrative tasks. Administrators were limited to what they could do with STSADM and the various community extensions to STSADM that were available. Windows PowerShell was also still in its infancy, and adoption of it as an administrative tool for SharePoint was extremely rare.

When SharePoint 2010 was first released to the public in beta form, it quickly became apparent that Microsoft had recognized the need for the automation of this extremely large and complex product. SharePoint 2010 was released with more Windows PowerShell cmdlets than any previous Microsoft product had. As such, the learning curve for administrators and developers has become extremely large because they not only must learn the syntactical complexities of Windows PowerShell, but also must understand the nuances of the more than 500 new cmdlets.

This book is driven from that need as recognized by the authors' personal experiences with Windows PowerShell and their clients' desire for a book that filled the numerous gaps and inconsistencies found in most existing materials. Many people throughout the community, including the authors, preach that the proper (or best-practice) method to deploy and manage SharePoint 2010 is to use Windows PowerShell; however, most administrators and developers have found it extremely frustrating to adhere to this best practice due to the limited amount of information available. And that information is all too oft en scattered, inconsistent, and, sometimes, blatantly wrong.

The purpose of this book is to make an attempt to address the concerns of those trying to adhere to these best practices by first helping the reader understand the power and complexity of Windows PowerShell as an administrative and development tool for performing tasks that touch many applications, not just SharePoint. Th e book then focuses on performing common administrative and development tasks, with a specific focus on deployment and configuration of SharePoint. Due to the complexity of SharePoint and its API, the book does not cover many tasks that rely heavily on the object model. Th ere are numerous development-focused books that, with a strong grasp of Windows PowerShell, you could easily leverage to complete those tasks (for example, iterating through document libraries and reporting on or manipulating those libraries or their contents).

This book can be read straight through to gain a thorough understanding of the product as it relates to Windows PowerShell, or it can be used as a reference when you're attempting to solve specific automation problems or to understand specific aspects of the product. If you are new to Windows PowerShell, it is highly recommended that you read at least Part 1 of the book before attempting to understand the principles demonstrated in subsequent parts. The intention with Part 1 is to provide the background necessary to understand all the Windows PowerShell concepts demonstrated throughout the book—this book should be the only Windows PowerShell book you will need because both beginning and advanced Windows PowerShell concepts are presented.

After reading this book, you will be able to use the knowledge obtained, the examples, and the downloadable sample scripts to create configuration scripts that cover virtually every required configuration setting of SharePoint 2010. Additionally, you will have gained a stronger understanding of the product and its components and how they interact with each other, thereby becoming a much more skilled and efficient SharePoint administrator or developer.

Who Should Buy This Book

This book is not just for administrators—developers and architects can both benefit from this book because not only does it detail the specifics of the SharePoint 2010 PowerShell implementation, it also gives considerable attention to many architectural and development-related concepts (throughout the book or via dedicated chapters).

The focus of this book is on the automation of SharePoint 2010 with specific emphasis and focus on deployment and configuration. The book assumes no prior Windows PowerShell knowledge and provides an in-depth review of basic and advanced Windows PowerShell concepts before getting into the complexities that the SharePoint 2010 PowerShell implementation comprises.

What's Inside

Here is a glance at what's in each chapter:

Chapter 1, “Windows PowerShell 101,” begins with a basic understanding of Windows PowerShell: the shell, cmdlets, variables, and types and how to work with and output data.

Chapter 2, “Filtering and Iterating Your Data,” expands on the concepts of Chapter 1 by showing how to add structure and logic to commands.

Chapter 3, “Making Your PowerShell Reusable,” completes the basic Windows PowerShell run-through by explaining how to turn a series of commands into functions, scripts, and modules.

Chapter 4, “Deploying New Installations and Upgrades,” details how to create an installation script for new Farm installations and presents upgrade scenarios and scripts that can ease the upgrade process.

Chapter 5, “Configuring Server Communications,” builds on the information learned in Chapter 4 by detailing the various settings that affect the communication of SharePoint with and through dependent resources, such as network adapters, the firewall, and Active Directory.

Chapter 6, “Configuring Farm Application Settings,” shows how to use Windows PowerShell to configure some of the core configuration options available on the General Application Settings page of the Central Administration site.

Chapter 7, “Managing Web Applications,” covers the creation and manipulation of Web Applications and the various configurable properties that are scoped to the Web Application level.

Chapter 8, “Managing Site Collections and Sites,” continues where Chapter 7 left off by covering the creation and manipulation of Site Collections and Sites and the various configurable properties that are scoped the Site Collection or Site level.

Chapter 9, “Understanding Authentication,” builds on the information from Chapter 7 by detailing the Classic and Claims authentication modes that must be taken into account when provisioning and working with Web Applications.

Chapter 10, “Managing Features and Solutions,” details how to manage SharePoint Solution Packages and Features, including those deployed to the Solutions Gallery (Sandbox Solutions).

Chapter 11, “Managing Service Applications,” introduces the Service Application concepts and foundational information necessary to understand the subsequent chapters that focus on provisioning individual Service Applications.

Chapter 12, “Provisioning Support Services,” covers the provisioning of the core Service Applications that are necessary for SharePoint and/or other Service Applications to function properly, including: Web Analytics Services, State Services, Secure Store Services, User Code Services, Claims to Windows Token Services, and the Usage and Health Data Collection Services.

Chapter 13, “Provisioning Business Intelligence, Business Connectivity, and Word Automation Services,” continues the Service Application provisioning with the Business Intelligence–focused Service Applications (Excel, Access, Visio, and PerformancePoint) and the Business Connectivity Services (BCS) and Word Automation Services Applications.

Chapter 14, “Provisioning Search Services,” tackles what is undoubtedly the most complex Service Application, the Enterprise Search Services Service Application, and it concludes with the Foundation Search, the only place where STSADM will be used in the book.

Chapter 15, “Provisioning Metadata and User Profile Services,” completes the Service Application provisioning story with the Managed Metadata Services Service Application and the User Profile Services Service Application, including coverage of the many issues often experienced with the User Profile Synchronization Service.

Chapter 16, “Managing Operational Settings,” covers monitoring SharePoint, including how to work with Unified Logging Service (ULS) logs and the Health Analyzer, and Timer Jobs, and concludes with coverage of the Developer Dashboard.

Chapter 17, “Back Up and Restore a SharePoint Environment,” details the various backup and restore cmdlets available for backing up the Farm, Site Collections, Sites, and lists.

Chapter 18, “Optimizing the Performance of a SharePoint Environment,” walks through the most common areas where performance gains can be had, including resource throttling, caching, and remote binary large object (BLOB) storage.

Chapter 19, “Remote Administration,” shows how to connect remotely to and work with a SharePoint Farm using Windows PowerShell, thus reducing the need for direct server access.

Chapter 20, “Multi-Tenancy,” builds on the previous chapters by demonstrating how to build a SharePoint hosting Farm.

The online appendix, “Creating Custom Cmdlets,” is available to download at www.sybex.com/go/automatingsharepoint2010. This appendix takes the SharePoint PowerShell story to the next level by showing how to extend the out-of-the-box capabilities by adding new cmdlets, views, and extensions.

How to Contact the Authors

We welcome feedback from you about this book or about books you'd like to see from us in the future. You can reach Gary by writing to gary@falchionconsulting.com and you can reach Shannon by writing to noidentity29@hotmail.com. For more information about us and our various technical works, visit our respective blogs at http://blog.falchionconsulting.com and http://shannonbray.wordpress.com.

Sybex strives to keep you supplied with the latest tools and information you need for your work. Please check the website at www.sybex.com, where we'll post additional content and updates that supplement this book should the need arise. Enter PowerShell in the Search box (or type the book's ISBN—9780470939208), and click Go to get to the book's update page.

Part 1

Getting Started With Windows Powershell Basics

Chapter 1 Windows Powershell 101

Chapter 2 Filtering and Iterating your Data

Chapter 3 Making your Powershell Reusable

Chapter 1

Windows PowerShell 101

In this chapter, you will learn to:

Prepare for Your Journey

Automate SharePoint: A Historical Perspective

From STSADM to Windows PowerShell

Understand the Components

The SharePoint 2010 Management Shell

Understand Required Permissions

Windows PowerShell: An Object-Based Scripting Language

Discover Cmdlets and Objects

Understand Variables and Types

Declare and Use Variables

Understand Object Types

Declare and Use Arrays and Hash Tables

Work with Output

Understand the Object Pipeline and PipeBind Objects

Format Your Results

Microsoft's latest version of its SharePoint platform, SharePoint 2010, introduces numerous new capabilities and architectural changes that make what was already a powerful platform even more powerful and, in doing so, much more complex and difficult to manage. As with the 2007 version of SharePoint, you can use the point-and-click administrative tools found in the SharePoint Central Administration website or you can use STSADM, SharePoint 2007's command-line tool. But with SharePoint 2010, we now have built-in support for Windows PowerShell, an incredibly powerful scripting tool meant to replace the old batch files that many have used for years.

Before you get started managing and manipulating SharePoint using Windows PowerShell, it is useful to understand the relationship between STSADM and PowerShell as well as core PowerShell concepts that every PowerShell “programmer” must know. In this chapter, we will cover four key areas to help you get started:

Going from STSADM to Windows PowerShell

Windows PowerShell components

Variables and types

Working with output

Prepare for Your Journey

Before you can begin working with SharePoint 2010 and Windows PowerShell, you must first get your environment configured and ready for use. The full setup and configuration of your environment is out of scope for this book; we will be focusing on deploying and managing your SharePoint environment using Windows PowerShell and not the setup and configuration of your operating system and related installation files.

In general, you will want to make sure that you, at a minimum, have the SharePoint 2010 binaries installed, have installed Windows PowerShell 2.0, and are logged on with an account with appropriate rights. (See “Understand Required Permissions” later in this chapter for more details.) It is also assumed that the server is a member of a SharePoint 2010 Farm, except where explicitly noted.

Note

Windows PowerShell 2.0 will be automatically installed when you install the SharePoint 2010 prerequisites. Though it is possible to use Windows PowerShell 1.0 with SharePoint 2010, it is highly recommended that you do not.

Before you dig deep into Windows PowerShell, it is a good idea to take a look at the other scripting options available to you, specifically STSADM and PSConfig, the command-line version of the SharePoint Configuration Wizard. This is useful because there are some tasks that can only be accomplished using STSADM (though not many).

Automate SharePoint: A Historical Perspective

When SharePoint 2003 was introduced, Microsoft made available the first version of STSADM. This allowed administrators to automate some common tasks related to the day-to-day management and deployment activities of SharePoint. Unfortunately, the tool was very limited in scope and not extensible. With SharePoint 2007, Microsoft introduced numerous new commands (over 184 in total) and adapted the architecture of the tool so that third-party developers could extend it by adding new commands. This provided a consistent and uniform administrative experience.

Administrators (and developers) would very often create batch files that would call out to these various STSADM commands. Unfortunately, batch files provided limited support for looping and conditional expressions, so it was common for batch files to become very complex and error-prone.

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!

Lesen Sie weiter in der vollständigen Ausgabe!