Task scheduler credentials powershell

Vaikaumav 1 Reputation point
2020-09-16T00:17:15.783+00:00

Hi I have written a ps script to set retention policy for SP sites. Wheras the script works, I need to make it non interactive. Any help will be highly appreciated...


Start-Transcript

install-module if does not exist

Import-Module Microsoft.Online.SharePoint.Powershell -DisableNameChecking
Import-Module ExchangeOnlineManagement

Variables for processing

$AdminCenterURL = "https://xyz-admin.sharepoint.com/"

User Name Password to connect

$AdminUserName = "@stgtenant.onmicrosoft.com"
$AdminPassword = "" #App Password

create temp folder if it does not exist

$ReportOutput="C:\Temp\pvtSiteColl.csv"

Connect-IPPSSession -UserPrincipalName $AdminUserName

Prepare the Credentials

$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminUserName, $SecurePassword

Connect to SharePoint Online

Connect-SPOService -url $AdminCenterURL

Get All site collections

$SiteCollections = Get-SPOSite -Limit All| Where { $_.Template -eq "TEAMCHANNEL#0"}
Write-Host "Total Number of Private Site collections Found:"$SiteCollections.count -f Yellow

Array to store Result

$ResultSet = @()

Loop through each site collection and retrieve details

Foreach ($Site in $SiteCollections)
{
Write-Host "Processing Site Collection :"$Site.URL -f Yellow

Get site collection details

$Result = new-object PSObject
$Result | add-member -membertype NoteProperty -name "Title" -Value $Site.Title
$Result | add-member -membertype NoteProperty -name "Url" -Value $Site.Url
$Result | add-member -membertype NoteProperty -name "Template" -Value $Site.Template

Set-RetentionCompliancePolicy -Identity "testFilesRetention" -AddSharePointLocation $Site.Url

$ResultSet += $Result
}

Export Result to csv file

$ResultSet | Export-Csv $ReportOutput -notypeinformation

Write-Host "private site Report Generated Successfully!" -f Green

Stop-Transcript

SharePoint
SharePoint
A group of Microsoft Products and technologies used for sharing and managing content, knowledge, and applications.
9,747 questions
Windows Server PowerShell
Windows Server PowerShell
Windows Server: A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.PowerShell: A family of Microsoft task automation and configuration management frameworks consisting of a command-line shell and associated scripting language.
5,390 questions
{count} votes

2 answers

Sort by: Most helpful
  1. Trevor Seward 11,691 Reputation points
    2020-09-16T01:24:10.187+00:00

    Create a tenant-scoped addin with Full Control permissions. Use the ClientId and ClientSecret switches for Connect-SPOService instead of a username and password.

    https://learn.microsoft.com/en-us/sharepoint/dev/sp-add-ins/authorization-and-authentication-of-sharepoint-add-ins

    0 comments No comments

  2. ChelseaWu-MSFT 6,316 Reputation points
    2020-09-16T02:35:49.03+00:00

    In addition to trevorseward’s Answer:

    You can use Window Credential Manager to store and then pass the credentials when executing PowerShell commands.
    Please refer to the link here for detailed information: Quick Authentication From PnP PowerShell To Access SharePoint.

    Here is another post of discussion for your reference: How to avoid credential popup, to connect with graph API in the powershell script?


    If an Answer is helpful, please click "Accept Answer" and upvote it.
    **Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. **