Merge branch 'main' of https://git.azuze.fr/kawa/ps-scripts
This commit is contained in:
commit
09d5e0f281
|
@ -12,6 +12,17 @@
|
|||
# Source : C:\Users\SebastienQUEROL\source\repos\sharepointmover-gui\Form1.Designer.cs
|
||||
################################################################################
|
||||
|
||||
###############Thread Setup
|
||||
|
||||
$Global:syncHash = [hashtable]::Synchronized(@{})
|
||||
$newRunspace =[runspacefactory]::CreateRunspace()
|
||||
$newRunspace.ApartmentState ="STA"
|
||||
$newRunspace.ThreadOptions ="ReuseThread"
|
||||
$newRunspace.Open()
|
||||
$newRunspace.SessionStateProxy.SetVariable("syncHash",$syncHash)
|
||||
|
||||
###########################
|
||||
|
||||
##Aucune foutre idée de ce qu'est cense faire ce morceau de code, ca a été généré par le createur de forms
|
||||
# function Get-ScriptDirectory
|
||||
# { #Return the directory name of this script
|
||||
|
@ -387,35 +398,43 @@ $FMain.Text = "SharePoint Utils GUI"
|
|||
##Lister les sites dans les comboBoxes
|
||||
#### On lance le ScriptBlock dans un runspace au clic du bouton BlistSites
|
||||
$BlistSites.Add_Click({
|
||||
# On vide la variable pnpConnection pour ne pas avoir de faux positifs
|
||||
$pnpConnection = $Null
|
||||
$newRunspace =[runspacefactory]::CreateRunspace()
|
||||
$newRunspace.ApartmentState ="STA"
|
||||
$newRunspace.ThreadOptions ="ReuseThread"
|
||||
$newRunspace.Open()
|
||||
$newRunspace.SessionStateProxy.SetVariable("syncHash",$syncHash)
|
||||
|
||||
# On stocke la dernière connexion PnP
|
||||
$pnpConnection = Get-PnPConnection | Out-String
|
||||
$BlistSitesRunSpace = [PowerShell]::Create().AddScript({
|
||||
|
||||
# À améliorer, mais pour l'instant, ça devrait passer
|
||||
if (-not ([string]::IsNullOrEmpty($pnpConnection))) {
|
||||
$CBdestSite.Items.Clear()
|
||||
$CBsourceSite.Items.Clear()
|
||||
$sitesList = Get-PnPTenantSite | Where-Object -Property Template -NotIn (
|
||||
"SRCHCEN#0", "REDIRECTSITE#0", "SPSMSITEHOST#0", "APPCATALOG#0",
|
||||
"POINTPUBLISHINGHUB#0", "EDISC#0", "STS#-1", 'EHS#1', 'POINTPUBLISHINGTOPIC#0'
|
||||
) | Select-Object url
|
||||
|
||||
$LresultsMove.Items.Clear()
|
||||
foreach ($siteUrl in $sitesList) {
|
||||
$siteUrl -match "@{Url=(?<content>.*)}"
|
||||
$siteUrlClean = $matches["content"]
|
||||
$CBsourceSite.Items.Add([string]$siteUrlClean)
|
||||
$CBdestSite.Items.Add([string]$siteUrlClean)
|
||||
}
|
||||
} elseif ([string]::IsNullOrEmpty($pnpConnection)) {
|
||||
$LresultsMove.Items.Clear()
|
||||
$LresultsMove.Items.Add("Connectez-vous au tenant d'abord")
|
||||
} else {
|
||||
$LresultsMove.Items.Clear()
|
||||
$LresultsMove.Items.Add("Connectez-vous au tenant d'abord")
|
||||
}
|
||||
#On vide la variable pnpConnection pour ne pas avoir de faux positifs
|
||||
$pnpConnection=$Null
|
||||
#On stocke la derniere connection PnP
|
||||
$pnpConnection = Get-PnPConnection | Out-string
|
||||
#A ameliorer, mais pour l'instant, ca devrait passer
|
||||
if(-not ([string]::IsNullOrEmpty($pnpConnection))){
|
||||
$CBdestSite.Items.Clear()
|
||||
$CBsourceSite.Items.Clear()
|
||||
$sitesList = $null
|
||||
$sitesList = Get-PnPTenantSite | Where-Object -Property Template -NotIn ("SRCHCEN#0", "REDIRECTSITE#0", "SPSMSITEHOST#0", "APPCATALOG#0", "POINTPUBLISHINGHUB#0", "EDISC#0", "STS#-1", 'EHS#1','POINTPUBLISHINGTOPIC#0') | Select-Object url
|
||||
$LresultsMove.Items.Clear()
|
||||
foreach($siteUrl in $sitesList){
|
||||
$siteUrl -match "@{Url=(?<content>.*)}"
|
||||
$siteUrlClean = $matches["content"]
|
||||
$CBsourceSite.Items.Add([string]$siteUrlClean)
|
||||
$CBdestSite.Items.Add([string]$siteUrlClean)
|
||||
}
|
||||
}
|
||||
elseif(([string]::IsNullOrEmpty($pnpConnection))){
|
||||
$LresultsMove.Items.Clear()
|
||||
$LresultsMove.Items.Add("Connectez-vous au tenant d'abord")
|
||||
}
|
||||
else{
|
||||
$LresultsMove.Items.Clear()
|
||||
$LresultsMove.Items.Add("Connectez-vous au tenant d'abord")
|
||||
}
|
||||
})
|
||||
$BlistSitesRunSpace.PowerShell.Runspace = $newRunspace
|
||||
$BlistSitesRunSpace.Thread = $BlistSitesRunSpace.PowerShell.BeginInvoke()
|
||||
|
||||
})
|
||||
|
||||
|
@ -434,6 +453,13 @@ $BlistSites.Add_Click({
|
|||
|
||||
$Bgo.Add_Click({
|
||||
|
||||
$newRunspace =[runspacefactory]::CreateRunspace()
|
||||
$newRunspace.ApartmentState ="STA"
|
||||
$newRunspace.ThreadOptions ="ReuseThread"
|
||||
$newRunspace.Open()
|
||||
$newRunspace.SessionStateProxy.SetVariable("syncHash",$syncHash)
|
||||
|
||||
$copySPRunspace.PowerShell = [PowerShell]::Create().AddScript({
|
||||
$destSite = $CBdestSite.Text
|
||||
$sourceSite = $CBsourceSite.Text
|
||||
$sourceSite = $sourceSite -Replace '[A-Za-z]+://([A-Za-z]+(\.[A-Za-z]+)+)',''
|
||||
|
@ -442,6 +468,9 @@ $Bgo.Add_Click({
|
|||
$jobCopyPending = Copy-PnPFile -SourceUrl "$sourceSite" -TargetUrl "$destSite" -Force -OverwriteIfAlreadyExists
|
||||
$jobStatus = Receive-PnPCopyMoveJobStatus -Job $jobCopyPending -Wait
|
||||
Write-Output $jobStatus
|
||||
})
|
||||
$copySPRunspace.PowerShell.Runspace = $newRunspace
|
||||
$copySPRunspace.Thread = $copySPRunspace.PowerShell.BeginInvoke()
|
||||
|
||||
})
|
||||
|
||||
|
@ -455,29 +484,38 @@ $tenantURL = $URLTenant.Text
|
|||
$BconnectSP.Add_Click({
|
||||
|
||||
Disconnect-PnPOnline
|
||||
$Url = $ConnectSPUrl
|
||||
# Votre code de connexion à SharePoint ici
|
||||
Connect-PnPOnline -Url $Url -UseWebLogin
|
||||
Switch ($ERROR)
|
||||
{
|
||||
{$ERROR[0] -match "Host not reachable" }{
|
||||
$label4.Text = "Injoignable"
|
||||
$label4.ForeColor = [System.Drawing.Color]::MediumVioletRed
|
||||
Break}
|
||||
{$ERROR[0] -match "User canceled authentication."}{
|
||||
$label4.Text = "Annulé"
|
||||
$label4.ForeColor = [System.Drawing.Color]::MediumVioletRed
|
||||
Break}
|
||||
{-not ([string]::IsNullOrEmpty($pnpConnection))}{
|
||||
$label4.Text = "Connecté"
|
||||
$label4.ForeColor = [System.Drawing.Color]::Green
|
||||
}
|
||||
Default {
|
||||
$label4.Text = "..."
|
||||
$label4.ForeColor = [System.Drawing.Color]::Gray
|
||||
$newRunspace =[runspacefactory]::CreateRunspace()
|
||||
$newRunspace.ApartmentState ="STA"
|
||||
$newRunspace.ThreadOptions ="ReuseThread"
|
||||
$newRunspace.Open()
|
||||
$newRunspace.SessionStateProxy.SetVariable("syncHash",$syncHash)
|
||||
|
||||
$connectToSPRunspace.PowerShell = [PowerShell]::Create().AddScript({
|
||||
Connect-PnPOnline -Url $tenantURL -Interactive | Out-String
|
||||
|
||||
Switch ($ERROR)
|
||||
{
|
||||
{$ERROR[0] -match "Host not reachable" }{
|
||||
$label4.Text = "Injoignable"
|
||||
$label4.ForeColor = [System.Drawing.Color]::MediumVioletRed
|
||||
Break}
|
||||
{$ERROR[0] -match "User canceled authentication."}{
|
||||
$label4.Text = "Annulé"
|
||||
$label4.ForeColor = [System.Drawing.Color]::MediumVioletRed
|
||||
Break}
|
||||
{-not ([string]::IsNullOrEmpty($pnpConnection))}{
|
||||
$label4.Text = "Connecté"
|
||||
$label4.ForeColor = [System.Drawing.Color]::Green
|
||||
}
|
||||
Default {
|
||||
$label4.Text = "Connecté"
|
||||
$label4.ForeColor = [System.Drawing.Color]::Green
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
$connectToSPRunspace.PowerShell.Runspace = $newRunspace
|
||||
$connectToSPRunspace.Thread = $connectToSPRunspace.PowerShell.BeginInvoke()
|
||||
})
|
||||
|
||||
|
||||
function OnFormClosing_FMain{
|
||||
|
|
Loading…
Reference in New Issue