เจนเฉเจฒเฉ!
เจเจน เจฒเฉเจ G Suite เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจนเฉเจฐเจพเจซเฉเจฐเฉ เจเจฐเจจ เจฒเจ Google API เจจเจพเจฒ PowerShell เจเฉฐเจเจฐเฉเจเจธเจผเจจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเฉเจเจพเฅค
เจ
เจธเฉเจ เจชเฉเจฐเฉ เจธเฉฐเจเจ เจจ เจตเจฟเฉฑเจ เจเจ เจ
เฉฐเจฆเจฐเฉเจจเฉ เจ
เจคเฉ เจเจฒเจพเจเจก เจธเฉเจตเจพเจตเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจนเจฟเฉฑเจธเฉ เจฒเจ, เจเจนเจจเจพเจ เจตเจฟเฉฑเจ เจ
เจงเจฟเจเจพเจฐ Google เจเจพเจ เจเจเจเจฟเจต เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจเจเจเจฆเฉ เจนเจจ, เจเจฟเจธ เจฆเฉ เจตเจฟเจเจเจพเจฐ เจ
เจธเฉเจ เจเฉฑเจ เจชเฉเจฐเจคเฉเจเฉเจฐเจฟเจคเฉ เจจเฉเฉฐ เจเจพเจเจฎ เจจเจนเฉเจ เจฐเฉฑเจ เจธเจเจฆเฉ; เจเจธเจฆเฉ เจ
เจจเฉเจธเจพเจฐ, เจเจฆเฉเจ เจเฉฑเจ เจจเจตเจพเจ เจเจฐเจฎเจเจพเจฐเฉ เจเฉฑเจกเจฆเจพ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจฆเฉ เจชเฉเจฐเจฃเจพเจฒเฉเจเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจพเจคเจพ เจฌเจฃเจพเจเจฃ/เจฏเฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจธเจตเฉเจเจพเจฒเจค เจเจฐเจจ เจฒเจ, เจ
เจธเฉเจ เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจฒเจฟเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉ เจเฉ เจเจพเจฃเจเจพเจฐเฉ เจเจเฉฑเจ เฉ เจเจฐเจฆเฉ เจนเฉ เจ
เจคเฉ เจเจธเจจเฉเฉฐ เจฆเฉเจตเจพเจ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจญเฉเจเจฆเฉ เจนเฉเฅค
เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจฃ
เจฒเฉเฉเจพเจ เจจเฉเฉฐ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจ เจธเฉเจ เจ เจงเจฟเจเจพเจฐ เจฒเจ เจ เจธเจฒ เจฎเจจเฉเฉฑเจเฉ เจชเฉเจฐเจธเจผเจพเจธเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ; เจเจน เจฆเฉเจฐเจเจเจจเจพ เจเจพเจ เจเจพเจฃเจฌเฉเฉฑเจ เจเฉ เจตเฉฑเจกเฉ เจฌเจฆเจฒเจพเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจเจพเจฐเจตเจพเจเจเจ เจฆเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจจเฉเฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
Google API เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจ
เจคเฉ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจฒเจ OAuth 2.0 เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจเฅค เจเฉเจธเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ เจ
เจคเฉ เจนเฉเจฐ เจตเจฟเจธเจคเฉเจฐเจฟเจค เจตเจฐเจฃเจจ เจเฉฑเจฅเฉ เจฒเฉฑเจญเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ:
เจฎเฉเจ เจเจน เจธเจเฉเจฐเจฟเจชเจ เจเฉเจฃเฉ เจนเฉ เจเฉ เจกเฉเจธเจเจเฉเจช เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจฒเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจธเฉเจตเจพ เจเจพเจคเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจตเจฟเจเจฒเจช เจตเฉ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจคเฉเจ เจฌเฉเจฒเฉเฉเฉ เจนเจฐเจเจค เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค
เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจคเจธเจตเฉเจฐ เจเฉเจเจฒ เจชเฉเจ เจคเฉเจ เจเฉเจฃเฉ เจเจ เจฆเฉเจฐเจฟเจธเจผ เจฆเจพ เจฏเฉเจเจจเจพเจฌเฉฑเจง เจตเจฐเจฃเจจ เจนเฉเฅค
- เจชเจนเจฟเจฒเจพเจ, เจ
เจธเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ GET เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจจเฉเฉฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจฆเฉ เจนเฉเจ, Google เจเจพเจคเจพ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจชเฉฐเจจเฉ 'เจคเฉ เจญเฉเจเจฆเฉ เจนเจพเจ:
- เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจ.เจกเฉ
- เจเจน เจเฉเจคเจฐ เจเจฟเจจเฉเจนเจพเจ เจคเฉฑเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจชเจนเฉเฉฐเจ เจฆเฉ เจฒเฉเฉ เจนเฉ
- เจเจน เจชเจคเจพ เจเจฟเจธ 'เจคเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจชเฉเจฐเฉ เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ
- เจเจฟเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจ เจธเฉเจ เจเฉเจเจจ เจจเฉเฉฐ เจ เจชเจกเฉเจ เจเจฐเจพเจเจเฉ
- เจธเฉเจฐเฉฑเจเจฟเจ เจเฉเจก
- เจคเจธเจฆเฉเจ เจเฉเจก เจชเฉเจฐเจธเจพเจฐเจฃ เจซเจพเจฐเจฎเฉเจ
- เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจชเฉเจฐเจพ เจนเฉเจฃ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ GET เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉเจเจฐเจพ เจชเจพเจธ เจเฉเจคเฉ เจเจ เจเฉฑเจ เจเจฒเจคเฉ เจเจพเจ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจเฉเจก เจฆเฉ เจจเจพเจฒ, เจชเจนเจฟเจฒเฉ เจฌเฉเจจเจคเฉ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจเจ เจชเฉฐเจจเฉ 'เจคเฉ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
- เจเจชเจฒเฉเจเฉเจธเจผเจจ (เจธเจเฉเจฐเจฟเจชเจ) เจจเฉเฉฐ เจเจน เจฎเจพเจชเจฆเฉฐเจก เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉ เจ เจคเฉ, เจเฉเจเจฐ เจเฉเจก เจชเฉเจฐเจพเจชเจค เจนเฉเจเจ เจนเฉ, เจคเจพเจ เจเฉเจเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจนเฉเจ เจฒเจฟเจเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
- เจเฉเจเจฐ เจฌเฉเจจเจคเฉ เจธเจนเฉ เจนเฉ, เจคเจพเจ Google API เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉ:
- เจชเจนเฉเฉฐเจ เจเฉเจเจจ เจเจฟเจธ เจจเจพเจฒ เจ เจธเฉเจ เจฌเฉเจจเจคเฉเจเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ
- เจเจธ เจเฉเจเจจ เจฆเฉ เจตเฉเจงเจคเจพ เจฆเฉ เจฎเจฟเจเจฆ
- เจเจเจธเฉเจธ เจเฉเจเจจ เจจเฉเฉฐ เจคเจพเจเจผเจพ เจเจฐเจจ เจฒเจ เจฐเจฟเจซเฉเจฐเฉเจธเจผ เจเฉเจเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค
เจชเจนเจฟเจฒเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ Google API เจเฉฐเจธเฉเจฒ เจคเฉ เจเจพเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ:
เจธเจเฉเจฐเจฟเจชเจ เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจจเฉเฉฐ เจชเฉเฉเจนเจจเจพ เจตเจงเฉเจฐเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจฌเจฃเจพเจเจฃ เจฒเจ, เจคเฉเจธเฉเจ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจซเฉฐเจเจธเจผเจจ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเฉ เจชเฉเจพเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจเจเจธเฉเจธ เจ เจคเฉ เจฐเจฟเจซเฉเจฐเฉเจธเจผ เจเฉเจเจจเจพเจ เจจเฉเฉฐ เจตเจพเจชเจธ เจเจฐเฉเจเจพ:
$client_secret = 'Our Client Secret'
$client_id = 'Our Client ID'
function Get-GoogleAuthToken {
if (-not [System.Net.HttpListener]::IsSupported) {
"HttpListener is not supported."
exit 1
}
$codeverifier = -join ((65..90) + (97..122) + (48..57) + 45 + 46 + 95 + 126 |Get-Random -Count 60| % {[char]$_})
$hasher = new-object System.Security.Cryptography.SHA256Managed
$hashByteArray = $hasher.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($codeverifier))
$base64 = ((([System.Convert]::ToBase64String($hashByteArray)).replace('=','')).replace('+','-')).replace('/','_')
$ports = @(10600,15084,39700,42847,65387,32079)
$port = $ports[(get-random -Minimum 0 -maximum 5)]
Write-Host "Start browser..."
Start-Process "https://accounts.google.com/o/oauth2/v2/auth?code_challenge_method=S256&code_challenge=$base64&access_type=offline&client_id=$client_id&redirect_uri=http://localhost:$port&response_type=code&scope=https://www.googleapis.com/auth/admin.directory.user https://www.googleapis.com/auth/admin.directory.group"
$listener = New-Object System.Net.HttpListener
$listener.Prefixes.Add("http://localhost:"+$port+'/')
try {$listener.Start()} catch {
"Unable to start listener."
exit 1
}
while (($code -eq $null)) {
$context = $listener.GetContext()
Write-Host "Connection accepted" -f 'mag'
$url = $context.Request.RawUrl
$code = $url.split('?')[1].split('=')[1].split('&')[0]
if ($url.split('?')[1].split('=')[0] -eq 'error') {
Write-Host "Error!"$code -f 'red'
$buffer = [System.Text.Encoding]::UTF8.GetBytes("Error!"+$code)
$context.Response.ContentLength64 = $buffer.Length
$context.Response.OutputStream.Write($buffer, 0, $buffer.Length)
$context.Response.OutputStream.Close()
$listener.Stop()
exit 1
}
$buffer = [System.Text.Encoding]::UTF8.GetBytes("Now you can close this browser tab.")
$context.Response.ContentLength64 = $buffer.Length
$context.Response.OutputStream.Write($buffer, 0, $buffer.Length)
$context.Response.OutputStream.Close()
$listener.Stop()
}
Return Invoke-RestMethod -Method Post -Uri "https://www.googleapis.com/oauth2/v4/token" -Body @{
code = $code
client_id = $client_id
client_secret = $client_secret
redirect_uri = 'http://localhost:'+$port
grant_type = 'authorization_code'
code_verifier = $codeverifier
}
$code = $null
เจ เจธเฉเจ OAuth เจเจฒเจพเจเฉฐเจ เจชเจเจพเจฃเจเจฐเจคเจพ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจเจฒเจพเจเฉฐเจ เจเจเจกเฉ เจ เจคเฉ เจเจฒเจพเจเฉฐเจ เจธเฉเจเจฐเฉเจ เจธเฉเจ เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจเฉเจก เจตเฉเจฐเฉเจซเจพเจเจฐ 43 เจคเฉเจ 128 เจ เฉฑเจเจฐเจพเจ เจฆเฉ เจเฉฑเจ เจธเจคเจฐ เจนเฉ เจเฉ เจฌเฉเจคเจฐเจคเฉเจฌเฉ เจคเฉเจฐ 'เจคเฉ เจ เจฃเจฐเจฟเจเจผเจฐเจตเจก เจ เฉฑเจเจฐเจพเจ เจคเฉเจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเจพเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ: [AZ] / [az] / [0-9] / "-" / "เฅค" / "_" / "~"เฅค
เจเจน เจเฉเจก เจซเจฟเจฐ เจฆเฉเจฌเจพเจฐเจพ เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค เจเจน เจเจฎเจเจผเฉเจฐเฉ เจจเฉเฉฐ เจเจคเจฎ เจเจฐเจฆเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจนเจฎเจฒเจพเจตเจฐ เจเจชเจญเฉเจเจคเจพ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจคเฉเจ เจฌเจพเจ
เจฆ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจตเจเฉเจ เจตเจพเจชเจธ เจเฉเจคเฉ เจเจตเจพเจฌ เจจเฉเฉฐ เจฐเฉเจ เจธเจเจฆเจพ เจนเฉเฅค
เจคเฉเจธเฉเจ เจฎเฉเจเฉเจฆเจพ เจฌเฉเจจเจคเฉ เจตเจฟเฉฑเจ เจธเจชเจธเจผเจ เจเฉเจเจธเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจก เจตเฉเจฐเฉเจซเจพเจเจฐ เจญเฉเจ เจธเจเจฆเฉ เจนเฉ (เจเฉ เจเจธเจจเฉเฉฐ เจ
เจฐเจฅเจนเฉเจฃ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ - เจเจน เจธเจฟเจฐเจซ เจเจนเจจเจพเจ เจธเจฟเจธเจเจฎเจพเจ เจฒเจ เจขเฉเจเจตเจพเจ เจนเฉ เจเฉ SHA256 เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉเจ เจเจฐเจฆเฉ เจนเจจ), เจเจพเจ SHA256 เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจนเฉเจธเจผ เจฌเจฃเจพ เจเฉ, เจเจฟเจธ เจจเฉเฉฐ BASE64Url เจตเจฟเฉฑเจ เจเจจเจเฉเจก เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ (เจตเฉฑเจเจฐเจพ เจฌเฉเจธ 64 เจคเฉเจ เจฆเฉ เจเฉเจฌเจฒ เจ
เฉฑเจเจฐเจพเจ เจฆเฉเจเจฐเจพ) เจ
เจคเฉ เจ
เฉฑเจเจฐ เจฒเจพเจเจจ เจฆเฉ เจ
เฉฐเจค เจจเฉเฉฐ เจนเจเจพเจเจฃเจพ: =.
เจ เฉฑเจเฉ, เจ เจงเจฟเจเจพเจฐ เจคเฉเจ เจฌเจพเจ เจฆ เจเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจธเจพเจจเฉเฉฐ เจธเจฅเจพเจจเจ เจฎเจธเจผเฉเจจ 'เจคเฉ http เจจเฉเฉฐ เจธเฉเจฃเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเฉ เจเจฟ เจเฉฑเจ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจชเฉเจฐเจฌเฉฐเจงเจเฉ เจเฉฐเจฎ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจธเจฐเจตเจฐ 'เจคเฉ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, เจ เจธเฉเจ เจเจธ เจธเฉฐเจญเจพเจตเจจเจพ เจคเฉเจ เจเจจเจเจพเจฐ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจเจฟ เจเจ เจชเฉเจฐเจธเจผเจพเจธเจ เจเฉฑเจเฉ เจธเจฎเฉเจ เจธเจเฉเจฐเจฟเจชเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃเจเฉ, เจเจธเจฒเจ เจเจน เจฎเฉเจเฉเจฆเจพ เจเจชเจญเฉเจเจคเจพ เจฒเจ เจฌเฉเจคเจฐเจคเฉเจฌเฉ เจคเฉเจฐ 'เจคเฉ เจเฉฑเจ เจชเฉเจฐเจ เจเฉเจฃเฉเจเจพ, เจชเจฐ เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจชเฉเจฐเจเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเจพ เจนเฉ เจเจฟเจเจเจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ API เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจญเจฐเฉเจธเฉเจฏเฉเจ เจตเจเฉเจ เจตเฉ เจเฉเฉเจฟเจ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
access_type=เจเจซเจฒเจพเจเจจ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจจเจพเจฒ เจฏเฉเจเจผเจฐ เจเฉฐเจเจฐเฉเจเจธเจผเจจ เจฆเฉ เจฌเจฟเจจเจพเจ เจเจชเจฃเฉ เจเจช เจเฉฑเจ เจฎเจฟเจเจฆ เจชเฉเฉฑเจเฉ เจเฉเจเจจ เจจเฉเฉฐ เจ
เจชเจกเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ,
เจเจตเจพเจฌ_เจเจฟเจธเจฎ = เจเฉเจก เจเจน เจซเจพเจฐเจฎเฉเจ เจธเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉเจก เจจเฉเฉฐ เจเจฟเจตเฉเจ เจตเจพเจชเจธ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ (เจชเฉเจฐเจพเจฃเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจตเจฟเจงเฉ เจฆเจพ เจนเจตเจพเจฒเจพ, เจเจฆเฉเจ เจเจชเจญเฉเจเจคเจพ เจจเฉ เจฌเฉเจฐเจพเจเจเจผเจฐ เจคเฉเจ เจเฉเจก เจจเฉเฉฐ เจธเจเฉเจฐเจฟเจชเจ เจตเจฟเฉฑเจ เจเจพเจชเฉ เจเฉเจคเจพ),
เจธเจเฉเจช เจชเจนเฉเฉฐเจ เจฆเฉ เจฆเจพเจเจฐเฉ เจ
เจคเฉ เจเจฟเจธเจฎ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจชเฉเจธ เจเจพเจ %20 (URL เจเจจเจเฉเจกเจฟเฉฐเจ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ) เจฆเฉเจเจฐเจพ เจตเฉฑเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจฟเจธเจฎเจพเจ เจตเจพเจฒเฉ เจชเจนเฉเฉฐเจ เจเฉเจคเจฐเจพเจ เจฆเฉ เจธเฉเจเฉ เจเฉฑเจฅเฉ เจตเฉเจเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ:
เจ เจงเจฟเจเจพเจฐ เจเฉเจก เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจจเฉเฉฐ เจเฉฑเจ เจจเจเจผเจฆเฉเจเฉ เจธเฉเจจเฉเจนเจพ เจตเจพเจชเจธ เจเจฐเฉเจเฉ, เจชเฉเจฐเจ 'เจคเฉ เจธเฉเจฃเจจเจพ เจฌเฉฐเจฆ เจเจฐ เจฆเฉเจตเฉเจเฉ เจ เจคเฉ เจเฉเจเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ POST เจฌเฉเจจเจคเฉ เจญเฉเจเฉเจเฉเฅค เจ เจธเฉเจ เจเจธ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจเจกเฉ เจ เจคเฉ เจเฉฐเจธเฉเจฒ API เจคเฉเจ เจเฉเจชเจค เจธเฉฐเจเฉเจค เจเจฐเจฆเฉ เจนเจพเจ, เจเจน เจชเจคเจพ เจเจฟเจธ 'เจคเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ เจ เจคเฉ เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจจเจฟเจฐเจงเจพเจฐเจจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ grant_type.
เจเจตเจพเจฌ เจตเจฟเฉฑเจ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจเจเจธเฉเจธ เจเฉเจเจจ, เจธเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจตเฉเจงเจคเจพ เจฆเฉ เจฎเจฟเจเจฆ, เจ เจคเฉ เจเฉฑเจ เจฐเจฟเจซเจฐเฉเจธเจผ เจเฉเจเจจ เจฎเจฟเจฒเฉเจเจพ, เจเจฟเจธ เจจเจพเจฒ เจ เจธเฉเจ เจเจเจธเฉเจธ เจเฉเจเจจ เจจเฉเฉฐ เจ เจชเจกเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจเฉฑเจ เจฒเฉฐเจฌเฉ เจธเจผเฉเจฒเจซ เจฒเจพเจเจซ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจเฉเจนเจพ 'เจคเฉ เจเฉเจเจจเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ, เจเจธ เจฒเจ เจเจฆเฉเจ เจคเฉฑเจ เจ เจธเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจชเจนเฉเฉฐเจ เจจเฉเฉฐ เจฐเฉฑเจฆ เจจเจนเฉเจ เจเจฐเจฆเฉ, เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฐเจฟเจซเจฐเฉเจธเจผ เจเฉเจเจจ เจตเจพเจชเจธ เจจเจนเฉเจ เจเจฐเฉเจเฉเฅค เจ เฉฐเจค เจตเจฟเฉฑเจ, เจฎเฉเจ เจเฉเจเจจ เจจเฉเฉฐ เจฐเฉฑเจฆ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฌเฉเจจเจคเฉ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ; เจเฉเจเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจธเจซเจฒเจคเจพเจชเฉเจฐเจตเจ เจชเฉเจฐเฉ เจจเจนเฉเจ เจเฉเจคเฉ เจเจ เจธเฉ เจ เจคเฉ เจฐเจฟเจซเฉเจฐเฉเจธเจผ เจเฉเจเจจ เจตเจพเจชเจธ เจจเจนเฉเจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจคเจพเจ เจเจน เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉเจฌเจพเจฐเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจฆเฉเจตเฉเจเฉ (เจ เจธเฉเจ เจเจฐเจฎเฉเจจเจฒ 'เจคเฉ เจธเจฅเจพเจจเจ เจคเฉเจฐ 'เจคเฉ เจเฉเจเจจเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจเจพ เจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจธเจฎเจเจฟเจ, เจ เจคเฉ เจ เจธเฉเจ เจเฉเจฐเจฟเจชเจเฉเจเฉเจฐเจพเจซเฉ เจจเจพเจฒ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจจเจนเฉเจ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจเจพเจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจจเฉเฉฐ เจ เจเจธเจฐ เจเฉเจฒเฉเจนเจฃเจพ เจจเจนเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ)เฅค
do {
$token_result = Get-GoogleAuthToken
$token = $token_result.access_token
if ($token_result.refresh_token -eq $null) {
Write-Host ("Session is not destroyed. Revoking token...")
Invoke-WebRequest -Uri ("https://accounts.google.com/o/oauth2/revoke?token="+$token)
}
} while ($token_result.refresh_token -eq $null)
$refresh_token = $token_result.refresh_token
$minute = ([int]("{0:mm}" -f ([timespan]::fromseconds($token_result.expires_in))))+((Get-date).Minute)-2
if ($minute -lt 0) {$minute += 60}
elseif ($minute -gt 59) {$minute -=60}
$token_expire = @{
hour = ([int]("{0:hh}" -f ([timespan]::fromseconds($token_result.expires_in))))+((Get-date).Hour)
minute = $minute
}
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฆเฉเจเจฟเจ เจนเฉ, เจเฉเจเจจ เจจเฉเฉฐ เจฐเฉฑเจฆ เจเจฐเจจ เจตเฉเจฒเฉ, Invoke-WebRequest เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค Invoke-RestMethod เจฆเฉ เจเจฒเจ, เจเจน เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจกเฉเจเจพ เจจเฉเฉฐ เจตเจฐเจคเฉเจ เจฏเฉเจ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจจเจนเฉเจ เจเจฐเจฆเจพ เจ เจคเฉ เจฌเฉเจจเจคเฉ เจฆเฉ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเจพ เจนเฉเฅค
เจ เฉฑเจเฉ, เจธเจเฉเจฐเจฟเจชเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจฆเจพ เจชเจนเจฟเจฒเจพ เจ เจคเฉ เจเจเจฐเฉ เจจเจพเจฎ เจฆเจฐเจ เจเจฐเจจ เจฒเจ เจเจนเจฟเฉฐเจฆเฉ เจนเฉ, เจเฉฑเจ เจฒเฉเจเจเจจ + เจเจฎเฉเจฒ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเฉเฅค
เจฌเฉเจจเจคเฉเจเจ
เจ เจเจฒเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจเจน เจนเฉเจฃเจเฉเจเจ - เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟ เจเฉ เจเฉฑเจ เจจเจตเจพเจ เจฌเจฃเจพเจเจฃ เจเจพเจ เจฎเฉเจเฉเจฆเจพ เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจฒเฉเจฃ เจฒเจ เจเฉฑเจเฉ เจฒเฉเจเจเจจ เจตเจพเจฒเจพ เจเจชเจญเฉเจเจคเจพ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจฎเฉเจเฉเจฆ เจนเฉ เจเจพเจ เจจเจนเฉเจเฅค
เจฎเฉเจ เจธเจตเจฟเฉฑเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจเฉฑเจ เจเฉเจฃ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ:
function GoogleQuery {
param (
$type,
$query
)
switch ($type) {
"SearchAccount" {
Return Invoke-RestMethod -Method Get -Uri "https://www.googleapis.com/admin/directory/v1/users" -Headers @{Authorization = "Bearer "+(Get-GoogleToken)} -Body @{
domain = 'rocketguys.com'
query = "email:$query"
}
}
"UpdateAccount" {
$body = @{
name = @{
givenName = $query['givenName']
familyName = $query['familyName']
}
suspended = 'false'
password = $query['password']
changePasswordAtNextLogin = 'true'
phones = @(@{
primary = 'true'
value = $query['phone']
type = "mobile"
})
orgUnitPath = $query['orgunit']
}
Return Invoke-RestMethod -Method Put -Uri ("https://www.googleapis.com/admin/directory/v1/users/"+$query['email']) -Headers @{Authorization = "Bearer "+(Get-GoogleToken)} -Body (ConvertTo-Json $body) -ContentType 'application/json; charset=utf-8'
}
"CreateAccount" {
$body = @{
primaryEmail = $query['email']
name = @{
givenName = $query['givenName']
familyName = $query['familyName']
}
suspended = 'false'
password = $query['password']
changePasswordAtNextLogin = 'true'
phones = @(@{
primary = 'true'
value = $query['phone']
type = "mobile"
})
orgUnitPath = $query['orgunit']
}
Return Invoke-RestMethod -Method Post -Uri "https://www.googleapis.com/admin/directory/v1/users" -Headers @{Authorization = "Bearer "+(Get-GoogleToken)} -Body (ConvertTo-Json $body) -ContentType 'application/json; charset=utf-8'
}
"AddMember" {
$body = @{
userKey = $query['email']
}
$ifrequest = Invoke-RestMethod -Method Get -Uri "https://www.googleapis.com/admin/directory/v1/groups" -Headers @{Authorization = "Bearer "+(Get-GoogleToken)} -Body $body
$array = @()
foreach ($group in $ifrequest.groups) {$array += $group.email}
if ($array -notcontains $query['groupkey']) {
$body = @{
email = $query['email']
role = "MEMBER"
}
Return Invoke-RestMethod -Method Post -Uri ("https://www.googleapis.com/admin/directory/v1/groups/"+$query['groupkey']+"/members") -Headers @{Authorization = "Bearer "+(Get-GoogleToken)} -Body (ConvertTo-Json $body) -ContentType 'application/json; charset=utf-8'
} else {
Return ($query['email']+" now is a member of "+$query['groupkey'])
}
}
}
}
เจนเจฐเฉเจ เจฌเฉเจจเจคเฉ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจเจจ เจเจฟเจธเจฎ เจ เจคเฉ เจเฉเจฆ เจเจเจธเฉเจธ เจเฉเจเจจ เจตเจพเจฒเจพ เจเฉฑเจ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจธเจฟเจฐเจฒเฉเจ เจญเฉเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ, เจเฉเจเจจ เจฆเฉ เจเจฟเจธเจฎ เจนเจฎเฉเจธเจผเจพเจ เจฌเฉเจ เจฐเจฐ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจฟเจเจเจเจฟ เจธเจพเจจเฉเฉฐ เจเจน เจเจพเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเจฟ เจเฉเจเจจ เจฆเฉ เจฎเจฟเจเจฆ เจเจคเจฎ เจจเจนเฉเจ เจนเฉเจ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจเจพเจฐเฉ เจเฉเจคเฉ เจเจพเจฃ เจคเฉเจ เจเฉฑเจ เจเฉฐเจเฉ เจฌเจพเจ เจฆ เจเจธเจจเฉเฉฐ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจเจพ เจนเฉ, เจฎเฉเจ เจเฉฑเจ เจนเฉเจฐ เจซเฉฐเจเจธเจผเจจ เจฒเจ เจเฉฑเจ เจฌเฉเจจเจคเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจนเฉ เจเฉ เจเฉฑเจ เจเจเจธเฉเจธ เจเฉเจเจจ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค เจเฉเจก เจฆเจพ เจเจนเฉ เจเฉเจเฉเจพ เจธเจเฉเจฐเจฟเจชเจ เจฆเฉ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฆเฉเจ เจชเจนเจฟเจฒเจพ เจเจเจธเฉเจธ เจเฉเจเจจ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉ:
function Get-GoogleToken {
if (((Get-date).Hour -gt $token_expire.hour) -or (((Get-date).Hour -ge $token_expire.hour) -and ((Get-date).Minute -gt $token_expire.minute))) {
Write-Host "Token Expired. Refreshing..."
$request = (Invoke-RestMethod -Method Post -Uri "https://www.googleapis.com/oauth2/v4/token" -ContentType 'application/x-www-form-urlencoded' -Body @{
client_id = $client_id
client_secret = $client_secret
refresh_token = $refresh_token
grant_type = 'refresh_token'
})
$token = $request.access_token
$minute = ([int]("{0:mm}" -f ([timespan]::fromseconds($request.expires_in))))+((Get-date).Minute)-2
if ($minute -lt 0) {$minute += 60}
elseif ($minute -gt 59) {$minute -=60}
$script:token_expire = @{
hour = ([int]("{0:hh}" -f ([timespan]::fromseconds($request.expires_in))))+((Get-date).Hour)
minute = $minute
}
}
return $token
}
เจฎเฉเจเฉเจฆเจเฉ เจฒเจ เจฒเจพเจเจเจจ เจฆเฉ เจเจพเจเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ:
function Check_Google {
$query = (GoogleQuery 'SearchAccount' $username)
if ($query.users -ne $null) {
$user = $query.users[0]
Write-Host $user.name.fullName' - '$user.PrimaryEmail' - suspended: '$user.Suspended
$GAresult = $user
}
if ($GAresult) {
$return = $GAresult
} else {$return = 'gg'}
return $return
}
เจเจฎเฉเจฒ:$query เจฌเฉเจจเจคเฉ API เจจเฉเฉฐ เจเจชเจจเจพเจฎเจพเจ เจธเจฎเฉเจค, เจฌเจฟเจฒเจเฉเจฒ เจเจธเฉ เจเจฎเฉเจฒ เจตเจพเจฒเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจฒเฉฑเจญเจฃ เจฒเจ เจเจนเฉเจเฉเฅค เจคเฉเจธเฉเจ เจตเจพเจเจฒเจก เจเจพเจฐเจก เจตเฉ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉ: =, :, :{PREFIX}*.
เจกเฉเจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ, GET เจฌเฉเจจเจคเฉ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ, เจกเฉเจเจพ เจธเจผเจพเจฎเจฒ เจเจฐเจจ เจฒเจ (เจเฉฑเจ เจเจพเจคเจพ เจฌเจฃเจพเจเจฃเจพ เจเจพเจ เจเจฟเจธเฉ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเฉเจเจฌเจฐ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ) - POST, เจฎเฉเจเฉเจฆเจพ เจกเฉเจเจพ เจจเฉเฉฐ เจ เจชเจกเฉเจ เจเจฐเจจ เจฒเจ - PUT, เจเฉฑเจ เจฐเจฟเจเจพเจฐเจก เจจเฉเฉฐ เจฎเจฟเจเจพเจเจฃ เจฒเจ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจธเจฎเฉเจน เจคเฉเจ เจเฉฑเจ เจฎเฉเจเจฌเจฐ) - เจฎเจฟเจเจพเจเฅค
เจธเจเฉเจฐเจฟเจชเจ เจเฉฑเจ เจซเจผเฉเจจ เจจเฉฐเจฌเจฐ (เจเฉฑเจ เจเฉเจฐ-เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจธเจคเจฐ) เจ เจคเฉ เจเฉฑเจ เจเฉเจคเจฐเฉ เจตเฉฐเจก เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเจจ เจฒเจ เจตเฉ เจชเฉเฉฑเจเฉเจเฉเฅค เจเจน เจซเฉเจธเจฒเจพ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเฉเจฃเฉ เจเจ เจเจเจเจฟเจต เจกเจพเจเจฐเฉเจเจเจฐเฉ OU เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจเจฟเจนเฉเฉ เจธเฉฐเจเจ เจจเจพเจคเจฎเจ เจเจเจพเจ เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจชเจพเจธเจตเจฐเจก เจจเจพเจฒ เจเจเจเจฆเจพ เจนเฉ:
do {
$phone = Read-Host "ะขะตะปะตัะพะฝ ะฒ ัะพัะผะฐัะต +7ั
ั
ั
ั
ั
ั
ั
ั
"
} while (-not $phone)
do {
$moscow = Read-Host "ะ ะะพัะบะพะฒัะบะธะน ะพัะธั? (y/n) "
} while (-not (($moscow -eq 'y') -or ($moscow -eq 'n')))
$orgunit = '/'
if ($OU -like "*OU=Delivery,OU=Users,OU=ROOT,DC=rocket,DC=local") {
Write-host "ะัะดะตั ัะพะทะดะฐะฝะฐ ะฒ /Team delivery"
$orgunit = "/Team delivery"
}
$Password = -join ( 48..57 + 65..90 + 97..122 | Get-Random -Count 12 | % {[char]$_})+"*Ba"
เจ เจคเฉ เจซเจฟเจฐ เจเจน เจเจพเจคเฉ เจตเจฟเฉฑเจ เจนเฉเจฐเจพเจซเฉเจฐเฉ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐเจฆเจพ เจนเฉ:
$query = @{
email = $email
givenName = $firstname
familyName = $lastname
password = $password
phone = $phone
orgunit = $orgunit
}
if ($GMailExist) {
Write-Host "ะะฐะฟััะบะฐะตะผ ะธะทะผะตะฝะตะฝะธะต ะฐะบะบะฐัะฝัะฐ" -f mag
(GoogleQuery 'UpdateAccount' $query) | fl
write-host "ะะต ะทะฐะฑัะดั ะฟัะพะฒะตัะธัั ะณััะฟะฟั ั ะฒะบะปััะตะฝะฝะพะณะพ $Username ะฒ Google."
} else {
Write-Host "ะะฐะฟััะบะฐะตะผ ัะพะทะดะฐะฝะธะต ะฐะบะบะฐัะฝัะฐ" -f mag
(GoogleQuery 'CreateAccount' $query) | fl
}
if ($moscow -eq "y"){
write-host "ะะพะฑะฐะฒะปัะตะผ ะฒ ะณััะฟะฟั moscowoffice"
$query = @{
groupkey = '[email protected]'
email = $email
}
(GoogleQuery 'AddMember' $query) | fl
}
เจเฉฑเจ เจเจพเจคเจพ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจ เจ เจคเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเจพ เจเฉฑเจ เจธเจฎเจพเจจ เจธเฉฐเจเฉเจเจธ เจนเฉเฉฐเจฆเจพ เจนเฉ; เจธเจพเจฐเฉ เจตเจพเจงเฉ เจเฉเจคเจฐเจพเจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเฉ; เจซเจผเฉเจจ เจจเฉฐเจฌเจฐเจพเจ เจตเจพเจฒเฉ เจญเจพเจ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจเจฐเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจจเฉฐเจฌเจฐ เจ เจคเฉ เจเจธเจฆเฉ เจเจฟเจธเจฎ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจฐเจฟเจเจพเจฐเจก เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค
เจเจฟเจธเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเจจ เจตเฉเจฒเฉ เจเฉเจ เจเจฒเจคเฉ เจจเจพ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ, เจ เจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉเจฆ เจเจชเจญเฉเจเจคเจพ เจคเฉเจ เจธเจฎเฉเจน เจฎเฉเจเจฌเจฐเจพเจ เจเจพเจ เจฐเจเจจเจพ เจฆเฉ เจธเฉเจเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจเฉ เจเจพเจเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ เจเฉ เจเจน เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจธ เจธเจฎเฉเจน เจฆเจพ เจฎเฉเจเจฌเจฐ เจนเฉ เจเจพเจ เจจเจนเฉเจเฅค
เจเจฟเจธเฉ เจเจพเจธ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจธเจฎเฉเจน เจธเจฆเฉฑเจธเจคเจพ เจฌเจพเจฐเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจเจฐเจจเจพ เจฆเฉเจนเจฐเจพเจเจฃ เจตเจพเจฒเจพ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพ เจ เจคเฉ เจธเจฟเจฐเจซ เจธเจฟเฉฑเจงเฉ เจธเจฆเฉฑเจธเจคเจพ เจฆเจฟเจเจพเจเจเจพเฅค เจเฉฑเจ เจฎเฉเจฒ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพ เจเจฟเจธ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจคเฉเจ เจนเฉ เจเฉฑเจ เจเจพเจเจฒเจก เจเจฐเฉเฉฑเจช เจนเฉ เจเจฟเจธเจฆเจพ เจเจชเจฏเฉเจเจเจฐเจคเจพ เจฎเฉเจเจฌเจฐ เจนเฉเฅค
เจธเจฟเฉฑเจเจพ
เจเฉ เจฌเจเจฆเจพ เจนเฉ เจเจน เจนเฉ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจจเจตเฉเจ เจเจพเจคเฉ เจฒเจ เจชเจพเจธเจตเจฐเจก เจญเฉเจเจฃเจพเฅค เจ เจธเฉเจ เจเจธเจเจฎเจเจธ เจฐเจพเจนเฉเจ เจ เจเจฟเจนเจพ เจเจฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจนเจฆเจพเจเจคเจพเจ เจฆเฉ เจจเจพเจฒ เจเจฎ เจเจพเจฃเจเจพเจฐเฉ เจญเฉเจเจฆเฉ เจนเจพเจ เจ เจคเฉ เจเฉฑเจ เจจเจฟเฉฑเจเฉ เจเจฎเฉเจฒ 'เจคเฉ เจฒเฉเจเจเจจ เจเจฐเจฆเฉ เจนเจพเจ, เจเฉ เจเจฟ, เจเฉฑเจ เจซเจผเฉเจจ เจจเฉฐเจฌเจฐ เจฆเฉ เจจเจพเจฒ, เจญเจฐเจคเฉ เจตเจฟเจญเจพเจ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจธเฉเฅค เจเฉฑเจ เจตเจฟเจเจฒเจช เจตเจเฉเจ, เจคเฉเจธเฉเจ เจชเฉเจธเฉ เจฌเจเจพ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจเฉเจชเจค เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจเฉเจ เจตเจฟเฉฑเจ เจเจชเจฃเจพ เจชเจพเจธเจตเจฐเจก เจญเฉเจ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจธ เจจเฉเฉฐ เจฆเฉเจเจพ เจเจพเจฐเจ เจตเฉ เจฎเฉฐเจจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ (เจฎเฉเจเจฌเฉเฉฑเจ เจเฉฑเจ เจ เจชเจตเจพเจฆ เจนเฉเจตเฉเจเจพ)เฅค
เจ เฉฐเจค เจคเฉฑเจ เจชเฉเฉเจนเจจ เจฒเจ เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆเฅค เจฎเฉเจจเฉเฉฐ เจฒเฉเจ เจฒเจฟเจเจฃ เจฆเฉ เจธเจผเฉเจฒเฉ เจจเฉเฉฐ เจธเฉเจงเจพเจฐเจจ เจฒเจ เจธเฉเจเจพเจ เจฆเฉเจ เจเฉ เจเฉเจธเจผเฉ เจนเฉเจตเฉเจเฉ เจ เจคเฉ เจฎเฉเจ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ เจเจฟ เจคเฉเจธเฉเจ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฒเจฟเจเจฃ เจตเฉเจฒเฉ เจเฉฑเจ เจเจฒเจคเฉเจเจ เจซเฉเฉ =)
เจฒเจฟเฉฐเจเจพเจ เจฆเฉ เจธเฉเจเฉ เจเฉ เจฅเฉเจฎเฉเจเจฟเจ เจคเฉเจฐ 'เจคเฉ เจเจชเจฏเฉเจเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ เจเจพเจ เจธเจฟเจฐเจซเจผ เจธเจตเจพเจฒเจพเจ เจฆเฉ เจเจตเจพเจฌ เจฆเฉ เจธเจเจฆเฉ เจนเฉ:
เจฎเฉเจฌเจพเจเจฒ เจ เจคเฉ เจกเฉเจธเจเจเจพเจช เจเจชเจพเจ เจฒเจ OAuth 2.0 เจตเฉเฉฑเจฌ เจธเจฐเจตเจฐ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ OAuth 2.0 เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ OAuth เจชเจฌเจฒเจฟเจ เจเจฒเจพเจเฉฐเจเจธ เจฆเฉเจเจฐเจพ เจเฉเจก เจเจเจธเจเฉเจเจ เจฒเจ เจธเจฌเฉเจค เจเฉเฉฐเจเฉ PowerShell เจจเจพเจฒ เจฌเฉเจคเจฐเจคเฉเจฌ เจ เฉฑเจเจฐ เจคเจฟเจเจฐ เจเจฐเฉ ASCII เจธเจพเจฐเจฃเฉ เจ เจคเฉ เจตเจฐเจฃเจจ PowerShell: เจเฉฑเจ เจธเจคเจฐ เจฒเจ เจนเฉเจธเจผ เจฎเฉเฉฑเจฒ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจเจจเจเฉเจก/เจกเฉเจเฉเจก เจฌเฉเจธ64Url เจฌเฉเจธ 64 เจเจจเจเฉเจกเจฟเฉฐเจ เจฌเจจเจพเจฎ เจฌเฉเจธ 64 เจฏเฉเจเจฐเจเจฒ เจเจจเจเฉเจกเจฟเฉฐเจ PowerShell 5.1 เจตเจฟเฉฑเจ Invoke-RestMethod เจธเจเฉเจช1 เจตเจฟเฉฑเจ เจเจเจธเฉเจธ_เจเจพเจเจช เจเจซเจผเจฒเจพเจเจจ เจนเฉเจฃ เจฆเฉ เจฌเจพเจตเจเฉเจฆ เจฐเจฟเจซเฉเจฐเฉเจธเจผ เจเฉเจเจจ เจจเจนเฉเจ เจฎเจฟเจฒ เจฐเจฟเจนเจพ เจคเฉเจฒเจจเจพ เจเจชเจฐเฉเจเจฐเจพเจ เจฌเจพเจฐเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ API: เจเจชเจญเฉเจเจคเจพ เจเจพเจคเฉ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจเฉเจ เจเจฐเฉ เจกเจพเจเจฐเฉเจเจเจฐเฉ API: เจธเจฎเฉเจน Invoke-RestMethod - Powershell เจฒเจ เจนเฉเจเจกเจฒเจฟเฉฐเจ เจเจฒเจคเฉ
เจธเจฐเฉเจค: www.habr.com