使用 powershell 生成 google 报告

Using powershell for a google report

我刚开始使用 powershell,我正在尝试使用 PSGSuite 模块获取过去 30 天内所有用户的报告。到目前为止我得到的是以下内容


$REQUESTEDDATE = Read-Host -Prompt 'Enter the month for the desired report month in numerical form. e.g Jan 1 Feb 2 Mar 3'
$REPORTDATE = (Get-Date -Month ($REQUESTEDDATE-(-1)) -Hour 0 -Minute 0 -Second 0)
$MonthAgo = $REPORTDATE.AddMonths(-1)
$FIRSTDAYOFMONTH=GET-DATE $MonthAgo -Day 1
$LASTDAYOFMONTH=GET-DATE $FIRSTDAYOFMONTH.AddMonths(1).AddSeconds(-1)
$Times = $FIRSTDAYOFMONTH..$LASTDAYOFMONTH.day | Foreach-Object {
$currentdate = Get-Date -Day $_ -Month $LASTDAYOFMONTH.Month -Year $LASTDAYOFMONTH.Year 
$GMAIL = Get-GSUsageReport -Date $currentdate -UserKey xxx -flat

}

现在抛出“从 'DateTime' 到 'Int32' 的无效转换错误。可能有更简单的方法来执行此操作,但我更倾向于 hardware/networking 一方当开发团队正在处理不同的项目时抛出这个问题,因此感谢任何帮助。

第一件事是我讨厌你代码中的所有大写字母,所以如果你不介意我已经改变了它。

接下来,只要 运行ning 日期小于最终日期(请求日期的第 1 天),您就可以简单地 运行 使用 while循环:

$requestedDate = Read-Host -Prompt 'Enter the month for the desired report month in numerical form. e.g Jan 1 Feb 2 Mar 3'
$reportDate    = (Get-Date -Month $requestedDate -Day 1).Date   # end date set at midnight on day 1
$runningDate   = $reportDate.AddMonths(-1)                      # start at day 1, one month ago

$result = while ($runningDate -lt $reportDate) {
    # perform your command and capture the output in variable $result
    Get-GSUsageReport -Date $runningDate -UserKey xxx -flat
    # increment the running date
    $runningDate = $runningDate.AddDays(1)  
}

# show the result
$result