lnino1982
Goto Top

File via Powershell über GPO erstellen

Hallo an alle,

ich bin gerade dabei ein Setup von einem unserer eingesetzten Software zu automatisieren.

Leider ist die nicht wie die anderen ein MSI Paket, sondern eine Exe Datei.

Das grundlegende habe ich schon geschafft.

Das bedeutet, dass das Powershell Skript welches ich über die GPO (Startup Skript) aufrufe, führt bereits die Setup.exe aus und installiert das Programm.

Ich möchte jedoch nicht, dass die Installation bei jedem Start des Computers gemacht wird.
Darum habe ich eine kleine Überprüfung eingebaut.

Es wird überprüft ob eine Textdatei vorhanden ist und falls nicht, findet die Installation statt und die Textdatei wird erstellt.
Wenn der Rechner das nächste Mal gestartet wird, wird wieder überprüft ob die Datei vorhanden ist.
Dieses Mal ist die Datei vorhanden und das Setup wird kein weiteres Mal ausgeführt.

So, nun zu meinem Problem.

Wenn ich auf einem PC das Powershell Script von dem UNC Pfad des Domain Controllers ausführe, dann wir diese Datei erstellt.
Wenn aber die GPO das Powershell Skript von der gleichen Stelle (UNC Pfad des Domain Controllers) ausführt, dann wird die Datei nicht erstellt.

Ich habe auch schon auf den Log Ordner zu Testzwecken "Jeder" Schreiben eingestellt, aber das half auch nicht.

Hat jemand eine Idee warum die Datei nicht erstellt wird?

$fileToCheck = "\\server\software\log\" + $env:username + "_" + $env:computername + ".txt"  
$pathToCheck = "\\server\software\log\"  

if (Test-Path $fileToCheck -PathType leaf) 
{
Write-Output "The file $fileToCheck is already present."  
Exit
}
else
{
Set-Content -path "$pathToCheck\$($env:username)_$($env:computername).txt"  -Value "test content"  
$pathvargs = {\\server\software\setup.exe /automode /s }
Invoke-Command -ScriptBlock $pathvargs
}

lg
Nino

Content-ID: 597824

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

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

Possibaer
Lösung Possibaer 20.08.2020 um 13:24:45 Uhr
Goto Top
Moinsen,

die Problematik kenne ich.
Du musst der Freigabe die Gruppe "Domain Computers" hinzufügen und die mit Schreib-/Lese-/Ändern-Rechte ausstatten.
Dann geht es.

VG
Dr.Bit
Dr.Bit 20.08.2020 um 13:29:53 Uhr
Goto Top
Hört sich nach einem Rechteproblem an. Mit welchen Rechten führst Du das Script denn aus, wenn Du es "von Hand" startest? Und welche Rechte sind es per GPO?

🖖
Doskias
Doskias 20.08.2020 um 13:31:49 Uhr
Goto Top
Das Problem habe ich auch öfters wenn ich verschiedene Variable in einer Abfrage gleichzeitig einsetze Ändere mal deine Zeile
Set-Content -path "$pathToCheck\$($env:username)_$($env:computername).txt"  -Value "test content"  
in folgende um:
$Log-File=$pathToCheck+$env:username)+"_"+$env:computername+".txt"  
Set-Content -path $Log-Path -Value "test content"  


Ansonsten ist mir grade aufgefallen, dass du bei pathtocheck mit einem "\" endest, und in deinem Code aber "pathtocheck\" steht. Damit wäre dein Pfad dann \\server\software\log\\benutzername_Computername.txt
Doskias
Doskias 20.08.2020 um 13:35:09 Uhr
Goto Top
Rechteproblem hatte ich auch erst in Verdacht. Nino schreibt allerdings, dass die Datei nicht erstellt wird. Daraus folgere ich, dass das Setup ausgeführt wird, somit das Skript und die GPO richtig ist.

Könnte aber natürlich auch noch die Execution-Policy sein.
DerWoWusste
DerWoWusste 20.08.2020 aktualisiert um 13:55:51 Uhr
Goto Top
Alles fein, jedoch würde ich vorschlagen, stattdessen einen MSI-Wrapper zu nutzen, wie z.B. exetomsi (kostenlos). http://www.exetomsi.com/freeware
Dr.Bit
Dr.Bit 20.08.2020 um 13:54:27 Uhr
Goto Top
Zitat von @Doskias:

Nino schreibt allerdings, dass die Datei nicht erstellt wird. Daraus folgere ich, dass das Setup ausgeführt wird, somit das Skript und die GPO richtig ist.

Wenn das Setup denn auch ausgeführt wird. Das schreibt er ja leider nicht. Und selbst wenn, wenn keine Schreibrechte auf dasVerzeichnis bestehen wird auch keine Datei erstellt.

🖖
lnino1982
lnino1982 20.08.2020 um 15:06:15 Uhr
Goto Top
Zitat von @Possibaer:
die Problematik kenne ich.
Du musst der Freigabe die Gruppe "Domain Computers" hinzufügen und die mit Schreib-/Lese-/Ändern-Rechte ausstatten.
Dann geht es.

Das war die Lösung. Vielen Dank für den Tipp.