# Execute a SQL File Begin function Execute-SqlFile($file, [string]$Server, [string]$dbName, [hashtable]$variables, [switch]$WindowsAuthentication=$true, [string]$Username, [string]$Password) { $batch = (join-Path (cat env:TEMP) "exec_sql.bat") write-Host Connecting to $Server $output = (join-Path $env:TEMP "output_sql.txt") if (test-Path $batch) { Remove-Item $batch -force } $data = "" if (test-Path $batch) { Remove-Item $batch } $data += "sqlcmd -S $Server" if ($WindowsAuthentication) { $data += ' -E' } else { $data += " -U $Username -P $Password" } if ($dbname) { $data += " -d $dbName" } if ($variables -and $variables.Count -gt 0) { $data += ' -v ' $isFirst = $true foreach($key in $variables.keys) { if (! $isFirst) { $data += ' ' } else { $isFirst=$false } $val = $variables[$key] $data += "$key=" $data += "`"$val`"" } } $data += " -i `"$file`"" $data += " -o `"$output`"" $data | Add-Content $batch -force cmd /c (Resolve-Path $batch) gc $output } # Allows for a Pause Begin function Pause ($Message="Press any key to continue...") { Write-Host -NoNewLine $Message $null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") Write-Host "" } # Sets Variables By Asking The Users a Question Begin $Yourfirstname = Read-Host "What is Your First Name? 5 characters Max " $yourrandomnumber = Read-Host "Random Number? Two Digits Max" # Hard Coded Variables Begin $aspen = "aspen-" $dash = "-" $computer = "." # Rename Computer EX: aspen-john-1 Begin $computerobject = (gwmi -Class Win32_ComputerSystem -Namespace "root\cimv2" -ComputerName $computer) $computerobject.rename("$aspen$Yourfirstname$dash$yourrandomnumber") # Get the Conputers Name Begin $comp = get-wmiobject Win32_ComputerSystem # Joings Computer to the Doamin Begin # ("%DomainName%","%Username'sPassword%","%DomainName\Username%",$null,3) $comp.JoinDomainOrWorkGroup("%%%%%","%%%%%","%%%%",$null,3) # Calls another PowerShell Script To Set Permission Begin # ./SetFolderPermission.ps1 -Access %Username% -Permission %PermisionLevel% ./SetFolderPermission.ps1 -Access %DomainName%\%Username% -Permission FullControl # Hard Coded Variables Begin $domain = "%DomainName%" $strComputer = gc env:computername # Sets Variables By Asking The Users a Question Begin $username = Read-Host "What is Your Aspenware domain username without the %DomainName%\" # Adds User to Aministrators Group Begin $computer = [ADSI]("WinNT://" + $strComputer + ",computer") $computer.name $Group = $computer.psbase.children.find("administrators") $Group.name $Group.Add("WinNT://" + $domain + "/" + $username) # Adds User to IIS_WPG Group Begin $domain = "%DomainName%" $strComputer = gc env:computername $username = "svcnj" $computer = [ADSI]("WinNT://" + $strComputer + ",computer") $computer.name $Group = $computer.psbase.children.find("IIS_WPG") $Group.name $Group.Add("WinNT://" + $domain + "/" + $username) # Executes a SQL Script to add User Account to the SQL Server with SYSAdmin Begin Execute-Sqlfile "C:\Documents and Settings\Administrator\svcnjsql.sql" $computer.name # Pause Then Reboots the Server Begin pause $reboot = (gwmi -Class Win32_OperatingSystem) $reboot.psbase.scope.options.enableprivileges = $true $reboot.reboot()