Ik ben een heel aardig startup- en logon-script aan het opzetten in VBS, voor de computers in mijn domein (alle Win2k SP4). Het idee is dat een hoofdscript alle subscriptjes in een map uitvoert. Die subscriptjes doen ook een aantal bewerkingen met bestanden (kopieren naar lokale schijf).
Nu heb ik een probleem waar ik op internet verdomd weinig over kan vinden. Het userscript werkt naar behoren, maar het computerscript (in de GPO gedefinieerd bij Startup) kan helemaal niets met bestanden op de Sysvol-share op de domeincontroller (\\domain\sysvol). Blijkbaar zorgt de group policy dat 'ie op een ander manier aan z'n startup script komt dan via een aanroep van deze share.
Gevolg is dat ik andere scripts niet kan uitvoeren en geen bestanden van de share naar de lokale schijf kan kopieren. Er zijn natuurlijk wel allerlei workarounds te verzinnen (alles in één script en bestanden kopieren als user), maar dat is eigenlijk m'n eer te na
.
De rechten op de benodigde bestanden staan nu even op 'Everyone - Read & Execute', dus dat is het probleem niet. Ik heb ook geprobeerd gewoon een CopyFile te doen vanaf het netwerk en ook dat werkt niet.
De code die ik gebruik is als volgt (objecten worden elders gedefinieerd - objFileSystem is FileSystemObject en objShell is Wscript.Shell):
Het eventlog meldt vervolgens 'Path is ' zonder pad, dus het hele object pntComputerScriptsPath werkt niet.
Is er een manier om een computer-startupscript toch dingen te laten doen met bestanden op een netwerkshare?
Nu heb ik een probleem waar ik op internet verdomd weinig over kan vinden. Het userscript werkt naar behoren, maar het computerscript (in de GPO gedefinieerd bij Startup) kan helemaal niets met bestanden op de Sysvol-share op de domeincontroller (\\domain\sysvol). Blijkbaar zorgt de group policy dat 'ie op een ander manier aan z'n startup script komt dan via een aanroep van deze share.
Gevolg is dat ik andere scripts niet kan uitvoeren en geen bestanden van de share naar de lokale schijf kan kopieren. Er zijn natuurlijk wel allerlei workarounds te verzinnen (alles in één script en bestanden kopieren als user), maar dat is eigenlijk m'n eer te na
De rechten op de benodigde bestanden staan nu even op 'Everyone - Read & Execute', dus dat is het probleem niet. Ik heb ook geprobeerd gewoon een CopyFile te doen vanaf het netwerk en ook dat werkt niet.
De code die ik gebruik is als volgt (objecten worden elders gedefinieerd - objFileSystem is FileSystemObject en objShell is Wscript.Shell):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| ' This script will read and execute all scripts in .\computer\ in alphabetical sequence.
' You can add a number to filenames to manage execution order (e.g. 000.drives.vbs)
Set pntComputerScriptsPath = objFilesystem.GetFolder("\\domain\sysvol\[domeinnaam]\scripts\policy\computer")
strComputerScriptsPath = pntComputerScriptsPath.Path
Set pntComputerScripts = pntComputerScriptsPath.Files
objShell.LogEvent INFORMATION, "POLICY_DEBUG: Path is " & strComputerScriptsPath
For Each pntComputerScript In pntComputerScripts
strComputerScript = strComputerScriptsPath & "\" & pntComputerScript.Name
Set objComputerScript = objFilesystem.OpenTextFile(strComputerScript, 1)
strCode = objComputerScript.ReadAll
objComputerScript.Close
Execute strCode
Next |
Het eventlog meldt vervolgens 'Path is ' zonder pad, dus het hele object pntComputerScriptsPath werkt niet.
Is er een manier om een computer-startupscript toch dingen te laten doen met bestanden op een netwerkshare?