自動化またはPowerShell + Google Apps Scriptの別の例

怠azineは進歩のエンジンです...



そこで、私は少し自由な時間を見つけて、各管理者のかなり日常的なタスク(ユーザーの作成と切断)を自動化することにしました。



1. PowerShell



それはすべて、PowerShellでのスクリプトの作成から始まり、そこではコンソールからユーザーデータを入力することが提案されました。 その結果、対応するOUにADユーザーが作成され、フィールドに入力されました。







$files = Get-ChildItem -LiteralPath \\server\users$ -Include *.txt -File foreach ($file in $files) { $text = Get-Content -Path $file.FullName $data = $text.Split(";") $action = $data[0] $name = $data[1] $lastName = $data[2] $password = $data[3] $project = $data[4] $position = $data[5] $pc = $data[6] if ($action -eq "Add") { createADUser $name $lastName $project $position $password $pc } elseif ($action -eq "Suspend") { disableAdUser ("$name.$lastName") } $file.Delete() } function createADUser($name, $lastName, $project, $position, $password, $pc) { $office = "Head Office" $path = "OU=Users,DC=corp,DC=mydomain,DC=com" $login = "$name.$lastName".ToLower() if ($project -ne "") { $path = "OU=$project,$path" } if ($password -eq "") { $password = "12345678" } New-ADUser -Name "$name $lastName" -DisplayName "$name $lastName" -GivenName $name -Surname $lastName -SamAccountName $login -UserPrincipalName "$login@corp.mydomain.com" -Path $path -Enabled $true -AccountPassword (ConvertTo-SecureString -AsPlainText $password -Force) Set-ADUser -Identity "$name.$lastName" -Department $projectName -Title $position -Office $office -ChangePasswordAtLogon $true -EmailAddress "$login@mydomain.com" Set-ADAccountPassword -Identity "$name.$lastName" -NewPassword (ConvertTo-SecureString -AsPlainText $password -Force) Add-ADGroupMember -Identity GroupName -Members "$name.$lastName" if ($pc -ne "") { Set-ADUser -Identity "$name.$lastName" -Description $pc.ToUpper() setAdmin $pc $login setPcConfig $pc setPcOwner $pc $login } sendMail "$login has been created" } function disableAdUser ($user) { $userObj = Get-ADUser -Identity $user Set-ADUser -Identity $user -Enabled 0 Move-ADObject -Identity $userObj -TargetPath "OU=Fired_users,OU=Users,DC=corp,DC=mydomain,DC=com" sendMail "$user has been disabled" }
      
      







2. Google Appsスクリプト



次に、メールボックスを作成します。この場合、メールボックスはGmailでホストされます。 これにより、すばらしいApps Scriptサービスを使用できます。 JavaScriptに基づいています。 豊富なドキュメントとわずかなプログラミング経験がこれを理解するのに役立ちました。 ここで、これらの機能を同様に転送します-アカウントが作成されます。



同じツールでウェルカムレターテンプレートを作り直し、%username%などを置き換えます。 実際のデータにpdfをHRの上司、上司、新規ユーザー、そしてもちろん自分自身に送信します。



 function createUser(name, lastName, gender, groups, password, title, department) { var userMail = email((name + "." + lastName).toLowerCase()); var admin = email("admin"); var recipients = admin + "," + email("hr") + "," + email("boss"); var subject = "Welcome! " + name + " " + lastName + " - " + title; var body = "Welcome to the jungle"; var attachment = makeWelcome(name, lastName, password); var resource = { "name": { "familyName": lastName, "givenName": name }, "password": password, "primaryEmail": userMail, "changePasswordAtNextLogin": true, "organizations": [{ "title": title, "department": department }], "gender": { "type": gender } } AdminDirectory.Users.insert(resource); Logger.log(userMail + "'S BEEN CREATED"); for (var i = 0; i < groups.length; i++) { addMember(groups[i], userMail); } var options = { "attachments": [attachment], "name": "Sysadmin" } MailApp.sendEmail(recipients, subject, body, options); MailApp.sendEmail(userMail, "Welcome!", body, options); }
      
      





3. UI、自動化



もちろん、2つのコンソールからデータを入力することは、私が得たい結果ではありません。 そのため、データ用のGoogleフォームが作成されました。 スクリプトがスケジューラに追加され、5分ごとに繰り返されます。









Googleスクリプトを作成した後、バックアップと同期(GDrive)により、テキストファイル形式のデータがローカルネットワークに転送されます。 ここで、PowerShellが取り上げられます。PowerShellはファイルを解析し、ADユーザーを作成します。 今美しい!








All Articles