Я пытаюсь заставить работать мой скрипт SendGoogleForm. Проблема, с которой я столкнулся на данный момент, заключается в том, что сообщение, которое я отправляю с формой, включает скрипт powershell, проблема, с которой я сталкиваюсь, заключается в том, что служба отправки разбивает строки в коде, что означает, что мне нужно вручную удалить все лишние пробелы(см. пример внизу).
Поэтому я подумал, что должен быть способ напечатать код powershell в файл и прикрепить его к электронному письму, которое было отправлено, или исправить проблему пробелов другим способом. Было бы хорошо, если бы ответы по-прежнему отображались в виде обычного электронного письма, как они есть сегодня, но с каким-то образом прикрепленным кодом powershell.
/* Send Google Form by Email v2.1 */
/* For customization, contact the developer at amit@labnol.org */
/* Tutorial: http://www.labnol.org/?p=20884 */
function Initialize() {
var triggers = ScriptApp.getProjectTriggers();
for(var i in triggers) {
ScriptApp.deleteTrigger(triggers[i]);
}
ScriptApp.newTrigger("SendGoogleForm")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit()
.create();
}
function SendGoogleForm(e)
{
try
{
//Här fyller du i mailadresserna för resp avdelning.
var it = "test@test.se";
//Ärende på mailet
var subject = "testt Ny/redigerad anställning";
//Slår ihop alla mailadresser till en.
var email = hr +","+ security +","+ it;
//andra variabler
var bukowskis = "test";
var temporarypass = "Provide a Temporary Password for this user";
var semicolon = ";";
// You may replace this with another email address
//var email = Session.getActiveUser().getEmail();
var s = SpreadsheetApp.getActiveSheet();
var columns = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
// Only include form fields that are not blank
for ( var keys in columns ) {
var key = columns[keys];
if ( e.namedValues[key] && (e.namedValues[key] != "") ) {
message += key + ' :: '+ e.namedValues[key] + "\n\n";
}
if (key == "Förnamn")
var fornamn = e.namedValues[key];
else if (key == "Efternamn")
var efternamn = e.namedValues[key];
else if (key == "Placering")
var placering = e.namedValues[key];
else if (key == "Titel")
var titel = e.namedValues[key];
else if (key == "Avdelning")
var avdelning = e.namedValues[key];
}
//Lägger till eventuellt namn i ämnesraden.
if(typeof fornamn !== 'undefined'&&typeof efternamn !== 'undefined'){
subject += ", " + fornamn + " " + efternamn ;
message +="New-ADUser -SamAccountName '"+fornamn+"."+efternamn+"' -Name '"+fornamn+" "+efternamn+"' -GivenName '"+fornamn+"' -Surname '"+efternamn+"' -Description '"+test+", "+avdelning+", "+titel+"' -OfficePhone ' ' -EmailAddress '"+fornamn+"."+efternamn+"@test.com' -Path 'OU=Users,OU=test,DC=intern,DC=test,DC=se' -Company 'test' -Department '"+avdelning+"' -Title '"+titel+"' "+semicolon+"$NewPassword = (Read-Host -Prompt '"+temporarypass+"' -AsSecureString) "+semicolon+"Set-ADAccountPassword -Identity '"+fornamn+"."+efternamn+"' -NewPassword $NewPassword -Reset "+semicolon+"Set-ADAccountControl -Identity '"+fornamn+"."+efternamn+"' -Enabled $true";
MailApp.sendEmail(email, subject, message);
}
} catch (e) {
Logger.log(e.toString());
}
}
Пример того, как выглядит вывод сегодня, а не возможность просто скопировать в PowershellISE и запусти его, к сожалению.
New-ADUser -SamAccountName 'gadfgdafg.sdfgsdfg' -Name 'gadfgdafg sdfgsdfg'
-GivenName 'gadfgdafg' -Surname 'sdfgsdfg' -Description 'Test, Utlämningen, Alternativ 5' -OfficePhone ' '
-EmailAddress 'gadfgdafg.sdfgsdfg@test.com'
-Path 'OU=Users,OU=test,DC=intern,DC=test,DC=se'
-Company 'test' -Department 'Utlämningen' -Title 'Alternativ 5' ;$NewPassword = (Read-Host -Prompt 'Provide a Temporary Password for this user' -AsSecureString) ;Set-ADAccountPassword -Identity 'gadfgdafg.sdfgsdfg' -NewPassword $NewPassword -Reset ;Set-ADAccountControl -Identity 'gadfgdafg.sdfgsdfg' -Enabled $true
Заранее спасибо, я перепробовал все, что только могу придумать.