创建 Powershell Runbook 之前的先决条件:
如果您想创建一个带有运行身份帐户的自动化帐户,您需要在您的订阅中具有Owner 角色,因为创建运行身份帐户(服务主体)时,它会自动将服务主体添加到您的订阅中作为Contributor,只需Owner即可。
但如果您只想在自动化帐户中使用 Runbook,则不需要 Owner 角色。您只需要求订阅中的Owner 为您创建一个带有 run as 帐户的自动化帐户,然后您就可以创建一个 powershell runbook 并运行您的命令。
1) 创建您的自动化帐户:
Azure 门户 > 搜索“自动化帐户” > 创建 > 提供所需的数据,例如名称、订阅资源组、位置,然后选择创建 Azure 运行方式帐户选项为是
2:导入必要的 PowerShell 模块
您的自动化帐户 > 模块库(在左侧索引中)> 选择“SharePointPnPPowerShellOnline” > 单击“导入”按钮以导入模块。
3:为帐户运行添加凭据
- 设置运行放置在 Azure 中的 PowerShell 脚本的凭据
自动化操作手册
- 并连接到 SharePoint Online 租户,生成存储
报告所有网站,然后每天发送一封电子邮件。
(这里我采用了每天在预定时间发送邮件和指定邮件的示例脚本)
- 在自动化帐户中,单击“Credentials”链接
快速启动 > 点击“添加凭据”按钮。提供任何有效的
具有必要访问权限的凭据。
在我的例子中,我使用了一个具有 SharePoint Online 管理员角色的帐户。单击“创建”按钮创建凭据。
4:使用 PowerShell 脚本创建 Runbook
Runbook 是我们要运行的脚本的容器。 Runbook 列出了所有已发布的可用于自动化的 Runbook。
- 打开创建的 Azure 自动化帐户 >> 点击流程自动化下的“Runbooks”。
- 单击“创建 Runbook”>> 指定名称并选择其类型为 PowerShell,然后单击“创建”按钮。
创建 PowerShell Runbook 后,它会将您带到编辑要运行的 PowerShell 脚本的页面。为自动化编写必要的 PowerShell 脚本。
下面是我给定的自定义 PowerShell 脚本
`#Get Stored Credentials`
`$CrescentCred` `=` `Get-AutomationPSCredential` `-Name` `"StorageRptCred"`
`#Set Variables`
`$TenantAdminURL` `=` `"https://xxxx-admin.sharepoint.com"`
`$EmailTo` `=` `"xxxx@abc.com"`
`#Connect to PnP Online`
`Connect-PnPOnline` `-Url` `$TenantAdminURL` `-Credentials` `$xxxCred`
`$CSSStyle` `=` `"<style>`
`table {font-family: Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%;}`
`table td, th {border: 1px solid #ddd; padding: 8px;}`
`table tr:hover {background-color: #ddd;}`
`table th { padding-top: 12px; padding-bottom: 12px; text-
align: left; background-color: #4CAF50; color: white;`}`</style>"
#Get the Site collection Storage details
Some code related to format of data
#Send Email
`Send-PnPMail` `-To` `$EmailTo` `-Subject` `"Storage Report"` `-Body` `$EmailBody`
单击“保存”保存并测试 PowerShell 脚本,然后单击“测试窗格”按钮代码编辑器。脚本完成后,单击“发布”以发布 Runbook,因为必须发布 Runbook 才能创建计划。
**5:向您的 PowerShell 脚本添加计划 **
作为最后一步,我们必须向 PowerShell 脚本添加一个计划。下面介绍了如何为 Azure Runbook 创建计划。
- 从创建的 Runbook 中单击“计划” >> 单击“添加计划”链接。
- 选择“将计划链接到您的运行手册” >> 单击“创建新计划 ”链接。
- 为您的计划输入必要的详细信息,例如名称、描述、开始日期、时间、时区和重复详细信息。就我而言,计划将在给定时间每天运行,直到到期日。
好的,现在我们已经在 Azure 自动化中配置了 PowerShell 脚本。等待计划的作业运行,这是我的计划作业电子邮件: