Archive

Archive for the ‘PowerShell’ Category

OneDrive For Business | Admin Access to a user’s ODFB


OneDrive for Business, Microsoft

Scenario: An Employee leaves the company. What happened with his documents, stored in OneDrive for Business?

So here is a quick guide, if you want to do download and upload the data as an administrator, using Next generation sync client

Enable access as an Administrator in Office 365 to the users ODFB account 

  1. Connect as an administrator to the users ODFB with NGSC
  2. After complete syncing, connect to a different users ODFB
  3. Upload (sync) the data to this new users using NGSC

If you only have a few users, this might be practicable. For the first step you need a PowerShell Script. And here you find the description and the complete code

Add/Remove Secondary Site Collection Admin to all OneDrive for Business users

But for Midsize and enterprise companies this takes to much time. It would be better, to migrate the data direct for one users OneDrive for Business to another Users OneDrive for Business, using BitTitan’s MigrationWiz. This is a Software as a Service tool. You only need a Browser and an internet connection. So I have written a blog post about this Scenario here.

Source: PowerShell Script by Jiji Technologies

File Server to OneDrive for Business Migration

15. November 2015 Hinterlasse einen Kommentar

OneDrive for Business, Microsoft migrationwiz

OneDrive for Business is gaining recognition and traction among SMBs and enterprises. In particular, replacing user home drives, commonly stored on on-premises file shares, with OneDrive is becoming a common request to Office 365 system integrators and MSPs. As our partners have started to do more of these projects, some common roadblocks have become apparent:

More and more enterprise customers want to migrate their users’ Home drive, most often stored on File Servers, to the users’ One Drive for Business. But there are several hurdles:

  • he structure of the File Servers is not in harmony with user names in Office 365.
  • They do not want to migrate the complete File Servers structure.
  • They are not aware of the limits in OneDrive for Business.

With MigrationWiz, you are able to migrate, but the migration process is different:

Step 1 Upload the files into an Azure Blob storage.
Step 2 Create a Project in MigrationWiz: Source is Azure, Destination is OneDrive for Business
Step 3 Filter the different Folders to migrate only the relevant data to the users’ OneDrive for Business.

Before you begin to upload, you must check all documents, determine if any limitation prevents these documents from being stored in OneDrive for Business. There are several articles about these limitations:

Restrictions and limitations …. sync SharePoint lib. to your computer through ODFB
Migrating File Shares to OneDrive for Business
SharePoint Online and OneDrive for Business: software boundaries and limits

So then you are able to identify the folders:

In the following example we only want to upload only 3002 and 3003 == User A and User B

File Server structure

Azure Blob container (after uploading)

FS\3001

 

FS\3001\doc1.docx

 

FS\3002\

FS\3002\

FS\3002\Doc21.docx

FS\3002\Doc21.docx

FS\3002\Doc22.docx

FS\3002\Doc22.docx

FS\3003\

FS\3003\

FS\3003\Subfolder1

FS\3003\Subfolder1

FS\3003\Subfolder1\Doc31.docx

FS\3003\Subfolder1\Doc31.docx

FS\3003\doc32.docx

FS\3003\doc32.docx

FS\3003\doc33.docx

FS\3003\doc33.docx

FS\3004

 

FS\3004\doc41.docx

 

FS\3005

 

Directory.metadata

 

File.metadata

Only the folders and files (these are highlighted in yellow) should be uploaded to the Azure blob in the named container.

The Second part is the migration with MigrationWiz

The table below indicates what will be migrated into the OneDrive for Business document library destination:

User A

User B

Doc21.docx

doc32.docx

Doc22.docx

doc33.docx

 

Subfolder1

 

Subfolder1\Doc31.docx

So this can be done, using two CSV files and also two PowerShell cmdlets.

The first CSV file is the configuration file where several kinds of information will be stored:

FSConfig.csv

ProjectName

The Project Name in MigrationWiz.

 

ContainerName

The container name of the blob storage in Azure. The container in this Azure blob storage must exist. (Only lowercase names are allowed)

 

RootPath

The root path of the File Server.

 

AccessKey

The name of the Azure Blob storage.

 

SecretKey

The Security Key to access the Blob storage.

 

ODFBAdmin

The email of the Office 365 Global administrator.

 

Password

The Password of the Office 365 Global administrator.

In the second CSV file are stored users’ name and the corresponding File Server folder. Additionally, the Filter Folder and Folder Mapping must be saved.

Users.csv

DestinationEMail

Email address of the user, in which the ODFB data is stored.

 

SourceFolder

The Subfolder of the File Server, which is mapped with the email address (User)

 

FilterFolder

The RegEx for the User, which filters only the Subfolder and for the given user.

 

FolderMapping

Filters the Folder.

If all data are saved in both CSV files, then we may execute the first PowerShell cmdlet with Migration Preparation, FileServer to OneDrive for Business the name Uploader.ps1.

Now only the selected folders, subfolders and files are uploaded to the Azure Blob storage in the named container.

Upload to Azure,FileServer to OneDRive for Business

The second PowerShell cmdlet ProjectImport.ps1 creates the complete Project in MigrationWiz. You do not have to set any information. All information about the project (Source, Destination, container) and all users are inserted.

Migration, Azure to Onedrive for Business

And now you ready to start the Migration with checking your credentials and then with a full migration.

clip_image008

Fore more information go to our community site at BitTitan

PowerShellPlus – 32Bit & 64 Bit Snapin’s

21. August 2008 Hinterlasse einen Kommentar

PowerShellPlus – 32Bit & 64 Bit Snapin’sPowerShellPlus, eine Powershell-Erweiterung mit grafischer Oberfläche wird an Montag, 25.August als Download zur Verfügung stehen.PowerShellPlusWas PowerShellPlus ist, will ich hier nicht beschreiben, vielleicht nur eines: die perfekte Integration der Konsolen Oberfläche von PowerShell, einem Code-Editor mit Intellisense und einer fantastische Hilfe. Hinter dem Programm steht der in der Scripting Welt nicht ganz unbekannte Dr. Tobias Weltner. Einfach ausprobieren.Für mich stellte sich gestern die Frage, wie sich Powershell mit der Problematik: „Powershell-SnapIn’s auf 64 Bit Systemen“ verhält und wie sich diese Probleme umgehen lassen. PowerShellPlus ist ein 32Bit Programm. Es läuft natürlich auch in Umgebungen wie Exchange Server 2007 oder System Center Virtual Machine Manger 2008. Aber das sind reinrassige 64 Bit Systeme. Installieren wir PowerShellPlus, dann werden alle SnapIn’s ausgelesen und in PowerShell eingeklinkt. Mit allem was dazugehört, einschließlich Hilfe. Vollautomatisch.Nach dem Download und der Installation auf dem System Center Virtual Machine Manager 2008 und dem ersten Aufruf liest er die vorhandenen SnapIn‘s ein. Nochmal: Basis für den SCCM 2008 ist Windows Server 2008, 64 Bit Edition. Im Learning Center der PowerShellPlus finden wir unter „PSSnapin Reference“ alle SnapIn’s aufgelistet, die PowerShellPlus gefunden hat. 5 SnapIn’s sind immer vorhanden:PowerShellPlus Learning CenterWo aber sind die SCVMM 2008 SnapIn’s?Die Informationen der SnapIn’s werden in der Registry angelegt. OK, starten wir Regedit über „Run“ – Regedit und springen zu [HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellSnapIns] dann finden wir dort das PowerShellSnappIn „Microsoft.SystemCenter.VirtualMachineManager“Registry: PowerShell SnapIn'sWarum also findet PowerShellPlus dieses SnapIn nicht? Schauen wir uns doch einmal im Task Manager an, was für ein Regedit wir aufgerufen haben.Taskmanager: Regedit 64 BitRegedit ohne *32, also die 64BIT Version . PowerShellPlus ist eine 32 Bit Programm. Also kann es die 64-Bit Registry nicht auslesen.
Wir brauchen Regedit in der 32 Bit Variante. Dies finden wir unter C:WindowsSysWOW64. Starten wir diesen Registrations-Editor:Taskmanager: Regedit 32 BitOk, also haben wir jetzt die 32 Bit Version. Und suchen uns dort die Stelle, wo sich die PowerShell SnapIn’s befinden müssen:Registry: PowerShell SnapIn'sNichts vorhanden, deshalb kann auch PowerShellPlus nichts finden. Die gleiche Problematik finden wir unter Exchange Server 2007 vor, weil auch hier das Betriebssystem eine 64 Bit Variante sein muss.Was nicht funktioniert:Die relevanten DLL ‚s in der 32 BIT Registry zu referenzieren. Es handelt sich ja um 64 BIT DLL’s. Wir brauchen aber die 32 Bit DLL’s und die sind nicht auf dem System vorhanden. Aber der Lösungsansatz ist richtig.Wo bekommen wir jetzt die 32-BIT DLL’s her? Step 1: Download der 32 Bit VersionenFür Exchange gilt zu beachten, dass Sie die Sprach-Variante downloaden (943 MB), für die Sie später in PowerShellPlus auch die Erklärungen und Hilfe angezeigt bekomme, auch auswählen. Wir benötigen die 32BIT EditionSystem-Center Virtual Machine Manager 2008 ist derzeit noch im Beta-Status. Es ist derzeit nur über Microsoft Connect nach Anmeldung zu beziehen.Als Basis für die Installation dient eine 32BIT-Variante von Windows Vista. Dort installieren wir ausschließlich die Management Funktionen von Exchange 2007 bzw. die Verwaltungs-Konsole von SCVMM 2008. SCVMM 2008 installiert sich übrigens in der Sprachversion, die dem Betriebssystem zu Grunde liegt.Step 2: Identifizieren der DLLsWir starten unter Vista Regedit.Registry: PowerShell SnapIn'sIch habe hier sowohl Exchange 2007 als auch SCVMM 2008 installiert. Deshalb werden jetzt 3 SnapIn’s angezeigt. Mit einem Doppelklick auf den Modulnamen erhalten wir Pfad und Datei.

SnapIn DLL Pfad
Virtual Machine Manager Microsoft.SystemCenter.VirtualMachineManager.dll Program FilesMicrosoft System Center Virtual Machine Manager 2008bin
Exchange…. Admin Microsoft.Exchange.PowerShell.Configuration.dll Program FilesMicrosoftExchange Serverbin
Exchange… Support Microsoft.Exchange.Management.Powershell.Support.dll Program FilesMicrosoftExchange Serverbin

  Step 3: Kopieren der 32-Bit Dateien Jetzt müssen wir di relevanten Dateien kopieren. Tobias Weltner und ich haben uns gestern Nacht nicht die Mühe gemacht, alle Abhängigkeiten der verschiedenen DLL’s zu testen.Für SCCVM 2008 sind es:

about_Changes_in_VMM_2008.help.txt
about_VMM.help.txt
about_VMM_Scripting.help.txt
about_VMM_Tutorial.help.txt
AxInterop.QuickMksAxLib30.dll
AxInterop.QuickMksAxLib35.dll
AxVMRCActiveXClient.dll
cli.psc1
DundasWinChart.dll
Errors.dll
GroupingListView.dll
Interop.QuickMksAxLib30.dll
Interop.QuickMksAxLib35.dll
Microsoft.EnterpriseManagement.UI.ConsoleFramework.dll
Microsoft.ReportViewer.Common.dll
Microsoft.ReportViewer.Winforms.dll
Microsoft.SystemCenter.VirtualMachineManager.dll
Microsoft.SystemCenter.VirtualMachineManager.dll-Help.xml
Microsoft.Virtualization.Client.RdpClientAxHost.dll
Microsoft.Virtualization.Client.RdpClientInterop.dll
NativeMethods.dll
Remoting.dll
SQMapi.dll
SQMWrapper.dll
TraceWrapper.dll
UI.AddHostWizard.dll
UI.Bitbos.dll
UI.CommonControls.dll
UI.GlobalSettingsDialog.dll
UI.HardwareConfig.dll
UI.HardwareProperties.dll
UI.HostPropertiesDialog.dll
UI.Images.dll
UI.Library.dll
UI.MmcContainer.dll
UI.NewVmWizard.dll
UI.OSProperties.dll
UI.Reporting.dll
UI.SelfService.dll
Utils.dll
virtualmachinemanager.types.ps1xml
VMRCActiveXClient.dll
VMRCClientControlLib.dll
WizardFramework.dll
 

Für Exchange Server 2007 sind es:

AirSyncTiStateParser.dll
BPA.Common.dll
BPA.ConfigCollector.dll
BPA.NetworkCollector.dll
BPA.UserInterface.dll
BPA.WizardEngine.dll
chksgfiles.dll
dsaccessperf.dll
e12pidgen.dll
epoxy.dll
escprint.dll
ese.dll
eseback2.dll
esebcli2.dll
ExBPA.ESECollector.dll
ExBPA.ExchangeCollector.dll
ExBPA.Shared.dll
ExBPAMdb.dll
ExBPAMon.dll
exchange.format.ps1xml
Exchange.Support.format.ps1xml
exchmem.dll
exchsetupmsg.dll
exrpc32.dll
exrw.dll
exsetdata.dll
extrace.dll
ExTraceMan.dll
Interop.ActiveDS.dll
Interop.adsiis.dll
Interop.CertEnroll.dll
Interop.Migbase.dll
Interop.MSClusterLib.dll
Interop.stdole2.dll
Interop.XEnroll.dll
MapiProtocolHandlerStub.dll
Microsoft.Exchange.AirSync.AirSyncMsg.dll
Microsoft.Exchange.AirSync.dll
Microsoft.Exchange.AirSync.SyncStateConverter.dll
Microsoft.Exchange.Cluster.Replay.dll
Microsoft.Exchange.Cluster.ReplicaSeeder.dll
Microsoft.Exchange.Common.dll
Microsoft.Exchange.Common.IL.dll
Microsoft.Exchange.Common.ProcessManagerMsg.dll
Microsoft.Exchange.CommonMsg.dll
Microsoft.Exchange.Configuration.ObjectModel.dll
Microsoft.Exchange.ContentIndexing.Tasks.dll
Microsoft.Exchange.Core.Strings.dll
Microsoft.Exchange.Data.Directory.dll
Microsoft.Exchange.Data.dll
Microsoft.Exchange.Data.Mapi.dll
Microsoft.Exchange.Data.Storage.ClientStrings.dll
Microsoft.Exchange.Data.Storage.dll
Microsoft.Exchange.Diagnostics.dll
microsoft.exchange.edgesync.common.dll
Microsoft.Exchange.Extensibility.Internal.dll
Microsoft.Exchange.Infoworker.CalendarSettings.dll
Microsoft.Exchange.InfoWorker.Common.dll
Microsoft.Exchange.Isam.Interop.dll
Microsoft.Exchange.Management-Help.xml
Microsoft.Exchange.Management.DetailsTemplates.dll
Microsoft.Exchange.Management.dll
Microsoft.Exchange.Management.Edge.SystemManager.dll
Microsoft.Exchange.Management.NativeResources.dll
Microsoft.Exchange.Management.Powershell.Support.dll
Microsoft.Exchange.Management.PublicFolders.dll
Microsoft.Exchange.Management.SnapIn.Esm.dll
Microsoft.Exchange.Management.SystemManager.dll
Microsoft.Exchange.ManagementMsg.dll
Microsoft.Exchange.MessageSecurity.dll
Microsoft.Exchange.MessagingPolicies.Rules.dll
Microsoft.Exchange.Net.dll
Microsoft.Exchange.PowerShell.Configuration.dll
Microsoft.Exchange.RoutingTableLogParser.dll
Microsoft.Exchange.Rpc.dll
Microsoft.Exchange.RPCOverHTTPAutoconfig.dll
Microsoft.Exchange.Search.exSearchMsg.dll
Microsoft.Exchange.Setup.Common.dll
Microsoft.Exchange.StoreProvider.dll
Microsoft.Exchange.SystemAttendantMailboxServicelet.dll
Microsoft.Exchange.Transport.Agent.AntiSpam.Common.dll
Microsoft.Exchange.Transport.Agent.SenderId.Core.dll
Microsoft.Exchange.Transport.dll
Microsoft.Exchange.Transport.Logging.Search.dll
Microsoft.Exchange.UM.ClientStrings.dll
Microsoft.Exchange.UM.Management.dll
Microsoft.Exchange.UM.UMCommon.dll
Microsoft.Exchange.UM.UmDiagnostics.Common.dll
Microsoft.Rtc.Collaboration.dll
Microsoft.Rtc.Media.dll
migbase.dll
migmsg.dll
RulesAuditMsg.dll
ScheduleEditor.dll
SIPEPS.dll
sqmapi.dll 

Step 4: Registry-Schlüssel exportierenExportieren Sie die einzelnen SnapIn‘s aus der Registry (2 Dateien für Exchange 2007, 1 Datei für SCVMM 2008).Für Exchange 2007:Klicken Sie mit der rechten Maustaste auf Microsoft.Exchange.Management.PowerShell.Admin und exportieren sie diesen Registry-Zweig.
Klicken Sie mit der rechten Maustaste auf Microsoft.Exchange.Management.PowerShell.Support und exportieren sie diesen Registry-ZweigFür System Center Virtual Machine Manager 2008:Klicken Sie mit der rechten Maustaste auf Microsoft.SystemCenter.VirtualMachineManager und exportieren sie diesen Registry-Zweig.Step 5: Dateien ins Zielsystem kopierenAuf dem Zielsystem (Exchange Server 2007 bzw. SCVMM) erstellen wir unter “Program Files (x86)“ ein neues Verzeichnis: „ PowerShell_SnapIn“In dieses Verzeichnis erstellen wir für Exchange ein weiteres Subdirectory: „EX2K7“ und „SCVMM“ für System Center Virtual Machine Manager.In diese Unterverzeichnisse kopieren Sie die jeweiligen o.a. Dateien und die exportierten Reg-Dateien

PowerShell_SnapIn EX2K7 Dateien für Exchange
  SCVMM Dateien für SCVMM

Sollten Sie sowohl Exchange Server 2007 als auch SCVMM (auf getrennten Servern) einsetzen, können Sie hierdurch mit PowerShellPlus beide Systeme von einem Server aus managen!PowerShell SnapIn Struktur 32 BitStep 6: Exportierte Reg-Datei anpassenÖffnen Sie die reg-Datei zum Bearbeiten (hier als Beispiel SCVMM). Die rot gekennzeichneten Teile müssen angepasst werden

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellSnapInsMicrosoft.SystemCenter.VirtualMachineManager]
„PowerShellVersion“=“1.0“
„Vendor“=“Microsoft Corp.“
„Description“=“Dieses Windows PowerShell-Snap-In enthält Cmdlets für Microsoft System Center Virtual Machine Manager 2008 zum Verwalten des Virtual Machine Manager-Servers sowie der Bibliothekserver, Hosts und virtuellen Maschinen.“
„Version“=“1.0.523.0“
„ApplicationBase“=“C:\Program Files\Microsoft System Center Virtual Machine Manager 2008\bin
„AssemblyName“=“Microsoft.SystemCenter.VirtualMachineManager, Version=1.0.523.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35“
„ModuleName“=“C:\Program Files\Microsoft System Center Virtual Machine Manager 2008\bin\Microsoft.SystemCenter.VirtualMachineManager.dll
„Types“=hex(7):76,00,69,00,72,00,74,00,75,00,61,00,6c,00,6d,00,61,00,63,00,68,
  00,69,00,6e,00,65,00,6d,00,61,00,6e,00,61,00,67,00,65,00,72,00,2e,00,74,00,
  79,00,70,00,65,00,73,00,2e,00,70,00,73,00,31,00,78,00,6d,00,6c,00,00,00,00,
  00 

 Achten Sie beim ersetzen der Programmpfade auf korrekte Syntax: (\)

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1PowerShellSnapInsMicrosoft.SystemCenter.VirtualMachineManager]
„PowerShellVersion“=“1.0“
„Vendor“=“Microsoft Corp.“
„Description“=“Dieses Windows PowerShell-Snap-In enthält Cmdlets für Microsoft System Center Virtual Machine Manager 2008 zum Verwalten des Virtual Machine Manager-Servers sowie der Bibliothekserver, Hosts und virtuellen Maschinen.“
„Version“=“1.0.523.0“
„ApplicationBase“=“C:\Program Files (x86)\PowerShell_SnapIn\SCVMM
„AssemblyName“=“Microsoft.SystemCenter.VirtualMachineManager, Version=1.0.523.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35“
„ModuleName“=“C:\Program Files (x86)\PowerShell_SnapIn\SCVMM\Microsoft.SystemCenter.VirtualMachineManager.dll
„Types“=hex(7):76,00,69,00,72,00,74,00,75,00,61,00,6c,00,6d,00,61,00,63,00,68,
  00,69,00,6e,00,65,00,6d,00,61,00,6e,00,61,00,67,00,65,00,72,00,2e,00,74,00,
  79,00,70,00,65,00,73,00,2e,00,70,00,73,00,31,00,78,00,6d,00,6c,00,00,00,00,
  00 

Das gleiche führen Sie für die 2 Reg-Dateien von Exchange Server 2007 aus. 

Step 7: geänderte Registry Datei(en) importieren (Regedit 32 Bit) Bitte keinen Doppelklick auf die Reg-Datei. Sie wird sonst in die 64-Bit Registry eingetragen! Wechseln Sie ins Verzeichnis WindowsSysWow64 und rufen Sie dort die 32-Bit Variante Regedit auf. Importieren Sie die soeben geänderten Reg-Dateien (2x für Exchange bzw. 1x für SCVMM)Step 8: PowerShellPlus IntegrationStarten Sie PowerShellPlus. Wechseln Sie in das PowerShell Learning Center. Unter den PSSnapin.Reference finden sich jetzt weitere ReferenzenBeispiel 1:Virtual Machine ManagerPowerShellPlus Learning CenterBeispiel 2: Exchange und Virtual Machine ManagerPowerShellPlus Learning CenterStep 9: SnapIn zur PowerShell Umgebung hinzufügenDamit wir mit PowerShellPlus auch mit den neuen Befehlen des SnapIn‘s arbeiten können, müssen wir noch 2 Befehle in der Powershell eingeben:für System Center Virtual Machine Manager: 

Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
Set-ExecutionPolicy remotesigned 

für Exchange Server: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
Set-ExecutionPolicy remotesignedPowerShellPlus Add-PSSnapinZusammenfassung:

  • PowershellPlus ist ein 32 BIT Programm und kann nur auf 32 BIT Snap-Ins zugreifen.
  • Hilfskostruktion: Installation von Exchange Server 2007 auf einem 32Bit-Betriebssystem
  • Hilfskonstruktion: Installation der Verwaltungskonsole des SCVMM 2008)
  • Über die Registry exportieren wir die Schlüssel
  • Über die Registry extrahieren wir die benötigten DLLs
  • Die Dateien werden auf das Zielsystem kopiert
  • Die Registry-Dateien werden angepasst
  • Über Regedit (32 Bit) werden die bearbeiteten Dateien importiert
  • In PowerShellPlus werden die SnapIns hinzugefügt

Tobias Weltner hat versprochen, diesen Vorgang mittels mehreren Powershell-Scripts zu automatisieren. 

 

%d Bloggern gefällt das: