Also wenn der Server das ausführt dann ist das ja eig. das System und der hat ja eig. immer alle Permissions
So ist das mit dem Wissen und dem, dieses vortäuschenden Denglisch.
Der Apache-WebServer wird zwar auch unter Windows mit den Rechten eines Administrators gestartet (sonst könnte er nicht an einem Port <= 1024 lauschen und das folgende auch nicht), aber dieser Prozess macht nichts anderes als Arbeitsprozesse zu starten (und diese zu verwalten), die dann die Anfragen beantworten.
Und diese Prozesse (also auch das PHP-Skript, welches Deine bat-Datei startet) laufen unter einem anderen, nicht privilegiertem Benutzer. z.B. "www-data" oder "www-run".
Unter welchem genau steht in der Konfigurationsdatei des Apache-Servers, die Du wenigstens mal durchlesen solltest. Da stehen nämlich auch interessante Kommentare - unter anderem zu diesem Thema. Alles was da nicht steht, steht im Handbuch.
also ist es doch was anderes aber was?
Falls Du zufällig die Rechte vergeben hast, dann steht die andere Ursache im Error-Log. Wo Du das findest steht in der Serverkonfiguration. Wo die wiederum sein soll steht im Handbuch bzw. der Installationsanleitung der freundlichen, aber von Dir nicht erwähnten Organisation, welche Dir den Apache für Windows kompiliert und in ein Programmpaket gepackt hat.