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

Printed on: April 19, 2024 at 19:04 o'clock

Mitglied: 129580
Solution 129580 Aug 19, 2018 updated at 12:46:58 (UTC)
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
Member: Fredfunky
Fredfunky Aug 19, 2018 at 12:55:04 (UTC)
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.
Member: Matze0512
Matze0512 Jul 11, 2020 updated at 17:11:31 (UTC)
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ß
Member: Hevidar
Hevidar Mar 15, 2023 at 15:30:21 (UTC)
Goto Top
Könntest du mir deinen fertigen Script schicken?
VG
Member: Hevidar
Hevidar Mar 15, 2023 at 15:34:46 (UTC)
Goto Top
Könnte ich diesen Script auf einem Stick kopieren und ausführen?
VG
Member: Matze0512
Matze0512 Mar 15, 2023 at 17:21:55 (UTC)
Goto Top
Theoretisch ja wenn du den outfilepath anpasst...
Member: Hevidar
Hevidar Mar 15, 2023 at 18:54:55 (UTC)
Goto Top
Der Script wird von einem USB-Stick ausgeführt.
Soll ich den outfilepath auf USB Stick ändern?
Bsp. G:\DomainPWD.txt"
Member: Matze0512
Matze0512 Mar 15, 2023 at 19:00:12 (UTC)
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...
Member: Hevidar
Hevidar Mar 15, 2023 at 19:17:01 (UTC)
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
Member: Matze0512
Matze0512 Mar 15, 2023 at 19:44:47 (UTC)
Goto Top
Versuchen sie es mit mir den path: .\domainpwd.txt
Member: Hevidar
Hevidar Mar 15, 2023 at 20:47:12 (UTC)
Goto Top
OK, danke.
ich werde es morgen in der Schule ausprobieren.
Vielen Dank
Member: Hevidar
Hevidar Mar 15, 2023 at 20:51:46 (UTC)
Goto Top
Wenn ich dein Script richtig verstehe, muss ich den Usernamen und das Password nach der Abfrage manuell eingeben.
Ist das richtig?
Member: Matze0512
Matze0512 Mar 16, 2023 at 13:13:56 (UTC)
Goto Top
Sie können es auch im Script fest angeben, sowie Domain usw...
Dazu das read-host wegnehmen und in "" die Daten angeben