Написать в Google Sheets с помощью Powershell (ошибка System. Net .WebException 401 Unauthorized) - PullRequest
1 голос
/ 25 марта 2020

Этот скрипт Powershell намеревается написать в Google Sheets, учитывая, что пользователь уже вошел в свою учетную запись Google в браузере, но выдает ошибку System.Net.WebException. Сообщение:

Invoke-WebRequest: The remote server returned an error: (401) Unauthorized.
In C:\Users\F76254C\Desktop\Nova pasta\Batch files\Available Projects\Latam HIL Lab Menu\libs\GAS.ps1:141 character:1
+ Invoke-WebRequest -UseBasicParsing -Uri $GoogleWebAppURL -Method POST ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Я протестировал этот код с помощью Google Web App, развернутой с моей личной учетной записью Google (у кого есть доступ к приложению: Кто угодно), и он работает без ошибок, но мне нужно сделать это работа с использованием веб-приложения Google, развернутого с моей профессиональной учетной записью Google (у кого есть доступ к приложению: все сотрудники компании).

$GoogleWebAppURL = 'URL_DEPLOYED_FROM_PROFESSIONAL_GOOGLE_ACCOUNT'

$Column1Name = 'Computer'
$Column1Value = $env:COMPUTERNAME

$Column2Name = 'IP Address'
$Column2Value = (Test-Connection -ComputerName ::1 -Count 1|select ipv4address).ipv4address

$Column3Name = 'OS Version'
$Column3Value = "$([System.Environment]::OSVersion.Version.Major)`.$([System.Environment]::OSVersion.Version.Minor)`.$([System.Environment]::OSVersion.Version.Build)`.$([System.Environment]::OSVersion.Version.Revision)"

$Column4Name = 'Uptime'
$Column4Value = (Get-CimInstance -ClassName win32_operatingsystem | select lastbootuptime).lastbootuptime

$postParams = @{$Column1Name=$Column1Value;$Column2Name=$Column2Value;$Column3Name=$Column3Value;$Column4Name=$Column4Value}
Invoke-WebRequest -UseBasicParsing -Uri $GoogleWebAppURL -Method POST -Body $postParams

Write-Host `"$Column1Name=$Column1Value"&"$Column2Name=$Column2Value"&"$Column3Name=$Column3Value"&"$Column4Name=$Column4Value`"
...