-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlistimport.ps1
85 lines (64 loc) · 2.28 KB
/
listimport.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<#
.SYNOPSIS
Text dosyasi içindeki domain listesini MaestroPanel'e aktarır.
.DESCRIPTION
Text dosyasi içindeki domain listesini MaestroPanel'e aktarır.
.PARAMETER host
MaestroPanel'in çalıştığı sunucu IP adresi veya host ismi.
.PARAMETER apikey
MaestroPanel'de yetkili olan kullanıcıyı temsil eden API anahtarı.
.PARAMETER port
MaestroPanel'in çalıştığı Port numarası.
.PARAMETER plan
Domain'lerin açılacağı Domain Planı'nın Alias ismi.
.PARAMETER list-file
Domain'lerin bulunduğu liste. Text dosyası ve satır satır alt alta olarak formatlanması gerekir.
.PARAMETER active-domain-user
Domain açıldığında Maestropanel üzerinde domain kullanıcısıda aktif edilmesini sağlar.
.EXAMPLE
.\listimport.ps1 -remote_host 192.168.0.4 -apikey 1_6c8a00e26765497698508b51622b3e25 -port 9715 -plan defaultPlan -list_file C:\import\domains.txt -active_domain_user $true
.LINK
https://github.com/maestropanel/listimport
.Notes
Author : Oğuzhan YILMAZ
Filename: listimport.ps1
#>
[Cmdletbinding()]
Param(
[Parameter(Mandatory=$true)]
[string] $REMOTE_HOST,
[Parameter(Mandatory=$true)]
[string] $APIKEY,
[Parameter(Mandatory=$true)]
[string] $PORT = "9715",
[Parameter(Mandatory=$true)]
[string] $PLAN,
[Parameter(Mandatory=$true)]
[string] $LIST_FILE,
[bool] $ACTIVATE_DOMAIN_USER = $false
)
$Domains = Get-Content $LIST_FILE
function CreateDomain($name){
$name = $name.Trim()
$password = GetPassword(6)
$requestUrl = "http://$($REMOTE_HOST):$PORT/Api/v1/Domain/Create?format=json&suppress_response_codes=false"
$requestPrms = @{key=$APIKEY;name=$name;planAlias=$PLAN;username=$name;password=$password;activedomainuser=$ACTIVATE_DOMAIN_USER}
$result = Invoke-WebRequest -Uri $requestUrl -Method POST -Body $requestPrms | ConvertFrom-Json
Write-Host $result.Message
}
function GetPassword($length = 15) {
$punc = 46..46
$digits = 48..57
$letters = 65..90 + 97..122
# Thanks to
# https://blogs.technet.com/b/heyscriptingguy/archive/2012/01/07/use-pow
$password = get-random -count $length `
-input ($punc + $digits + $letters) |
% -begin { $aa = $null } `
-process {$aa += [char]$_} `
-end {$aa}
return $password
}
foreach ($name in $Domains) {
CreateDomain($name)
}