fredfunky
Goto Top

Powershell Script für Domänenbeitritt

Hallo zusammen,

ich möchte ein Powershell Script erstellen damit ich ein Client PC in die Domäne einbinden kann.
Mein Script sieht folgendermaßen aus.

$domain = "test.local"  
$user = "Administrator"  
$password = Read-Host -Prompt "Enter Password for $user" -AsSecureString  
$username = "$domain\$user"  
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential

Bekommen daraufhin die Fehlermeldung

Add-Computer : Fehler beim Beitreten des Computers "Client" aus seiner aktuellen Arbeitsgruppe "WORKGROUP" zur Domäne "test.local". Fehlermeldung:   
Zugriff verweigert.
In C:\Users\meinName\Documents\Domain Join.ps1:6 Zeichen:1
+ Add-Computer -DomainName $domain -Credential $credential
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Client:String) [Add-Computer], InvalidOperationException
    + FullyQualifiedErrorId : FailToJoinDomainFromWorkgroup,Microsoft.PowerShell.Commands.AddComputerCommand

Wie kann ich Zugriff gewähren?

Username und Passwort sind hier richtig eingetragen worden.

Den Domaincontroller, kann ich ohne Probleme an Pingen und kann die Domäne ohne Probleme über das System Menü beitreten.
Nur über das Script möchte es nicht funktionieren

Hab mal einen Script von einen Kollegen genutzt welche ohne Probleme funktioniert.
Ich habe diese für mein Setup angepasst. Doch dann bekomme ich die gleiche Fehlermeldung: Zugriff Verweigert

Ich weiß nicht wo das Problem sein könnte. Hoffe ihr könnt mir dabei helfen.

Content-Key: 383850

Url: https://administrator.de/contentid/383850

Ausgedruckt am: 19.03.2024 um 10:03 Uhr

Mitglied: 129580
Lösung 129580 19.08.2018 aktualisiert um 14:46:58 Uhr
Goto Top
Hallo,

Powershell Script als Admin ausführen.

Edit: Alternativ kannst du den Parameter -LocalCredential setzen und die Credentials des lokalen Administrators mitangeben. Dann klappt das auch mit ohne einer privilegierten Powershell.

VG
Exception
Mitglied: Fredfunky
Fredfunky 19.08.2018 um 14:55:04 Uhr
Goto Top
Ah es hat Funktioniert danke sehr. Das Problem ist das bei .ps1 Dateien im Kontexmenü nicht "als Admin ausführen" angezeigt wird. Ich hab verschiedene Wege versucht.

Ich habe mit dem Befehl

powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file C:\dsjoin.ps1' -verb RunAs}"  

mein Script zum laufen bekommen.

Vielen vielen Dank.
Mitglied: Matze0512
Matze0512 11.07.2020 aktualisiert um 19:11:31 Uhr
Goto Top
Hallo du musst das Password erst sicher machen. Ich habe mit einem Kollegen es umgebaut und ein neutrales Script gebaut, wo man die Daten eintragen muss nach Aufforderung und das es als Admin ausgeführt wird:

function Check-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
if ((Check-Admin) -eq $false)
{
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
Stop-Process -Id $PID
}

$scriptDirectory = Split-Path $MyInvocation.MyCommand.Path
Set-Location $scriptDirectory

$domainendung = Read-Host "Domainendung"
$domainname = Read-Host "Domainname"
$domain = "$domainname.$domainendung"
$user = Read-Host -Prompt "Admin"
$password = Read-Host -Prompt "Password"
$password | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Finish\DomainPWD.txt"
$username = "$domain\$user"
$pcname = Read-Host -Prompt "Computername"
$zweigstelle = Read-Host -Prompt "Zweigstelle"
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList $username, (Get-Content "C:\Finish\DomainPWD.txt" | ConvertTo-SecureString)
Add-Computer -DomainName $domain -NewName $pcname -Credential $credential -OUPath "OU=$zweigstelle,OU=Computer,DC=$domainname,DC=$domainendung"
Restart-Computer

Wenn du unter C:\ den Ordner Finish anlegst geht es sofort oder du passt den Pfad an.

Gruß
Mitglied: Hevidar
Hevidar 15.03.2023 um 16:30:21 Uhr
Goto Top
Könntest du mir deinen fertigen Script schicken?
VG
Mitglied: Hevidar
Hevidar 15.03.2023 um 16:34:46 Uhr
Goto Top
Könnte ich diesen Script auf einem Stick kopieren und ausführen?
VG
Mitglied: Matze0512
Matze0512 15.03.2023 um 18:21:55 Uhr
Goto Top
Theoretisch ja wenn du den outfilepath anpasst...
Mitglied: Hevidar
Hevidar 15.03.2023 um 19:54:55 Uhr
Goto Top
Der Script wird von einem USB-Stick ausgeführt.
Soll ich den outfilepath auf USB Stick ändern?
Bsp. G:\DomainPWD.txt"
Mitglied: Matze0512
Matze0512 15.03.2023 um 20:00:12 Uhr
Goto Top
Wenn du weißt es es immer g:\ ist kannst du das machen...
Ansonsten kannst du den path als variable speichern, den du mit read-host immer angibst... Also falls es Mal nicht g:\ sein sollte...
Mitglied: Hevidar
Hevidar 15.03.2023 um 20:17:01 Uhr
Goto Top
Ok,
Ich beschreibe mal, was ich brauche.
Ich muss 30 PC's in die Domaine hinzufügen und möchte alles mit einem Stick machen.
Natürlich haben alle PS's unterschiedlicher Namen.
Ich habe da nicht so viel Erfahrung, was script Programmierung angeht.
Wie müsste ich den Code anpassen, damit ich es vom Stick ausführen kann?
Danke im voraus.
BG
Mitglied: Matze0512
Matze0512 15.03.2023 um 20:44:47 Uhr
Goto Top
Versuchen sie es mit mir den path: .\domainpwd.txt
Mitglied: Hevidar
Hevidar 15.03.2023 um 21:47:12 Uhr
Goto Top
OK, danke.
ich werde es morgen in der Schule ausprobieren.
Vielen Dank
Mitglied: Hevidar
Hevidar 15.03.2023 um 21:51:46 Uhr
Goto Top
Wenn ich dein Script richtig verstehe, muss ich den Usernamen und das Password nach der Abfrage manuell eingeben.
Ist das richtig?
Mitglied: Matze0512
Matze0512 16.03.2023 um 14:13:56 Uhr
Goto Top
Sie können es auch im Script fest angeben, sowie Domain usw...
Dazu das read-host wegnehmen und in "" die Daten angeben