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, 6024 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
Peripheriegeräte
Unterschrank für HP Drucker
Tipp von NixVerstehen vor 24 MinutenPeripheriegeräte

Als kurzen Freitags-Tipp möchte ich gerne meinen neuen Drucker-Unterschrank Modell Amica KS 15423W vorstellen. Das Gerät eignet sich hervorragend ...

Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 1 TagWindows 103 Kommentare

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 1 TagWindows 101 Kommentar

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 3 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Heiß diskutierte Inhalte
Humor (lol)
Freitagsfrage: Was tun, wenn der Admin der DAU ist?
Frage von VoiperHumor (lol)21 Kommentare

Moin Zusammen, Eine nicht ganz ernst gemeinte Frage an die Außendienstler unter uns. Zusammenfassung: Ein Inhouse Admin ruft bei ...

Exchange Server
Exchange Backup 10 Jahre Aufbewahrung
Frage von arccosExchange Server20 Kommentare

Hallo zusammen. Aktuell beschäftigen mich ein paar Fragen zum Thema Office365/ Exchange. 1.10 Jahre Aufbewahrungspflicht sicherstellen 2.Kann man als ...

Windows Netzwerk
LTE Modul - Kein Internet trotz Verbindung
Frage von killtecWindows Netzwerk18 Kommentare

Hallo, ich habe hier ein Dell 7390 2-in-1 mit W10 Pro wo ich nachträglich eine LTE-Karte (Original Dell DW5811e ...

Humor (lol)
Windows 10 - immer für Überraschungen gut
gelöst Frage von HenereHumor (lol)18 Kommentare

Eben nach (beim) installieren der neuesten Updates für 1803 :-) Und sorry fürs Handyfoto, aber der musste sein. Nach ...