Quantcast
Channel: sepago
Viewing all 392 articles
Browse latest View live

Windows 10 und ConfigMgr Deployment Serie

$
0
0

Liebe Leserinnen, liebe Leser,

Windows 10 stellt einen Paradigmenwechsel für Microsoft und das Windows Ökosystem dar. Zum einen die starke Konsolidierung der verschiedenen Plattformen zu einer zentralen Plattform über Gerätegrenzen hinweg, zum anderen durch die "Modernisierung" der Plattform zu einem "as a Service" -Modell. Während Microsoft bereits den grundlegenden Support für Windows 7 beendet hat, berichten sie im Gegenzug von bereits 300 Millionen Geräten, die schon heute mit Windows 10 laufen. Auch bei unseren Kunden steigt die Nachfrage nach Windows 10 Workshops bzw. Migrationsprojekten. 

Zwar gibt es viele Aspekte bei der Planung einer Migration nach Windows 10, jedoch ist die Bereitstellung eine der wesentlichen Elemente. Grund genug für uns, neben unserem klassichen Beratungsgeschäft unser Wissen in die Community zu geben. 

Hierzu haben wir verschiedene Angebote: 

Wie bereits bei den Windows 10 Features praktiziert, haben wir eine Windows 10 Deployment - Blogserie vorbereitet. Darin enthalten sind die Themen:

  • Windows 10 - InPlace Upgrade 
  • Windows 10 - Provisioning Packages
  • Windows 10 - Security 
  • Windows 10 und Configuration Manager

Weiterhin gibt es verschiedene Webinare - das kommende Webinar befasst sich mit dem Thema "Windows 10 Deployment":

  • Was ist neu im Windows 10 Deployment Prozess? 
  • Kompatibilität Assessment Readiness (MAP) 
  • Abhängigkeit zu Internet Explorer 11 
  • Welche Chancen bietet Inplace Upgrade? 
  • Was wurde aus Wipe and Load? 
  • Was kommt mit Windows 10 Provisioning Packages? 
  • Deployment Best Practices 

Hier gehts zur Anmeldung.

Darüber hinaus bieten wir verschiedene, kostenfreie Veranstaltungen zum Thema Windows 10 an:

Wir freuen uns über jeden Teilnehmer!


Der Wert von Empathie als zentrale Kompetenz von Mitarbeitern

$
0
0

Warum Empathie eine wertvolle Kompetenz ist, die es bei Mitarbeitern zu fördern gilt und was die Organisation dazu beitragen kann. Im folgenden Artikel findest Du Antworten und praxiserprobte sepago Beispiele.

Empathie ist ein Begriff, der schon fast inflationär benutzt wird und dennoch so wichtig ist. Gerade weil unsere Welt so stark vernetzt und von Beziehungen geprägt ist, gewinnt die Empathiekompetenz zunehmend an Bedeutung – für jeden Einzelnen und für die Organisation.

Empathie geht in 2 Richtungen: wir kennen die Empathie nach Innen, die Fähigkeit in uns selbst hineinzufühlen und die Empathie nach Außen - das Vermögen uns in den anderen hineinzufühlen. Bin ich selbstempathisch, kann ich ein Bewusstsein für meine eigenen Emotionen entwickeln und meine eigenen Bedürfnisse erkennen. Verspüre ich zum Beispiel Wut, wenn in Meetings wiederholt durcheinandergeredet wird, dann ist die Wut vielleicht Ausdruck meines unerfüllten Bedürfnisses nach Ordnung und Klarheit und ich wäre positiver gestimmt, wenn das Meeting strukturiert moderiert würde. Diese Klarheit für uns selbst ist wichtig, um auch empathisch nach Außen sein zu können, d.h. zu erkennen und nachzuempfinden, was der andere fühlt. Wir sind dann auch stärker bereit, uns mit den Bedürfnissen unserer Kollegen und der Organisation auseinanderzusetzen. Gelingt es uns, diese Bedürfnisse in Einklang zu bringen, dann entsteht eine wertvolle und wertschöpfende Gemeinschaft. Und als empathische Organisation können wir viel leichter in eine nachhaltige und wertvolle Kundenbeziehung treten und damit auch den wirtschaftlichen Erfolg sichern.

Rahmen schaffen für Empathie

Welchen Rahmen kann die Organisation schaffen, um sowohl die individuelle als auch die Empathie für die Organisation zu fördern? Bei sepago haben wir unter anderem folgende Ansätze gefunden:
Empathie gelingt besonders gut, wenn wir selbst die nötige Offenheit und Ausgeglichenheit verspüren, möglichst frei sind, von innerem und äußerem Stress oder Konflikten. Die Organisation kann helfen, eine entsprechende Arbeitsatmosphäre zu schaffen sowie Techniken und Methoden zu etablieren. Bei sepago stehen uns diverse Angebote zur Verfügung, sei es zum Beispiel die Zeit zur Meditation, in der wir uns in Achtsamkeit üben, „abschalten“ und Kraft tanken können. Wer Unterstützung braucht, kann durch ein individuelles Coaching seine Fähigkeiten im Zeitmanagement oder im Konfliktmanagement ausbauen. Auch das Spiel am Kicker-Tisch in der Mittagspause kann angestaute Energie schon einmal in die richtigen Bahnen lenken. Unsere Sofaecken sind passende Rückzugsorte, an denen Gespräche einfach entspannter geführt werden. Diese und weitere Möglichkeiten, wie etwa Homeoffice Optionen sind Angebote, mögliche Stress-Elemente während der Arbeit abzubauen oder erst gar nicht erst aufkommen zu lassen. Und getreu dem Grundsatz „mens sana in corpore sano“ haben wir ein Gesundheitsmanagement eingeführt. Die App fürs Rückendrücken ist nicht nur cool, sie animiert auch zu guten Haltungsnoten und unterstützt, dass Körper und Geist entspannen.

Raum für Offenheit und Zeit zum Zuhören

Was uns bewegt und antreibt ist sicherlich zunächst einmal eine ganz persönliche und damit private Sache und dennoch gibt es bei sepago den Raum sich im Ganzen und nicht nur als Mitarbeiter zu zeigen. Neben dem transparenten Umfeld (siehe auch „New Work: Wie Organisationen gezielt gefragte Arbeitnehmerqualitäten fördern können“) gibt es jede Menge weiterer Möglichkeiten, sich informell auszutauschen und zuzuhören. Ob Sorgen oder Entdeckungen von Leidenschaften, der gesellige Teil des sepagoForums, der winterliche Grill & Chill Event oder die monatlichen Minibudgetaktionen sind nur drei Beispiele dafür, wo wir Zeit und Gelegenheit haben, mehr voneinander zu erfahren. Diese Offenheit ist Teil der sepago Vertrauenskultur, die die Bereitschaft deutlich erhöht hat, sich in sich selbst und andere hineinzufühlen.

Gewaltfreie Kommunikation (GFK) als kraftvolles Instrument für mehr Kooperation

Empathie wird bei sepago darüber hinaus in besonderem Maße durch die Ausbildung der wertschätzenden Kommunikation gefördert. Hier haben wir tolle Erfahrungen mit der Gewaltfreien Kommunikation (GFK) nach Marshall B. Rosenberg gesammelt. In Basiskursen und Vertiefungsseminaren haben wir mehr Klarheit über unsere eigenen Bedürfnisse und die der Kollegen, der Organisation und unserer Kunden erhalten. Wir üben uns regelmäßig während interner Slots des sepagoForums und in einer freiwilligen Weiterbildungsreihe, wertschätzende Beziehungen zu ermöglichen und weiter zu entwickeln, die mehr Kooperation und gemeinsame Kreativität ermöglichen.

Die GFK hilft uns zum Beispiel besonders gut in Meetings oder in Konfliktsituationen. Das aktive und empathische Zuhören, das Nacheinander- statt das Durcheinanderreden sind dabei sehr nützliche Techniken.
Die GFK ist ein kraftvolles Instrument, weil sie den Menschen in den Blick nimmt. Sie stellt eine Kommunikation auf Augenhöhe her, in der sich jeder in der Organisation als wertvolles Mitglied verstehen kann und Anerkennung findet. Letztendlich zeigt sich in ihr eine innere Haltung, wertschätzend mit unserem Gegenüber umzugehen. Und wo wir uns gewürdigt fühlen, fällt es uns einfach leichter, unserer intrinsischen Motivation zu folgen und mit Freude unsere Arbeit zu tun. Das wirkt sich positiv auf die Qualität unserer Arbeitsergebnisse aus, was uns und unsere Kunden freut.

Es ist also durchaus möglich, als Organisation ganz gezielt die Empathiekompetenz der Mitarbeiter zu fördern. Dabei hilft eine Arbeitskultur, die Ausgeglichenheit unterstützt, Wert auf den wertschätzenden Dialog legt und Raum für Offenheit ermöglicht.

Wer für sein eigenes Unternehmen ein größeres Verständnis über die verbindende Kraft von Empathie erlangen möchte, dem empfehle ich unseren Workshop „Empathie in Organisationen“ im Rahmen der sepago Essentials.

Mitarbeiter, die empathisch sind, tragen eigenmotiviert, kooperativ und mit viel Kreativität zum Unternehmenserfolg bei. Mitarbeiter, die agil sind, finden schnell Herangehensweisen und erfolgreiche Lösungskonzepte für die sich ständig ändernde Anforderungen des Marktes. Wie bei sepago die Kompetenz der Agilität bei Mitarbeitern gefördert wird, beschreibe ich in meinem dritten Blogartikel. Stay tuned!

Windows 10 Deployment - In-Place Upgrade

$
0
0

Click here for an overview of the blog serie "Windows 10 und ConfigMgr Deployment Serie"

Why using In-Place Upgrade?

In the past, the migration process of operating systems including user settings and files was performed by using Configuration Manager / MDT and USMT (User State Migration Tools). This wipe and load approach worked very well.

With the release of Windows 10, Microsoft provided a powerful feature called “In-Place Upgrade”. This will upgrade your operating system while the user data will remain untouched.

When not to use In-Place Upgrade?

For Enterprise purposes, there is a reason why you would not this upgrade process.

The Windows 10 image must be untouched, so you cannot use a customized image by your organization. 

You need to consider the language settings of the running OS and the image, language packs cannot be downloaded by the In-Place upgrade process

How does the In-Place Upgrade work?

The upgrade process replaces the operating system. Drivers, applications, user settings and user data will be untouched. 

Preferred options (Enterprise):

  • System Center Configuration Manager or MDT
  • Windows 7, 8, 8.1
  • Use the standard Windows 10 image (Windows 10 Setup files)

Important In-Place upgrade LogFiles:

The most important LogFile is the setupact.log which is located here

  • %Systemdrive%\$Windows.~BT\sources\panther (during upgrade process)
  • %Systemdrive%\Windows\panther (after upgrade process and OOBE)
  • %Systemdrive%\Windows\panther\unattendGC (after OOBE and first Logon)

If anything went wrong, the setuperr.log could be helpful, the location is nearby the setupact.log. 

The four primary upgrade process phases

Down Level phase

  • Current operating system Windows 7 / Windows 8 / Windows 8.1
  • System check for compliance
  • Inventory of applications
  • Inventory of drivers
  • Analyze the operating system components
  • Download updates (not required for upgrade process)
  • Prepare WinRE

Running operating system

The In-Place upgrade process can be performed from Windows 7 / 8 / 8.1

System check for compliance

The first upgrade step checks the current operating system hardware for compliance, this contains the following devices.

  • CPU
  • RAM (at this moment 1 Gigabyte for Windows 10 x86 and 2 Gigabyte for Windows 10 x64)
  • Available Disk Space (for OS installation and recovery), If the disc space is below the actual needed capacity, it could be expanded by using external devices like thumb drives. This is important for Tablets with limited disk space. On ordinary devices the upgrade process tries to compress the file system.
  • Critical Drivers (Storage and network class drivers)
  • UEFI Version (The required UEFI Version is 2.3.1)
  • The current operating system must not be a Windows ToGo Stick or a VHD-Boot Machine

The setupact.log (%Systemdrive%\$WINDOWS.~BT\Sources\Panther) describes this process on a very detailed level:

The compliance checks starts at:

CONX   	Compatibility scan started. Scenario: 3, Categories: 0x00000021

And ends with:

CONX   	Compatibility scan finished. Scenario: 3, Categories: 0x00000021

The results is stored in an XML File:

CONX   	Compatibility scan data is saved to D:\$WINDOWS.~BT\Sources\Panther\CompatData_2016_03_22_10_29_24_3_00000021.xml

Content of CompatData_2016_03_22_10_29_24_3_00000021.xml:

<CompatReport xmlns="http://www.microsoft.com/ApplicationExperience/UpgradeAdvisor/01012009"><System X64Capable="True" X64Running="True"/><Hardware><HardwareItem HardwareType="Setup_HostIsBootedFromVHD"><CompatibilityInfo BlockingType="None"/></HardwareItem><HardwareItem HardwareType="Setup_HostIsBootedFromPortableWorkspace"><CompatibilityInfo BlockingType="None"/></HardwareItem><HardwareItem HardwareType="Setup_HostIsBootedFromAuditMode"><CompatibilityInfo BlockingType="None"/></HardwareItem><HardwareItem HardwareType="Setup_HostIsUEFICompliant"><CompatibilityInfo BlockingType="None"/></HardwareItem><HardwareItem HardwareType="Setup_SafeMode"><CompatibilityInfo BlockingType="None"/></HardwareItem><HardwareItem HardwareType="Setup_HostIsNonStagedBuild"><CompatibilityInfo BlockingType="None"/></HardwareItem><HardwareItem HardwareType="Setup_InsufficientDiskSpace"><CompatibilityInfo BlockingType="None"/></HardwareItem></Hardware><SystemInfo UplevelEdition="Windows 10" OSMajorVersion="6" OSMinorVersion="1"/></CompatReport>

Example of failed compatibility check (mismatched language):

<?xml version="1.0" encoding="utf-8" ?><CompatReport xmlns="http://www.microsoft.com/ApplicationExperience/UpgradeAdvisor/01012009"><System X64Capable="True" X64Running="True" /><Hardware><HardwareItem HardwareType="Setup_HostIsNewer"><CompatibilityInfo BlockingType="None" /></HardwareItem><HardwareItem HardwareType="Setup_NonStandardDirectory"><CompatibilityInfo BlockingType="None" /></HardwareItem><HardwareItem HardwareType="Setup_HostIsOldPrerelease"><CompatibilityInfo BlockingType="None" /></HardwareItem><HardwareItem HardwareType="Setup_MismatchedLanguage"><CompatibilityInfo BlockingType="Hard" /><Action Name="Setup_MismatchedLanguage" ResolveState="Hard" /></HardwareItem><HardwareItem HardwareType="Setup_MismatchedBuildType"><CompatibilityInfo BlockingType="None" /></HardwareItem><HardwareItem HardwareType="Setup_UpgradeDisabled"><CompatibilityInfo BlockingType="None" /></HardwareItem></Hardware></CompatReport>

Inventory of applications

The application inventory contains three basic steps:

Some Windows components will not be migrated, like Windows Media Center, because it’s not available in Windows 10.

During the upgrade process, a database with compatible applications which is stored on the installation media of Windows 10 will be used. If the upgrade process is performed in “online” mode, the latest version of this Database will be downloaded by the process. This list is available here:

https://sysdev.microsoft.com/en-us/hardware/lpl/

The upgrade process shows the application inventory data in a xml File in %Systemdrive%\$WINDOWS.~BT\Sources\Panther\<…>_APPRAISER_ApplicationInventory.xml

<…><Program Name="7-Zip 15.14 (x64 edition)"
         Type="Application"
         Source="Msi"
         Publisher="Igor Pavlov"
         Version="15.14.00.0"
         Language="1033"
         MsiProductCode="{23170F69-40C1-2702-1514-000001000000}"
         MsiPackageCode="{23170F69-40C1-2702-1514-000002000000}"
         InstallDate="03/22/2016 08:15:59"
         RootDirPath="D:\Program Files\7-Zip"
         Id="00001743f7a629a03aff738a3c38d1957afe00000904"><Indicators><MsiIndicators><Msi InstallDateMsi="03/22/2016 00:00:00"
                 MsiProductCode="{23170F69-40C1-2702-1514-000001000000}"
                 MsiPackageCode="{23170F69-40C1-2702-1514-000002000000}"/></MsiIndicators><AddRemoveProgramIndicators><AddRemoveProgram 	InstallDateArpLastModified="03/22/2016 00:00:00"
                              	RegistrySubKey="{23170F69-40C1-2702-1514-000001000000}"
                              	UninstallString="MsiExec.exe /I{23170F69-40C1-2702-1514-000001000000}"
EstimatedSize="0x1383" RegistryKeyPath="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\{23170F69-40C1-2702-1514-000001000000}"
                              	DisplayName="7-Zip 15.14 (x64 edition)"
                              	CompanyName="Igor Pavlov"
                              	ProductVersion="15.14.00.0"
                              	Language="1033"
                              	VersionMajor="15"
                              	VersionMinor="14"/></AddRemoveProgramIndicators><ShellIndicators><Shell ShellName="7-Zip File Manager"
                   TargetFileName="7zFM.exe"
                   TargetPath="D:\Program Files\7-Zip\7zFM.exe"
                   LinkPath="D:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip File Manager.lnk"
                   InstallDateFromLinkFile="03/22/2016 08:16:00"
                   ParentName="7-Zip" Id="0000e65b909be1fb18415c27543f039977d2fbd8b95b"/></ShellIndicators></Indicators><StaticProperties><Files Id="0000da39a3ee5e6b4b0d3255bfef95601890afd80709"><File Name="7zFM.exe"
                  Size="0xcca00"
                  SizeOfImage="0xd0000"
                  PeHeaderHash="0101639e4386eda511a4500dd6d061b32992a0e03988"
                  PeChecksum="0x0"
                  LinkDate="12/31/2015 14:16:50"
                  BinaryType="PE64_AMD64"
                  LowerCaseLongPath="d:\program files\7-zip\7zfm.exe"
                  LongPathHash="0000753cdfe935df97f86e4710198a65f801caf3170f"/><File Name="7z.exe"
                  Size="0x6d400"
                  SizeOfImage="0x72000"
                  PeHeaderHash="010126c4bdb01a71844d39ab995996d7709e1c20e5e5"
                  PeChecksum="0x0"
                  LinkDate="12/31/2015 14:15:28"
                  BinaryType="PE64_AMD64"
                  LowerCaseLongPath="d:\program files\7-zip\7z.exe"
                  LongPathHash="00006b4e0c488defd48c170d0080cfac1b22f7e944a0"/><File Name="7zG.exe"
                  Size="0x87800"
                  SizeOfImage="0x8d000"
                  PeHeaderHash="0101b8597c80d8618aaf4a7fbccbe2081d9d7d601065"
                  PeChecksum="0x0"
                  LinkDate="12/31/2015 14:17:11"
                  BinaryType="PE64_AMD64"
                  LowerCaseLongPath="d:\program files\7-zip\7zg.exe"
                  LongPathHash="0000a51d0172cea733c3ee4c3f899303c9c950c2d236"/></Files></StaticProperties></Program><…>

Inventory of Drivers

Similar to the application inventory process, drivers are also checked regarding their compatibility.

The device driver inventory is stored in a xml file:

%Systemdrive%\$WINDOWS.~BT\Sources\Panther \<…>_APPRAISER_DeviceInventory.xml

<…><Device
	deviceId="{6cab8a67-f0ce-15f7-303b-5bb7c0016575}"
	instanceId="root\rdp_kbd\0000"
	parentId="htree\root\0"
	deviceState="96"
	problemCode="0"
	installState="0"
	description="Terminal Server Keyboard Driver"
	isHidden="1"
	enumerator="root"
	ContainerId="{27db0821-3bf9-f71a-f96f-a53403857690}"
	Excluded="Always"><HWID>
	root\rdp_kbd</HWID><InstalledDriver
	service="termdd"
	matchingID="root\rdp_kbd"
	infPath="machine.inf"
	originalInf="machine.inf"
	driverPackageId="0000df13704fe43482824f92a1bf8d0a6141aca586fb"
	driverPackageStrongName="machine.inf_amd64_neutral_a2f120466549d68b"
	fileName="termdd.sys"
	driverVerVersion="6.1.7601.17514"
	driverIsKernelMode="1"
	driverVerDate="11-20-2010"
	manufacturer="(Standard system devices)"
	class="system"
	classGuid="{4d36e97d-e325-11ce-bfc1-08002be10318}"
	model="Terminal Server Keyboard Driver"
	provider="Microsoft Corporation"
	driverId="0000f7089f6d7bb2b386e932aec5211689ea85fde9cc"
	upperFilters="00007a5a0cd429248f010df2b1369bb906bbf3f6001b"
	driverInBox="1"
	driverSigned="1"
	driverHasBootService="0"
/><…>

Analyze the operating system components

The upgrade process scans the system for operating system components. In summary, the process scans over 10 000 components and its manifests. 

Download Updates

If the upgrade process is performed in “online” mode, it downloads the latest cumulative updates for Windows 10 from windows update. If you use Configuration Manager or MDT, the updates can be downloaded from the local update server as well.

The setupact.log file describes the process:

The process does not only look for Windows updates, it also searches for driver updates on windows update. If it finds one, it will download the latest version of the device driver at this step.

Prepare WindowsRE

The preparing process for WinRE:

The upgrade process mounts the wim file of WinRE and injects all the necessary drivers which are needed during the WinRE phase. The wimfile is stored under %Systemdrive%\$WINDOWS.~BT\Sources\SafeOS. 

During the first phase, nothing is being migrated, the process just gathers data. The migration processes will be performed in the second, third and fourth step of the whole upgrade process.

After preparing the WinRE image, the upgrade process reboots the system and launches WinRE.

WinRE phase

The Windows RE phase contains three steps:

  • Backup down-level OS (current OS)
  • Lay down and prepare new OS
  • Prepare new OS

After booting into WinRE this screen appears:

At this moment, neither the old nor the new operating system is online.

Backup down-level OS

The backup process just moves the old operating System and its components to the %Systemdrive%\Windows.old Folder.

The setupact.log describes the process:

Final list of source OS pieces:
2016-03-22 11:18:34, Info                  SP    Name: WINDOWS, Original path: D:\WINDOWS, Current path: D:\WINDOWS (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: PROGRAMS, Original path: D:\Program Files, Current path: D:\Program Files (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: PROGRAMSX86, Original path: D:\Program Files (x86), Current path: D:\Program Files (x86) (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: USERS, Original path: D:\Users, Current path: D:\Users (allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: PROGRAMDATA, Original path: D:\ProgramData, Current path: D:\ProgramData (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: INETPUB, Original path: D:\inetpub, Current path: D:\inetpub (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: SKYDRIVETEMP, Original path: D:\SkyDriveTemp, Current path: D:\SkyDriveTemp (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    Name: RECOVERY, Original path: D:\Recovery, Current path: D:\Recovery (do not allow relocation)
2016-03-22 11:18:34, Info                  SP    No source symblic mappings found
2016-03-22 11:18:34, Info                  SP    Final list of Windows.old roots:
2016-03-22 11:18:34, Info                  SP    D:\
2016-03-22 11:18:34, Info                  SP    Final list of source move exceptions:
2016-03-22 11:18:34, Info                  SP    D:\Recovery\Customizations
2016-03-22 11:18:34, Info                  SP    Exception file/folder does not exist, ignoring
2016-03-22 11:18:34, Info                  SP    D:\Recovery\WindowsRE
2016-03-22 11:18:34, Info                  SP    Exception file/folder does not exist, ignoring
2016-03-22 11:18:34, Info                  SP    D:\Recovery\DownlevelWindowsRE
2016-03-22 11:18:34, Info                  SP    Exception file/folder does not exist, ignoring
2016-03-22 11:18:34, Info                  SP    D:\Recovery\ReAgentOld.xml
2016-03-22 11:18:34, Info                  SP    Exception file/folder does not exist, ignoring
2016-03-22 11:18:34, Info                  SP    D:\Recovery\OEM
2016-03-22 11:18:34, Info                  SP    Exception file/folder does not exist, ignoring
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\WINDOWS to D:\Windows.old\WINDOWS
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\WINDOWS has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\WINDOWS to D:\Windows.old\WINDOWS
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\Program Files to D:\Windows.old\Program Files
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\Program Files has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\Program Files to D:\Windows.old\Program Files
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\Program Files (x86) to D:\Windows.old\Program Files (x86)
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\Program Files (x86) has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\Program Files (x86) to D:\Windows.old\Program Files (x86)
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\Users to D:\Windows.old\Users
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\Users has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\Users to D:\Windows.old\Users
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\ProgramData to D:\Windows.old\ProgramData
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\ProgramData has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\ProgramData to D:\Windows.old\ProgramData
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\inetpub to D:\Windows.old\inetpub
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\inetpub has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\inetpub to D:\Windows.old\inetpub
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\SkyDriveTemp to D:\Windows.old\SkyDriveTemp
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\SkyDriveTemp has no exceptions, trying a straight move
2016-03-22 11:18:34, Warning               SP    SPMoveFileWithShortName: Failed to move D:\SkyDriveTemp to D:\Windows.old\SkyDriveTemp, error: 0x00000002
2016-03-22 11:18:34, Info                  SP    CRelocateOS::DoExecute: Moving previous OS piece from D:\Recovery to D:\Windows.old\Recovery
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully created target folder D:\Windows.old\Recovery
2016-03-22 11:18:34, Info                  SP    VERBOSE: Path D:\Recovery\01d91ba6-efbc-11e5-bfa3-001dd8b71fc8 has no exceptions, trying a straight move
2016-03-22 11:18:34, Info                  SP    VERBOSE: Successfully moved D:\Recovery\01d91ba6-efbc-11e5-bfa3-001dd8b71fc8 to D:\Windows.old\Recovery\01d91ba6-efbc-11e5-bfa3-001dd8b71fc8
2016-03-22 11:18:37, Info                  SP    SPCalculateDriveMappings: Assuming implicit mapping from the registry SystemRoot value [x:\Windows] to the offline Windows dir [D:\$WINDOWS.~BT\NewOS\WINDOWS]
2016-03-22 11:18:37, Info                  SP    pCreateSystemRootDriveMapping: SystemRoot implicit mapping is [x:\] -> [D:\$WINDOWS.~BT\NewOS\]

Lay down and prepare new OS
  • The new OS gets applied to %Systemdrive%\$Windows~BT\NewOS. 
2016-03-22 11:18:52, Info  SP  Final list of destination OS pieces:
2016-03-22 11:18:52, Info  SP  Name: WINDOWS, Original path: x:\Windows, Current path: D:\$WINDOWS.~BT\NewOS\Windows (do not allow relocation)
2016-03-22 11:18:52, Info  SP  Name: PROGRAMS, Original path: x:\Program Files, Current path: D:\$WINDOWS.~BT\NewOS\Program Files (do not allow relocation)
2016-03-22 11:18:52, Info  SP  Name: PROGRAMSX86, Original path: x:\Program Files (x86), Current path: D:\$WINDOWS.~BT\NewOS\Program Files (x86) (do not allow relocation)
2016-03-22 11:18:52, Info  SP  Name: USERS, Original path: x:\Users, Current path: D:\$WINDOWS.~BT\NewOS\Users (allow relocation)
2016-03-22 11:18:52, Info  SP  Name: PROGRAMDATA, Original path: x:\ProgramData, Current path: D:\$WINDOWS.~BT\NewOS\ProgramData (do not allow relocation)
2016-03-22 11:18:52, Info  SP  Name: INETPUB, Original path: x:\inetpub, Current path: D:\$WINDOWS.~BT\NewOS\inetpub (do not allow relocation)
2016-03-22 11:18:52, Info  SP  Name: SKYDRIVETEMP, Original path: x:\SkyDriveTemp, Current path: D:\$WINDOWS.~BT\NewOS\SkyDriveTemp (do not allow relocation)
2016-03-22 11:18:52, Info  SP  Name: RECOVERY, Original path: x:\Recovery, Current path: D:\$WINDOWS.~BT\NewOS\Recovery (do not allow relocation)

  • The inventoried drivers and applications get integrated into the new OS. The migration of applications is similar to the technology that USMT uses.
  • Modern Apps are migrated, if the current operating system has modern apps installed, the progress will check if Windows 10 contains a newer version of these.
  • After that, the NewOS Folder gets redirected to %Systemdrive%.
  • Every folder which conflicts with the folder structure of the Windows 10 WIM File will be copied.
2016-03-22 11:18:52, Info                  SP     	CRelocateOS: Moving new OS pieces from D:\$WINDOWS.~BT\NewOS to D:\
2016-03-22 11:18:52, Info                  SP     	CRelocateOS: Path D:\$WINDOWS.~BT\NewOS\bootmgr excluded, will not be moved in the final place.
2016-03-22 11:18:52, Info                  SP    	Moving D:\$WINDOWS.~BT\NewOS\BOOTNXT to D:\BOOTNXT
2016-03-22 11:18:52, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\BOOTNXT has no exceptions, trying a straight move
2016-03-22 11:18:52, Info                  SP     	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\BOOTNXT to D:\BOOTNXT
2016-03-22 11:18:52, Info                  SP     	CRelocateOS: Path D:\$WINDOWS.~BT\NewOS\$Recycle.Bin excluded, will not be moved in the final place.
2016-03-22 11:18:52, Info                  SP     	Moving D:\$WINDOWS.~BT\NewOS\inetpub to D:\inetpub
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\inetpub has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP    	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\inetpub to D:\inetpub
2016-03-22 11:18:53, Info                  SP     	CRelocateOS: Collision detected for path D:\PerfLogs, which is not an OS piece. Moving out of the way.
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\PerfLogs has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Successfully moved D:\PerfLogs to D:\Windows.old\PerfLogs
2016-03-22 11:18:53, Info                  SP     	Moving D:\$WINDOWS.~BT\NewOS\PerfLogs to D:\PerfLogs
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\PerfLogs has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP    	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\PerfLogs to D:\PerfLogs
2016-03-22 11:18:53, Info                  SP     	Moving D:\$WINDOWS.~BT\NewOS\Program Files to D:\Program Files
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\Program Files has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\Program Files to D:\Program Files
2016-03-22 11:18:53, Info                  SP     	Moving D:\$WINDOWS.~BT\NewOS\Program Files (x86) to D:\Program Files (x86)
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\Program Files (x86) has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\Program Files (x86) to D:\Program Files (x86)
2016-03-22 11:18:53, Info                  SP    	Moving D:\$WINDOWS.~BT\NewOS\ProgramData to D:\ProgramData
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\ProgramData has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\ProgramData to D:\ProgramData
2016-03-22 11:18:53, Info                  SP     	Moving D:\$WINDOWS.~BT\NewOS\Users to D:\Users
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\Users has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\Users to D:\Users
2016-03-22 11:18:53, Info                  SP     	Moving D:\$WINDOWS.~BT\NewOS\Windows to D:\Windows
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Path D:\$WINDOWS.~BT\NewOS\Windows has no exceptions, trying a straight move
2016-03-22 11:18:53, Info                  SP     	VERBOSE: Successfully moved D:\$WINDOWS.~BT\NewOS\Windows to D:\Windows
2016-03-22 11:18:53, Info                  SP     	SetupPlatform: Global progress: 25, Phase progress: 86
2016-03-22 11:18:53, Info                  SP     	Operation completed successfully: Relocate OS from D:\$WINDOWS.~BT\NewOS to D:\

The Windows.Old is scanned by the process and every file which might be necessary will be “copied” in the running operating system. It’s basically not a copy job, the process just set hard links to the new location.

2016-03-22 11:39:51, Info  PLATFORMTRACK: DoesObjectExist called for D:\PROGRAM FILES\MICROSOFT POLICY PLATFORM\TGTNS_PRINCIPALBINDING.MOF

2016-03-22 11:39:51, Info  GetNewLocation: Request to D:\Windows.old\PROGRAM FILES\MICROSOFT POLICY PLATFORM\TGTNS_PRINCIPALBINDING.MOF inside moved folder redirected to D:\Program Files\Microsoft Policy Platform\TGTNS_PRINCIPALBINDING.MOF

2016-03-22 11:39:51, Info  GetNewLocation: Request to D:\Windows.old\PROGRAM FILES\MICROSOFT POLICY PLATFORM\POLICYPROCESSORPROVIDER.MOF inside moved folder redirected to D:\Program Files\Microsoft Policy Platform\POLICYPROCESSORPROVIDER.MOF

First Boot to new OS

The location of setupact.log has changed, the new location is %Systemdrive%\Windows\panther.

This phase contains these steps:

  • Set up windows components
  • Install APPX Packages
  • Install Device Drivers
  • Set user settings
Set up windows components

The upgrade process starts to enable the Windows components.

Install APPX Packages

Now the installer activates the APPX packages:

2016-03-22 11:26:00, Info               SYSPRP Successfully pre-registered microsoft.windowscommunicationsapps_2015.6308.42271.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:10, Info               SYSPRP Successfully pre-registered Microsoft.WindowsMaps_4.1509.50911.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:15, Info               SYSPRP Successfully pre-registered Microsoft.WindowsPhone_2015.1009.10.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:18, Info               SYSPRP Successfully pre-registered Microsoft.WindowsSoundRecorder_2015.1012.110.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:22, Info               SYSPRP Successfully pre-registered Microsoft.WindowsStore_2015.1013.14.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:28, Info               SYSPRP Successfully pre-registered Microsoft.XboxApp_2015.930.526.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:36, Info               SYSPRP Successfully pre-registered Microsoft.ZuneMusic_2019.6.13251.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:40, Info               SYSPRP Successfully pre-registered Microsoft.ZuneVideo_2019.6.13251.0_neutral_~_8wekyb3d8bbwe
2016-03-22 11:26:40, Info               SYSPRP Finished AppxPreRegisterPackage for all packages.

Install Device Drivers

The process installs the drivers, if drivers were download from windows update, the upgrade process will install these drivers.

Set user settings

The process sets the user specific settings, such as user specified App settings or Windows settings.

After these four steps, the system reboots again to the fourth Upgrade phase.

Second boot to new OS

The second boot to the new OS contains two small steps:

  • Finalize the upgrade
  • Welcome the user and OOBE

In the fourth phase, the setupact.log is moved to %Systemdrive%\Windows\panther\unattendGC

Finalize the upgrade

The upgrade process is finished.

Welcome the user and OOBE

The User welcome screen appears, which is similar to the screen after an ordinary Windows 10 installation. After the first logon, the user will see the Out of the box experience which performs the customization of windows.

 

How do I know the upgrade was successful?

At first, when Windows 10 boots up and the user was able to logon, the upgrade was basically successful. If any problems appear during the process, the system will be recovered to the old OS.

The System creates a registry key, that’s all.

Of course the setupact.log (%Systemdrive%\Windows\panther\unattendGC) describes the process:

[oobeldr.exe] OrchestrateUpdateImageState: Updating image state from [IMAGE_STATE_UNDEPLOYABLE] --> [IMAGE_STATE_COMPLETE]

Recover the system

If “something went wrong” during the upgrade process, the system will be recovered. This recovery can be performed out of any of the four upgrade process phases and beyond the first login.

Recover the system automatically by the process

Let’s see how the recovery process runs out of the four (five) phases:

Down Level

Basically the Down Level phase just gathered data. There is nothing more to do than cleaning up the system. If something causes a “hard block”, the system will be cleaned up.

WinRE

If something went wrong in the WinRE Phase, the upgrade process reboots into the original OS and cleans up the gathered data.

First Boot to new OS

If something went wrong iIn this phase, there is much more to do than just cleaning up, because the new OS is already running. So the process needs to reverse all the changes.

  • Reboot to WinRE
  • Remove the files and folders from the Systemdrive
  • Move the files and folders out of the Windows.Old folder to their original location
  • Cleanup the system
  • Reboot to original OS
Second boot to new OS

Basically in the fourth phase, all recovery steps of phase three will be performed in this phase.

  • Reboot to WinRE
  • Remove the files and folders from the Systemdrive
  • Move the files and folders out of the Windows.Old folder to their original location
  • Cleanup the system
  • Reboot to original OS
First Logon

If the process was fully successful and the user is able to login for the first time. If anything went wrong in this case, the system will reboot and reverse the system to its original state. The process proves that someone actually can login to the new Operating System.  

Recover the system manually

It might happen, that the upgrade process completes successful and the user is able to use the new operating system at first glance, but later it turns out that a critical application does not work as expected when running on the new OS.

On order to support these scenarios, Windows 10 lets the user decide to recover the system by himself. For that purpose, the Windows.Old folder remains on the local hard disk for 30 days. 

The user can start the recovery out of the system settings:

The recovery process which starts is basically the same as in the last to upgrade phases:

  • Reboot to WinRE
  • Remove the files and folders from the Systemdrive
  • Move the files and folders out of the Windows.Old folder to their original location
  • Cleanup the system
  • Reboot to original OS

sepago lädt ein - Business Connect 2016

$
0
0

Gemeinsam mit unserem Partner bluecue veranstalten wir am 15. Juni 2016 im Maybach Museum in Neumarkt bei Nürnberg eine Ganztagesveranstaltung mit Vortragsschwerpunkten der Hersteller Citrix, vast limits und Splunk. 

Folgende Themenschwerpunkte erwarten Sie: Monitoring und Aufbereitung von Kennzahlen, Automatisierung beim Rollout von Netzwerkkomponenten und neuen Technologien zur Anwendungsverteilung. 

Zielgruppe der Veranstaltung sind Geschäftsführer (CEO´s), IT Manager (CIO´s), IT Teamleiter, sowie IT Projektleiter aus Unternehmen und Behörden. 

Ihnen wird eine Plattform geboten sich mit anderen Experten austauschen und zu networken.

Es erwartet Sie eine abwechslungsreiche und informative Agenda: 

09:00 Uhr Registrierung

09:30 Uhr Begrüßung 

09:45 Uhr Keynote – Digitalisierung im Unternehmen (Nico Lüdemann)

10:30 Uhr Operational Intelligence by Splunk> (Thomas Scheidler)

11:15 Uhr Kaffeepause

11:30 Uhr IT-Security Montoring mit Splunk> Enterprise (René Golembewski)

12:00 Uhr KPIs am Arbeitsplatz – User Experience Monitoring mit uberAgent (Ralf Walkenhorst)

12:45 Uhr Mittagspause

13:45 Uhr Führung durch das Maybach Museum

Am Nachmittag sind unsere Kollegen mit zwei Vorträgen aus dem Citrix-Bereich vertreten.

14:30 Uhr Citrix NetScaler – Vom Big Picture zur Automatisierung (Sven Jansen)

Einen NetScaler über die GUI zu konfigurieren ist nicht die effizienteste Art. Der Weg über die Automatismen vereinfacht und beschleunigt vieles, ist aber – vor allem bei Anpassungen – nicht unbedingt übersichtlich. Wir schauen uns an, welche Möglichkeiten der NetScaler darüberhinaus bietet und stellen das, von sepago auf Basis von PowerShell und REST entwickelte Automatisierungs-Framework, vor.

15:15 Uhr Citrix AppDisk – Bye bye Golden Image? (Dominik Britz)

Citrix springt mit der neusten Version von XenDesktop auf den Application Layering Zug auf und bringt AppDisk für alle Editionen. Erfahren Sie, wie die Technologie im Detail funktioniert und ob es vielleicht nur eine Neuauflage von Application Streaming ist. Am Ende des Vortrags wissen Sie, ob AppDisk mit der Konkurrenz mithalten kann.

16:00 Uhr Wrap-up (bluecue / sepago)

16:30 Uhr Networking

An diesem Tag nehmen Sie sicher viele neue Ideen, Impulse und Anregungen für Ihr IT-Business mit. 

Weitere Details zu den Sessions und eine Anmeldemöglichkeit finden Sie hier: 

http://www.bluecue.de/events/business-connect-2016-by-bluecue-sepago/

Neues Community Programm bei Citrix – und wir sind ein Teil davon.

$
0
0

Pünktlich zur diesjährigen Citrix Synergy in Las Vegas hat Citrix ein neues Community Programm ins Leben gerufen. Den Citrix Technology Professional Advocate, kurz CTA. Insgesamt wurden weltweit 25 Personen zum CTA ernannt. 

Wir sind stolz, dass unser Kollege Carsten Bruns einer der wenigen CTAs ist. 

Ausschlaggebend für seine Wahl ist sein umfangreiches Engagement im Citrix Bereich. Exemplarisch zählen dazu die Mitarbeit an der Community CUGC, Blogartikel über Citrix Technologien, Vorträge auf diversen Events zu Citrix Themen, sowie der enge Austausch und Kontakt zu Citrix Experten.

Sein zusätzliches Know-how wird Carsten Bruns zur optimalen Kundenberatung nutzen und mit der Community teilen. Folgen Sie Carsten und uns auf Twitter und lesen Sie seine Experten Blogs

Weitere Informationen sind auf dem Blog von Citrix zu finden:

https://www.citrix.com/blogs/2016/05/23/expanding-recognition-for-community-contributors-citrix-technology-advocates/

 

Betriebssystembereitstellung - Upgrade auf Windows 10

$
0
0

Hier gehts zur Blogserie: Windows 10 und ConfigMgr Deployment

Seit der Version 1511 des Configuration Managers von Microsoft können Sie ein "Inplace-Upgrade" Ihrer Windows Client Betriebssysteme vornehmen.  Die unterstützten Betriebssysteme sind Windows 7, 8 und 8.1. Mit der Version 1511 ist die vorgefertigte Tasksequenz Vorlage eingeführt worden.

Ich zeige Ihnen heute eine Step by Step Anleitung zum Upgrade eines Windows 8.1 Clients.

1.    Wählen Sie in der Configuration Manager-Konsole den Arbeitsbereich „Softwarebibliothek“ aus.

2.    Erweitern Sie im Arbeitsbereich „Softwarebibliothek“ den Ordner „Betriebssysteme“, und klicken Sie dann auf „Betriebssystem-Upgradepakete“.

3.    Klicken Sie auf die Registerkarte „Startseite“ in der Gruppe „Erstellen“ auf „Betriebssystem-Upgradepaket hinzufügen“, um den Assistenten zum Hinzufügen von Betriebssystem-Upgradepaketen zu starten.

4.    Geben Sie auf der Seite „Datenquelle“ den Netzwerkpfad zu den Installationsquellen des Betriebssystem-Upgradepakets an. Wichtig ist hierbei, dass es sich um einen UNC-Pfad handelt. (Hier habe ich vorher den  Inhalt der Windows 10 ISO in dieses Verzeichnis kopiert). Anders als bei "herkömmlichen" OS Deployments wird nicht nur das Windows Image (Wim) benötigt, sondern der gesamte Inhalt der Installations-DVD.

5.    Geben Sie auf der Seite „Allgemein“ die folgenden Informationen an, und klicken Sie dann auf „Weiter“. Diese Informationen sind für Identifikationszwecke hilfreich, wenn Sie über mehrere Betriebssysteminstallationspakete verfügen.

  • Name“: Geben Sie den Namen des Betriebssysteminstallationspakets an.
  • Version“: Geben Sie die Version des Betriebssysteminstallationspakets an.
  • Kommentar“: Geben Sie eine kurze Beschreibung des Betriebssysteminstallationspakets an.

6.    Jetzt bekommen Sie nochmal den Status angezeigt.

7.    Das fertige Paket muss jetzt auf die gewünschten „Verteilungspunkte“ verteilt werden. Klicken Sie dazu mit der rechten Maustaste auf das erstellte Paket und wählen Sie „Verteile Inhalt“.

8.    Im Anschluss öffnet sich der „Verteilungsassistent“.

9.    Wählen Sie jetzt Ihre gewünschten Verteilungspunkte aus.

10.    Sie sehen jetzt die Zusammenfassung.

11.    Die erfolgreiche Verteilung wird Ihnen zum Schluss nochmal angezeigt, nun können Sie den Assistenten schließen. 

12.    Aktualisieren Sie jetzt nochmal die Ansicht und Sie sehen, dass das Paket auf dem Verteilungspunkt verteilt wurde. Unten rechts können Sie den Verteilungsstatus des Pakets sehen.

Der zweite Step ist die Erstellung einer „Upgrade-Tasksequenz“.


1.    Im Bereich „Softwarebibliothek“ wählen Sie unter „Betriebssysteme“ den Punkt „Tasksequenzen“ mit der rechten Maustaste aus und wählen im Kontextmenü den Menüpunkt „Tasksequenz erstellen“.

2.    Sie sehen nun im Assistenten den neuen Punkt „Durchführen eines Upgrades für ein Betriebssystem mit einem Upgradepaket

3.    Geben Sie jetzt einen sprechenden Namen und die gewünschten Informationen für die Wiedererkennung Ihrer Tasksequenzen ein.

4.    Wählen Sie hier das zuvor erstellte Upgradepaket aus.


5.    Sie können einen Produktschlüssel für die automatische Aktivierung nach der Installation angeben.

6.    Jetzt haben Sie die Möglichkeit „Update Pakete“ von Ihrem WSUS zu wählen. Wenn Sie keine Updates aus wählen, müssen Sie im Anschluss alle aktuellen Updates nach der Installation noch einmal nachpflegen.

7.    Sie haben jetzt die Möglichkeit zusätzliche Software zu installieren.

8.    Sie bekommen jetzt die Zusammenfassung, bevor Sie die Tasksequenz erstellen.

9.    Jetzt haben Sie die Tasksequenz erstellt.

Dritter Step, die Anwendung der Upgrade Tasksequenz auf eine „Clientgruppe“:

1.    Klicken Sie mit der rechten Maustaste auf die soeben erstellte Tasksequenz und wählen Sie „Verteilen“.

2.    Wenn Sie jetzt den Assistenten starten und eine „Sammlung“ auswählen wollen, wird Ihnen als erstes eine Warnung angezeigt, dass diese Tasksequenz „potentiell gefährlich“ ist.

3.    Wählen Sie jetzt Ihre Sammlung für das Upgrade aus. Prüfen Sie zweimal ob Sie die richtige Sammlung gewählt haben. Prüfen Sie ob sicher keine falschen Clients enthalten sind.

4.    Es gibt 2 Methoden das Upgrade zu verteilen, die erste Methode ist das Upgrade zur Verfügung zu stellen im ConfigMgr Client des Windows Clients und die zweite Methode ist die aufgezwungene Verteilung, nach der es kein Zurück mehr für die Sammlung gibt. Es wird dann auf allen Clients in der Sammlung die Upgrade Tasksequenz angewandt.

5.    Für den Testzweck wählen wir die Option „Verfügbar“.

6.    Sie haben die Möglichkeit zu definieren, ab wann das Upgrade bereitstehen soll.

7.    Sie haben jetzt die Möglichkeit der visuellen Verfolgung während Sequenz auf Ihre Wünsche einzustellen.

8.    In den Alarmeinstellungen können Sie sich eine Benachrichtigung erstellen.

9.    Dies ist meiner Ansicht nach ein sehr wichtiger Punkt, Sie werden nun gefragt ob der Inhalt erst auf Ihren Client geladen werden muss oder direkt von der Quelle aus installiert werden soll. Aus meiner Erfahrung heraus, empfehle ich Ihnen gerade bei einem Upgrade die Daten erst auf den Client zu laden bevor Sie das Upgrade starten. Sie haben hier zusätzlich die Option ein „Rollback“ bei fehlgeschlagenem Upgrade automatisch zu starten. (Bei Fehlern wird die Installation wieder zurückgerollt)

10.    Lesen Sie sich nochmal die Zusammenfassung gut durch bevor Sie starten.

11.    Die Erstellung der Bereitstellung war erfolgreich.

Vierter Step, die Anwendung der Tasksequenz auf einem Client:


Machen Sie vorher immer eine Sicherung des Clients. Laut MS soll das ja aufgrund der hervorragenden Rollback-Mechanismen nicht nötig sein. ;-)


1.    Auf dem Windows 8.1 Client sehen Sie jetzt im „Softwarecenter“ die Upgrade Tasksequenz.

2.    Wenn Sie jetzt die Upgrade Tasksequenz auswählen und auf "Installieren" klicken, startet die Installation. Zuvor erhalten Sie sofort die Warnmeldung, dass Sie ein Betriebssystem installieren.

3.    Nach der Bestätigung der Meldung werden zunächst die Installationquellen lokal heruntergeladen bevor die Installation startet.

In der Spalte Status können Sie den aktuellen Fortschritt des Downloads verfolgen.

4.    Nach dem Download beginnt der Upgradeprozess.

5.    Danach wird ein Neustart durchgeführt

6.    Nach dem Neustart wird die Installation fortgesetzt.

7.    Nach einem weiteren Neustart beginnt die eigentliche Installation.  Als erstes werden die „Daten kopiert“. Sie sehen in der Mitte den „Gesamtfortschritt“ und unten jeweils den Fortschritt der einzelnen Installationskomponenten.

8.    Es folgt wieder ein Neustart danach folgen die „Features und Treiber“.

9.    Nach einem weiteren Neustart werden im 3. Schritt die „Einstellungen konfiguriert

10.    Im Anschluss startet der Client neu und schließt die Upgrade Tasksequenz ab.

11.    Es wurde der Config Manger neu initialisiert und die Updates installiert.

12.    Ihr Client läuft jetzt mit Windows 10

13.    Nach der ersten Anmeldung werden noch einmal Einstellung von Windows konfiguriert.

14.    Wenn die Konfiguration des Clients abgeschlossen ist haben Sie das Upgrade erfolgreich abgeschlossen.

Export And Import Citrix XenDesktop Published Apps

$
0
0

In one of my last projects I needed an automated way to migrate published apps from a Citrix XenDesktop test site to a production site. There is no way to do so in Citrix Studio. Additionally the customer has many published apps configured with FTAs, categories and so on I was sure I would have missed something if I had gone the manual way.

I headed over to my colleague Clemens Geiler and we talked and scripted. The outcome were two scripts, one to export all published apps to json files and one to import apps with the information of the exported json files. I will explain the scripts in this article but you also can scroll to the end and download them right away.

Before you start

·         Citrix is adding features in each new release. The scripts were developed for version 7.8. If you use them with a later version note that new options maybe not get considered. If we have new releases for newer versions, we will update this blog post accordingly.

  • PowerShell version 3 is required. Be sure to update to that version if you are using Windows Server 2008R2.
  • The scripts have to be executed on a Citrix Controller.
  • Run the scripts in an elevated powershell console.
  • If you want to see some logs, run the scripts with –Verbose parameter. 

Export published apps

To export published apps, use the script Export-PublishedApps.ps1. As apps are published to Citrix delivery groups (or desktop group), you have to run the script for each delivery group you want to export apps from. For that reason the script has two mandatory parameters:

  • ExportFolder -> Folder where to save the exported json files. If it does not exist, the script creates it. In this folder the script creates a subfolder for each DesktopGroup.
  • DesktopGroup -> The Citrix Studio Desktop Delivery Group which will be the source for the export

Example: 

# Exports all published apps which are published to the desktop delivery group "Test" to the folder "C:\Export\Test"
.\Export-XenDesktopApplications.ps1 -ExportFolder C:\Export -DesktopGroup Test

Let’s have a look at the script. First you need to get the unique id of the desktop group. You can then get all apps published to that desktop group with Get-BrokerApplication –DesktopGroupUid. You loop through all the apps and build a hashtable with all properties for each app.

$DesktopGroupUid = (Get-BrokerDesktopGroup -Name $DesktopGroup).Uid
Get-BrokerApplication -DesktopGroupUid $DesktopGroupUid | ForEach-Object{
    $CurrentAppHashTable = @{}
    $CurrentApp = $_
    $CurrentApp|Get-Member -MemberType Property|foreach-object{
    $_.name
    }|foreach-object{
        $CurrentAppHashTable.Add($_, $(($CurrentApp).$($_)))
    }

We also want to get the icon for each app. They are saved in a base64 encoded string.

$BrokerIconUid = ($CurrentApp).IconUid
$BrokerEnCodedIconData = (Get-BrokerIcon -Uid $BrokerIconUid).EncodedIconData
$CurrentAppHashTable.Add('EncodedIconData', $BrokerEnCodedIconData)

The last thing we want to save in our hashtable are the file type associations. FTAs are defined per site. To get the associations with our apps we loop through all configured FTAs and search for the uid of the apps. Because an app can have multiple FTAs, we build a hashtable from the information and add it to our existing hashtable as a value.

Get-BrokerConfiguredFTA | Where-Object {$_.ApplicationUid -eq $CurrentApp.Uid} | ForEach-Object -Process {
        $FTAUid = "FTA-" + "$($_.Uid)"
        $FTA = @{}
        $FTA.Add('ContentType',$_.ContentType)
        $FTA.Add('ExtensionName',$_.ExtensionName)
        $FTA.Add('HandlerDescription',$_.HandlerDescription)
        $FTA.Add('HandlerName',$_.HandlerName)
        $FTA.Add('HandlerOpenArguments',$_.HandlerOpenArguments)
        $CurrentAppHashTable.Add("$FTAUid", $FTA)

That’s it! Last but not least we save the hashtable in a json file.

$AppName = $_.ApplicationName -replace '','_'
$Extension = 'json'
$Filename = $Appname + '.' + $Extension
$Content = $CurrentAppHashTable|ConvertTo-Json -Compress #-Compress is needed because of a bug in PowerShell -> http://stackoverflow.com/questions/23552000/convertto-json-throws-error-when-using-a-string-terminating-in-backslash
$Content|Set-Content -Path $(join-path $ExportFolder\$DesktopGroup $Filename) -Force

 

Import published apps

In the next step we are able to publish apps with the information of the exported json files in a new empty site. Importing is way more complex than exporting. Here we go!

As apps are published do desktop groups and we exported them per desktop group, we have to do the same we did when importing. For that reason the script Import-XenDesktopApplications.ps1 has two mandatory parameters as well:

  • ImportFolder -> Folder where the input json files are located
  • DesktopGroup -> The Citrix Studio Desktop Delivery Group which will be the target for the import. If the app already exists at a Site, the script will skip that app.

In the first step we built a list of all attributes we can find in the json files. We need them later on.

$AttributNames = (Convertfrom-Json "$(Get-Content (Get-ChildItem $ImportFolder -Filter *.json).fullname)"|Get-Member -MemberType NoteProperty|Select-Object Name).name

The icon data has to be removed because you can’t configure the icon on app creation. You have to do it later.

(Get-ChildItem $ImportFolder -filter *.json).FullName|ForEach-Object{
    $BrokerApplicationJSONFile = ConvertFrom-Json "$(Get-Content $_)"
    $BrokerApplicationHashTable = @{}
    $BrokerApplicationJSONFile|get-member -MemberType NoteProperty|Where-Object{-not [string]::IsNullOrEmpty($BrokerApplicationJSONFile."$($_.name)")}|ForEach-Object {$BrokerApplicationHashTable.add($_.name,$BrokerApplicationJSONFile."$($_.name)")}
    $AttributNames|ForEach-Object{
        if($_ -match 'AdminFolderUid' -or $_ -match 'AssociatedDesktopGroupUUIDs' -or $_ -match 'EncodedIcon')
        {
            $BrokerApplicationHashTable.Remove("$_")
        }
    }

The name of a published app contains the full path to the app including Citrix Studio folder names. If you have two published apps called Notepad, one in the root and the other one in the folder “Germany”, then name of the first one is “Notepad” , the second one’s is “Germany\Notepad”. The problem now is, that the Citrix cmdlets can’t handle strings with a backslash in them. That is why we safe the full name in the variable $OldAppName for later use. We then check if the app already exists, if so we skip this app.

$OldAppName = $BrokerApplicationHashTable.Name #save the full name with possible admin folders for later use as we have to trim all backspaces because studio does not allow them on app creation

    If (Get-BrokerApplication $OldAppName -ErrorAction SilentlyContinue)
    {
        Write-Verbose "App $OldAppName already exists. Skipping..."
    }

The next step is to handle admin folders. Admin folders are the folders you as an admin can see in Citrix Studio. On migrating apps from one site to another, we cannot assume that admin folders present at the source site as well exist at the destination site. Admin folders have to be created before we can publish an app which resides in that admin folder. On top the Citrix cmdlets do not have a –Force switch so that parent admin folders get created automatically. We have to handle that by ourselves. To all abundance you have to call the cmdlet for the admin folder creation with the parameter –ParentFolder in case there is a root folder and without it if there’s none. Well designed… So, these are the conditions we have to take care of:

App doesn’t have an admin folder -> Nothing to do :)

App has one or more admin folder

   -> There is only one admin folder level (e.g. “Germany”)

   -> There are multiple admin folder levels (e.g. “Germany\Cologne”)

      -> Root folder does not exist

      - >Root folder already exists

If ($BrokerApplicationHashTable.AdminFolderName)
        {
            $Folder = $BrokerApplicationHashTable.AdminFolderName
            Write-Verbose "Admin folder $Folder configured"
            If ($Folder.Split('\').Count -eq 1) #only one folder level
            {
                $FolderName = $Folder.Split('\')[0]
                If (Get-BrokerAdminFolder -Name $Folder -ErrorAction SilentlyContinue)
                {
                    Write-Verbose "Admin folder $Folder already exists. Skipping..."
                }
                Else
                {
                    Write-Verbose "Create admin folder $FolderName"
                    $null = New-BrokerAdminFolder -FolderName $FolderName
                }
            }
            Else #multiple folder levels
            {
                $max = $Folder.Split('\').Count - 1
                for ($i = 0; $i -le $max; $i++)
                {
                    If ($i -eq 0) #root folder does not exist
                    {
                        $FolderName = $Folder.Split('\')[0]
                        If (Get-BrokerAdminFolder -Name $Folder -ErrorAction SilentlyContinue)
                        {
                            Write-Verbose "Admin folder $Folder already exists. Skipping..."
                        }
                        Else
                        {
                            Write-Verbose "Create admin folder $FolderName"
                            $null = New-BrokerAdminFolder -FolderName $FolderName
                        }
                    }
                    Else #root folder already exists
                    {
                        $FolderName = $Folder.Split('\')[$i]
                        $ParentFolder = ($Folder.SubString(0, $Folder.LastIndexOf("$FolderName"))).Trim('\')
                        If (Get-BrokerAdminFolder -Name $Folder -ErrorAction SilentlyContinue)
                        {
                            Write-Verbose "Admin folder $Folder already exists. Skipping..."
                        }
                        Else
                        {
                            Write-Verbose "Create admin folder $FolderName in parent folder $ParentFolder"
                            $null = New-BrokerAdminFolder -FolderName $FolderName -ParentFolder $ParentFolder
                        }
                    }
                }
            }
        }

Admin folders, check! Off to the published app itself. One could assume that you can use something easy like splatting to create a published app:

$NewBrokerApplication = @{'ApplicationTyp' = 'HostedOnDesktop';'Name' = $($BrokerApplicationHashTable.Name);'BrowserName' = $($BrokerApplicationHashTable.BroswerName);'CommandLineExecutable' = $($BrokerApplicationHashTable.CommandLineExecutable)
    # and so on
}

New-BrokerApplication @NewBrokerApplication

You can’t. The Citrix cmdlets can’t handle empty values. Silly Citrix cmdlets! Instead we have to build a string without the parameters that equal $null and pass that over to Invoke-Expression.

$BrokerApplicationHashTable.Name = $BrokerApplicationHashTable.Name.Split('\')[-1]
        $BrokerApplicationHashTable.CommandLineArguments = $BrokerApplicationHashTable.CommandLineArguments -replace '"%\*"','' -replace "`"","'"

        $MakeApp = 'New-BrokerApplication -ApplicationType HostedOnDesktop'
        if($BrokerApplicationHashTable.Name -ne $null){$MakeApp += " -Name `"$($BrokerApplicationHashTable.Name)`""}
        if($BrokerApplicationHashTable.BrowserName -ne $null){$MakeApp += " -BrowserName `"$($BrokerApplicationHashTable.BrowserName)`""}
        if($BrokerApplicationHashTable.CommandLineExecutable -ne $null){$MakeApp += " -CommandLineExecutable `"$($BrokerApplicationHashTable.CommandLineExecutable)`""}
        if($BrokerApplicationHashTable.Description -ne $null){$MakeApp += " -Description `"$($BrokerApplicationHashTable.Description)`""}
        if($BrokerApplicationHashTable.ClientFolder -ne $null){$MakeApp += " -ClientFolder `"$($BrokerApplicationHashTable.ClientFolder)`""}
        if($BrokerApplicationHashTable.CommandLineArguments -ne ""){$MakeApp += " -CommandLineArguments `"$($BrokerApplicationHashTable.CommandLineArguments)`""}
        if($BrokerApplicationHashTable.Enabled -ne $null){$MakeApp += " -Enabled `$$($BrokerApplicationHashTable.Enabled)"}
        if($BrokerApplicationHashTable.WorkingDirectory -ne $null){$MakeApp += " -WorkingDirectory `"$($BrokerApplicationHashTable.WorkingDirectory)`""}
        if($BrokerApplicationHashTable.PublishedName -ne $null){$MakeApp += " -PublishedName `"$($BrokerApplicationHashTable.PublishedName)`""}
        if($BrokerApplicationHashTable.AdminFolderName -ne $null){$MakeApp += " -AdminFolder `"$($BrokerApplicationHashTable.AdminFolderName)`""}
        if($BrokerApplicationHashTable.WaitForPrinterCreation -ne $null){$MakeApp += " -WaitForPrinterCreation `$$($BrokerApplicationHashTable.WaitForPrinterCreation)"}
        if($BrokerApplicationHashTable.StartMenuFolder -ne $null){$MakeApp += " -StartMenuFolder `"$($BrokerApplicationHashTable.StartMenuFolder)`""}
        if($BrokerApplicationHashTable.ShortcutAddedToStartMenu -ne $null){$MakeApp += " -ShortcutAddedToStartMenu `$$($BrokerApplicationHashTable.ShortcutAddedToStartMenu)"}
        if($BrokerApplicationHashTable.ShortcutAddedToDesktop -ne $null){$MakeApp += " -ShortcutAddedToDesktop `$$($BrokerApplicationHashTable.ShortcutAddedToDesktop)"}
        if($BrokerApplicationHashTable.Visible -ne $null){$MakeApp += " -Visible `$$($BrokerApplicationHashTable.Visible)"}
        if($BrokerApplicationHashTable.SecureCmdLineArgumentsEnabled -ne $null){$MakeApp += " -SecureCmdLineArgumentsEnabled `$$($BrokerApplicationHashTable.SecureCmdLineArgumentsEnabled)"}
        if($BrokerApplicationHashTable.MaxTotalInstances -ne $null){$MakeApp += " -MaxTotalInstances $($BrokerApplicationHashTable.MaxTotalInstances)"}
        if($BrokerApplicationHashTable.CpuPriorityLevel -ne $null){$MakeApp += " -CpuPriorityLevel $($BrokerApplicationHashTable.CpuPriorityLevel)"}
        if($BrokerApplicationHashTable.Tags -ne $null){$MakeApp += " -Tags `"$($BrokerApplicationHashTable.Tags)`""}
        if($BrokerApplicationHashTable.MaxPerUserInstances -ne $null){$MakeApp += " -MaxPerUserInstances $($BrokerApplicationHashTable.MaxPerUserInstances)"}

        $MakeApp += " -DesktopGroup `"$DesktopGroup`""

        Write-Verbose "Create app $($BrokerApplicationHashTable.Name) with command $MakeApp"
        Invoke-Expression $MakeApp | Out-Null #we cant use splatting as the cmdlet New-BrokerApplication can not deal with empty values

As stated earlier the icon can’t be configured on app publishing. Therefore, we do it in the next step:

$EncodedIcon = New-BrokerIcon -EncodedIconData "$($BrokerApplicationJSONFile.EncodedIconData)"
Set-BrokerApplication -Name "$OldAppName"  -IconUid $EncodedIcon.Uid

Next: Add users to the published app.

If ($BrokerApplicationHashTable.AssociatedUserNames -ne $null)
        {
            Set-BrokerApplication -Name "$OldAppName" -UserFilterEnabled $true
            $users = $BrokerApplicationHashTable.AssociatedUserNames
            foreach($user in $users)
            {
                Write-Verbose "Add user $user to app $OldAppName"
                Add-BrokerUser -Name $user -Application "$OldAppName"
            }
        }

We’re nearly there. The last step is to configure FTAs. Like with app publishing PowerShell splatting is not supported and we have to go with our string and Invoke-Expression method.

Write-Verbose "Check if app $OldAppName has FTAs configured"
        $AttributNames | where-object {$_ -match 'FTA-'} | ForEach-Object {
            $OldFTA = $BrokerApplicationHashTable.$_

            $MakeFTA = "New-BrokerConfiguredFTA -ApplicationUid $((Get-brokerapplication -Name $OldAppName).Uid)"
            if($OldFTA.ExtensionName -ne $null){$MakeFTA += " -ExtensionName `"$($OldFTA.ExtensionName)`""}
            if($OldFTA.ContentType -ne $null){$MakeFTA += " -ContentType `"$($OldFTA.ContentType)`""}
            if($OldFTA.HandlerOpenArguments -ne $null){$MakeFTA += " -HandlerOpenArguments `"$($OldFTA.HandlerOpenArguments)`""}
            if($OldFTA.HandlerDescription -ne $null){$MakeFTA += " -HandlerDescription `"$($OldFTA.HandlerDescription)`""}
            if($OldFTA.HandlerName -ne $null){$MakeFTA += " -HandlerName `"$($OldFTA.HandlerName)`""}

            Write-Verbose "Create FTA $($OldFTA.ExtensionName) for app $OldAppName with command $MakeFTA"
            Invoke-Expression $MakeFTA | Out-Null #we cant use splatting as the cmdlet New-BrokerConfiguredFTA can not deal with empty values
        }

Done!

Thanks to Clemens Geiler for his help. Thanks to one of my favorite customers for letting me test and implement this in their environment.

Feel free to use the scripts or take the parts you need. Return here every now and then in case  Citrix released new versions of XenDesktop.

Regards,

Dominik

Step by Step Anleitung für das Upgrade von einer produktiven System Center 2012 R2 Configuration Manager Umgebung auf die „current branch“ Version 1602:

$
0
0

Seit System Center Configuration Manager 1511 gibt es einen Unterschied beim Updaten, Microsoft Update Pack Versionen sind anders als Service Packs und kumulativen Updates. Das Herunterladen und die Aktualisierung geschieht jetzt direkt von der Konsole aus. Wenn Sie ein Update von der Version 2012 R2 auf die neue ConfigMgr Version 1602 vorhaben, müssen Sie zuerst auf die Version 1511updaten, bevor Sie auf die Version 1602 updaten können. Die Version 1511 ist die Basisversion, auch wenn Sie diese von Grund auf neu installieren müssen. Sie können die Version 1602 nicht direkt installieren.


Informationen zu den verschiedenen Versionen

Die neuen Features in der Version 1511:

    Konsoleninterne Updates für Configuration Manager
    • Service Packs
    • Kumulatives Updates
    • Erweiterungen für Microsoft Intune
    • Einzelne Korrekturen

    Der Service Connection Point ersetzt den Microsoft Intune-Connector
    • Der Microsoft Intune-Connector wird durch eine neue Standortsystemrolle ersetzt, die zusätzliche Funktionalität ermöglicht den Dienstverbindungspunkt.
    • Aufgaben zum Service Connection Point:
         - Ersetzt den Microsoft Intune-Connector, wenn Sie Intune und lokale Verwaltung mobiler                 Geräte (Mobile Device Management, MDM) von System Center Configuration Manager                     integrieren
        -  Dient als ein Kontaktpunkt für Geräte, die Sie verwalten
        -  Lädt Nutzungsdaten zu Ihrer Bereitstellung in den Microsoft-Clouddienst hoch
        -  Stellt Updates, die für Ihre Bereitstellung gelten, in der Configuration Manager-Konsole dar

    Usage Data Collection

    • System Center Configuration Manager sammelt Verwendungsdaten zu Ihren Standorten und Ihrer Infrastruktur. Diese Informationen werden zusammengestellt und über den Service Connection Point (eine neue Standortsystemrolle) an den Microsoft-Clouddienst übermittelt. Sie sind erforderlich, um Configuration Manager für das Herunterladen von Updates für Ihre Bereitstellung zu aktivieren, die für die von Ihnen verwendete Version von Configuration Manager gelten. Wenn Sie den Service Connection Point konfigurieren, können Sie folgendes konfigurieren: die Ebene der Daten, die gesammelt werden und ob diese Daten automatisch (Onlinemodus) oder manuell (Offlinemodus) übermittelt werden sollen.

    Unterstützung für Intel Active Management Technology (AMT)
    • Mit dem System Center Configuration Manager werden einige Funktionen, wie z. B. nativer Support für Computer aus der Configuration Manager-Konsole entfernt, während andere Funktionen, wie der Netzwerkzugriffsschutz, vollständig entfernt wurden. Darüber hinaus werden einige ältere Microsoft-Produkte, wie Windows Vista, Windows Server 2008 und SQL Server 2008 nicht mehr unterstützt.

    Veraltete Funktionalität

    • Mit den System Center Configuration Manager werden einige Funktionen, wie z. B. nativer Support für Computer aus der Configuration Manager-Konsole entfernt, während andere Funktionen wie der Netzwerkzugriffsschutz vollständig entfernt wurden. Darüber hinaus werden einige ältere Microsoft-Produkte wie Windows Vista, Windows Server 2008 und SQL Server 2008 nicht mehr unterstützt.

Die neuen Features in der Version 1602:

    Client Online Status

    • Sie können nun den Online-Status eines Gerätes in „Assets and Compliance“ sehen. Neue Symbole zeigen den Status eines Geräts als online oder offline an.

    Support für SQL Server AlwaysOn Availability Groups

    • Configuration Manager unterstützt jetzt SQL Server AlwaysOn-Verfügbarkeitsgruppen in der Standortdatenbank.

    Windows 10 Device Health Attestation Reporting

    • Sie können jetzt den Status von Windows 10 Geräten „Health Attestation“ in der Configuration Manager-Konsole sehen. Zusätzlich ist jetzt möglich zu erkennen, ob die Client-Computer über ein vertrauenswürdiges BIOS, TPM und eine Boot-Software verfügen.

    Office 365 Update Management

    • Sie können jetzt native Office 365 Desktop-Client-Updates mit dem Configuration Manager Software Update Management (SUM) Workflow verwalten. Sie können Office 365 Desktop-Client-Updates verwalten, wie Sie alle anderen Microsoft Updates verwalten

    Antimalware Policy Settings

    • Es gibt neue Anti-Malware-Einstellungen, die nun so konfiguriert werden können, dass der Schutz vor potenziell unerwünschten Anwendungen sichergestellt wird.

    Windows 10 Servicing

    • Neue Verbesserungen wurden in die Wartungspläne für Upgrades hinzugefügt. Sie können jetzt Filter für das Deployment einstellen.

  • Die aktuellste current branch Version ist 1602. (Stand 03.05.2016)

In der TP 1603 kamen folgende Neuerungen hinzu:

    Die Listenansicht für Anwendungen im Software Center

    • In der Software Center Registerkarte Anwendungen-> Benutzer haben nun die Möglichkeit, zwischen der Standard-Kachel-Ansicht und einer neuen Listenansicht von unterhalb der Suchleiste zu wählen

    Das Installieren ausgewählter Updates im Software Center

    • In der neuen Registerkarte "Updates" im Software-Center, können jetzt mehrere Updates ausgewählt und gleichzeitig installiert werden

    Beschränkungen des Zugriffs auf die Zwischenablage in den Remote Control Sessions

    • Sie können jetzt Remote Tool Client-Einstellungen aktivieren und den Zugriff auf die gemeinsam genutzte Zwischenablage in einer Remotesession begrenzen. Wenn dies aktiviert ist, können die End-Benutzer, in einer Remotesession Berechtigungen für die Zuschauer dieser Sitzung erlauben, bevor Dateien aus der gemeinsamen Zwischenablage übertragen werden.

    Die PXE Provider TFTP-Fenstergröße

    • Der Administrator kann nun über die eine Registrierungseinstellung auf dem PXE-fähigen Verteilungspunkt (Distribution Point) die TFTP-Fenstergröße (RamDiskTFTPWindowSize) konfigurieren.

    Content Status Links in der Admin-Konsole

    • Die Content Status Links für die Objekte, wie Anwendungen, Pakete, Tasksequenzen oder Software-Updates, gehen nun direkt in das entsprechende Content Status Objekt.

In der TP 1604 kamen diese folgende Neuerungen hinzu:

    Windows Store for Business Integration
    • Sie können nun in dem Windows Store for Business-Portal, sowohl online als auch offline Anwendungen lizenzierter Apps bereitstellen.

    Passport for Work Policies

    • Sie können jetzt eine Verteilung von Passport-Richtlinien für Domänen integrierte Windows 10 Clients mit dem ConfigMgr Client verwalten. Dies gilt auch für mobile Geräte die von Microsoft Intune verwaltet werden.

    On-premises Health Attestation Service Integration

    • Sie können nun auch Geräte konfigurieren, die nicht mit dem coudbasierten Health Attestation Dienst, sondern mit dem lokalen Health Attestation Service verbunden sind.

    VPN für Windows 10

    • Sie können jetzt VPN-Profile von 3rd Party Providern auf Windows 10 Geräten verwalten und mit dem ConfigMgr Client bereitstellen.

    Software Updates Compliance Dashboard

    • Sie können nun das Dashboard verwenden, um den aktuellen „Compliance Status“ der Geräte in Ihrer Organisation zu analysieren und zu sehen welche Geräte gefährdet sind.

  • Die aktuellste Technical Preview Version ist 1604. (Stand 03.05.2016)

Anforderungen und Einschränkungen für die Technical Preview-Version (Siehe TechNet Artikel)
„Die Technical Preview-Version dient zur Verwendung in einer Lab-Umgebung. Da es sich um einen begrenzten Build zur Verwendung in einer Lab-Umgebung handelt, enthält er keine Supportoptionen und sollte nicht in einer Produktionsumgebung verwendet werden.


Informationen zu den meisten Produktvoraussetzungen finden Sie in der System Center 2012 Configuration Manager Dokumentation zu den unterstützten Konfigurationen. Informationen zu allgemeinen Vorgänge und Konfigurationen finden Sie in der Dokumentationsbibliothek zu System Center 2012 Configuration Manager.


Für die Technical Preview-Versionen gelten folgenden Ausnahmen:

  • Jede Installation wird nach 60 Tagen deaktiviert:
  • Englisch ist die einzige unterstützte Sprache.
  • Es wird nur ein eigenständiger primärer Standort unterstützt. In zentraler Verwaltungsstandort, mehrere primäre Standorte oder sekundäre Standorte werden nicht unterstützt.
  • Es werden nur die folgenden Versionen von SQL Server unterstützt:
  • SSQL Server 2012 mit dem kumulativen Update 2 oder höher
  • SQL Server 2014
  • Der Standort unterstützt bis zu 10 Clients mit einem der folgenden Betriebssysteme:
    • Windows 7
    • Windows 8
    • Windows 8.1
    • Windows 10
  • Es gibt keine Unterstützung für ein Upgrade auf diese Vorabversion.
  • Es gibt keine Unterstützung für ein Upgrade auf einen späteren Build dieser Vorabversion.
  • Nur die folgenden Installationsflags (Switches) werden unterstützt:
    • /silent
    • /testdbupgrade
  • Es gibt keine Unterstützung für die Migration zu oder von dieser Vorabversion.“

Updatehistory:

Jetzt wurde endlich mit der Einführung der ConfigMgr Version 1511, auch die Updatehistorie mit Windows 10 synchronisiert, es sollen jetzt keine Unterschiede mehr in der Updatehistorie wie bei ConfigMgr 2012 R2 und den älter Windows Versionen geben.


Vorwort zum ADK:

Vor der Installation des ADK 1511 (Windows 10) ist zu beachten, dass es durch das Update zu Problemen mit dem Configuration Manager kommt.
Bei dem Starten einer Tasksequenz mit dem Windows PE v10.0.10586 Boot-Image, bekommen Sie einen Fehler. Wenn der Computer im Windows PE neu startet, schlägt die Sequenz fehl mit dem Fehler "Hardware-Geräte initialisieren". Angezeigt wird:  "Windows PE Initialisierung mit dem Fehlercode 0x80220014 fehlgeschlagen"
Der Hotfix KB3143760, ist jetzt verfügbar um dieses Problem zu beheben. Dieser Hotfix erfordert, dass die Windows-Abbilddatei (boot.wim) manuell aktualisiert wird. Das Image muss dann manuell auf dem Configuration Manager Verteilungspunkt aktualisiert werden.


Dieses gilt für folgende ConfigMgr Versionen:

Diese Versionen benötigen optionale Unterstützung für die ADK von Windows 10:

  •             System Center Configuration Manager 2012 SP2
  •             System Center Configuration Manager 2012 R2 SP1



Diese Versionen benötigen die Windows-10 ADK Voraussetzung:

  •             System Center Configuration Manager Technical Preview
  •             System Center Configuration Manager (current branch)


Ganz wichtig sind auch die Diagnose- und Nutzungsdaten für System Center Configuration Manager.

In dem Artikel von Microsoft https://technet.microsoft.com/de-de/library/mt613113.aspx steht das Daten hochgeladen werden zu Microsoft, selbst wenn der Server keine Internet-Verbindung hat. Sobald Sie den Configuration Manager aktualisieren möchten, lädt die „serviceconnectiontool.exe“ Telemetrie Daten zu Microsoft hoch. https://technet.microsoft.com/de-de/library/mt607046.aspx#bkmk_offlinetool  Lesen Sie sich bitte die Datenschutzbestimmungen genau durch.


Wenn Sie dieses beachten können Sie mit der Installation starten.


ADK 10 Installieren:

Für die Installation der ConfigMgr Version 1511 werden nur folgende ADK 10 Komponenten benötigt.

  • Deployment Tools
  • Windows Preinstallation Environment
  • Imaging and Configuration Designer
  • User State Migration Tool

1.    Führen Sie die heruntergeladene „ADKsetup.exe“ aus und wählen Sie die Installationsvariante aus

2.    Jetzt folgt die Datenschutzbestimmung

3.    Nehmen Sie nach dem Durchlesen die Microsoft Lizenzbedingungen an.

4.    Jetzt wählen Sie die benötigten Komponenten aus und klicken Sie auf „Installieren

5.    Im Anschluss folgt die Installation

6.    Jetzt können Sie das Fenster schließen und das ADK 10 ist installiert.

Bitte denken Sie daran, dass auch solch ein Upgrade sinnvoll geplant werden muss, so wie bei kumulativen Updates und Service Packs in der Vergangenheit auch.

Upgrade ConfigMgr 2012R2 auf Version 1511.

1.    Führen Sie die „splash.hta“ aus

2.    Klicken Sie auf „Install“

3.    Die Microsoft Hinweise für die Installation

4.    Wir möchten die bestehende Umgebung upgraden

5.    Microsoft Lizenz AGBs akzeptieren

6.    Bestätigen Sie die Lizenzbedingungen.

7.    Erstellen Sie einen freigegebenen Ordner in dem die Updates abgelegt werden.

8.    Jetzt werden alle benötigten Updates heruntergeladen.

9.    Wählen Sie jetzt Ihre Sprachen für die Server aus

10.    Wählen Sie jetzt Ihre Sprachen für die Clients aus

11.     Information zu den vorher erwähnten Telemetrie Daten von Microsoft.

12.    Die Service Connection Points (SCPs) abfragen

13.    Die Zusammenfassung

14.    Jetzt folgt der „Prerequisite Check“ des Systems ob alle Voraussetzungen vorliegen.
Wenn keine Fehler vorliegen, können Sie auf „Begin Install“ klicken und die Installation starten

15.    Die Installation

16.    Zwischenstand.

17.    Die Installation ist fast fertig, Sie können jetzt das Fenster schließen.

18.    Jetzt ist die Installation abgeschlossen.

Dritter Step, das Upgrade von 1511 auf 1602

1.    Ganz wichtig, Sie müssen mindestens 15 GB frei haben auf dem Site Server. Sie bekommen sonst Probleme mit dem „Prerequisite Check“.

2.    Öffnen Sie die „Configuration Manager Console

3.    Gehen Sie auf „\Administration\Overview\Cloud Services\Updates and Servicing“, Sie sehen unter „State“ ob das Upgrade noch heruntergeladen wird oder schon heruntergeladen ist „Available

4.    Gehen Sie jetzt mit der rechten Maustaste auf das Upgrade und führen Sie „Run prerequisite check“ aus. (Das läuft alles im Hintergrund ab)

5.    Um den aktuellen Status abzufragen, öffnen Sie das „ConfigMgrPrereq.log

6.    Hier können Sie sehen ob der Check erfolgreich durchgelaufen ist.

7.    Jetzt sehen Sie, dass der Check durchgelaufen ist

8.    Sie können sich den Status auch unter „\Monitoring\Overview\Site Servicing Status“ ansehen

9.    Jetzt können Sie das Upgrade 1602 installieren

10.    Es startet der Wizard für die Installation

11.    Sie haben nun die Wahl der zusätzlichen Features

12.    Wählen Sie die Optionen für das Clientupdate. Sie können direkt ohne zu testen die Clients updaten oder Sie wählen eine „preproductionsammlung“ aus, in der Sie zuvor das Update testen können.

13.    Lesen und akzeptieren Sie die Lizenzbedingungen

14.    Nun erhalten Sie noch einmal die Zusammenfassung bevor Sie die Installation starten.

15.    Hier sehen Sie, dass die Installation durchgeführt wurde.

16.    Wenn die Installation fertig ist, können Sie dies wieder im „Site Servicing Status“ sehen.

Eine Alternative ist die manuelle Installation: 

Die manuelle Installation von 1602

Wenn das Update heruntergeladen ist, finden Sie das Update zur manuellen Installation im Ordner  "C:\Program Files\Microsoft Configuration Manager\EasySetupPayload\609f1263-04e0-49a8-940b-09e0e34de2d2\splash.exe"

Jetzt können Sie das Update genauso installieren wie alle vorigen Updates.

1.    Hier sehen Sie die Informationen vor dem Beginn.

2.    Wählen Sie jetzt „Upgrade der CM Site“ aus.

3.    Sie müssen jetzt die Microsoft Lizenz Informationen lesen und akzeptieren.

4.    Des Weiteren kommen jetzt die Lizenz AGB’s von SQL und Silverlight hinzu, die Sie vor der Installation akzeptieren müssen.

5.    Sie müssen jetzt einen zuvor freigegebenen Ordner für den Download der „Prerequisite Downloads“ angeben.

6.    Jetzt werden alle Setup Dateien heruntergeladen.

7.    Wählen Sie Ihre Server-Sprachen aus.


8.    Im Anschluss folgt die Sprache der Clients.

9.    Lesen Sie nun die „Usage Data“ Information.

10.    Es folgt nun die Zusammenfassung.

11.    Im Anschluss erfolgt der „Prerequisite Check“ und die Installation kann losgehen.

12.    Jetzt werden die Komponenten installiert.

13.    Nun ist die Installation fertig.

Jetzt können Sie den Configuration Manager in der Version 1602 verwenden.


PowerShell: Sprachkonstrukte (Flusssteuerung mit CMDLets) - Part 17.5

$
0
0

4.4.8     Flusssteuerung mit CMDLets


Die Flusssteuerung kann auch mit Hilfe von CMDLets vorgenommen werden. Sie können prinzipiell die gleichen Aufgaben erledigen wie die Sprachkonstrukte, es gibt jedoch einige wichtige Unterschiede. Die am häufigsten für die Flusssteuerung verwendete CMDLets sind ForEach-Object und Where-Object.


4.4.8.1     ForEach-Object

Das ForEach-Objekt CMDLet arbeitet ähnlich wie die Foreach-Schleife. Es wird eine Reihe von Objekten aus einer Collection nacheinander in einem Anweisungsblock abgearbeitet. Der Unterschied zu der Foreach-Schleife besteht darin, dass hier die Objekte erst zu Verarbeitungszeit generiert werden und nach der Verarbeitung/Ausgabe verworfen werden. Die Foreach-Schleife hingegen generiert die komplette Liste der Objekte, bevor die eigentliche Verarbeitung beginnt. In vielen Fällen muss das keine Bedeutung haben, aber bei der Verarbeitung von großen Datenmengen wirkt sich die Foreach-Schleife unter Umständen sehr negativ auf den Systemspeicher aus. Der zweite Unterschied besteht darin, dass die Foreach-Schleife lediglich einen Anweisungsblock verarbeiten kann. ForEach-Object hingegen kann drei solche Blöcke verarbeiten, die eine ähnliche Bedeutung haben wie bei Funktionen (Begin, Process, End; siehe Kapitel 4). Um dies zu veranschaulichen, wird noch mal das vierte Beispiel für die Foreach-Schleife (Kapitel 4.4.3) betrachtet:

1.	Get-Process iexplore | ForEach-Object {$h=0}{$h+=$_.Handles}{$h}
2236


Auf den ersten Blick fällt die wesentlich kompaktere Schreibweise als bei der Foreach-Schleife auf. Hier wird ebenfalls mit Hilfe des CMDLets Get-Process die Liste aller laufenden Internet Explorer Processe generiert. Der erste Anweisungsblock wird einmalig ausgeführt, bevor das ForEach-Object CMDLet das erste Objekt von der Pipeline empfängt. Der zweite Anweisungsblock wird für jedes übergebene Objekt ausgeführt. Das Objekt selbst wird in der Laufvariablen $_ zwischengespeichert. Der Ausdruck $_.Handles repräsentiert also die Anzahl von Handles für jedes Objekt (ein einzelner Internet Explorer Process). Die Handles werden jeweils auf die Variable $h addiert. Im letzten Anweisungsblock wird anschließend die Summe der Handles ausgegeben. Dieser Block wird ausgeführt, wenn alle übergebenen Objekte verarbeitet wurden.


4.4.8.2     Where-Object

Eine weitere Möglichkeit für die Flusssteuerung stellt das CMDLet Where-Object dar. Es stellt eine Art Filterungsmöglichkeit für die Pipeline. Die Filterung kann über eine oder mehrere Eigenschaften der von der Pipeline übergebenen Objekte erfolgen.

1.	Get-EventLog System | Where-Object {$_.EntryType -like "error"}

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
  136159 Feb 17 10:18  Error       Service Control M...   3221232472 The IBM Access Suppo
  136029 Feb 17 10:17  Error       Service Control M...   3221232488 The Data Transfer Se
  135988 Feb 17 10:08  Error       ipnathlp                    31004 The descrip-tion for
  135987 Feb 17 10:08  Error       ipnathlp                    31004 The descrip-tion for
  135872 Feb 17 09:15  Error       Service Control M...   3221232472 The IBM Access Suppo
  135747 Feb 17 09:06  Error       Service Control M...   3221232488 The Data Transfer Se
  135723 Feb 17 08:43  Error       Service Control M...   3221232504 The Service Control
. . .
2.	Ctrl + C


In diesem Beispiel wird das System-Eventlog nach Fehlermeldungen gefiltert.




Eine Übersicht aller Artikel dieser Windows PowerShell Blogserie findet ihr hier.

Zurück zu Part 17.4 - Sprachkonstrukte (Do/While Schleife, Do/Until Schleife, Break/Continue und Labels)

Testen von Clientupgrades in einer Präproduktionssammlung in System Center Configuration Manager

$
0
0

Eine Übersicht der Blogserie Windows 10 und ConfigMgr Deployment Serie finden Sie hier.

Seit der Version 1602 des System Center Configuration Managers steht Ihnen nun eine Möglichkeit zum Testen neuer Configuration Manager Clientversionen zur Verfügung. Sie können eine Präproduktionssammlung erstellen und nur die in der Präproduktionssammlung befindlichen Geräte werden auf die neue Version des Clients aktualisiert. Erst wenn Sie die neue Version im Rahmen Ihrer Tests abgenommen haben, können Sie sie heraufstufen.  Auf diese Weise machen Sie die neue Version des Clients dann für den übrigen Standort verfügbar.


Zunächst muss eine Sammlung erstellt werden, die später Ihre Testclients enthalten soll.

1.    Erstellen Sie eine Sammlung, der Sie ihre Testclients hinzufügen können.

2.    2.  Geben Sie einen Namen für die Clientsammlung an

 
3.    Geben Sie nun die Begrenzung Ihrer Clientsammlung ein (in meinem Testfall „All Systems“)

 
4.    Sie entweder hier auf Zusammenfassung klicken, um zunächst eine leere Clientsammlung zu erstellen.

 
5.    Oder Sie können auch sofort eine Regel für die Sammlung erstellen, um die gewünschten Testclients der Sammlung hinzuzufügen. Wählen Sie dafür „direkte Regel

 
6.    Nun öffnet Sich der Assistent für die Mitgliedschaftsregeln.

 
7.    Wählen Sie jetzt ein Attribut aus (z.B. „Name“ für den Namen des Clients) und geben Sie als Wert den Namen des gewünschten Clients ein. (Beispiel: „LPC03“)

 
8.    Nun werden die zutreffenden Clients angezeigt (In meinem Fall nur der Client LPC03)

 
9.     Zum Schluss folgt noch die Zusammenfassung.

 
10.     Die Regel ist nun erfolgreich erstellt worden.

 
11.    Aktualisieren Sie jetzt die Mitglieder der Gruppe, indem Sie mit der rechten Maustaste auf die Gruppe klicken und "Update Membership" auswählen.

 
12.    Im Anschluss sehen Sie hier, dass ein Client als Mitglied angezeigt wird.

 
13.    Um die neu erstellte Sammlung nun als Ziel für das Update des Clients zu verwenden, öffnen Sie in der "Configuration Manager-Konsole Verwaltung -> Standortkonfiguration -> Standorte" und klicken Sie auf "Hierarchieeinstellungen".

 
So konfigurieren Sie automatische Clientupgrades für die Verwendung einer Präproduktionssammlung:

       1.    Führen Sie auf der Registerkarte „Clientupgrade“ der Seite „Eigenschaften von Hierarchie Einstellungen“  bitte folgende Aktionen aus:

  • 1.    Aktivieren Sie „Alle Clients in der Präproduktionssammlung automatisch mithilfe des Präproduktionsclients aktualisieren
  • 2.    Geben Sie den Namen der Sammlung ein, die sie weiter oben als Präproduktionssammlung erstellt haben.

       


So stufen Sie den neuen Client höher:


1.    Öffnen Sie in der Configuration Manager-Konsole „Verwaltung > Clouddienste > Updates und Wartung“, und klicken Sie auf „Clientupdateoptionen“.
 

 

2.    2.    Aktivieren Sie in „Clientupdateoptionen“ die Option, die Clientversion aus der Präproduktion in der Produktionsumgebung verfügbar zu machen, und klicken Sie dann auf „OK“.
 

3.    3.    Nach dem Schließen der „Clientupdateoptionen“ wird die aktuelle Clientversion in IhrerConfig Manager Hierarchie durch die aktualisierte Clientversion ersetzt. Anschließend können Sie die Clients für den gesamten Standort mit den bereits aus den Vorgängerversionen des Config Managers bekannten Verfahrens aktualisieren. Informationen zur Aktualisierung der Clients von „TechNet“.

 






Windows 10 Deployment mit dem Microsoft Deployment Toolkit 2013 Update 2

$
0
0

Hier gehts zur Blogserie: Windows 10 und ConfigMgr Deployment

Microsoft stellt mit dem Microsoft Deployment Toolkit 2013 Update 2 (MDT) ein Werkzeug zum kostenlosen Download bereit, mit dem sich Windows Betriebssysteme inklusive gewünschter Anwendungen und Updates automatisiert installieren lassen.

Im Gegensatz zum kostenpflichtigen System Center Configuration Manager, der die Verteilung des Betriebssystems vollständig automatisieren kann (Zero-Touch-Deployment), ermöglicht es MDT die Verteilung weitestgehend zu automatisieren, sodass sie lediglich von einem Administrator vor Ort angestoßen werden muss. In diesem Fall spricht man von Lite-Touch-Deployment.


Voraussetzungen

Um eine funktionstüchtige MDT Umgebung aufzusetzen, benötigt man zunächst einmal eine Windows Maschine, auf der die benötigten Komponenten installiert werden und die im weiteren Verlauf die zur Installation von Betriebssystemen benötigten Dateien in Form eines Deployment Shares bereitstellt. MDT unterstützt Client Betriebssysteme ab Windows 7 und Server Betriebssysteme ab Windows Server 2008 R2. In meiner Demo Umgebung habe ich dazu einen Windows Server 2012 R2 verwendet.

MDT benötigt für die Installation das Microsoft Assessment and Deployment Kit (ADK) für Windows 10.
Das ADK für Windows 10 in der Version 1511 kann hier heruntergeladen werden:
http://go.microsoft.com/fwlink/p/?LinkId=526740

Das Microsoft Deployment Toolkit 2013 Update 2 ist als x86 und x64 Version unter folgendem Link zum Download erhältlich:
https://www.microsoft.com/en-us/download/details.aspx?id=50407


Installation der benötigten Komponenten

Windows ADK

Auf dem ausgewählten MDT Server muss das heruntergeladene Setup des Windows ADKs ausgeführt werden und die folgenden Komponenten ausgewählt und installiert werden:

  • Deployment Tools
  • Windows Preinstallation Environment (Windows PE)
  • User State Migration Tool (USMT)

Auswahl des Installationsordners:

Keine Teilnahme am CEIP:

Den Lizenzbestimmungen zustimmen:

Auswahl der gewünschten Features:

Hinweis:

Für das Microsoft Deployment Toolkit 2013 Update 2 sind die oben aufgeführten drei Komponenten notwendig. Weitere Komponenten sind optional.
Microsoft Deployment Toolkit 2013 Update 2

Microsoft Deployment Toolkit 2013 Update 2

Die Installation des Microsoft Deployment Toolkits wird durch das Ausführen der heruntergeladenen MicrosoftDeploymentToolkit2013_x64.msi (bzw. MicrosoftDeploymentToolkit2013_x86.msi auf 32-bit Systemen) gestartet.


Den Lizenzbestimmungen zustimmen:

Auswahl der gewünschten Features:


Keine Teilnahme am CEIP:

Start der Installation:

Konfiguration

Nach der erfolgreichen Installation kann nun die "Deployment Workbench" auf dem MDT Server aus dem Startmenü aufgerufen werden, um die weitere Konfiguration des Microsoft Deployment Toolkits vorzunehmen.


Deployment Share

Nach einem Rechtsklick auf den Knoten "Deployment Shares" kann im Kontextmenü der Punkt "New Deployment Share" ausgewählt werden.


Hinweis:

Das Deployment Share bildet beim Microsoft Deployment Toolkit das "Arbeitsverzeichnis" und liegt meist auf dem MDT Server selbst. Es beinhaltet alle Setup Files, Treiber und Skripte, die für das spätere Deployment benötigt werden. Darüber hinaus enthält es die Konfigurationsdateien (Rules), die für das Deployment von Maschinen benötigt werden.

Auswahl des Pfades, in dem das Deployment Share erstellt werden soll:

Hinweis:

Das für das Deployment Share gewählte Verzeichnis muss im späteren Verlauf des Deployments von jedem zu installierenden Client über die Freigabe erreichbar sein.


Freigabename des Deployment Shares:

Hinweis:

Die Freigabe auf das Verzeichnis wird zwar in diesem Vorgang grundsätzlich durchgeführt. In bestimmten Fällen macht es jedoch Sinn, diese nachträglich anzupassen. (siehe auch: Boostrap.ini)

Beschreibung des Deployment Shares:

Auswahl der gewünschten Optionen (Änderungen können später jederzeit durch Modifikation der Konfigurationsdatei CustomSettings.ini vorgenommen werden:

Hinweis:

Die hier ausgewählten Optionen erscheinen im Verlauf des Deployments als Abfragedialog im Deployment Prozess auf den Clients.


Zusammenfassung der Eingaben:

Erstellung des Deployment Shares erfolgreich abgeschlossen:

Einstellungen CustomSettings.ini

Die Datei CustomSettings.ini enthält die gesamte Konfiguration und das Installations-Regelwerk des "Deployment Shares". An dieser Stelle kann zentral gesteuert werden, wie sich der Installationsablauf im Rahmen des Deployments darstellen soll.

Es können beispielsweise einzelne Installationsparameter bereits in der CustomSettings.ini vorgegeben werden, sie können dynamisch zur der Laufzeit des Deployments automatisch ermittelt werden oder sie können beim Start des Deployments von einem Assistenten abgefragt werden.

Mit diesen Einstellungen wird beispielsweise der Assistent zur Abfrage der Lokalisierungseinstellungen deaktiviert und alle Einstellungen auf Deutsch gesetzt:

SkipLocaleSelection=YES
UILanguage=de-DE
UserLocale=de-DE
KeyboardLocale=0407:00000407


Diese Konfiguration setzt den Computernamen im Rahmen des Deployments automatisch auf ein hardwareabhängiges Präfix ("VM-" für virtuelle Maschinen, "NB-" für Notebooks und "PC-" für Desktops) und hängt die letzten 6 Stellen der UUID des Computers an:
[VM]
Subsection=VM-%IsVM%

[Laptop]
Subsection=Laptop-%IsLaptop%

[Desktop]
Subsection=Desktop-%IsDesktop%

[VM-True]
OSDComputername=VM-#right("%UUID%",6)#

[Laptop-True]
OSDComputername=NB-#right("%UUID%",6)#

[Desktop-True]
OSDComputername=PC-#right("%UUID%",6)#



Die Einstellungen der CustomSettings.ini lassen sich unter den Eigenschaften des Deployment Shares aufrufen:

Auf dem Reiter Rules lassen sich nun die Einstellungen der CustomSettings.ini bearbeiten:

Hinweis:

Die hier definierten Einstellungen gelten für alle Deployments unabhängig von der Tasksequenz.

Eine komplette Referenz aller Konfigurationsmöglichkeiten innerhalb der Customsettings.ini ist hier zu finden: https://technet.microsoft.com/en-us/library/dn781091.aspx


Hier als Beispiel die von mir verwendete CustomSettings.ini, die eine automatisierte Installation von Windows 10 ohne weitere Benutzereingaben während des Setups ermöglicht:
[Settings]
Priority=Default, VM, Laptop, Desktop
Properties=MyCustomProperty

[Default]
_SMSTSOrgName=My Test Lab
OSInstall=Y
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=YES
SkipBitLocker=YES
SkipUserData=YES
UserDataLocation=AUTO
SkipComputerName=YES

SkipLocaleSelection=YES
UILanguage=de-DE
UserLocale=de-DE
KeyboardLocale=0407:00000407

SkipTimeZone=Yes
TimeZone=110
TimeZoneName=W. Europe Standard Time

SkipDomainMembership=YES
JoinDomain=domain.local
DomainAdmin=JoinAdmin
DomainAdminDomain=domain
DomainAdminPassword=P@ssw0rd

SkipSummary=YES
SkipFinalSummary=NO

[VM]
Subsection=VM-%IsVM%

[Laptop]
Subsection=Laptop-%IsLaptop%

[Desktop]
Subsection=Desktop-%IsDesktop%

[VM-True]
OSDComputername=VM-#right("%UUID%",6)#

[Laptop-True]
OSDComputername=NB-#right("%UUID%",6)#

[Desktop-True]
OSDComputername=PC-#right("%UUID%",6)#


Einstellungen Bootstrap.ini

Die Bootstrap.ini beinhaltet die erforderlichen Konfigurationen, die das Boot Medium benötigt um eine Verbindung mit dem Deployment Share herstellen zu können. Hier eine Beispielkonfiguration, die automatisch eine Verbindung herstellt, ohne nach Benutzernamen und Passwort zu fragen:


[Settings]
Priority=Default

[Default]
SkipBDDWelcome=YES
DeployRoot=\\MDT01\DeploymentShare$
UserDomain=domain.local
UserID=ShareUser
UserPassword=P@ssw0rd


Da die Bootstrap.ini für das Bootmedium erforderliche Konfigurationsparameter enthält und deshalb auf diesem vorhanden ist, müssen nach Änderungen an dieser Datei zwingend die Boot Medien aktualisiert werden.
Die Einstellungen der Bootstrap.ini lassen sich unter den Eigenschaften des Deployment Shares aufrufen:

Auf dem Reiter Rules lassen sich nun über einen Klick auf "Edit Bootstrap.ini" die gewünschten Änderungen an der Konfigurationsdatei vornehmen:

Update Deployment Share und Erstellung eines Boot Mediums

Nachdem alle erforderlichen Konfigurationen der CustomSettings.ini und Bootstrap.ini vorgenommen worden sind, kann nun das Deployment Share aktualisiert werden und das für die Bare Metal Installation der Clients erforderliche Boot Medium erstellt werden. Standardmäßig wird dabei für die beiden Prozessor-Architekturen x86 und x64 jeweils ein Windows Image (WIM) und ein Disc Image (ISO) erstellt. Die Windows Images können anschließend in einen Windows Deployment Service (WDS) eingebunden werden, um eine PXE-basierende Installation zu ermöglichen. Das Disc Image kann entweder direkt an eine virtuelle Machine gemountet werden oder als Boot Medium auf eine CD bzw. DVD gebrannt werden.

Hinweis:

Selbst, wenn Sie nur die Verteilung einer Architektur planen, müssen dennoch beide Boot Images erstellt werden.


Update "Deployment Share" auswählen:


Boot Images sollen nur neu erstellt werden, wenn dies erforderlich ist:


Zusammenfassung der Eingaben:

Die Erstellung wurde erfolgreich beendet:

Die für die Installation in meinem Test Lab benötigte ISO Datei befindet sich nach Abschluss des Assistenten im Unterordner Boot des "Deployment Shares":

Bare Metal Deployment

Import Windows 10 Image

Im nächsten Schritt möchten wir nun ein bereits angepasstes Wim File importieren. Nach einem Rechtsklick auf den Knoten "Operating Systems" kann im Kontextmenü der Punkt "Import Operating System" ausgewählt werden.

Auswahl des Imports einer Windows Image Datei:

Auswahl des zu importierenden Images:

Es werden keine Setup Dateien benötigt:

Auswahl eines Verzeichnisnamens in das das Image importiert werden soll:

Zusammenfassung der Eingaben:

Importvorgang erfolgreich abgeschlossen:

Erstellung einer MDT Deployment Task Sequenz

Nachdem wir ein Image zur Verteilung importiert haben, erstellen wir nun die Logik, mit der es verteilt wird. Hierzu verwendet man im MDT eine Task Sequenz. Diese fasst ein Set an Prozessen zusammen und definiert u.a. deren sequentiellen Ablauf.

Nach einem Rechtsklick auf den Knoten "Task Sequences" kann im Kontextmenü der Punkt "New Task Sequence" ausgewählt werden:


Eingabe einer eindeutigen Task Sequenz ID und eines eindeutigen Namens für die Task Sequenz:

Hinweis:

Sowohl die Task Sequenz ID als auch der Name dürfen nur einmal vergeben werden und sollten demnach fortlaufend bzw. eindeutig gewählt werden.


Auswahl der Vorlage für eine "Standard Client Task Sequence":

Hinweis:

MDT bietet ein Set an verschiedenen Tasksequenzen:

Standard Client Task Sequence: Die am häufigsten verwendete Task Sequenz. Wird verwendet um ein Referenzimage zu erstellen oder Clients zu deployen.

Standard Client Replace Task Sequence: Wird verwendet um User State Migration Tool (USMT) Backups für Client Deployments zu erstellen oder um die Full Wim Backup Aktion durchzuführen. Weiterhin wird diese Tasksequenz häufig für Full Wipe Szenarien verwendet (wenn ein Gerät bspw. End of Life ist).

Standard Client Upgrade Task Sequenz: Wird verwendet um ein In-Place Upgrade auf Windows 10 durchzuführen.

Custom Task Sequenz: Wie der Name bereits schließen lässt, eine Task Sequenz die nichts außer einen Schritt beinhaltet (Install Application). Sie kann individuell, wie alle anderen Task Sequenzen auch, angepasst werden.

Litetouch OEM Task Sequence: Wird verwendet um Betriebssystemabbild vorab bereitzustellen. Häufig verwendet von Hardware Herstellern.

Standard Server Task Sequence: Die Standard Tasksequenz um Betriebssystemabbilder auf Server zu installieren. Der Hauptunterschied zur Standard Client Task Sequenz ist der Verzicht auf USMT Schritte.

Standard Server Upgrade Task Sequenz: Kann verwendet werden um das In-Place Upgrade auf Windows Server 2016 durchzuführen.

Post OS Installation Task Sequenz: Eine Task Sequenz die ihren Einsatz darin findet Nachbereitungen nach einer erfolgreichen Betriebssysteminstallation durchzuführen. Wird größtenteils für Server verwendet.

Deploy to VHD Client Task Sequenz: Ist identisch zur Standard Client Task Sequenz, erstellt jedoch zusätzlich ein Virtual Hard Disk (VHD) File auf dem Zielcomputer und installiert das Image auf der VHD.

Auswahl des gewünschten Betriebssystem Abbildes:

Abhängig von der Umgebung kann hier die Eingabe eines Produktschlüssels vorgenommen werden. Beim Einsatz eines Key Management Servers (KMS) oder wie hier in einer Demo Umgebung muss kein Produktschlüssel angegeben werden. Andernfalls kann hier ein Multiple Activation Key (MAK) oder ein Retail Produktschlüssel eingegeben werden. Hierbei ist jedoch zu beachten, dass mit einem Retail Produktschlüssel nur eine einzelne Maschine aktiviert werden kann.

Keine Angabe eines Produktschlüssels:


Einige Einstellungen bzgl. der Konfiguration des Betriebssystems vornehmen:

Eingabe des lokalen Administrator Kennworts:

Zusammenfassung der vorgenommenen Einstellungen:

Erstellung der Task Sequenz erfolgreich abgeschlossen:


Ablauf einer Installation mit MDT

Abhängig von der verwendeten Hardware kann bei einer virtuellen Maschine das Boot Medium in Form eines Disc Images gemountet werden und bei einer physikalischen Maschine die vom Disk Image erstellte DVD eingelegt werden. Anschließend kann der Rechner von diesem Medium gebootet werden:

Auswahl der gewünschten Task Sequenz:


Ablauf der Installation:

Installation von Windows 10 erfolgreich abgeschlossen:

In-Place Upgrade auf Windows 10

Mit der Einführung von Windows 10 bietet Microsoft nun ein In-Place Upgrade Verfahren eines bestehenden Betriebssystems auf Windows 10 an. Anders als bei früheren Windows Versionen ist hier nicht nur das Upgrade von der letzten Betriebssystemversion (n-1) aus möglich, sondern das Upgrade unterstützt alle Windows Versionen ab Windows 7.

Es gibt allerdings auch Einschränkungen, in denen ein In-Place Upgrade nicht möglich ist. Die Sprache und die Architektur des Betriebssystems kann im Rahmen eines In-Place Upgrades nicht verändert werden. Es ist also beispielsweise nicht möglich, im Rahmen eines In-Place Upgrades von einem englischen Windows 7 auf ein deutsches Windows 10 oder von Windows 7 x86 auf Windows 10 x64 zu springen.

Um das In-Place Upgrade durchzuführen, wird, anders als bei einem herkömmlichen Deployment, die gesamte Setup-DVD benötigt und nicht nur das auf der DVD befindliche Windows Image in Form einer WIM Datei. Daraus ergibt sich die zweite Einschränkung. Das In-Place Upgrade kann nur auf ein Original Windows 10 Image durchgeführt werden und nicht auf ein bereits mit Applikationen versehenes, angepasstes Image.

Import Windows 10 Setup DVD

Nach einem Rechtsklick auf den Knoten "Operating Systems" kann im Kontextmenü der Punkt "Import Operating System" ausgewählt werden:

Auswahl des Imports einer gesamten Setup DVD:

Auswahl des Pfades zur Setup DVD:

Auswahl eines Verzeichnisnamens, in das das Image importiert werden soll:

Zusammenfassung der Eingaben:

Importvorgang erfolgreich abgeschlossen:

Über die Eigenschaften des importierten Betriebssystems kann der gewünschte Name angepasst werden:


Erstellung einer MDT Upgrade Task Sequenz


Erneut müssen wir das importierte Betriebssystem verteilen und verwenden hierfür eine Task Sequenz.

Eingabe einer eindeutigen Task Sequenz ID und eines eindeutigen Namens für die Task Sequenz:


Auswahl der Vorlage "Standard Client Upgrade Task Sequence":

Auswahl des gewünschten OS Images:

Keine Angabe eines Produktschlüssels:

Abhängig von der Umgebung kann hier die Eingabe eines Produktschlüssels vorgenommen werden. Beim Einsatz eines Key Management Servers (KMS) oder wie hier in einer Demo Umgebung muss kein Produktschlüssel angegeben werden. Andernfalls kann hier ein Multiple Activation Key (MAK) oder ein Retail Produktschlüssel eingegeben werden. Hierbei ist jedoch zu beachten, dass mit einem Retail Produktschlüssel nur eine einzelne Maschine aktiviert werden kann.


Einige Einstellungen bzgl. der Konfiguration des Betriebssystems vornehmen:

Eingabe des lokalen Administrator Kennworts:


Zusammenfassung der Eingaben:

Erstellung der Task Sequenz erfolgreich abgeschlossen:


Die vom Assistenten erstellte Task Sequenz kann nachträglich jederzeit angepasst bzw. erweitert werden. Da die Clients in meiner Demo Umgebung über Internet Zugang verfügen, habe ich im Schritt "Upgrade Windows" die Option ausgewählt, Windows Setup vor dem Start mit den aktuellsten Updates zu aktualisieren.

Ablauf eines Upgrades mit MDT

Upgrade Task Sequenzen werden nicht von einem erstellten Boot Medium gestartet, sondern aus dem laufenden Betriebssystem heraus, das aktualisiert werden soll. Um das Upgrade zu initiieren, muss das Skript LiteTouch.vbs aus dem Unterordner Scripts auf dem Deployment Share gestartet werden: \\MDTServer\Deploymentshare\Scripts\LiteTouch.vbs

Auswahl der gewünschten Upgrade Task Sequenz:

Herunterladen des neuen Betriebssystem Images und sichern des bisherigen Betriebssystems:

Anwenden des neuen Windows 10 Images:

Upgrade auf Windows 10 erfolgreich abgeschlossen:

Hier gehts zur Blogserie: Windows 10 und ConfigMgr Deployment

Healthcare Event - Mobilität und Sicherheit für klinische Arbeitsplätze

$
0
0

Um die Themen „Mobilität und Sicherheit“ aus verschiedenen Blickwinkeln zu beleuchten, Erfahrungen auszutauschen, kritische Fragen zu stellen und bereits umgesetzte Projekte miteinander zu besprechen, organisieren wir einen Tag, der Einblick über mögliche klinische Arbeitsplätze der Zukunft bietet.

Am 7. Juli, in den Räumlichkeiten von Citrix in München, bringen wir verschiedene Vertreter von Kliniken, medizinischen Diensten und IT – Verantwortliche zusammen.

Unser Anliegen ist es u.a. folgende Aspekte genauer zu beleuchten:

- Lückenlose Dokumentation der Leistungserbringung

- Elektronische Erfassung der sensiblen Daten direkt am Patienten

- Befunddaten von überall elektronisch nachschauen

- Mobile Visite

Wenn Sie das Thema interessiert und Sie gerne mehr erfahren wollen, melden Sie sich direkt unter https://healthcare_event.eventbrite.de an.

Unter dem Link finden Sie alle weiteren Details zur Veranstaltung und die Agenda.

Installing Microsoft SQL Server 2014 in Azure with Azure Files - Step-by-Step

$
0
0

Know this beforehand: I’m  not a Microsoft SQL Server professional,  but sometimes I have to install and configure a SQL Server. In this case I needed to have a native Microsoft SQL Server 2014 in Azure (SQL as a service was not an option in this case ).

But how do you configure an SQL Server in regard to the disks? It´s best practice to have a single disk for each of the following:

  • Data files
  • Log files
  • TempDB data file
  • TempDB log file

In the data center world, I have now to deal with different RAID configurations or have to use an enterprise storage. In Azure I have three different approaches:

Use Azure standard disks attached to the virtual SQL Server

  • Easy and cheap
  • Limited to 500 IOPS on a standard VM size per Disk

Use Azure premium storage disks attached to the virtual SQL Server

  • Extremely  good performance
  • Very expensive

Use Azure Files as a network share  instead of disks

  • Easy and cheap
  • Up to 1000 IOPS per share

In my case I decided to use Azure Files.

Prepare the storage

Create a new storage account in Azure or use an  existing one (please note: A storage account can handle up to 20000 IOPS. If you use an existing storage account, ensure that the account can handle an additional 4000 IOPS).

I create a new standard storage account named “sqldataonazure” in the same region as my SQL Server VM (use a least a D2v2 sized VM):

 

Then I create 4 Azure File Shares  with a quota of  up to 1024 GB named:

  • sql-data
  • sql-log
  • sql-tempdb-data
  • sql-tempdb-log

 

To map an Azure file share, click on (e.g.)  “sql-data” -> connect and you will see a net use  command:

net use [drive letter] \\sqldataonazure.file.core.windows.net\sql-data /u:sqldataonazure [storage account access key]

The storage account access key is retrievable at storage account level -> All settings -> Access keys ->key1 (or key2)

Please note the username (sqldataonazure) and the access key for the next step.

Prepare a domain service user

To enable seamless access of the Azure file shares by your SQL Server, the SQL Server process has to run with a service account known by Azure Files. Unfortunately, you cannot add users to Azure Files. But you can work around this restriction by creating a user in your domain with the name and password written down in the previews step. 

In my domain I create a user named “sqldataonazure” and the access key as password:

  

Afterwards, log on to the VM where you plan to install the SQL Server and add the newly created user to the local Administrators group:

 

Log off  and Login with the new service user account “sqldataonazure”.

It’s now possible to open an Azure file share seamlessly : Run -> \\sqldataonazure.file.core.windows.net\sql-data

 

Install the SQL Server 2014

Make sure that you have installed Microsoft .Net Framework 3.5 SP1 before you start the installation (via Add Roles and Features).

While logged in as “sqldataonazure ”, open the ISO file for the SQL Server Installation from a local drive on your Azure VM and run setup.exe:

 

Go to „Installation“ -> „New SQL Server stand-alone…“ and follow the steps of the installation up to „Server Configuration“.

Configure the SQL Server Database Engine and the SQL Server Agent to run as the „sqldataonazure” account:

 

At Database Engine Configuration / Data Directories point to the Azure file shares:

 

Click  „Yes“:

 

After the installation the share \\sqldataonazure.file.core.windows.net\sql-data shows the following files:

 

\\sqldataonazure.file.core.windows.net\sql-tempdb-data

 

Configure the SQL Server Service

After the installation modify the SQL Server Service (and maybe the agent) for delayed start. This prevents the SQL Server from starting before the subsystems mapping the network shares are online. 

 

In SQL Server Management Studio, the location of the files (in this case including a CRM database) can be displayed:

 

Quick speed comparison

I’d like to make a quick speed comparison between two SQL Servers: A physical one and a VM in Azure. I used SQLTest from SQLWorkShops.com with a simple test workload. The result: The speed of both SQL Servers is extremely similar, almost even. Note that this is comparing an expensive machine with powerful hardware with a cheap VM! Quick tip: You might not want to use an A2 VM in place of a D2_V2, as the “Average DB Time” will be twice as much.

SQL Server in Azure on a D2_V2 sized VM (2 vCores, 7 GByte RAM) with Azure Files: 

Physical SQL Server with: 4-Core Xeon CPU E5506 @ 2.13 GHz; 24 GByte RAM; 1xSAN Storage (1 GBit/s):

 

Have fun with a lot of IOPS :-)

File-Handling mit dem NetScaler über die NITRO API in PHP

$
0
0
Tags: NetScaler

English Version

Die NITRO-API welche der Citrix NetScaler bereitstellt, bietet vielseitige Möglichkeiten der Automatisierung. Dies ist vor allem bei GitHub in verschiedenen Projekten zu sehen. Eines davon ist das automatisierte BackUp Script auf Basis von PowerShell von meinem Kollegen Jens Trendelkamp.

Der Nachteil an diesem Script ist die Notwendigkeit von PSCP um Dateien via SCP zu übertragen, dies wollte ich ändern, also habe ich ein wenig recherchiert und in den Citrix eDocs die entsprechenden NITRO-API Funktionen entdeckt.

Im Vergleich zu vielen anderen REST-APIs, welche das File-Handlich üblicherweise über „multipart/form-data“ oder HTTP PUT realisieren, gibt es bei der NITRO-API eine Besonderheit: Es werden keine Dateien, sondern der Payload der Dateien selbst in Base64 als Payload via HTTP POST, übertragen.

Ich habe auf Basis der Citrix eDocs ein paar PHP-Funktionen (leider bin ich der PowerShell nicht mächtig genug) geschrieben um in einer Art „Proof-of-Concept“ zu demonstrieren, das PSCP nicht weiter notwendig ist. (NetScalerRocks war hierbei recht hilfreich)

Die Skripte beschreibe ich folgend, Updates gibt es in meinem GitHub Repository.

config.php

<?php
	$nitroNSIP   = "nsip";
	$nitroUser   = "nsroot";
	$nitroPass   = "nsroot";
?>

functions.php

<?php
 function getAuthCookie($nitroNSIP,$nitroUser,$nitroPass) {
    $nitroUrl    = "http://$nitroNSIP/nitro/v1/config/login/";
	$nitroReq    = "POST";
	$nitroData   = '{"login":{"username":"'.$nitroUser.'","password":"'.$nitroPass.'"}}';
	$nitroHeader = "Content-Type: application/vnd.com.citrix.netscaler.login+json";
    $ch = curl_init($nitroUrl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLINFO_HEADER_OUT, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER,array($nitroHeader));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $nitroData);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $nitroReq);
    $result = curl_exec($ch);

	preg_match_all('/^Set-Cookie:\s*([^\r\n]*)/mi', $result, $ms);
	$cookies     = array();
	foreach ($ms[1] as $m) {
	    list($name, $value) = explode('=', $m, 2);
	    $cookies[$name]     = $value;
	}

	curl_close($ch);
    return $cookies["NITRO_AUTH_TOKEN"];
 }

 function getFile($nitroNSIP,$authToken,$fileName,$fileLocation) {
    $nitroUrl    = "http://$nitroNSIP/nitro/v1/config/systemfile/$fileName?args=filelocation:$fileLocation";
	$nitroReq    = "GET";
	$nitroData   = '';
	$nitroHeader = "Cookie: NITRO_AUTH_TOKEN=$authToken";
	$ch = curl_init($nitroUrl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER,array($nitroHeader));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $nitroData);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $nitroReq);
    $data = curl_exec($ch);
    curl_close($ch);
    $file = json_decode($data, true);
    $file = $file['systemfile'][0];
    return $plainFile = base64_decode($file['filecontent']);
 }

 function sendFile($nitroNSIP,$authToken,$fileName,$localFileLocation,$fileLocation) {
    $file = file_get_contents($localFileLocation.$fileName, true);
    $filecontent = base64_encode($file);

    $nitroUrl    = "http://$nitroNSIP/nitro/v1/config/systemfile";
	$nitroReq    = "POST";
	$nitroData   = '{"systemfile": {"filename": "'.$fileName.'","filelocation": "'.$fileLocation.'","filecontent":"'.$filecontent.'","fileencoding": "BASE64"}}';
    $nitroCookie = "Cookie:NITRO_AUTH_TOKEN=$authToken";
    $nitroHeader = "Content-Type:application/vnd.com.citrix.netscaler.systemfile+json";

    $ch = curl_init($nitroUrl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER,array($nitroCookie,$nitroHeader));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $nitroData);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $nitroReq);
    $data = curl_exec($ch);
    $return = json_decode($data, true);
    print_r ($return);
    curl_close($ch);
 }

 function logout($nitroNSIP,$authToken) {
	$nitroUrl    = "http://$nitroNSIP/nitro/v1/config/logout/";
	$nitroReq    = "POST";
	$nitroData   = '{"logout":{}}';
	$nitroCookie = "Cookie:NITRO_AUTH_TOKEN=$authToken";
	$nitroHeader = "Content-Type: application/vnd.com.citrix.netscaler.logout+json";
	$ch = curl_init($nitroUrl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_HTTPHEADER,array($nitroCookie,$nitroHeader));
	curl_setopt($ch, CURLOPT_POSTFIELDS, $nitroData);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $nitroReq);

	curl_exec($ch);
	curl_close($ch);
	unset($authToken);
}
?>


Der Datei Download wird mit der Funktion „getFile“ aufgerufen, dabei übergebe ich über das worker-script den Relativen Pfad der Datei aus dem NetScalers im ASCII Format. Darauß erschließt sich das aus „/var/netscaler/something“ also „%2Fvar%2Fnetscaler%2Fsomething“ wird. Als Rückgabe erhalte ich die Datei als JSON im Base64 Format im Feld „filecontent“. Dieses wird decodiert und anschließend lokal als Datei gespeichert.

Der Upload von Dateien wird mit „sendFile“ aufgerufen. Hierbei wird im worker-script der Dateiname, der lokale Pfad und der Pfad auf dem NetScaler (relativ!) übergeben. Es ist nicht notwendig ASCII zu enkodieren. Die Funktion liest die Datei ein, wandelt diese in ein Base64 Encoding um und übergibt den Payload mittels JSON an den NetScaler.

worker.sample.php – Beispiele zur Nutzung der Funktionen.

<?php
include('config.php');
include ('functions.php');
$fileName = "testfile2.txt";
$localFileLocation = "/Users/skolodziej/ownCloud/Projekte/_dev/netscaler/php-ns-framework/";
$fileLocation = "/nsconfig/ssl/";
$authToken = getAuthCookie($nitroNSIP,$nitroUser,$nitroPass);
//$file = getFile($nitroNSIP,$authToken,$fileName,$fileLocation);
//file_put_contents($fileName, $file);
sendFile($nitroNSIP,$authToken,$fileName,$localFileLocation,$fileLocation)
?>

PowerShell: Sprachkonstrukte (Switch Anweisung) - Part 17.6

$
0
0

4.4.9     Switch Anweisung

Die Switch Anweisung ersetzt in ihrer einfachsten Form mehrere IF-Abfragen. Durch unterschiedliche Schalter kann die Switch Anweisung jedoch wesentlich mehr. Die Syntax lautet wie folgt:

Switch <Options>                                  Switch Schlüsselwort mit optionalen Parametern
 (   
<Pipeline>                                                Pipeline zum Testen
)   
{   
<Pattern1> {<StatementList1>}    Anweisungsblock für „pattern1“
<Pattern2> {<StatementList2>}    Anweisungsblock für „pattern2“
. . .                                                                  . . .
<Default> {<StatementList>}          Anweisungsblock für sonstige Fälle
}   

In jedem Durchlauf werden die Anweisungsblöcke für alle Suchmuster (Pattern) ausgeführt, unabhängig davon, wie viele davon mit der Pipeline übereinstimmen. Der Anweisungsblock bei „Default“ wird nur dann ausgeführt, wenn es sonst keine Übereinstimmungen gegeben hat. Pattern kann auch einen Ausdruck beinhalten, der zur Laufzeit ausgewertet wird.

Die Switch Anweisung kann explizit für die Verarbeitung von Dateiinhalten verwendet werden. In diesem Fall ändert sich die Syntax wie folgt:


Switch <Options> -file                         Switch Schlüsselwort mit optionalen Parametern
 (   
<Filename>                                              Pipeline zum Testen
)   
{   
<Pattern1> {<StatementList1>}     Anweisungsblock für „pattern1“
<Pattern2> {<StatementList2>}     Anweisungsblock für „pattern2“
. . .                                                                  . . .
<Default> {<StatementList>}          Anweisungsblock für sonstige Fälle
}   


Die Optionen (<Options>) können folgende Werte annehmen:

Name der Option Bedeutung
-RegexWenn die zu prüfende Pipeline ein String ist, wird es wie eine Regular Expression behandelt. –Wildcard und –Exact werden deaktiviert. Wenn die Pipeline kein String ist, wird –Regex ignoriert.
-WildcardWenn die zu prüfende Pipeline ein String ist, sind Vergleiche mit Wildcards möglich. –Regex und –Exact werden deaktiviert. Wenn die Pipeline kein String ist, wird –Wildcard ignoriert.
-ExactWen die zu prüfende Pipeline ein String ist, ist eine genaue Übereinstimmung notwendig. –Wildcard und –Regex werden deaktiviert. Wenn die Pipeline kein String ist, wird –Exact ignoriert
-CasesensitivErzwingt einen Vergleich unter Beachtung der Groß-/Kleinschreibung.

Tabelle 4 3: Optionen für die Switch Anweisung.


Eine schöne und praktische Anwendung für die Switch Anweisung ist die Funktion Log-Message von HK, geringfügig überarbeitet von MG:

################################################
#	Name:	Log-Message
#	Description:
#		Writes a message to the console and/or in to the logfile
#		Based on: first release of Helge Klein, sepago GmbH
#	Requirements:
#		None
#	Author:
#		Marius Gawenda, sepago GmbH, Marius.Gawenda@sepago.de
#	Version: 1.0
#	Change history:
#		05.08.2010: first release
1.	Function Global:Log-Message(
2.		[Parameter(Mandatory=$true)]
3.		[String] $Msg,
4.		[Parameter(Mandatory=$true)]
5.		[String] $Severity,
6.		[Switch] $NoLogFile
7.	)
8.	{
9.		$sNow = $([System.DateTime]::Now).ToString()
10.		Foreach ($sMessage in ($Msg.Split("`n")))
11.		{
12.			$sSeverity = ""
13.			Switch ($Severity)
14.			{
15.				1 {$sSeverity = "INFORMATION:";$FColor="gray"}
16.				2 {$sSeverity = "WARNING:    ";$FColor="yellow"}
17.				3 {$sSeverity = "ERROR:      ";$FColor="red"}
18.				4 {$sSeverity = "############";$FColor="green"}
19.	                Default {$sSeverity = „“}
20.			}
21.			$sOut = "$sNow $sSeverity $sMessage"
22.		}
23.		If (-not $Script:NoLogFile) {Add-Content $LogFile $sOut}
24.		Write-host $sOut -fore $FColor

Codelisting 4 1: Funktion Log-Message.


Die Switch Anweisung (Zeile 13 im Codelisting 4 1) untersucht den Wert der Variablen $Severity, welcher an die Funktion beim Aufruf übergeben wird. Bei einer Übereinstimmung wird die Variable $sSeverity und die Vordergrundfarbe ($FColor) entsprechend gesetzt. Anschließend wird das aktuelle Datum, Uhrzeit, Wichtigkeit und die eigentliche Nachricht auf dem Bildschirm und/oder in die Logdatei ausgegeben. Das Ergebnis kann dann wie folgt aussehen:

24.08.2010 10:43:01 WARNING:     The external command (netsh) did not completed in time
24.08.2010 10:43:01 WARNING:     DHCP reservation for client Client_3_lana already exists.
24.08.2010 10:43:01 WARNING:     DNS entry for client Client_3_lana already exists.
24.08.2010 10:43:16 WARNING:     The external command (netsh) did not completed in time
24.08.2010 10:43:16 WARNING:     DHCP reservation for client Client_3_lanb already exists.
24.08.2010 10:43:16 WARNING:     DNS entry for client Client_3_lanb already exists.
24.08.2010 10:43:40 SEPARATOR    #########################################################
24.08.2010 10:43:40 INFORMATION: Starting proccessing
24.08.2010 10:44:16 SEPARATOR    #########################################################
24.08.2010 10:44:16 INFORMATION: Starting proccessing
24.08.2010 10:44:31 WARNING:     The external command (netsh) did not completed in time

Die Switch Anweisung initiiert zur Laufzeit eine Laufvariable mit dem Namen $Switch. In dieser Variablen werden die Inhalte der Pipeline zwischengespeichert und im Switch Block verwendet. Bei jedem Durchlauf kann der aktuelle Wert mit $Switch.Current abgefragt werden. Die $Switch Variable hat folgende Eigenschaften und Methoden:

   TypeName: System.Array+SZArrayEnumerator

Name        MemberType Definition
----        ---------- ----------
Clone       Method     System.Object Clone()
Equals      Method     bool Equals(System.Object obj)
GetHashCode Method     int GetHashCode()
GetType     Method     type GetType()
MoveNext    Method     bool MoveNext()
Reset       Method     System.Void Reset()
ToString    Method     string ToString()
Current     Property   System.Object Current {get;}

Mit $Switch.MoveNext kann der dem aktuellen Datensatz folgende erreicht werden. Wenn als Pattern eine Anweisung verwendet wird, wird während der Auswertung das aktuelle Objekt in der Laufvariable $_ gespeichert. So kann in Bedingungen darauf zugegriffen werden.
Schließlich können in der Switch Anweisung auch Regular Expressions verwendet werden. Folgendes Beispiel zeigt die Verwendung der Switch Anweisung für die Verarbeitung von Dateien:

1.	$cW=$cE=$cS=$cC=0
2.	Switch -Regex -File .\NISRV32_ADM-NI-WTSSERVICE_11.LOG {
3.	>> 'Warning[ ]' {$cw++}
4.	>> 'Error[ ]' {$cE++}
5.	>> '-->st' {$cS++}
6.	>> '!-db:'{$cc++}
7.	>> }
8.	>>
9.	$cW
151
10.	$cE
0
11.	$cS
6
12.	$cC
1260

Zunächst werden einige Variablen initialisiert (Zeile 1). Die Switch Anweisung soll Regular Expressions unterstützen und die Pipe aus einer NetInstall Logdatei empfangen. In dem Datenstrom wird nach Warnungen, Fehlern, ausgeführten Skripten und nach erkannten Komponenten in der Datenbank gesucht. Bei einem Treffer wird die jeweilige Variable inkrementiert. Anschließend werden die Inhalte der Variablen ausgegeben.

Auch mit Hilfe der Switch Anweisung können die Namen der installierten Skripte ausgegeben werden:

1.	Switch -Regex -File .\NISRV32_ADM-NI-WTSSERVICE_11.LOG {'(.*)(-->st.* )(".*)' { $Matches[3]}}
“00_Install_User_Environment“
“11_User_HomeDirCheck (bei jeder Anmeldung)“
“12_User_ProfileConfig (bei jeder Anmeldung)“
“13_User_ProfileConfig (einmal)“
“14_User_PathConfig (AI-Takt f?r SNW-Benutzer)“
“ZZ_Last_Project_of_User_Environment“


In dem gesuchten Muster werden mit den runden Klammern Teile (Tokens) der Treffer markiert, auf die später zugegriffen werden kann. Die Variable $Matches beinhaltet bei Übereinstimmung die einzelnen Tokens. Das gewünschte Token kann dann über ein Index angesprochen werden (hier: 3).


Eine Übersicht aller Artikel dieser Windows PowerShell Blogserie findet ihr hier.

Zurück zu Part 17.5 - Sprachkonstrukte (Flusssteuerung mit CMDLets)

Weiter zu Part 17.7 - Sprachkonstrukte (Trap Anweisung, Throw Anweisung)


Windows 10: PKI - was muss man beachten

$
0
0

Zur Übersicht und Einleitung der Blogserie "Windows 10 und ConfigMgr Deployment Serie"

Die Verwendung einer Public Key Infrastructure (PKI) ist in den meisten Fällen eine optionale Möglichkeit bei Windows 10 - abhängig vom jeweils verwendeten Feature. Für DirectAccess ist die Verwendung einer PKI jedoch zwingend erforderlich. Daher besitzt fast jedes Feature, das die Möglichkeit der Verwendung einer PKI bietet, noch eine alternative Option, die stattdessen genutzt werden kann. Meistens ist sogar die Alternative die bevorzugte Wahl gegenüber der PKI, da nicht jedes (Enterprise-) Unternehmen zwangsläufig eine PKI im Einsatz hat. Im Folgenden werden einige Features genannt, die als optionale Möglichkeit die Verwendung einer PKI erlauben.

Feature „Microsoft Passport“

Passport ersetzt unter Windows 10 die Verwendung von Kennwörtern durch eine zweistufige Authentifizierung. Diese umfasst ein registriertes Gerät und ein biometrisches Merkmal (Windows Hello) oder alternativ eine PIN.
Bevor man Microsoft Passport in einer Enterprise Umgebung nutzen kann, müssen einige Voraussetzungen geschaffen werden. Dazu zählen unter anderem, je nachdem welche Passport Methode verwendet werden soll und welche Umgebung vorhanden ist: 

Abbildung 1: Anforderungen für Microsoft Passport,
Quelle: https://technet.microsoft.com/library/mt589441(v=vs.85).aspx

Passport nutzt zur Authentifizierung eine 2-Faktor Authentifizierung. Eine PKI muss dafür jedoch nicht notwendigerweise vorhanden sein, wie Abbildung 1 zeigt. Egal welche Variante man nun nutzen will, ist ein Teil des Schlüssels direkt dem Computer oder der entsprechenden Hardware zugeordnet. Dies kann entweder ein Schlüssel oder ein Zertifikat sein. Dieser „Hardware-Schlüssel“ kann entweder direkt im eingebauten TPM-Chip gespeichert werden oder in Azure Active Directory (AAD) oder als weitere Alternative in Windows Server 2016 Active Directory. Der andere Teil für Passport ist ein benutzerspezifischer Teil, der entweder aus einer PIN oder einem biometrischen Merkmal besteht. Wird anstelle der Schlüssel basierten Authentifizierung eine optional vorhandene PKI verwendet, muss das Active Directory nicht angepasst werden, damit Passport unterstützt wird. Ebenfalls ist es möglich, Passport auch ohne einen verbauten TPM-Chip zu nutzen. Siehe dazu auch den entsprechenden Blogpost unter dem folgenden Link:
https://www.sepago.de/blog/2016/02/23/windows-10-enterprise-serie-passport.
Die Verwendung eines biometrischen Merkmals bietet gegenüber der rein Schlüssel basierten Variante einen Vorteil. Nutzer können nicht überall dasselbe Passwort benutzen. Dies erscheint erstmal als Nachteil; der Vorteil dieser Methode findet sich im weiteren Verlauf dieses Abschnitts. Weiterhin wird der entsprechende biometrische Schlüssel bzw. das biometrische Merkmal direkt auf dem entsprechenden Gerät gespeichert. Er kann also nicht mehr durch einen Angriff auf einen Server gehackt werden. Dies ist ein Vorteil. Weiterhin kann man nicht mit einem gehackten Passwort eines Nutzers auf weitere Geräte desselben Nutzers zugreifen bzw. sich damit im Unternehmen anmelden.

Feature „Device Guard”

Dieses Feature dient dazu, dass nur vertrauenswürdige Anwendungen auf den Computern verwendet werden können. Dazu werden die Anwendungen signiert. Besitzt das Unternehmen bereits ein digitales Zertifikat oder eine PKI, so können sie ihre klassischen Windows Anwendungen selbst signieren, indem sie sich selbst zur Liste der vertrauenswürdigen Unterzeichner hinzufügen.
Darüber hinaus gibt es noch andere Möglichkeiten, wie Anwendungen signiert werden können. Diese benutzen jedoch keine PKI. Weitere Informationen zu den anderen Möglichkeiten sind unter dem folgenden Link im Abschnitt „Signing your apps“ zu finden: https://technet.microsoft.com/en-us/library/dn986865(v=vs.85).aspx (zuletzt abgerufen 17.02.16).

Windows 10 Mobile

Zu den Funktionen von Windows 10 Mobile zählt unter anderem das Management von Benutzer basierten Zertifikaten über eine PKI.
Die Anmeldeinformationen bestehen entweder aus einem von Windows erstellten kryptographischen Schlüsselpaar oder einem Zertifikat, das von einer PKI erzeugt wurde. Das Active Directory ermöglicht das Management der Credentials. Da beide Varianten unterstützt werden, besitzen Unternehmen eine gewisse Flexibilität bei der Anwendung. Da die Unternehmensstruktur nicht immer einheitlich ist, ist dies essentiell und umfasst so die Mehrheit der Anforderungen in heterogenen Unternehmensstrukturen.

Microsoft Intune

Microsoft Intune, früher bekannt unter dem Namen Windows Intune, ist eine Cloud-basierte Lösung, die im Jahr 2011 vorgestellt wurde. Damit ist eine Verwaltung von PCs und mobilen Endgeräten über das Internet möglich. Die Netzwerkgröße liegt bei maximal 20.000 Computern bei einem einzelnen Account (http://pfaqs.com/WindowsIntune.html, in Version v1). Pro Benutzer können maximal 5 Geräte registriert werden. Es werden alle Betriebssysteme bei mobilen Endgeräten unterstützt, d.h. Android-, Apple- und Windows Phone-Geräte. Die Kommunikation zwischen Endgerät und der verantwortlichen Stelle erfolgt verschlüsselt. Bei der Einrichtung müssen jedoch unterschiedliche Dinge beachtet werden, abhängig vom OS des Gerätes. Dafür werden auch Zertifikate benötigt. Weiterhin müssen bestimmte Komponenten in der Infrastruktur vorhanden sein. Dazu zählen eine CA, ein NDES-Server (Network Device Enrollment Service) und optional ein Web Application Proxy Server (WAP). Der WAP muss vorhanden sein, wenn Zertifikate über das Internet auf mobilen Geräten verteilt oder erneuert werden sollen.
Die Verwaltung der Geräte kann entweder über Microsoft Intune direkt oder hybrid über SCCM 2012 R2 und Intune erfolgen. Ein nachträglicher Wechsel ist nur mit Hilfe des Microsoft Supports möglich. Siehe dazu auch den folgenden Link vom 11. März 2015: http://www.greenconsultingonline.com/2015/03/switching-from-intune-standalone-to-sccm-integrated/. Dort sind die Schritte beschrieben, die vor dem Wechsel von Intune als Standalone Variante hin zur Verwaltung von Intune mit SCCM unternommen werden müssen. Nach Abschluss dieser Schritte muss dann der Microsoft Support kontaktiert werden, der den Wechsel vornimmt. Abhängig von der Auslastung des Supports kann dies jedoch etwas dauern. Deshalb sollte man sich vorab überlegen, welche Variante man wählt.
Im Fall das der SCCM verwendet wird, muss keine PKI speziell für Intune vorhanden sein. Einzig damit Intune mit Apple Geräten kommunizieren kann, muss im SCCM eine Zertifikatsignieranforderung erstellt werden. Mit dieser Zertifikatsignieranforderung können Sie bei der Zertifizierungsstelle von Apple ein Apple Push Notification Service-Zertifikat (APNs) beantragen; siehe auch Abbildung 2 weiter unten. Erst wenn dieses Zertifikat vorhanden ist, kann Intune über SCCM mit Apple Geräten kommunizieren. Die Gültigkeit dieses Zertifikates beträgt 12 Monate. Alle weiteren Zertifikate werden direkt von Microsoft Intune an die entsprechenden Geräte verteilt.

Abbildung 2: Anforderung eines APN Zertifikates


Dafür muss vorab auf dem NDES-Server noch der NDES-Connector installiert werden. Dieser empfängt alle eingehenden Anfragen und stellt im Prinzip so etwas wie eine Brücke zwischen den MDM-Komponenten und dem Cloud Service Microsoft Intune dar. Am besten erklärt Abbildung 3 das Verhalten und Vorgehen des NDES-Connectors als Vermittler zwischen den einzelnen Komponenten.

Abbildung 3: NDES-Connector
Quelle: http://blogs.technet.com/b/tune_in_to_windows_intune/archive/2014/04/25/part-2-scep-certificate-enrolling-using-configmgr-2012-crp-ndes-and-windows-intune.aspx


Nachdem der NDES-Server und – Connector entsprechend installiert und konfiguriert worden sind, muss man zunächst für jeden tenant Server und jede Mobile Device Plattform ein Trusted CA Zertifikat Profil erstellen. Dies ist eine weitere Voraussetzung dafür, dass später die entsprechenden Zertifikate an die Mobile Devices automatisch durch SCEP-Profile (Simple Certificate Enrollment Protokoll) ausgerollt werden können. Sind diese beiden Zertifikatsprofile erstellt und entsprechend verteilt worden, steht einer Nutzung von Microsoft Intune eigentlich nichts mehr im Weg.
Der genaue Ablauf, wie schlussendlich die Zertifikate an die einzelnen Endgeräte verteilt und diese authentifiziert werden, veranschaulicht Abbildung 4. Im Grunde ist dieser Ablauf vollkommen automatisiert, wenn zuvor alle Einstellungen korrekt gemacht worden sind und sämtliche Policies entsprechend hinzugefügt worden sind. Wichtig ist noch, dass wenn die SCEP Zertifikats Profil Richtlinien festgelegt werden, die Eigenschaften dieses Zertifikats mit den Eigenschaften der NDES Zertifikat Vorlage übereinstimmen müssen (Schlüsselnutzung, Gültigkeitsdauer, Hash-Algorithmus, etc.).

Abbildung 4: Authentifizierung eines Mobile Devices durch den Network Device Enrollment Service
Quelle: http://social.technet.microsoft.com/wiki/contents/articles/9063.network-device-enrollment-service-ndes-in-active-directory-certificate-services-ad-cs.aspx

Die folgenden beiden Abbildungen zeigen, dass man sowohl für die Server als auch für die Clients keine speziellen Zertifikate in Verbindung mit SCCM und Intune extra anzufordern muss, da diese automatisch von Intune angefordert und in der SCCM Datenbank bzw. im Computerspeicher des Gerätes installiert werden, wenn man Microsoft Intune abonniert bzw. wenn authentifizierte Benutzer ihre mobilen Geräte mit Intune anmelden.

Abbildung 5: PKI-Zertifikatanforderungen für Server
Quelle: https://technet.microsoft.com/en-us/library/gg699362.aspxAbbildung 5: PKI-Zertifikatanforderungen für Server, Quelle: https://technet.microsoft.com/en-us/library/gg699362.aspx

Abbildung 6: PKI-Zertifikatanforderungen für Clients,
Quelle: https://technet.microsoft.com/en-us/library/gg699362.aspx

Jedoch gibt es abhängig vom OS des verwendeten Mobile Devices noch verschiedene Besonderheiten zu beachten. Speziell für Windows Phone 8 muss das Unternehmensportal und alle Applikationen mit einem Codesignaturzertifikat für mobile Geräte von Symantec signiert werden. Im Falle von Windows Phone 8.1 ist dies nur für die Applikationen notwendig. Existiert dieses Codesignaturzertifikat nicht, können diese Telefone nicht über Intune verwaltet werden; unabhängig davon ob Intune als Standalone-Variante oder über SCCM verwaltet wird. Für Windows 10 mobile ist das Verhalten das Gleiche wie bei Windows Phone 8.1. Auch hier ist das Codesignaturzertifikat allein für die Signierung der Applikationen notwendig (Quelle: http://henkhoogendoorn.blogspot.de/2015/09/my-experience-with-configmgr-2012-r2.html). Nicht jedoch für das Unternehmensportal.
Android Geräte mit der Android Version 4.0 oder höher, sowie Samsung KNOX Geräte, brauchen keinerlei Zertifikate. Weder für das Unternehmensportal noch die Applikationen. „Samsung KNOX ist die umfassende Unternehmenslösung für Mobilgeräte, die privat und am Arbeitsplatz genutzt werden. Im Businessbereich kommen immer mehr Smartphones zum Einsatz und diese Lösung deckt die mobilen Sicherheitsanforderungen der IT-Abteilungen auf Unternehmensebene ab, ohne die Privatsphäre der Mitarbeiter zu verletzen.“ (Quelle: http://www.samsung.com/de/business/solutions-services/mobile-solutions/security/samsung-knox/).

DirectAccess & Windows 10

Wird DirectAccess in einer Umgebung verwendet, in der nur Windows 10 und 8.x Clients vorhanden sind, so ist die Verwendung einer PKI optional. Für diese Clients wird das neue Windows Server Feature „Kerberos Proxy“ verwendet, um eine starke Authentifizierung und die zugehörigen Schlüssel für IPSec zu Verfügung zu stellen. Sollten sich jedoch noch Windows 7 Clients im Unternehmen befinden, so ist die Verwendung einer PKI zwingend vorgeschrieben. Diese brauchen zur Ausstellung von Zertifikaten für die Verwendung von IPSec eine PKI.
Sollen außerdem Features wie One-time Passwort (OTP), Microsoft Network Access Protection (NAP) Integration, Load Balancing (intern & extern), Force Tunneling oder Multisite Connection verwendet werden, so ist ebenfalls eine PKI erforderlich.
Für eine optimale Sicherheit und einer hohen Flexibilität beim Deployment, sollte man eine PKI zur Verwaltung aller DirectAccess Zertifikate verwenden; auch für die Deployments, die nur Windows 8.x und Windows 10 unterstützen. Ebenso für den Fall, dass die oben genannten Features genutzt werden sollen. Falls dies aktuell noch nicht der Fall ist, dann vielleicht in späteren Szenarien, die jetzt noch nicht in Betracht kommen oder an die man jetzt noch nicht denkt.

Abbildung 7: Übersicht Direct Access & Verwendungsmöglichkeiten einer PKI
(Quelle: http://blogs.technet.com/b/ash/rss.aspx)

SHA-1 vs. SHA-2

Im Moment ist SHA-1 noch die meist benutzte kryptographische Hash Funktion zur Erstellung von Zertifikaten. Spätestens ab dem 1. Januar 2017 sollen für Zertifikate aber nur noch Funktionen der SHA-2 Familie verwendet werden. Daher sollten Zertifikate, die noch mit SHA-1 erstellt worden sind, keine längere Laufzeit als dieses Datum besitzen.
Der Wechsel erfolgt aufgrund der kryptographischen Schwachstellen, die SHA-1 besitzt. Jedoch gibt es ein Problem bei der Umstellung von SHA-1 auf SHA-2. Die meisten Geräte sind nicht in der Lage SHA-2 zu verstehen oder Zertifikate, die damit erstellt worden sind, zu akzeptieren. Dennoch beginnen die meisten Hersteller bereits jetzt damit ihre Anwendungen, in erster Linie Browser, auf Zertifikate der SHA-2 Familie umzustellen. D.h. falls ein Browser ein Zertifikat erhält, das mit SHA-1 erstellt wurde, gibt er eine Warnung aus. Ebenfalls werden die meisten öffentlichen Zertifizierungsstellen keine neuen SHA-1 Zertifikate mehr ausstellen, sondern nur noch SHA-2 Zertifikate.
Die Migration von SHA-1 zu SHA-2 ist in Server Szenarien meist eine one-way Migration, d.h. wenn man einmal das Server Zertifikat von SHA-1 zu SHA-2 gewechselt hat, kann man nicht einfach wieder zu einem SHA-1 Zertifikat zurückkehren. Deshalb sollte man die Migration im Vorfeld genau planen und prüfen, ob alle Geräte und Anwendungen in der Lage sind, SHA-2 Zertifikate und die entsprechenden Certification Revocation Lists (CRL) zu verarbeiten. Andernfalls kann es zu Fehlermeldungen kommen. Windows XP Clients und Windows Server 2003 sind nicht in der Lage, Zertifikate von einer CA (Certification Authority) zu erhalten bzw. zu verstehen, wenn diese CA Zertifikate verteilt, die mit SHA-2 256 oder höherer Verschlüsselung erstellt worden sind.
Sollte eine interne PKI vorhanden sein, so muss diese ebenfalls auf den Wechsel vorbereitet werden. Zunächst muss man sämtliche CA‘s updaten und danach entsprechend neue Zertifikate verteilen. Die einfachere Variante ist dabei, die PKI komplett neu aufzusetzen. Sollten in der alten PKI kleinere Fehler vorhanden sein oder Fehlplanungen welcher Art auch immer, so kann man diese in der neuen PKI nun vermeiden.
Der Wechsel von SHA-1 zu SHA-2 bedeutet je nach Größe des Unternehmens einen großen logistischen Aufwand, den man nicht unterschätzen sollte. Bereits jetzt gibt es die SHA-3 Familie, die 2012 vom NIST ausgewählt wurde und aktuell auf Schwachstellen untersucht wird. Wer jetzt aber denkt, er könne den Wechsel auf SHA-2 aussitzen und auf SHA-3 warten, der irrt. Bis die SHA-3 Familie allgemein verwendet werden wird, wird es noch mehrere Jahre dauern.
Das Vorgehen von Microsoft beim Wechsel wird unter folgendem Link genau beschrieben: http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-authenticode-code-signing-and-timestamping.aspx (zuletzt abgerufen 18.03.2016). Dort ist auch der genaue Zeitplan hinterlegt, ab welchem Zeitpunkt Windows bzw. Microsoft mit verschiedenen Signaturen und Zertifikaten umgehen wird und bis zu welchem Zeitpunkt sie gültig sein werden.

Empfehlungen („Best Practices“)

Generelle Empfehlungen bzw. Best Practices zu Windows 10 in Verbindung mit einer PKI kann man eigentlich nicht geben. Es hängt immer davon ab, was im jeweiligen Unternehmen als Infrastruktur bereits vorhanden ist oder welche Features man verwenden will.
Sollte bereits eine PKI vorhanden sein, so kann man diese weiter nutzen. Je nachdem welcher SHA-Algorithmus für die Erstellung der Zertifikate verwendet wird, dieser sollte vorher entsprechend geändert werden bzw. alternativ eine neue PKI aufgebaut werden. Wenn man dagegen die oben im Abschnitt „DirectAccess & Windows 10“ erwähnten Features nicht nutzen will oder braucht, so ist eine PKI eine optionale Möglichkeit, die nicht extra aufgebaut werden muss in Verbindung mit Windows 10; vorausgesetzt es sind keine Windows 7 Clients in der Umgebung vorhanden.

PowerShell: Sprachkonstrukte (Trap Anweisung, Throw Anweisung) - Part 17.7

$
0
0

4.4.10    Trap Anweisung

Mit der Trap Anweisung werden sogenannte Exceptions (oder Terminating Errors) behandelt. Die Syntax lautet wie folgt:

Trap                                       Trap Schlüsselwort
[<ExceptionType>]        Optional, Fehlertyp
 {   
<StatementList>            Anweisungsblock
[Breack|Continue]        Optional, Schlüsselworte zur Flusssteuerung
}   

Wenn eine Exception auftritt, ist das, was danach passiert, abhängig von einigen Systemvariablen. Die Variable $ErrorActionPreference entscheidet darüber, ob die Ausführung fortgesetzt wird, während eine Fehlermeldung angezeigt wird ($ErrorActionPreference = Continue) oder keine Fehlermeldung angezeigt wird ($ErrorActionPreference = SilentlyContinue). Ist der Wert hingegen „Stop“ wird die Ausführung unterbrochen. Zusätzlich zu den globalen Variablen kann bei jedem CMDLet, welches die sogenannten „Common Parameters“ unterstützt, der Parameter –ErrorAction mit einem entsprechenden Wert angegeben werden. Mit der Trap Anweisung kann auf bestimmte Exceptions reagiert werden. Wenn im Code hinter der Trap Anweisung eine Exception auftritt, wird der Anweisungsblock der Trap Anweisung ausgeführt. Beinhaltet der Anweisungsblock das Schlüsselwort Break, wird die Ausführung unterbrochen und die Fehlermeldung ausgegeben. Wird dagegen das Schlüsselwort Continue verwendet, wird keine Fehlermeldung ausgegeben. In allen Fällen, außer wenn die Break Anweisung verwendet wird, wird die Ausführung des Codes bei der nächsten Anweisung fortgesetzt, in dem Scope, wo sich die Trap Anweisung befindet und nicht unbedingt mit der Anweisung, welche auf diese folgt, in der die Exception aufgetreten ist.

Beispiele:

1.	.{
2.	>> Trap {Write-Host "Trap commands"}
3.	>> 1
4.	>> 2
5.	>> 1/$null
6.	>> 3
7.	>> 4
8.	>> }
9.	>>
1
2
Trap commands
Attempted to divide by zero.
At line:5 char:3
+ 1/ <<<< $null
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

3
4


Dieses Beispiel stellt die einfachste Form der Trap Anweisung dar. An der Stelle, wo die Exception auftritt (hier: 1/$null – Division durch Null), wird der Anweisungsblock der Trap Anweisung ausgeführt, dann die Fehlermeldung ausgegeben und anschließend folgt die Ausführung mit der nächsten Anweisung hinter der Exception.

1.	.{
2.	>> Trap {Write-Host "Trap commands";break}
3.	>> 1
4.	>> 2
5.	>> 1/$null
6.	>> 3
7.	>> 4
8.	>> }
9.	>>
1
2
Trap commands
Attempted to divide by zero.
At line:5 char:3
+ 1/ <<<< $null
    + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RuntimeException

Der einzige Unterschied in diesem Beispiel besteht darin, dass im Anweisungsblock der Trap Anweisung noch das Schlüsselwort Break verwendet wird. Tritt die Exception auf, wird nach der Ausführung des Anweisungsblocks der Trap Anweisung die gesamte Ausführung unterbrochen.

1.	PS X:\Temp> .{Trap {Write-Host "Trap commands";continue}
2.	>> 1
3.	>> 2
4.	>> 1/$null
5.	>> 3
6.	>> 4
7.	>> }
8.	>>
1
2
Trap commands
3
4


In diesem Beispiel wird das Schlüsselwort Continue verwendet. Die Ausgabe ist mit der des ersten Beispiels identisch, bis auf die Ausgabe der Fehlermeldung.

1.	.{
2.	>> trap [System.Management.Automation.CommandNotFoundException] {"Error found: " + $_.FullyQualifiedErrorId;continue}
3.	>> abc123.df
4.	>> }
5.	>>
Error found: CommandNotFoundException

Bisher war die Trap Anweisung bei jeder Exception aktiv. In diesem Beispiel wird jedoch der Fehlertyp angegeben, so dass die Trap Anweisung nur dann ausgeführt wird, wenn eine entsprechende Exception auftritt. Solange es kein Kommando oder eine Executable mit dem Namen „abc123.df“ gibt, tritt die CommandNotFoundException auf und die Trap Anweisung wird aktiv.

1.	PS X:\Temp> .{
2.	>> Function Throw-Exception
3.	>> {
4.	>> 11
5.	>> 12
6.	>> 1/$null
7.	>> 13
8.	>> 14
9.	>> }
10.	>>
11.	>> Trap {Write-Host "Trap commands";continue}
12.	>> 1
13.	>> 2
14.	>> Throw-Exception
15.	>> 3
16.	>> 4
17.	>> }
18.	>>
1
2
11
12
Trap commands
3
4

Dieses Beispiel illustriert das Verhalten der Trap Anweisung bei mehreren Scopes. Der zweite Scope wird hier mit Hilfe einer Funktion realisiert. Die Trap Anweisung befindet sich außerhalb der Funktion, so dass - wenn die Exception (1/$null innerhalb der Funktion) auftritt - der Anweisungsblock der Trap Anweisung ausgeführt wird, aber die Fortsetzung läuft nicht mehr innerhalb der Funktion (fehlende Ausgabe von 13 und 14), sondern mit dem nächsten Befehl des übergeordneten Scopes (die Ausgabe von 3 und 4).

4.4.11 Throw Anweisung

Die Throw Anweisung erzeugt einen Laufzeitfehler.

Throw                    Throw Schlüsselwort
 {   
<Expression>     Auszugebende Meldung
}   

In den Beispielen zur Trap Anweisung könnte also an Stelle von 1/$null einfach eine Throw Anweisung verwendet werden. In der ersten Version von PowerShell hatte die Throw Anweisung eine konkrete und wichtige Verwendung:

1.	Function Throw-Example ($Name = $(Throw "A name must be given"))
2.	>> {}
3.	>>
4.	Throw-Example
A name must be given
At line:1 char:40
+ Function Throw-Example ($Name = $(Throw <<<<  "A name must be given"))
    + CategoryInfo          : OperationStopped: (A name must be given:String) [], RuntimeException
    + FullyQualifiedErrorId : A name must be given

In diesem Beispiel wird der Funktionsparameter $Name zu einem mandatory Parameter. In der Version 2.0 der PowerShell erübrigt sich die Verwendung von Throw zu diesem Zweck, da diesbezüglich entsprechende Optionen und Erweiterungen implementiert wurden (siehe Kapitel 4.1.5).



Eine Übersicht aller Artikel dieser Windows PowerShell Blogserie findet ihr hier.

Zurück zu Part 17.6 - Sprachkonstrukte (Switch Anweisung)

HR fragt nach: Kulturentwicklung! Miriam Seifert spricht mit Claudio Ingendaay

$
0
0

Ich sitze mit Claudio Ingendaay im Ehrenfelder Café Sehnsucht. Wir streifen viele Themen, beleuchten unterschiedliche Facetten von Unternehmenskultur. Zuletzt haben wir uns auf dem Forum Arbeitskultur NRW getroffen. Davor waren wir beim HR Kompetenzforum Essen jeweils als Vortragende in ähnlichen Zusammenhängen unterwegs: Arbeitskultur.

Claudio Ingendaay war lange Jahre Leiter des Consulting bei Great Place to Work und dort verantwortlich für die Messungen und die Folgeprozesse – kurz: die Kulturentwicklung. Er ist Diplom-Psychologe und leitet seit wenigen Monaten die perbene Beratungsgesellschaft. Warum wir uns treffen? Weil uns dieselben Themen beschäftigen, treiben, weil die Augen zu leuchten beginnen, wenn es darum geht, das große Thema „Kulturentwicklung“ auf den Boden zu bekommen, die Meta-Ebene zu verlassen und „den Alltag zu Wort kommen zu lassen“ – kurz: die Mitarbeiter in den Fokus zu nehmen. Letztlich hat Claudio Ingendaay vor 7 Jahren Carsten, Claus und Paul auf Great Place to Work und die Möglichkeit des Arbeitgeberwettbewerbs und das Benchmarking aufmerksam gemacht. Hier schließt sich also ein Kreis…


Claudio, wenn ich den Satz beginne mit „Kulturentwicklung…“ – wie geht er für Dich sinnvoll weiter?

„Kulturentwicklung… findet im Kleinen, im Tagesgeschäft statt – oder gar nicht.“

Sind sich die Führungskräfte, mit denen Du zusammenarbeitest, dessen bewusst?

Teils – teils. Ich arbeite mit Unternehmensvertretern zusammen, die wollen, dass etwas besser wird. Damit meinen sie natürlich letztlich das, was im Alltag geschieht. Aber oft wird von „Werten“ oder „Kultur“ auf einem so hohen Abstraktionsniveau gesprochen, dass man nicht mehr erkennt, was das im Alltag bedeutet. Und da reißt dann der Verständnisfaden für die Mitarbeiter.

Claudio, warum tust Du, was Du tust? Was ist Dein Anliegen?

Ich bin Organisationsentwickler, diese Arbeit mache ich wirklich gerne. Meine Arbeit ist aber für die Katz, wenn ich nicht den Weg zum Alltag in den Unternehmen finde. Die Ruder sollen ins Wasser reichen. Darum will ich mit meiner neuen Firma die besten Methoden bieten, am „point of work“ Veränderungen auszulösen. Neue Lösungen oder anderes Handeln, das sich in der Folge auf das gesamte Unternehmen positiv auswirkt.

Du glaubst also, dass man die Kultur in einem Unternehmen verändern kann. Was können Berater hier leisten, was intern nur schwer herstellbar ist?

Der Kernnutzen von Beratern ist der Blick von außen und die Unabhängigkeit. Sie können Ideen oder Vorgehensweisen einbringen, die intern im Unternehmen nicht mehr gedacht werden. Dann sind Dinge eben „undenkbar“ und das heißt dann „unmöglich“. Aber unmöglich sind sie oft nicht, man tut es nur nicht, traut sich nicht, man kommt nicht drauf. Aber möglich ist es doch.

Was ist aus Deiner Sicht für den Berater das Wichtigste bei seiner Arbeit?

Neugierde und Interesse an den Menschen in ihrer Situation, immer wieder neu, das ist für mich wesentlich. Ich bringe natürlich meinen Erfahrungsschatz mit. Aber was passt daraus für das Unternehmen, das ich gerade berate? Da muss man immer wieder neu nachdenken. Letztlich ist es eine alte Tugend, die hier gefragt ist: die Demut vor den Menschen und der Sache. Für mich ist es dann ein guter, erfüllender Tag, wenn ich in einem wirklichen Dialog gemeinsam mit den Teilnehmern am Thema arbeite und die Menschen auf die Fährte bringen kann für den nächsten sinnvollen Schritt.

Berater erleben immer wieder Vorbehalte. Das kenne ich auch von unseren Berater-Kollegen. Wie gehst Du damit um, wenn dir das begegnet?

Ja, manchmal erlebt man Vorbehalte bei den Teilnehmern - z.B. bei einem Workshop, weil man dann zunächst als Stellvertreter für eine „fiese“ Geschäftsführung wahrgenommen wird. Meine Arbeit wird dann als „Alibi-Veranstaltung“ angesehen. In solchen Aussagen steckt allerdings der berechtigte Anspruch, dass man glaubwürdig miteinander umgeht.Ich frage dann, was wir tun können, damit es glaubwürdig wird. Wenn sich die Teilnehmer darauf einlassen, kommen wir weiter. Mit Offenheit und Direktheit kann ich was tun, ganz gleich ob sie Engagement, Frust oder Zorn transportieren.

Gibt es für Dich „DIE METHODE“ schlechthin – das beste Mittel?

Ich bin permanent auf der Suche nach passenden Methoden. Ich frage mich im Rückblick immer wieder: war das die beste Methode? Ich möchte wirklich nah ran kommen. Da gibt es immer wieder was Neues zu entdecken.

Eine solche Entdeckung, die sich in meiner Workshop-Arbeit bewährt hat, ist das „Live-Protokoll“.  Es funktioniert so, dass ich im Workshop statt auf einem Flip-Chart die sich entwickelnden Ergebnisse in einem Word-Dokument festhalte. Dieses Word-Dokument ist auf einer Leinwand zu sehen, d.h.  die Teilnehmer sehen, was ich schreibe und stellen sofort richtig, wenn ich etwas missverstanden habe. Oder sie ergänzen neue Gedanken. Der live entstehende Text und die dann folgenden Ergänzungen und Veränderungen bilden dadurch „realtime“ den kreativen Prozess ab, der in einer Gruppe stattfindet. Das ist ein echter Fortschritt zum Flip-Chart. Man muss allerdings flink auf der Tastatur sein.

Was ist aus Deiner Sicht die größte Herausforderung für Organisationen und Menschen?

Auslöser sind natürlich die Umbrüche des Arbeitens wie z. B. die Digitalisierung und das Tempo, mit dem sich das heute vollzieht. Auf der kulturellen Seite bringt das ein hohes Zerfallstempo von „commitment“ mit sich. Wenn jemand einen Arbeitsvertrag unterschrieben hat, heißt das noch lange nicht, dass er auf Dauer einig und einverstanden ist mit dem, was dann im Unternehmen passiert. Dieses Einverständnis muss man immer wieder herstellen, sonst gehen die Leute in Opposition zur Geschäftspolitik oder fahren ihr Engagement zurück. Dieses hohe Zerfallstempo von Einverständnis wird häufig unterschätzt.

Meine letzte Frage, Claudio, an dieser Stelle: was glaubst Du, ist innerhalb einer Organisation wichtig, um diesen Herausforderungen zu begegnen?

Meine Beobachtung ist: Sehr gute Unternehmenskulturen sind immer stark im Dialog. Die Menschen sind gewohnt, offen und klar miteinander zu reden – in den Teams, zwischen Führungskräften und Mitarbeitern und insgesamt zwischen Unternehmen und Belegschaft. Die können tatsächlich abarbeiten, was an Konflikten und Interessensgegensätzen jeden Tag im Unternehmen aufläuft. So stellen sie Einverständnis immer wieder her.

Vielen Dank für das schöne Gespräch.



Weitere Blogartikel zum Thema "HR fragt nach":

Release - Datum für Windows Server 2016 und System Center 2016

$
0
0

Liebe Leserinnen und Leser,

viele spannende Infos gab es auf der World Partner Konferenz gestern in Toronto, Canada. 

Eine der wichtigsten Informationen war die Ankündigung zum Release von Windows Server 2016 und System Center 2016 im Zeitfenster der Ignite im September diesen Jahres.

Windows Server 2016 wird es zukünftig in den drei Versionen

  • Datacenter 
  • Standard
  • Essentials 

geben. Wie gewohnt enthält Datacenter die meisten Funktionen, Standard liefert reduzierte Funktionalität im Bereich Virtualisierung und Essentials soll seinen Haupteinsatz bei Unternehmen mit weniger als 50 Usern finden. 

Darüber hinaus ist schon länger bekannt, dass es drei Installationsmöglichkeiten für Windows Server 2016 geben wird. 

  • Server mit Desktop - bekannt unter "Server with GUI" 
  • Server Core - ohne GUI 
  • Nano Server

Server mit Desktop wird den Anwendungsbereich der Remote Desktop Services abdecken und für Szenarien, in denen ein User Interface benötigt wird, relevant. Auch die Microsoft Management Konsole (MMC), Server Manager und die bekannten Tools werden zur Verfügung stehen. 

Der Begriff Server Core kam erstmals mit Windows Server 2008 auf. Gemeint ist damit eine minmale Installation, die es nur erlaubt bestimmte Windows Server Rollen zu installieren. Damit reduziert sich ebenfalls die Anzahl an potentiellen Sicherheitslücken.

Nano Server ist eine weitere Deployment Option, die sich besonders auf Anwendungen fokussiert, die in der Cloud zum Einsatz kommen. Der Unterschied zum Core Server ist dabei, dass der Nano Server nur per WMI oder PowerShell konfiguriert werden kann. Remote Desktop Support fällt ebenfalls komplett weg. 

Servicing Modelle für Windows Server 2016

Es wird die Servicing Modelle für Windows Server geben - allerdings nur beim Nano Server. 

Installation OptionLTSB servicing modelCBB servicing model
Server with Desktop ExperienceYesNo
Server CoreYesNo
Nano ServerNo

Yes

Der Server mit Desktop Experience und der Server Core werden im klassischen Modell - Microsoft spricht hier vom "5+5 model" - bleiben und wählt die Begrifflichkeit LTSB. Nano Server wird periodisch neue Releases erhalten. Geplant sind zwei bis drei Releases pro Jahr. 

Auch System Center 2016 wird in diesem Zeitraum "Release to Manufacturing". Die Produktfamilie System Center ist Microsofts Lösung für hybride Rechenzentren. In der Version 2016 wird sie bestehen aus

  • Virtual Machine Manager (VM Management)
  • Operations Manager (Monitoring)
  • Configuration Manager (Client- bzw. Device Management)
  • Orchestrator oder Service Management Automation (SMA)
  • Data Protection (Backup and Recovery)
  • Service Manager (Workflows, Helpdesk, etc.)

Eine nicht weniger spannende Nachricht war auch der Releasezeitraum von Microsoft Azure Stack für Mitte 2017. Azure Stack ist ein Hybrid Cloud- Plattformprodukt und die Weiterentwicklung von Microsoft Azure Pack. Mit Azure Stack können Unternehmen die Lösungsmöglichkeiten oder Vorteile von Clouddiensten nutzen. Da diese Software im eigenen Rechenzentrum läuft, behalten Sie dennoch die Kontrolle über Ihre Services und Daten. Weiterhin bietet Azure Stack auch Schnittstellen zur Public Cloud, was Szenarien ermöglicht, in denen Unternehmen bspw. kurz oder mittelfristig skalieren müssen oder bewusst Clouddienste mit einbinden wollen. 

Auch für die sepago sind Windows Server 2016, System Center 2016 und Azure Stack innovative und herausfordernde Themen. Deshalb bieten wir eine Reihe von innovativen Weiterbildungsmaßnahmen an.

Sie haben Interesse?
Dann melden Sie sich doch einfach bei uns: pr@sepago.de und erhalten Sie weitere Infos. 

Monitoring Citrix Infrastrukturen mit SCOM Management Packs

$
0
0

Vorletzte Woche haben Thomas Reger (Firma ADN), Linda Brunner und ich ein Webinar zum Thema „Überwachung der Citrix Infrastruktur mit SCOM Management Packs“ durchgeführt. Eine Aufzeichnung des Webinars kann hier heruntergeladen werden.
Eingegangen wird zunächst auf die historische Entwicklung der Überwachungsmöglichkeiten von Citrix Infrastrukturen, um dann die Synergien zwischen Microsoft und Citrix zu erläutern. Der technische Part dreht sich darum, wie die Management Packs arbeiten und welche Infrastrukturkomponenten sich überwachen lassen. Die abschließende Demonstration zeigt die verschiedenen Management Packs.

Viewing all 392 articles
Browse latest View live