Wenn Du schon ein externes Programm verwendest warum wertest Du nicht den Errorlevel aus?
Für das CMD:
reg import mein.reg
echo %errorlevel%
oder wenn Du es in einem Zug haben möchtest:
reg import mein.reg && echo %errorlevel% >meins.log
lg
Racer
Wenn Du schon ein externes Programm verwendest warum wertest Du nicht den Errorlevel aus?
Für das CMD:
reg import mein.reg
echo %errorlevel%
oder wenn Du es in einem Zug haben möchtest:
reg import mein.reg && echo %errorlevel% >meins.log
lg
Racer
Hallo!
Die Variablen sind hirachisch und werden dann vererbt:
System -> User -> Prozess
Beispiel: Ist im System der path definiert und im Userumfeld nicht wird er vererbt. Hier kann ich dann aber als Benutzer etwas verändern das aber nicht zurückgegeben wird ans System.
Du bist eh am richtigen weg:
* cmd aufmachen und set a=1 setzten (Der Prozess hat jetzt eine zusätzliche Variable a bekommen mit dem Wert 1)
* aus der cmd mit start cmd ein weiters Dos-Fenster (ja, ich sag immer noch Dos-Fenster auch wenn es keines mehr ist) aufmachen und Du wirst die Variable A mit dem Wert 1 dort finden (vererbt). Wenn Du diese jetzt veränderst set a=2 denn ist sie nur für diesern Prozess gültig.
* aus dem ersten cmd wieder ein start cmd machen und die Variable a prüfen. Du wirst feststellen das diese dort den Wert 1 hat
Warum? Der "Subprozess" liefert das nicht zurück. Meistens ist das gut so, manchmal ärgerlich. Aber stell Dir vor Du könntest als Benutzer den path ändern und das schreibt sich bis zum System zurück. Windows würde w.o. geben....
lg
Racer
Ich weiß nicht, ob man den negativen Desktopbereich capturen kann (also Browser aus dem sichtbaren Bereich verschoben). Falls ja, wäre das eine Lösung.
Ansonsten - hast du evtl. einen alten Monitor, den du zusätzlich anschliessen kannst? - Browser darauf verschieben und er stört nicht mehr. Da könntest du sogar einen alten Monitor mit defekter Darstellung nehmen, es wird ja das Signal, das zum Monitor geht abgegriffen unabhängig von dem, was er anzeigt.
Du musst nicht mal einen Monitor angeschlossen haben. Man kann die Auflösung auch "ohne Hardware" fixieren...aber die Lösung ist schon sehr kreativ
Was aber gehen kann und auch nicht stört: Du steigst auf Deinen Client ein zweites Mal ein (andere Benutzer), quasi wie auf einen Terminalserver. Dort startest Du alles (Google Chrome der alle Minuten was wegspeichert,....was auch immer) per Hand oder auch automatisch und dann trennst Du die Stitzung (nicht beenden)!
Damit hast Du zwei Sessions, die eine auf der Du arbeitest (Console) und die andere auf wo Deine Bilder erzeugt werden )RDP).
lg
Racer
Ja, genau das verwende ich! Einfach das Signtool von der Microsoft!
Ok, zugegeben, so einfach war das auch nicht, aber ich habe da zu eine Lösung: Im SDK von der MS (Visual Studio) ist das Signtool.exe (+ alle DLL und andere Programmteile) enthalten.
Da ich nicht alles installieren wollte, habe ich mir die Dateien extrahiert und einen Programmordner gepackt (wir haben Applocker im Einsatz und damit ist es nicht so einfach irgendwelche Programme auszuführen). Damit habe ich quasi das Signtool als portable App umgebaut.
Schritt zwei war eine Ausnahme (Virenscanner) für einen Ordner in dem meine Programme gespeichert sind - dieser liegt ganz bewusst nicht unter meinem User (c:\users\...\dokumente) da hier wieder der Applocker das verhindern würde. In meinen Fall ist es eine andere Disk - kann aber auch ein andere Ordner sein.
Schritt drei: man braucht eine Code Signer Zertifikat! Ich habe eines von meiner Firma dass aber nicht öffentlich ist (wir haben eine eigene CA) - das ist aber nicht so schlimm, den durch die Signierung entsteht ein andere Hashwert und die Virenscanner stellen fest "der hat ja ein Zertifikat, kenne ich zwar nicht aber hmmm....lassen wir die EXE mal leben"
Signieren tue ich das über die Commanline per Batchjob: sign.lnk (verweist auf den Batch im Programmordner) meinAutoItProgramm.exe. Warum das über einen Link und nicht direkt? Ganz einfach: Applocker läßt unter anderem Programm nur zu wenn sie unter c:\program files bzw c:\program files(x86) liegen. So kann ich das Programm von dort aufrufen und die mit AutoIt erstellte EXE "übergeben" ....das alles muss bei mir immer mit Benutzerrechte funktionieren (Firmenvorschrift)!
Am Ende sieht das dann so aus: siehe sign.jpg
(ich habe das von zu Hause aus geschrieben und damit ist das Zertifikat nicht gültig)
Lade ich die Datei auf Virustotal wird die Datei "nur" mehr von 2 Virenscanner als "Virus" eingestuft...die meisten bekannten Virenscanner geben sich aber damit zufrieden: siehe virustotal.jpg
Wenn interesse besteht kann ich gerne die notewendigen Programmteile vom Signtool zusammen packen und hochladen - ist nicht so viel! Ein Zertifikat kann man entweder von seiner Firma bekommen oder sich selbst ausstellen: z.B.: mit der XCA (https://hohnstaedt.de/xca/)
lg
Racer
Auch meine Programme werden immer wieder "gefressen". Was mir hilft das ich die fertigen EXE signiere. Damit lassen die meisten Virenscanner (Virustotal) die Programme in Ruhe!
lg
Racer
Auch eine schönes neues Jahr!
Da warst Du eh schon sehr fleißig uns hast viele Tools gesammelt.
Möglichweise habe ich noch einen Tipp für Dich: Du hast mir als Antwort gegeben das Ihr mehrere/viele Shares habe. Ich gehen davon aus dass hier nur auf Freigabeberechtigungen gesetztet wird (kann sein, muss nicht). Wenn ja, ist die Auswertung etwas leichter, denn Du musst dann nicht die ACL's analysieren (=mein persönlicher Alptraum).
Wenn ich ein Fileservice (FS) anlegen, mache ich einen Ordner und gebe diesen frei auf 2 (können auch mehr sein) Gruppen. Bei den ACLs werden diese dann automatisch gesetzt und ich brauche mich nicht mehr darum kümmern was im 27ten Unterordner für eine Berchtigung ist. Das kannst Du mit Stichproben leicht überprüfen.
Wenn ja, dann kannst sehr einfach mit rmtshare (ist ein altes Tools von WindowsNT4 noch) remote die Freigaberechte auslesen. https://ss64.com/nt/rmtshare.html
Das geht aber auch mit der Powershell so weit ich weiß, nur ich bin da recht Old-School und verwende immer noch gerne die liebgewonnen alten Tools!
Damit Deine Arbeit nicht zu leicht wird kommt jetzt das AD ins Spiel! Dort kannst Du nahezu beliebig verschachteln und das kann Dir den Tag auch ganz schön versauen!
Beipiel:
Am Fileserver ist der Ordner "Buchhaltung" für die AD-Gruppen "Buchhaltung_schreiben", "Controling_nur_lesen," und "Buchhaltung_schreiben" freigeben. Die ACL's sollten unter anderem diese AD-Gruppen auflisten.
Das fiese ist jetzt das ich aber im AD in die Gruppe "Buchhaltung_schreiben" die Gruppe "Controling_alle" reingeben kann und diese Gruppe beinhaltet wieder "Controling_nur_lesen".
Ergo, darf die Gruppe "Controling_nur_lesen" auch schreiben obwohl die Freigabe eigentlich sagt das ich "nur Lesen" darf!
Auch hier ist es wichtig das Du die Berechtigung rekursiv übers AD verfolgst. Ich habe mir dazu ein kleines AutoIt Programm geschrieben das rekrusiv die Verschachtelung wieder auflöst und die Grupen in Gruppen genau anzeigt!
Noch was, check mal ob am Share ACL's gibt die Benutzern erlauben die Attribute zu verändern (Fullcontroll)! Leider hatte ich so einen Fall, damit haben sie die Administratoren ausgesperrt im 12ten Unterordner. Wenn ja, sofort korriegeren, ein Benutzer (Gruppe) bekommt immer nur "lesen/ausführen" oder "ändern/lesen/ausführen/schreiben", niemals Vollzugriff
drücke die Daumen!
Racer
Alles anzeigenHallo ....
Mein ehemaliger Chef (der hat es nun hinter sich) hat damals im Active-Directory einfach Gruppen ohne Dokumentation darüber anglegt, auf welche Verzeichnisebenen er diese Gruppen berechtigt hat.
Kennt jemand von Euch eine Möglichkeit, wie eine bestimmte Berechtigungsgruppe oder ein User aus dem Root-Verzeichnis eines Servers rekursiv ausgelesen und in einer Datei aufgelistet werden kann?
Ich hoffe Ihr versteht was ich meine
Wie würdest Ihr es angehen, das herauszufinden?
Freue mich über jede Hilfe.
Hallo!
Wenn ich den ersten Satz richtig verstehe geht es um AD-Gruppen die z.B.: auf einen Fileserver für die Berechtigungen sorgen. Ich kann Dir schon helfen da ich selbst sehr viel beruflich damit zu tun habe, aber hier müssen noch ein paar Informationen her:
Willst Du nur die AD-Struktur (Verschachtelungen) bis zu den Benutzer herausfinden?
Willst Du feststellen welche Gruppe wo auf einen Fileservice berechtigt ist?
wie sind die FS bereitgestellt?
a.) viele Shares mit standard ACLs ? (Gruppe A_R darf nur lesen [read] und Gruppe A_W darf schreiben [write]
b.) wenige Shars mit aufwenidger ACLs wo welcher Benutzer (Gruppe) schreiben darf?
mit icacls.exe kannst Dich mal anfreunden. Sollte das nicht reichten kann ich Dir setacl von Helge Klein sehr ans Herz legen https://helgeklein.com/setacl/
Was ich Dir sicher sagen kann: Du hast ein großes Erbe bekommen, so ganz ohne Doku!
lg
Racer
Hallo
Die Printmgr.udf kann ich Dir sehr empfehlen. Ich verwende die UDF um Drucker vom Kunden auf eine Printserver zu verbinden (tcp-print).
https://www.autoitscript.com/forum/topic/15…t-udf/#comments
Im Prinzib wird in der UDF auch nur WMI verwendet, aber man muss ja das Rad nicht neu erfinden...
lg
Racer
Hallo!
Vielleicht hilft Dir das weiter: Icon verstecken (Systray)
Ich hatte damals das Problem das ich ein bestimmtes Icon "verstecken" wollte (was bis heute funktioniert) - vielleicht kannst Du hier die Funktionen verwenden!
lg
Racer
Hallo!
Nur zur Info: Den IE gibt es laut MS noch bis 2025...
lg
Racer
Lasse es nicht den Benutzer starten, sondern als System!
Ein paar Worte dazu: Dein Agent muss ohne GUI auskommen. Dann erstellst Du einen Task als System, der bei einem Systemstart aufgerufen wird. Ob der Agent "endlich" ist und nur z.B.: alle 10 Min läuft oder als "Dauerläufer" ist Geschmacksache und kommt auf den Anwendungsfall an!
Der Vorteil ist das es kein User (sofern nur Userrechte) schafft den Agent zu beenden und Du keine Probleme mit lokalen Rechten.
Der Nachteil: Benutzersachen abfragen ist etwas aufwändinger und Zugriff übers Netz ist dann auch etwas fordernt.
lg
Racer
Alles anzeigenDas war mal in Zeiten so als die CPUs noch lahm waren. Heute ist das kein relevanter Aspekt mehr.
Der Rebuild meines RAID 1 auf nem Raspberry Pi brachte einen CPU-Load von < 10%.Und da die Platten dabei auf Anschlag liefen, wüsste ich nicht wie ein Hardware-RAID-Controller da den Rebuild schneller abschließen könnte.
Sogar eher im Gegenteil: der Hardware-Controller hätte die ganze Platte abarbeiten müssen - mein BTRFS-RAID hingegen nur die wirklich verwendeten Bereiche.
Also je nach Füllstand der Platte deutlich fixer als mit nem Controller.
Auch auf RAID-Levels mit Parität wird die Paritätsberechnung heute als vernachlässigbar eingestuft (kann ich selbst jedoch nicht beurteilen).
Beim Rebuild?
Ein Cache bringt vor allem dann was, wenn auf Daten eines langsamen Mediums mehrmals zugegriffen wird.
Beim RAID-Rebuild muss man die gesamten Daten aber jeweils nur einmal anfassen.Und die Funktion als Buffer sollte der RAM bereits erfüllen.
So einfach ist das nicht! Wenn Du "nur" eine gespiegelte Platte hast die durch das Betriebsystem den Raidlevel hat, dann ist die CPU nicht so gefragt. Mache das mal mit einem Raid 5 über 6 oder 8 Disken....da siehst Du dann einen Unterschied, ob das ein Controller mit einem Riskprozessor von alleine macht oder ob die CPU auf Anschlag läuft!
Der Cache bringt sogar sehr viel, da der Datenbus vom Controller zum Server alles entlastet! Die Schreiboperation, auch bei Sectorenlesen/schreiben läuft durch den Cache!
Soweit der Ausflug in die Serverwelt wo Raidcontroller 4-5000 Euro kosten - nichts für den Heimgebrauch!
lg
Racer
Hallo!
Du kömmtest Dir einen Agent schreiben, der sich bei einen Server meldet - also genau umgekehrt: nicht Dein Programm sieht nach ob der Client da ist, sondern der Zielrechner meldet sich (bei Hochfahren, Zeitintervall,...)
Des weiteren könnte auch Dein Agent auf Dein Programm warten und eine Antwort senden (Client-Server)
Sollte ein Active Directory zur Vergügung stehen, kannst du auch das Computerkonto abfragen wann sich der Client das letzte mal gemeldet hat. Die AD-UDF von Water ist da sehr hilfreich.
lg
Racer
alpines Ein Punkt ist mir noch eingefallen: Die Wiederherstellung von RAID Festplatten, wenn eine getauscht wird (z. B. nach Ausfall). Ich weiß nicht, ob es auf RAID 1 zutrifft, aber bei RAID allgemein kann das wirklich lange dauern. Vielleicht weiß jemand was dazu?
Bei einen Hardwarerraid ist das nicht so schlimm, da der Controller das macht wenn sonst nichts zu tun ist. Bei einem Softwareraid dauert es deutlich länger und belastet die CPU stark. Ein Faktor ist auch noch ob es einen ReadWrite-Cache gibt.
Meine Erfahrungen mit Datensicherung:
Für zu Hause ist es nicht so wichtig ob ich eine Raid1 oder 5 habe (Raid5 mit einem vernünftigen Controller kostet richtig Geld) oder einfach nur eine USB-Disk verwende. Wichtig ist das ich es regelmäßig mache!
meine Sicherung:
Ich habe einen einfaches Script das mit meine Daten (eine Auswahl an Ordner) in ein RAR-Archiv einmal pro Tag sichert. Nach 30 Tagen werden die äteren Archive überschrieben. So kann ich auch noch auf einen äteren Stand zurückgreifen wenn es sein muss. Gesichert wird das ganze auf einen Server (zweiter PC) und von dort auf eine USB-Disk.
Da es leider so böse Programme gibt die dir die Daten verschlüsseln und dann Bitcoints wollen, verschlüssel ich sie selbst mit Boardmittel (EFS). Das verhindert zum Teil das böse Java/VB-Script hier etwas anstellen (leider nicht alle).
Für meine Zwecke recht da, ob das für Dich passt musst Du entscheiden!
lg
Racer
Hallo!
Ich nutzte zwar sehr viel die VMWare, aber über diese Problem bin ich noch nicht gestolpert.
Gibt es da nicht eine API zur VMWare? Mit der sollte es möglich sein zwischen Hostrechner und Gast zu kommunizieren.
Leider kann ich Dir da auch nicht wirklich weiterhelfen. Hast Du schon mal ins VMWare-Forum gesehen ob nicht jemand da schon etwas gemacht hat?
lg
Racer
Hallo AutoBert
Nein, kannst Du so wie unter Windows 7 leider nicht mehr. Es würde nur die Möglichkeit geben das Du einen eigenen WSUS-Server verwendest - ist halt ein ziemlicher Aufwand. Aber dort kannst Du dann steuern welche Updates Du bekommst.
Naja, es gibt schon noch eine Möglichkeit: Ist halt auch mit etwas aufwand verbunden, aber ohne Server halt:
Es gibt den Windows Update Offline Installer https://www.wsusoffline.net/. Du kommst Dir die Updates herunterladen, dann manuell herausselectieren und diese wusa.exe so installieren. Du musstest den Wsus-Dienst nicht nur umleiten, sondern auch noch per Firewall für die MS sperren. st alles nur nicht Ideal
lg
Racer
PS: ich glaube der wsusoffline ist sogar in AutoIt geschrieben
Hallo!
Windoof und seine Updates...eine Katastrophe...
Probiere mal folgendes aus:
WSUS-Client stoppen, Softwaredistributions-Ordner löschen
cmd als Admin ausführen:
net stop wuauserv
(check ob er wirklich gestoppt ist: sc query wuauserv)
rd /S /Q C:\Windows\SoftwareDistribution (den ganzen Ordner kannst löschen, der wird wieder aufgebaut wenn der WSUS-Client wieder läuft)
sollte sich der Dienst nicht stoppen lassen (auch schon erlebt) und/oder sich der Ordner nicht löschen lassen mache folgendes
sc config wuauserv start= disabled (deaktiviert den Windows Update Dienst und ja nach dem = ist wirklich ein Abstand)
=> Reboot
wieder eine Adminconsole .... rd /S /Q C:\Windows\SoftwareDistribution
sc config wuauserv start= auto (Dienst wieder auf automatisch stellen)
net start wuauserv (Dienst starten)
usoclient startscan (Windows Update suche anstossen)
lg
Racer
Aufgabenplaner .... bei Systemstart ausführen
Sollte für die meisten Augaben genügen!
lg
Racer
Ich habe das Script mal auf verschieden System laufen lassen, allerdings in VMs:
Als Hostsystem ist Windows 10 LTSC 1809 installiert!
Windows 10 LTSC (Hostsystem):
> ------------------------------------------
> >>>>> Check 1 vor ... <<<<<
! Elapsed time 1 : 569.979 ms
! Elapsed time 2 : 569.112 ms
! Elapsed time 3 : 569.562 ms
> >>>>> Check 2 nach _ArrayDisplay <<<<<
! Elapsed time 1 : 3455.226 ms
! Elapsed time 2 : 3444.094 ms
! Elapsed time 3 : 3436.570 ms
> >>>>> Check 3 nach GUIOnEventMode=1 <<<<<
! Elapsed time 1 : 4398.779 ms
! Elapsed time 2 : 4368.314 ms
! Elapsed time 3 : 4383.285 ms
> ------------------------------------------
WindowsXP (32Bit):
> ------------------------------------------
> >>>>> Check 1 vor ... <<<<<
! Elapsed time 1 : 673.275 ms
! Elapsed time 2 : 699.424 ms
! Elapsed time 3 : 627.805 ms
> >>>>> Check 2 nach _ArrayDisplay <<<<<
! Elapsed time 1 : 523.474 ms
! Elapsed time 2 : 521.010 ms
! Elapsed time 3 : 520.581 ms
> >>>>> Check 3 nach GUIOnEventMode=1 <<<<<
! Elapsed time 1 : 1159.178 ms
! Elapsed time 2 : 1181.750 ms
! Elapsed time 3 : 1166.352 ms
> ------------------------------------------
Windows 7 Ultimate (x64):
> ------------------------------------------
> >>>>> Check 1 vor ... <<<<<
! Elapsed time 1 : 522.313 ms
! Elapsed time 2 : 524.421 ms
! Elapsed time 3 : 525.721 ms
> >>>>> Check 2 nach _ArrayDisplay <<<<<
! Elapsed time 1 : 523.526 ms
! Elapsed time 2 : 521.809 ms
! Elapsed time 3 : 522.121 ms
> >>>>> Check 3 nach GUIOnEventMode=1 <<<<<
! Elapsed time 1 : 1200.217 ms
! Elapsed time 2 : 1200.965 ms
! Elapsed time 3 : 1196.835 ms
> ------------------------------------------
Das Testprogramm ist als x86 compliliert (wegen Windows XP)....
Für mich sieht das aus als würde der GUIOnEventMode=1 immer etwas bremsen, aber nicht so start wie unter Windows 10
lg
Racer