fidellen
Goto Top

Gruppe auf Ordner hinzufügen mit VBScript

Hallo miteinander.
Ich bin neu hier und finde euer Forum einfach Klasse. Ich hoffe ihr könnt mir mit meinem Problem auch behilflich sein.
Ich bin zur Zeit AZUBI in einem grossen Detailhandesunternehmen in der Schweiz. Nun wurde ich angefragt, ob ich mich mit VBS auskenne und ich ein kleines Script schreiben kann. Da ich VBS erst gerade in der Schule abgeschlossen hatte, dachte ich mir nichts dabei und willigte ein. Doch kaum bin ich die Aufgabe angegangen, merkte ich, dass ich mich wohl ein bisschen überschätzt habe... Mein Problem ist folgendes:

Beim Anmelden eines Benutzers, der über Adminrechte Verfügt, soll ein Ordner auf dem C:\ Laufwerk gelöscht werden. Eigentlich ein einfaches Unterfangen, doch leider kommt nun etwas dazu: Auf dem Ordner ist die Administratorengruppe nicht eingerichtet. Man müsste sie von Hand zuerst hinzufügen und das Script anschliessend laufen lassen. Nur, das Script soll für Endbenutzer zum Einsatz kommen, die an einer Schulung teilnehmen. Der Ordner soll sich beim anmelden des Benutzers löschen. Wie füge ich nun die Administratorengruppe mit einem VB Script uf dem Ordner hinzu? Habt ihr mir irgendwelche nützliche Tipps, oder gar Anleitungen zu dem Thema?

Mein Script besteht im moment nur aus dem Löschvorgang (Klappt, wenn Gruppe eingerichtet ist!)


Option Explicit
Dim FSO
Dim Ordner


Set FSO = CreateObject("Scripting.FileSystemObject")

Ordner = "c:\courses"


FSO.DeleteFolder(Ordner)


End If

WScript.Quit


Kann mir jemand helfen?

Vielen Dank schon mal

Liebe Grüsse

fidellen

Content-Key: 63975

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

Printed on: April 23, 2024 at 11:04 o'clock

Member: bastla
bastla Jul 17, 2007 at 08:52:09 (UTC)
Goto Top
Hallo fidellen und willkommen im Forum!

An sich ist das Ganze ohnehin schon verkorkst, wenn auf einen Ordner von C: ein Administrator keinen Zugriff hat (zumindest verstehe ich Dein Problem so, dass die Administratorengruppe keine NTFS-Rechte am entsprechenden Ordner hat) - also sollte eher dort (am Besten auf Partitionsebene) angesetzt werden.
Um es trotzdem per Script lösen zu können, wäre es am sinnvollsten, vorweg den Besitz zu übernehmen - siehe dazu http://www.microsoft.com/technet/scriptcenter/resources/qanda/jan06/hey ...

Danach sollte auch das Löschen klappen.

Grüße
bastla
Member: fidellen
fidellen Jul 17, 2007 at 13:56:13 (UTC)
Goto Top
Herzlichen Dank!!! Läuft wie gesschmiert!

Du warst mir eine sehr grosse Hilfe! Danke schön!!!


Für alle die, das Script sehen wollen:

Option Explicit


'*
'Initalisierung
'*

Dim FSO
Dim Courses
Dim colFolders
Dim objFolder
Dim EasyPlayer
Dim objWMIService
Dim strComputer


'*
'Besitz über Ordner übernehmen
'
*

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
("Select * From Win32_Directory Where Name = 'C:\\courses'")

For Each objFolder in colFolders
objFolder.TakeOwnershipEx
Next


'*
' Löschvorgang
'
*

Set FSO = CreateObject("Scripting.FileSystemObject")

Courses = "c:\courses"
EasyPlayer = "C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5"

'Wenn c:\Courses existiert dann löschen...

If FSO.FolderExists(Courses) Then
FSO.DeleteFolder(Courses)
Else

' ... wenn c:\Courses nicht existiert, dann überprüfen ob C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5 existiert und löschen...

If FSO.FolderExists("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5") Then
FSO.DeleteFolder(EasyPlayer)
Else

'... falls auch nicht existiert, dann Programmende

WScript.Quit
End If
End If


'Wenn C:\Courses gelöscht wurde, überprüfen ob C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5 existiert, und dann Löschen...

If FSO.FolderExists("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5") Then
FSO.DeleteFolder(EasyPlayer)
Else

'... falls nicht existiert, dann Programmende

WScript.Quit
End If


'*
'Script Beenden
'
*

WScript.Quit
Member: bastla
bastla Jul 17, 2007 at 14:10:19 (UTC)
Goto Top
Hallo fidellen!

Freut mich, dass es klappt und danke für die Rückmeldung. face-smile

Dein Script kann man/frau besser lesen, wenn Du es zwischen < code> und < /code> (jeweils ohne Leerstelle) stellst - dann kann man sicher auch die Einrückungen besser sehen. face-wink

In der Zeile
Set colFolders = objWMIService.ExecQuery _
scheint übrigens " _" zu fehlen ...

Noch eine Anmerkung: Wenn Du auf das "Else" bei
If FSO.FolderExists(Courses) Then
    FSO.DeleteFolder(Courses)
Else
...
verzichtest, brauchst Du nachher die Überprüfung und das ev Löschen von "EasyPlayer" nur einmal durchzuführen ...

Grüße
bastla
Member: fidellen
fidellen Jul 17, 2007 at 14:29:07 (UTC)
Goto Top
face-smile Danke für die Tipps!!

Das "_" ist bei mir gesetzt, scheint wohl mit der Formatierung verloren gegangen zu sein.

Herzlichen Dank nochmals!!

Grüsse

Fidellen
Member: Biber
Biber Jul 17, 2007 at 19:45:12 (UTC)
Goto Top
Moin fidellen,

wäre schade um Dein netterweise veröffentlichtes Skript, wenn es so schwer lesbar ist.

Deshalb hier noch einmal in < code >-Formatierung:
'------------snipp fidellenseinskript.vbs zum Gruppe-auf-Order-hinzufügen  
Option Explicit


'*************************************************************************  
'Initalisierung  
'*************************************************************************  

Dim FSO
Dim Courses
Dim colFolders
Dim objFolder
Dim EasyPlayer
Dim objWMIService
Dim strComputer


'***************************************************************************  
'Besitz über Ordner übernehmen  
'***************************************************************************  

strComputer = "."  

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colFolders = objWMIService.ExecQuery _
    ("Select * From Win32_Directory Where Name = 'C:\\courses'")  

For Each objFolder in colFolders
    objFolder.TakeOwnershipEx
Next


'***************************************************************************  
'							Löschvorgang  
'***************************************************************************  

Set FSO = CreateObject("Scripting.FileSystemObject")  

Courses = "c:\courses"  
EasyPlayer = "C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5"  

'Wenn c:\Courses existiert dann löschen...  

If FSO.FolderExists(Courses) Then
    FSO.DeleteFolder(Courses)
Else

' ... wenn c:\Courses nicht existiert, dann überprüfen ob   
' C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5 existiert und löschen...  

If FSO.FolderExists("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5") Then  
    FSO.DeleteFolder(EasyPlayer)
Else

'... falls auch nicht existiert, dann Programmende  

    WScript.Quit
End If
End If


'Wenn C:\Courses gelöscht wurde, überprüfen ob   
' C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5 existiert, und dann Löschen...  

If FSO.FolderExists("C:\Dokumente und Einstellungen\All Users\Startmenü\Programme\Easyplayer 2.5") Then  
    FSO.DeleteFolder(EasyPlayer)
Else

'... falls nicht existiert, dann Programmende  
   
	WScript.Quit
End If


'***************************************************************************  
'Script Beenden  
'***************************************************************************  

WScript.Quit
'------------snapp fidellenseinskript.vbs zum Gruppe-auf-Order-hinzufügen  

Ich setze den Beitrag mal auf "Gelöst". @fidellen: beim nächsten Mal bitte selbst übernehmen.

Grüße
Biber
Member: fidellen
fidellen Jul 18, 2007 at 06:11:56 (UTC)
Goto Top
Hi Biber!

Sorry, bin neu hier und kenne mich noch nicht ganz so gut aus! aber ich denke mit der Zeit werde ich das auch drinn haben! face-smile

Vielen Dank!

Gruss

fidellen