Host einträge über OPSI ändern

Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Host einträge über OPSI ändern

Beitrag von D1Ck3n »

Hallo zusammen,

ich würde gerne eine vorgefärtigte Windows host Datei mit bestimmten Einträgen an meine Clients verteilen. Das kann theoretisch funktionieren, wenn ich eine vorgefertigte Host Datei einfach auf die Clients kopiere, aber das klappt wegen den Fehlenden Benutzerrechten leider nicht.

Gibt es eine andere Möglichkeit, an die Clients bestimmte Host-Einträge zu verteilen?

Gruß
D1Ck3n
Zuletzt geändert von D1Ck3n am 30 Nov 2015, 14:36, insgesamt 2-mal geändert.
Gruß
D1Ck3n
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Host einträge über OPSI ändern

Beitrag von holgerv »

Benutzerrechte ändern, Datei kopieren, Benutzerrechte zurückändern?
Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Re: Host einträge über OPSI ändern

Beitrag von D1Ck3n »

holgerv hat geschrieben:Benutzerrechte ändern, Datei kopieren, Benutzerrechte zurückändern?
Es geht ja eher darum, dass die schon vorhandene Host Datei auf dem Client, ohne Admin Rechte, nicht überschreibbar ist.
Gruß
D1Ck3n
Benutzeravatar
wolfbardo
uib-Team
Beiträge: 1354
Registriert: 01 Jul 2008, 12:10

Re: Host einträge über OPSI ändern

Beitrag von wolfbardo »

hilft
handbuch lesen?

http://download.uib.de/opsi4.0/doc/html ... patchhosts

Gruss
Bardo Wolf


OPSICONF 2024
https://opsi.org/en/opsiconf/

Basisworkshop Mainz :

17. - 20. 06. 2024


opsi support - uib gmbh
For productive opsi installations we recommend maintainance + support contracts which are the base of opsi development.

http://www.uib.de
Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Re: Host einträge über OPSI ändern

Beitrag von D1Ck3n »

Ja huch!, ok, vergiss meinen Post^^
Gruß
D1Ck3n
Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Re: Host einträge über OPSI ändern

Beitrag von D1Ck3n »

Ich habe es nach dem Handbuch versucht, aber irgendwie klappt das nicht.

So sieht mein Skript aus:

Code: Alles auswählen

[Initial]
Message= Hosteinträge werden gesetzt...
SetLogLevel=6
ExitOnError=true
ScriptErrorMessages=true
TraceMode=off

[Aktionen]
PatchHosts_add

[PatchHosts_add]
setName 222.222.222.222 ServerNo2
setName 222.222.222.223 ServerNo3
setName 222.222.222.224 ServerNo4
Das steht im Log:

Code: Alles auswählen

(493)     [5] [Nov 30 14:31:08:698] [host_datei]     FILE C:\Windows\system32\drivers\etc\hosts
(494)     [6] [Nov 30 14:31:08:718] [host_datei]   Set Hostname "ServerNo2" for ipAddress 222.222.222.222
(495)     [6] [Nov 30 14:31:08:718] [host_datei]   Set Hostname "ServerNo3" for ipAddress 222.222.222.223
(496)     [6] [Nov 30 14:31:08:718] [host_datei]   Set Hostname "ServerNo4" for ipAddress 222.222.222.224
(497)     [4] [Nov 30 14:31:08:719] [host_datei]   Warning: C:\Windows\system32\drivers\etc\hosts could not be saved back - will retry, error message: "Unable to create file "C:\Windows\system32\drivers\etc\hosts""
(498)     [4] [Nov 30 14:31:08:819] [host_datei]   Warning: C:\Windows\system32\drivers\etc\hosts could not be saved back - will retry, error message: "Unable to create file "C:\Windows\system32\drivers\etc\hosts""
(499)     [4] [Nov 30 14:31:08:919] [host_datei]   Warning: C:\Windows\system32\drivers\etc\hosts could not be saved back - will retry, error message: "Unable to create file "C:\Windows\system32\drivers\etc\hosts""
(500)     [4] [Nov 30 14:31:09:019] [host_datei]   Warning: C:\Windows\system32\drivers\etc\hosts could not be saved back - will retry, error message: "Unable to create file "C:\Windows\system32\drivers\etc\hosts""
(501)     [4] [Nov 30 14:31:09:119] [host_datei]   Error: C:\Windows\system32\drivers\etc\hosts could not be saved back - will not retry, error message: "Unable to create file "C:\Windows\system32\drivers\etc\hosts""
Anscheinend besteht immer noch das Problem, dass ich die HOST Datei nicht beschreiben darf.
Gruß
D1Ck3n
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Host einträge über OPSI ändern

Beitrag von holgerv »

D1Ck3n hat geschrieben:Anscheinend besteht immer noch das Problem, dass ich die HOST Datei nicht beschreiben darf.
Was sagt:

Code: Alles auswählen

icacls.exe %SystemRoot%\system32\drivers\etc\hosts
Unter welchem User-Account ("Benutzername" im Task-Manager) läuft die "opsiclientd.exe"?
Benutzeravatar
D1Ck3n
Beiträge: 191
Registriert: 15 Mär 2013, 11:05

Re: Host einträge über OPSI ändern

Beitrag von D1Ck3n »

holgerv hat geschrieben:
D1Ck3n hat geschrieben:Anscheinend besteht immer noch das Problem, dass ich die HOST Datei nicht beschreiben darf.
Was sagt:

Code: Alles auswählen

icacls.exe %SystemRoot%\system32\drivers\etc\hosts
Unter welchem User-Account ("Benutzername" im Task-Manager) läuft die "opsiclientd.exe"?
Der Befehl sagt:

Code: Alles auswählen

NT-AUTORITÄT\SYSTEM: (I)(F)
VORDEFINIERT\Administratoren (I)(F)
VORDEFINIERT\Benutzer: (I)(RX)
opsiclientd.exe läuft unter SYSTEM
Gruß
D1Ck3n
holgerv
Beiträge: 288
Registriert: 20 Aug 2012, 09:35

Re: Host einträge über OPSI ändern

Beitrag von holgerv »

Hm. Ich weiß nicht, ob es Dir hilft, aber so sieht das Log aus, wenn alles funktioniert:

Code: Alles auswählen

[6] [Dez 01 10:14:30:409] Actionrequest for product: etc-hosts-test is (original/actual): (setup / setup)
[6] [Dez 01 10:14:30:443] [etc-hosts-test] Actionrequest for Product: etc-hosts-test is: setup
[6] [Dez 01 10:14:30:443] [etc-hosts-test] JSON service request https://OPSI4SERVERIPADRESSE:4447/rpc getProductProperties_hash
[6] [Dez 01 10:14:30:520] [etc-hosts-test] JSON Bench for getProductProperties_hash "params":["etc-hosts-test","MEINHOSTNAME.MEINE.DOMAENE"],"id": Start: 10:14:30:443 Time: 00:00:00:077
[6] [Dez 01 10:14:30:593] [etc-hosts-test] JSON service request https://OPSISERVERIPADRESSE:4447/rpc getProduct_hash
[6] [Dez 01 10:14:30:662] [etc-hosts-test] JSON Bench for getProduct_hash "params":["etc-hosts-test","OPSISERVERNAME.MEINE.DOMAENE"],"id":1 Start: 10:14:30:593 Time: 00:00:00:069
[6] [Dez 01 10:14:30:781] [etc-hosts-test] JSON service request https://OPSISERVERIPADRESSE:4447/rpc productOnClient_getObjects
[6] [Dez 01 10:14:30:846] [etc-hosts-test] JSON Bench for productOnClient_getObjects "params":["",{"clientId":"MEINHOSTNAME.MEINE.DOMAENE","product Start: 10:14:30:781 Time: 00:00:00:065
[5] [Dez 01 10:14:30:982] [etc-hosts-test] scriptname: "setup.ins", special path: "p:\etc-hosts-test\"
[6] [Dez 01 10:14:30:983] [etc-hosts-test] JSON service request https://OPSISERVERIPADRESSE:4447/rpc productOnClient_updateObject
[6] [Dez 01 10:14:31:088] [etc-hosts-test] JSON Bench for productOnClient_updateObject "params":[{"clientId":"MEINHOSTNAME.MEINE.DOMAENE","actionResu Start: 10:14:30:982 Time: 00:00:00:106
[1] [Dez 01 10:14:31:264] [etc-hosts-test] 
[1] [Dez 01 10:14:31:264] [etc-hosts-test] ============ Version 4.11.5.12 script "p:\etc-hosts-test\setup.ins"
[1] [Dez 01 10:14:31:264] [etc-hosts-test]              used script encoding: cp1252
[1] [Dez 01 10:14:31:264] [etc-hosts-test]              used system encoding: cp1252
[1] [Dez 01 10:14:31:264] [etc-hosts-test]              start: 2015-12-01  10:14:31 
[1] [Dez 01 10:14:31:265] [etc-hosts-test]              installing product: etc-hosts-test_1-1
[1] [Dez 01 10:14:31:265] [etc-hosts-test]              on client named    "MEINHOSTNAME.MEINE.DOMAENE"
[1] [Dez 01 10:14:31:266] [etc-hosts-test]              loggedin user    "MEINUSERNAME"
[1] [Dez 01 10:14:31:266] [etc-hosts-test]              opsi-script running as    "SYSTEM"
[1] [Dez 01 10:14:31:266] [etc-hosts-test]              opsi-script running with admin privileges
[1] [Dez 01 10:14:31:266] [etc-hosts-test]              opsi-script running in standard script mode
[1] [Dez 01 10:14:31:266] [etc-hosts-test] executing: "C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst\winst32.exe"
[1] [Dez 01 10:14:31:266] [etc-hosts-test] system infos:
[1] [Dez 01 10:14:31:282] [etc-hosts-test] MEINEMACADRESSE  -  PC hardware address
[1] [Dez 01 10:14:31:282] [etc-hosts-test] MEINHOSTNAME.ad.MEINE.DOMAENE  -  IP name 
[1] [Dez 01 10:14:31:282] [etc-hosts-test] MEINEIPADRESSE  -  IP address
[1] [Dez 01 10:14:31:282] [etc-hosts-test] DEU  -  System default locale 
[1] [Dez 01 10:14:31:282] [etc-hosts-test] MS Windows 6.1 64 Bit
[1] [Dez 01 10:14:31:282] [etc-hosts-test] opsi service version : 4
[1] [Dez 01 10:14:31:282] [etc-hosts-test] 
[6] [Dez 01 10:14:31:284] [etc-hosts-test] Registry key [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion]  opened
[6] [Dez 01 10:14:31:284] [etc-hosts-test] Key closed
[5] [Dez 01 10:14:31:418] [etc-hosts-test] 
[5] [Dez 01 10:14:31:418] [etc-hosts-test] Execution of PatchHosts_test
[5] [Dez 01 10:14:31:418] [etc-hosts-test]     FILE C:\Windows\system32\drivers\etc\hosts
[6] [Dez 01 10:14:31:429] [etc-hosts-test]   Set Hostname "test-pc" for ipAddress 192.168.1.188
[6] [Dez 01 10:14:31:698] [etc-hosts-test]   C:\Windows\system32\drivers\etc\hosts saved back with 8 Bit system encoding
[1] [Dez 01 10:14:31:701] [etc-hosts-test] ___________________
[1] [Dez 01 10:14:31:701] [etc-hosts-test] script finished
[1] [Dez 01 10:14:31:701] [etc-hosts-test] 0 errors
[1] [Dez 01 10:14:31:701] [etc-hosts-test] 0 warnings
[1] [Dez 01 10:14:31:701] [etc-hosts-test] 
[1] [Dez 01 10:14:31:701] [etc-hosts-test] installed product: etc-hosts-test Version: 1-1
[1] [Dez 01 10:14:31:701] [etc-hosts-test] 
[6] [Dez 01 10:14:31:701] [etc-hosts-test] JSON service request https://OPSISERVERIPADRESSE:4447/rpc setProductActionRequest
[6] [Dez 01 10:14:31:785] [etc-hosts-test] JSON Bench for setProductActionRequest "params":["etc-hosts-test","MEINHOSTNAME.MEINE.DOMAENE","updat Start: 10:14:31:701 Time: 00:00:00:084
[1] [Dez 01 10:14:31:915] [etc-hosts-test] product etc-hosts-test set to update
[1] [Dez 01 10:14:31:915] [etc-hosts-test] Update script name: 
[1] [Dez 01 10:14:31:915] [etc-hosts-test] we have no update script
[6] [Dez 01 10:14:31:916] [etc-hosts-test] JSON service request https://OPSISERVERIPADRESSE:4447/rpc productOnClient_updateObject
[6] [Dez 01 10:14:32:019] [etc-hosts-test] JSON Bench for productOnClient_updateObject "params":[{"clientId":"MEINHOSTNAME.MEINE.DOMAENE","actionResu Start: 10:14:31:915 Time: 00:00:00:104
... was man noch überprüfen kann:
Du bist sicher, dass Dein Skript als "SYSTEM" läuft (Zeile "opsi-script running as" in der Logdatei)?
Du bist sicher, dass kein anderes Programm die "%SystemRoot%\system32\drivers\etc\hosts" geöffnet hat?
Du bist sicher, dass Deine "%SystemRoot%\system32\drivers\etc\hosts" eine korrekte Syntax hat?
Als Administrator kannst Du die "%SystemRoot%\system32\drivers\etc\hosts" verändern?
Als Administrator kannst Du unter "%SystemRoot%\system32\drivers\etc\" eine neue Datei anlegen? (Ich könnte mir vorstellen, dass winst hier eine temporäre Datei anlegen will.)
Benutzeravatar
SisterOfMercy
Beiträge: 1524
Registriert: 22 Jun 2012, 19:18

Re: Host einträge über OPSI ändern

Beitrag von SisterOfMercy »

D1Ck3n hat geschrieben:

Code: Alles auswählen

(497)     [4] [Nov 30 14:31:08:719] [host_datei]   Warning: C:\Windows\system32\drivers\etc\hosts could not be saved back - will retry, error message: "Unable to create file "C:\Windows\system32\drivers\etc\hosts""
(498)     [4] [Nov 30 14:31:08:819] [host_datei]   Warning: C:\Windows\system32\drivers\etc\hosts could not be saved back - will retry, error message: 
Huh? What have you been doing to your environment? Anyway, you are trying to send requests for an ip address to a particular hostname, aren't you? Hmm, I'm not really sure that works.

The other way around, to send requests for a particular domain to localhost:

Code: Alles auswählen

setAddr microsoft.com 127.0.0.1
Don't use this for stuff like facebook (and others), somewhere I've found an excellent tutorial for pfSense, but that also works with other firewalls with a blocklist. You query a routing database (based on BGP??), with a particular AS-number. The result is a list of IP adressess that host currently uses.

Let's block dropbox:

Code: Alles auswählen

IPv4:
whois -h whois.radb.net -- '-i origin AS19679' | grep ^route | grep -v route6 | cut -d" " -f7 > dropbox.txt
IPv6:
whois -h whois.radb.net -- '-i origin AS19679' | grep ^route6 | cut -d" " -f6 > dropbox6.txt
Use a cronjob to update those textfiles, and use those textfiles as a blocklist :D

Ok, a bit offtopic, but hey.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Antworten