linobaleos
Goto Top

Win7 Aufgabenplaner Logon mountvol lokale Laufwerke ein-aus-blenden

Hallo zusammen,

nach sicher 10+ Stunden herumprobieren und Ausprobieren aller Netzfunde lande ich nun hier.

Ausgangsituation
PC mit Win7 Prof SP1 und den lokalen Laufwerken C: D: und S: und ZENTRALE als Name
lokaler Benutzer A (BA) mit Adminrechten und Mitglied der Administratoren-Gruppe
lokaler Benutzer K (BK) ohne Adminrechte
lokaler Benutzer P (BP) ohne Adminrechte
Mountvol.exe in version 6.1.7600 16385
Aufgabenplaner in version 1.3
Benutzerkontensteuerung ist AUS

Aufgabe
Wenn sich BP anmeldet (Logon), dann sollen die Laufwerke D: und S: ausgeblendet werden.
Wenn sich BA oder BK anmeldet, dann soll die Laufwerke D: und S: eingeblendet werden.
Laufwerk C: ist immer sichtbar.

Dazu wurden 2 Skripte erstellt, die mittlerweile so aussehen:

timeout /t 2
echo on
c:\Skripts\mountvol.exe D: /d
c:\Skripts\mountvol.exe S: /d
pause

bzw.

echo on
timeout /t 2
c:\Skripts\mountvol.exe D: \\?\Volume{e08d997e-33fb-11e1-92b0-4439c43d77584}\
c:\Skripts\mountvol.exe S: \\?\Volume{d0de6e41-e94c-4ae2-bb72-772bf30dc5f55}\
pause

Die Befehle PAUSE, ECHO und TIMEOUT wurden nur zum Troubleshooting gewählt, um zu erleben was abgeht und um Timing Geschichten auszuschliessen.

Alle Benutzer BP, BA und BK haben volle Zugriffsrechte auf das Verzeichnis C:\Skripts als auch auf alle .BAT Dateien als auch auf C:\Skripts\mountvol.exe. Es wurden auch schon Verknüpfungen erstellt für diese .BAT Dateien und diese mit "als Administrator ausführen" geflagged und in die jeweiligen Autostart Verzeichnisse abgelegt. Das Ergebnis war, dass bei BA das CMD Fenster aufging und man das erfolgreiche Ausführen des Ablaufs beobachten konnte. Bei BP und BK ging kein Fenster auf und es passierte auch nichts.

Rief man die .BAT bei BP und BK einfach auf, kam bei den mountvol Zeilen erwartungsgemäss das "Zugriff verweigert". Rief man die .BAT "als Administrator" auf, kam erstens keine Abfrage das Admin-Zuganges und damit auch logischerweise "Zugriff verweigert".

Davor habe ich natürlich versucht, das Ganze mit dem Aufgabenplaner abzubilden und war dabei aber nur teilweise erfolgreich. D.h. es hat das Anmelden BP, Abmelden und Anmelden BK, Abmelden und Anmelden BP, Abmelden und Anmelden BA, usw. mit dem korrekten Laufwerkmapping ca. 2-4 mal funktioniert. Jedoch - meistens nach 1 oder 2 Neustarts ging es dann plötzlich nicht mehr, also nicht mehr ab und zu sondern gar nix mehr.

Im Aufgabenplaner als BA haben die Aufgaben bei manueller Ausführung IMMER funktioniert. Natürlich wurden die Aufgaben so definiert, dass sie als BA ausgeführt werden.

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2021-05-09T21:11:35.5263318</Date>
<Author>zentrale\BA</Author>
<Description>show volume D and S</Description>
</RegistrationInfo>
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
<UserId>ZENTRALE\BA</UserId>
</LogonTrigger>
<LogonTrigger>
<Enabled>true</Enabled>
<UserId>ZENTRALE\BK</UserId>
</LogonTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<RunLevel>HighestAvailable</RunLevel>
<UserId>zentrale\BA</UserId>
<LogonType>Password</LogonType>

</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>timeout</Command>
<Arguments>/t 2</Arguments>
</Exec>
<Exec>
<Command>C:\Skripts\show_d_s.bat</Command>
<WorkingDirectory>c:\Skripts\</WorkingDirectory>
</Exec>
</Actions>
</Task>

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2021-05-09T21:09:11.5610975</Date>
<Author>zentrale\BA</Author>
<Description>removes volumes D and S</Description>
</RegistrationInfo>
<Triggers>
<LogonTrigger>
<Enabled>true</Enabled>
<UserId>ZENTRALE\BP</UserId>
</LogonTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<RunLevel>HighestAvailable</RunLevel>
<UserId>ZENTRALE\BA</UserId>
<LogonType>Password</LogonType>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>timeout</Command>
<Arguments>/t 2</Arguments>
</Exec>
<Exec>
<Command>c:\Skripts\remove_d_s.bat</Command>
<WorkingDirectory>c:\Skripts\</WorkingDirectory>
</Exec>
</Actions>
</T

Natürlich waren beim Aufgabenplaner keine PAUSE Befehle definiert bzw. in der BAT.

Wo ist denn hier der Denkfehler? Danke für etwas neuen Input.

Lino

Content-ID: 667252

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

Ausgedruckt am: 11.12.2024 um 21:12 Uhr

GrueneSosseMitSpeck
GrueneSosseMitSpeck 02.06.2021 um 17:57:26 Uhr
Goto Top
sowas wird normalerweise per GPO geregelt und nur für lokale Laufwerke anwendbar, nicht für solche die per Subst erzeugt wurden.

https://docs.microsoft.com/de-de/troubleshoot/windows-client/group-polic ...

Wenn der PC nicht in der Domäne ist muß man die passenden Registrykeys pro User setzen... bzw per Loginskript in HKCU reinschreiben.
linobaleos
linobaleos 02.06.2021 um 23:19:21 Uhr
Goto Top
ich habe jetzt auf diese Keys Vollzugriff für BK und BP gegeben:

HKLM\System\MountedDevices

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\

HKLM\Software\Microsoft\Windows NT\CurrentVersion\Schedule\Taskcache\

Gibt es noch weitere?