Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Rechte per script ändern

Mitglied: sisa2002

sisa2002 (Level 1) - Jetzt verbinden

09.12.2007 um 18:28 Uhr, 6038 Aufrufe

Hallo,

ich habe mit unten angegebenem Code die Rechte einer Datei per script geändert. Das funktioniert auch soweit. Leider werden nachdem ich das Script habe laufen lassen die geänderten Rechte nicht unter den Dateieigenschaften/Sicherheitseinstellungen angezeigt. Wenn ich aber ein Script zum auslesen der Dateirechte benutzte, wird bestätigt das die Rechte geändert wurden.

Hat jemand eine Idee was ich falsch gemacht habe, oder was ich tun muss das die geänderten Rechte angezeigt werden ?

Danke !


zielfile ="c:\TEST\1.txt"
01.
' Zugriff auf WMI 
02.
Set wmi = GetObject("winmgmts:") 
03.
' "Jeder" soll die Datei nur lesen dürfen, das Löschen wird explizit verboten 
04.
' "Administrator" soll alle Rechte erhalten 
05.
Set ACE1 = CreateACE(wmi, 1, 0, SetTrustee(wmi, "Benutzer")) 
06.
Set ACE2 = CreateACE(wmi, 64, 1, SetTrustee(wmi, "Benutzer")) 
07.
Set ACE3 = CreateACE(wmi, 2032127, 0, SetTrustee(wmi, "Administratoren")) 
08.
Set ACE4 = CreateACE(wmi, 2032127, 0, SetTrustee(wmi, "test")) 
09.
 
10.
' die beiden ACEs werden in einem Variablenfeld gespeichert 
11.
newdacl = Array(ACE1, ACE2, ACE3, ACE4) 
12.
 
13.
' die Datei, die diese Rechte erhalten soll, wird angesprochen 
14.
Set fileinstance = GetFile(wmi,zielfile) 
15.
 
16.
' der alte Security Descriptor wird geöffnet 
17.
retval = fileinstance.getsecuritydescriptor(sec) 
18.
 
19.
' die neue DACL ersetzt die alte DACL 
20.
sec.Properties_.Item("dacl") = newdacl 
21.
 
22.
' der geänderte Security Descriptor wird in die Datei zurückgeschrieben 
23.
retval = fileinstance.setsecuritydescriptor(sec) 
24.
 
25.
 
26.
 
27.
Function GetFile(wmi, filename) 
28.
' öffnet eine Datei 
29.
Set GetFile = wmi.Get("Win32_LogicalFileSecuritySetting='" & filename & "'") 
30.
End Function 
31.
 
32.
 
33.
Function CreateACE(wmi, AccessMask, AceType, objTrustee) 
34.
' legt einen ACE an 
35.
Set objAce = wmi.Get("Win32_Ace").SpawnInstance_ 
36.
objAce.Properties_.Item("AccessMask") = AccessMask 
37.
objAce.Properties_.Item("AceFlags") = 3 
38.
objAce.Properties_.Item("AceType") = AceType 
39.
objAce.Properties_.Item("Trustee") = objTrustee 
40.
Set CreateACE = objAce 
41.
End Function 
42.
 
43.
 
44.
Function SetTrustee(wmi, account) 
45.
If Left(account,2) = "\\" Then 
46.
konto = Mid(account, 3) 
47.
Else 
48.
konto = account 
49.
End If 
50.
infos = Split(konto, "\") 
51.
If UBound(infos) = 0 Then 
52.
'SYS: Windows Script Host Runtime Library 
53.
Set wshnet = CreateObject("WScript.Network") 
54.
UserName = infos(0) 
55.
ComputerName = wshnet.ComputerName 
56.
Else 
57.
UserName = infos(1) 
58.
ComputerName = infos(0) 
59.
End If 
60.
 
61.
 
62.
' legt ein Win32_Trustee-Objekt an 
63.
Set objTrustee = wmi.Get("Win32_Trustee").SpawnInstance_ 
64.
objTrustee.Domain = ComputerName 
65.
objTrustee.Name = UserName 
66.
 
67.
objTrustee.Properties_.Item("SID") = GetBinarySID(ComputerName, UserName) 
68.
Set SetTrustee = objTrustee 
69.
End Function 
70.
 
71.
 
72.
Function GetBinarySID(ComputerName, UserName) 
73.
' ** ermittelt binäre SID eines Benutzerkontos 
74.
On Error Resume Next 
75.
Set wmi = GetObject("winmgmts:\\" & ComputerName) 
76.
If Err.number<>0 Then 
77.
MsgBox "Konnte \\" & ComputerName & " nicht erreichen!" 
78.
WScript.Quit 
79.
End If 
80.
On Error Goto 0 
81.
 
82.
wql = "select * from win32_account where name='" & UserName & "'" 
83.
Set result = wmi.ExecQuery(wql) 
84.
counter = 0 
85.
For each entry in result 
86.
counter = counter + 1 
87.
sid = entry.SID 
88.
Next 
89.
 
90.
 
91.
Set obj = wmi.Get("Win32_SID.SID=""" & sid & """") 
92.
GetBinarySID = obj.Properties_.Item("BinaryRepresentation").Value 
93.
End Function
Ähnliche Inhalte
Windows 10

Script mit administrativen Rechten ausführen

gelöst Frage von schneerunzelWindows 109 Kommentare

Moin Moin zusammen, Ich bin gerade dabei Windows 10 für die automatische Verteilung fertig zumachen. Image und alles ist ...

Batch & Shell

Mit welchen Rechten wird ein Startup Script ausgeführt?

gelöst Frage von vessevBatch & Shell3 Kommentare

Hallo, ich habe hier ein Startup Script das über GPO ausgelöst werden soll. Computer Configuration -> Policies -> Windows ...

Batch & Shell

Variablen in bash-script ändern

gelöst Frage von cptkrabbeBatch & Shell3 Kommentare

Hallo! Ich stehe mal wieder auf allen verfügbaren Schläuchen, vielleicht könnt Ihr mir helfen. Ich habe ein Script (script.sh) ...

Batch & Shell

Rechter aller Unterordner mit dem selben Namen ändern

Frage von ManuelefBatch & Shell1 Kommentar

Hallo zusammen, ich hab eine Anfrage bei der ich die Rechte sehr vieler Unterordner mit dem selben Namen ändern ...

Neue Wissensbeiträge
Linux Netzwerk

Installation eines Logservers mit Loganalyzer als Debian-VM auf Hyper-V

Anleitung von lcer00 vor 31 MinutenLinux Netzwerk

Zuerst sei auf den schönen Beitrag von aqui hier im Forum verwiesen, in dem die loganalyzer-installation bereits beschrieben ist: ...

Humor (lol)
Antennagate 2018
Information von magicteddy vor 31 MinutenHumor (lol)1 Kommentar

Da haut der angekaute Elektronikhersteller die teuersten Geräte auf den Markt und bekommt anscheinend die Basics mal wieder nicht ...

Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 1 TagDatenschutz2 Kommentare

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 2 TagenVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

Heiß diskutierte Inhalte
E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail21 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Windows Server
In-Place Upgrade von Windows Server 2008 R2 Datacenter zu Windows Server 2016 Datacenter (Zwischenschritt über 2012 R2)
gelöst Frage von TowerpleaseWindows Server16 Kommentare

Hallo Administratoren, Wir haben uns vor ein paar Monaten Windows Server 2016 Datacenter Lizenzen gekauft und wollen nun unsere ...

Windows 7
Mit gpedit gesetzte Richtlinien in rsop.msc nicht definiert und ausgegraut
gelöst Frage von 137006Windows 715 Kommentare

Hallo zusammen, anfangs verweise ich fairerweise daruf dass ich dieses Thema bereits im Forum angeschnitten habe, nachdem ich hier ...

Firewall
Wesyb Offline
Frage von DkuehlbornFirewall14 Kommentare

Hallo Kollegen, ein Kunde hat von Wesyb die Sicherheitslösung im Einsatz. Seit August scheint deren Internetseite nicht mehr verfügbar ...