Ukazi na strežniku
Program prehoda dbgwsvc.exe (oziroma dotnet dbgwsvc.dll) ne teče le kot storitev, temveč
pozna tudi ukaze, ki se izvedejo z isto konfiguracijo in v istem okolju kot prehod, ne zaženejo
spletnega strežnika in se nato končajo. Izvedete jih lahko, medtem ko prehod teče; spremembe v
shrambi prehod prevzame brez ponovnega zagona. Ukazi potrebujejo pravice skrbnika računalnika.
Sintaksa
Wkl.Data.Gateway <ukaz> [--možnost vrednost]… [--contentRoot DIR] [--environment NAME]
--contentRoot in --environment kot pri prehodu določata, katera konfiguracija velja. Neznano
možnost vsak ukaz zavrne (izhodna koda 2), da tipkarska napaka ne povzroči nenamerne spremembe.
Parametri
Prvi skrbnik in reševanje
Prvega skrbnika ustvarite z ukazom na strežniku, zaklenjeno skrbništvo pa odklenete z ukazi na strežniku. Oboje potrebuje datoteko shrambe in glavni ključ, torej pravice skrbnika tega računalnika; to je dokaz, ki ga nobena zahteva prek omrežja ne more predložiti. Ukazi berejo isto konfiguracijo kot prehod in jih lahko izvedete, medtem ko prehod teče; prehod spremembo prevzame brez ponovnega zagona.
dbgwsvc init-admin --name "Erika Muster"
init-admin ustvari, kar manjka:
- skrbniško shrambo, če je še ni (s podatki o delovanju iz konfiguracijske datoteke, kot pri prvem zagonu prehoda);
- pravilo
verwaltungzadminin vsemi metodami ali pa uporabi prvo obstoječe pravilo zadmin, ki ni samo za branje in navaja*ali vse metode skrbništva (GET,POST,PATCH,DELETE); - osebo s tem pravilom (obstoječa oseba z istim imenom se vklopi);
- osebni ključ, ki ga ukaz prikaže enkrat.
2FA (dvostopenjsko preverjanje identitete) oseba nastavi ob prvi prijavi v aplikacijo za upravljanje (glejte
Nastavitev ob prvi prijavi). Z --totp se to zgodi
takoj v konzoli: ukaz prikaže kodo QR in ključ za ročni vnos ter shrani šele, ko se ujema koda iz
aplikacije. Dnevnik sprememb vsako od teh sprememb navede z oznako Konsole (Rechner, Konto).
| Ukaz | Učinek |
|---|---|
init-admin [--name N] [--windows RAČUN] [--no-key] [--label T] [--totp] [--force] [--service-account RAČUN] | Prvi skrbnik kot zgoraj; brez --name ukaz vpraša za ime. Če shramba manjka, jo ustvari, berljivo tudi za račun iz --service-account (račun, pod katerim bo tekel prehod). --windows nastavi lastni račun Windows osebe in ga prek njegovega SID preslika na pravilo za upravljanje (WindowsAccounts); če prijava z računom Windows ni vklopljena, vas ukaz na to opozori. --no-key deluje le skupaj z --windows, glejte Ustvarjanje prvega skrbnika. Zavrnjeno (izhodna koda 2), dokler ima kdo dostop do skrbništva, razen z --force (za odklepanje) |
admin-status | Kdo ima dostop do skrbništva in kaj manjka drugim (zaklenjen, ni veljavnega ključa, ni 2FA); izhodna koda 1, če dostopa nima nihče. Kot „ima dostop“ šteje tudi, kdor ima le račun Windows brez dodelitve ali le mirujoč oziroma na omrežja vezan ključ; v dvomu preverite z dejansko prijavo |
reset-totp --person N | Odstrani 2FA osebe in omogoči nastavitev ob naslednji prijavi |
list-sign-in-rules | Pravila prijave z identifikatorjem |
remove-sign-in-rule --id N | Odstrani pravilo prijave, na primer pravilo Deny, ki zaklene skrbništvo |
Tipični primeri: izgubljen telefon z aplikacijo Authenticator → reset-totp. Zadnji skrbniški ključ
je zaklenjen ali potekel → init-admin --name … --force izda novega. Pravilo izbrisano →
init-admin --force ga znova ustvari. Pravilo prijave zaklene vse → list-sign-in-rules, nato
remove-sign-in-rule.
Osebe in ključi
dbgwsvc save-person --name "Erika Muster" [--rule fachdaten-lesen | --no-rules] [--login erika | --no-login] [--disabled | --enabled] dbgwsvc issue-key --person "Erika Muster" --label "Excel Bericht" --read-only --database fachdaten --from 10.0.0.0/8 [--expires 2026-12-31] dbgwsvc revoke-key --id kAb3dE5fG dbgwsvc list-keys
save-person ustvari osebo ali pri obstoječi spremeni samo navedeno; vse drugo ostane. Brez drugih
možnosti je nova oseba vklopljena, brez prijave SQL Server in brez pravil. --rule nadomesti pravila v
celoti, --no-rules odstrani vsa, --no-login odstrani prijavo SQL Server, --enabled osebo znova
vklopi. Vsako pravilo mora biti v skrbniški shrambi; neznano ime ukaz zavrne (izhodna koda 2) in
navede obstoječa pravila. V dnevniku sprememb je sprememba zapisana kot Konsole (računalnik, račun). --rule, --database, --from
in --except-from se lahko pojavijo večkrat. Neznana možnost (na primer --rules) je zavrnjena, da
tipkarska napaka ne izda ključa brez predvidene omejitve. issue-key ključ izpiše enkrat; list-keys
prikaže identifikator, osebo, zadnje 4 znake, stanje, potek, zadnjo uporabo, omejitve in oznako,
nikoli pa ključa. Izhodne kode kot pri reseal-store: 0 opravljeno, 1 vsega ni bilo mogoče
opraviti (na primer neznan identifikator), 2 shramba, nastavitev ali ukazna vrstica ni uporabna.
reseal-store
dbgwsvc reseal-store (oziroma dotnet dbgwsvc.dll reseal-store)
Vsako vrednost skrbniške shrambe, ki je še šifrirana z nadomeščenim glavnim ključem
(Gateway:Store:RetiredKeys), na novo šifrira s trenutnim ključem (MasterKey, MasterKeyId): nize
povezave virov podatkov, podatke za izračun kod 2FA in licenčni ključ geolokacijske zbirke. Vse se zgodi v
eni transakciji; časi sprememb ostanejo. Ukaz ne zažene spletnega strežnika in se nato konča. Izvedete
ga lahko, medtem ko prehod teče; prehod nato shrambo znova naloži.
Pogoj: ista konfiguracija kot prehod, torej izveden v programski mapi kot delovni mapi, s trenutnim in vsemi nadomeščenimi ključi. Celoten postopek opisuje navodilo Zamenjava glavnega ključa.
Izhodna koda reseal-store | Pomen |
|---|---|
0 | Vse vrednosti so zapečatene s trenutnim ključem |
1 | Posameznih vrednosti ni bilo mogoče odpreti in so ostale nespremenjene; izpis navede vire podatkov. Ostale so na novo zapečatene |
2 | Skrbniška shramba ni nastavljena ali so nastavitve neuporabne (sporočilo navede nastavitev) |
Več ključev ne nadomesti izgubljenega ključa: vrednosti, katerih ključ ni več na voljo, je mogoče le znova vnesti.
backup-store
Varnostno kopiranje shrambe. Med delovanjem z ukazom backup-store, zagnanim z isto
konfiguracijo in istim korenom vsebine kot prehod:
dbgwsvc backup-store --to "E:\Sicherung\gateway-2026-10-01.db" # ali: dotnet dbgwsvc.dll backup-store --to …
Ukaz ne zažene spletnega strežnika. Z VACUUM INTO iz SQLite zapiše eno samo, notranje skladno kopijo stanja, ki ga vidi transakcija za
branje, tudi medtem ko prehod piše. Nato kopijo preveri s PRAGMA integrity_check in se konča.
Navadno kopiranje datoteke ne zadošča: poleg nje sta datoteki -wal in -shm, kopija, narejena med
pisanjem, pa lahko vsebuje nedokončano stanje.
- Glavni ključ ni potreben. Shramba se odpre samo za branje; zapečatene vrednosti gredo nespremenjene v kopijo. Opravilo varnostnega kopiranja tako ne potrebuje dostopa do ključa, kopija pa brez njega ne odpre nobene povezave s podatkovno zbirko.
- Berljivo samo za račun, ki ukaz izvaja, in za skrbnike. Ciljna datoteka se ustvari prazna in s tem seznamom dostopa, brez dedovanja od mape, preden SQLite vanjo piše; v Linuxu jo bere le njen lastnik. Računa storitve na seznamu ni: varnostna kopija ni shramba v delovanju. Imena, pravila, osebe in dnevnik sprememb so v njej berljivi, zato jo hranite na varnem kot vsako drugo varnostno kopijo.
- Ničesar ne prepiše. Če cilj že obstaja, je ukaz zavrnjen; vsaka varnostna kopija dobi novo ime. Mapa cilja mora obstajati.
- Ničesar ne spremeni. Pretvorba različice sheme se ne izvede; kopija ima različico datoteke.
- Kopira tudi datoteko dnevnikov. Datoteko dnevnikov (
Gateway:Store:LogPath, sicer-logspoleg shrambe) ukaz kopira na enak način poleg cilja, s pripono-logsv imenu:--to "E:\Varnostne\gateway-2026-10-01.db"ustvari tudigateway-2026-10-01-logs.db. Ko ju vrnete na prvotno mesto, se obe odpreta kot izvirnik. Če datoteke dnevnikov ni, kopira le shrambo in to sporoči. Nastaneta obe kopiji ali nobena.
Izhodna koda backup-store | Pomen |
|---|---|
0 | Kopiji zapisani in preverjeni; izpis navede cilja, različico sheme in velikosti |
1 | Pisanje ali preverjanje ni uspelo (disk, dovoljenja, preverjanje); nepopolne kopije se izbrišejo |
2 | Shramba ni nastavljena, datoteka shrambe manjka, --to manjka, cilj obstaja ali njegova mapa manjka |
--to-folder DIR zapiše varnostno kopijo pod imenom po času (gateway-<LLLLMMDD-hhmmss>.db, poleg nje
gateway-<LLLLMMDD-hhmmss>-logs.db) in ustvari mapo; z --skip-missing shramba, ki še ne obstaja, ni napaka (izhodna koda 0).
Oboje uporablja namestitveni paket za varnostno kopijo pred posodobitvijo.
Geolokacijska zbirka
dbgwsvc update-geoip prenese datoteke geolokacijske zbirke iz vira, izbranega v skrbništvu
(`set-geoip-source`).
dbgwsvc import-geoip --file DATOTEKA [--source dbip-lite|maxmind] [--force] prevzame
datoteko, ki je na strežnik prišla po drugi poti (.mmdb, .mmdb.gz ali .tar.gz podjetja MaxMind),
za strežnik brez dostopa do interneta. --source določi navedbo vira, --force pa sprejme tudi starejšo
ali enako staro datoteko.
Oba ukaza datoteko shranita v mapo geolokacijske zbirke (Gateway:SignInLog:GeoIp:Folder); prehod,
ki teče, jo začne uporabljati v eni minuti. Izpis za vsako datoteko navede vrsto, datum izdelave in
ali je bila prevzeta.
| Izhodna koda | Pomen |
|---|---|
0 | Datoteke prevzete ali že posodobljene |
1 | Zavrnjeno; izpis navede razlog (ni vira, vir zavrne, datoteka ni uporabna ali je starejša) |
2 | Skrbniška shramba ni nastavljena, nastavitve niso uporabne, manjka možnost ali datoteke pod --file ni mogoče brati |
Dnevnik obremenitve
dbgwsvc export-load --to DATOTEKA [--days N] zapiše obremenitev zadnjih N dni (privzeto
30, največ Gateway:LoadLog:HourDays) kot datoteko JSON v enaki obliki kot skrbniški ukaz
`export-load`: oblike, urne vrednosti in namige, brez
oseb, izvora in vrednosti. Obstoječe datoteke ukaz ne prepiše. Ker teče brez kataloga prehoda, v
datoteki manjka namig unindexedFilter.
| Izhodna koda | Pomen |
|---|---|
0 | Datoteka zapisana |
2 | Skrbniška shramba ni nastavljena, nastavitve so neuporabne, --to manjka, --days je zunaj obsega ali datoteka že obstaja |
setup-host in setup-remove
dbgwsvc setup-host [--program DIR] [--data DIR] [--service-account RAČUN|none]
[--mode standalone|iis] [--port 8434] [--https-port 8433]
[--certificate NAME [--self-signed]] [--access internal|internet]
[--networks 10.0.0.0/8,...] [--admin-from-outside deny|totp]
[--firewall] [--pq-hybrid] [--installation-name NAME]
[--sql-server STREŽNIK [--sql-databases ZBIRKA,...] [--sql-roles readwrite|read|none]]
dbgwsvc setup-remove [--remove-data DIR]
| Možnost | Privzeto | Pomen |
|---|---|---|
--program DIR | mapa programa | Programska mapa; vanjo ukaz zapiše appsettings.Production.json |
--data DIR | %ProgramData%\Wkl.Data.Gateway | Podatkovna mapa s shrambo in geheim\hauptschluessel.key; dovoljenja samo za skrbnike, sistem in račun storitve. V njej je mapa updates za posodobitve podatkovnih zbirk: spreminjajo jo samo skrbniki in sistem, račun storitve jo bere |
--service-account RAČUN | none | NT SERVICE\Wkl.Data.Gateway | Račun, pod katerim teče prehod; navidezni račun mora biti kot storitev že registriran |
--mode standalone | iis | standalone | standalone: prehod sam sprejema HTTPS. iis: HTTPS sprejema IIS in posreduje na 127.0.0.1; ukaz vpiše 127.0.0.1 in ::1 kot zaupanja vredna posrednika, nastavi AuthMode na PersonalKey (brez prijave Windows) in zapiše predlogo iis\web.config |
--port N | 8434 | Vrata HTTP, samo na 127.0.0.1 |
--https-port N | 8433 | Vrata HTTPS (samo standalone) |
--certificate NAME | – | Subjekt potrdila v shrambi računalnika; brez te možnosti ni HTTPS |
--self-signed | izklopljeno | za --certificate ustvari samopodpisano potrdilo; samo za preizkuse, skupaj z --access internet zavrnjeno |
--access internal | internet | internal | internal ne ustvari pravil prijave; internet ustvari pravila prijave za zahteve od zunaj --networks, vendar le, dokler skrbniška shramba še ne obstaja, nato veljajo njena pravila: skrbništvo zavrnjeno ali z 2FA (--admin-from-outside), prijava z računom Windows in SQL Server do podatkov z 2FA, ključ storitve zavrnjen. Osebni ključi ostanejo brez obveznosti, ker se omejujejo za vsak ključ posebej |
--networks SEZNAM | – | Omrežja podjetja, ločena z vejico; obvezno pri internet in osnova pravila požarnega zidu. Brez omrežij pravilo pri internal dopusti vsako omrežje |
--admin-from-outside deny | totp | deny | Skrbništvo od zunaj zavrnjeno ali z 2FA |
--firewall | izklopljeno | dohodno pravilo „Wkl.Data.Gateway HTTPS“ za vrata HTTPS (pri iis 443), pri internal omejeno na --networks |
--pq-hybrid | izklopljeno | vklopi hibridno postkvantno izmenjavo ključev v Windows (za ves računalnik, glejte HTTPS in potrdilo) |
--installation-name NAME | – | Ime namestitve v aplikaciji Authenticator (Gateway:Store:TotpIssuer) |
--sql-server STREŽNIK | – | zapiše skript za prijavo računa storitve na tem SQL Serverju v podatkovno mapo kot dienstkonto-anmeldung.sql, kot `service-login` z --script. Če to ni mogoče (navidezni račun, SQL Server na drugem računalniku, računalnik ni v domeni), ukaz to sporoči in nastavitev vseeno dokonča |
--sql-databases SEZNAM | – | podatkovne zbirke skripta, ločene z vejico |
--sql-roles readwrite | read | none | readwrite | vloge novega uporabnika v skriptu |
Izhodna koda 0: nastavljeno (potrdilo, ki še ni v shrambi, ni napaka; prehod ga uporabi, ko se
pojavi); 1: korak ni uspel; 2: napačna ukazna vrstica. Pri vsaki kodi razen 0 paket spremembe
razveljavi.
Zavrnjeni so med drugim --access internet brez omrežij, omrežje z nastavljenimi biti gostitelja ali
v kratkem, šestnajstiškem ali osmiškem zapisu (192.168, 0x7f.0.0.1, 017.0.0.1),
--self-signed skupaj z --access internet in --installation-name z več kot 64 znaki, dvopičjem ali
narekovaji. Brez --installation-name ostane Gateway:Store:TotpIssuer pri privzeti vrednosti
prehoda.
service-login
Prijava računa storitve v SQL Server in uporabnik v vsaki podatkovni zbirki: kot skript za skrbnike podatkovnih zbirk ali takoj ustvarjeno z računom Windows osebe, ki zažene ukaz (ne z računom storitve). Za razliko od drugih ukazov ne bere konfiguracije in ne potrebuje skrbniških pravic na računalniku, le dovoljenja v SQL Serverju.
dbgwsvc service-login --server STREŽNIK [--database ZBIRKA[,ZBIRKA...]] [--roles readwrite|read|none]
[--account RAČUN] [--script DATOTEKA] [--apply] [--trust-server-certificate]
| Možnost | Privzeto | Pomen |
|---|---|---|
--server STREŽNIK | – | SQL Server kot v nizu povezave, na primer ., .\SQLEXPRESS ali tcp:db01,1433; brez ;, =, narekovajev in zavitih oklepajev |
--database SEZNAM | – | podatkovne zbirke, ločene z vejico; brez možnosti samo prijava |
--roles readwrite | read | none | readwrite | vloge novega uporabnika: db_datareader in db_datawriter, samo db_datareader ali nobena |
--account RAČUN | NT SERVICE\Wkl.Data.Gateway | račun, pod katerim teče storitev. Na drugem računalniku se prijava pri navideznem računu nanaša na račun računalnika DOMENA\RAČUNALNIK$; zunaj domene to ni mogoče (vrnjena vrednost 1) |
--script DATOTEKA | – | zapiše skript v to datoteko (UTF-8); brez --script in --apply na konzolo |
--apply | izklopljeno | ustvari, namesto da le zapiše skript: z overjanjem Windows se prijavi v master in izvede korake |
--trust-server-certificate | izklopljeno | pri ustvarjanju sprejme potrdilo SQL Serverja, ki ga ni izdal zaupanja vreden izdajatelj (SQL Server Express ustvari svoje) |
Skript ne spremeni ničesar, kar že obstaja: obstoječa prijava (poiskana po računu Windows, torej tudi
po preimenovanju) in obstoječi uporabnik ostaneta, kakršna sta, tudi z vlogami. Drugi zagon zato ne
spremeni ničesar. Vsaka podatkovna zbirka je svoja transakcija: uporabnik nastane skupaj z vlogami ali pa
sploh ne. Imena pridejo v SQL Server kot vrednosti in tam s QUOTENAME postanejo identifikatorji.
Z --apply konzola pokaže eno vrstico na korak:
OK Anmeldung NT SERVICE\Wkl.Data.Gateway: angelegt OK Benutzer in [Fachdaten] (db_datareader, db_datawriter): vorhanden, unveraendert FEHLER Benutzer in [Lager] (db_datareader, db_datawriter): 916: ...
Vrstica FEHLER (napaka) navede številko napake SQL Serverja. Če ne uspe že prijava, podatkovne zbirke
ne sledijo. Vrnjena vrednost 0: vse ustvarjeno ali že obstaja; 1: korak zavrnjen ali strežnik ni
dosegljiv; 2: napačna ukazna vrstica.
acme-client
dbgwsvc acme-client
Navede wacs.exe, s katerim naroča Zertifikat-LetsEncrypt.cmd: pot v prvi vrstici izpisa, razlog v
toku napak. To je obstoječi win-acme, če nanj kaže njegovo načrtovano opravilo win-acme renew (…)
(od različice 2.2.9 naprej), sicer priloženi v programski mapi. Vrnjena vrednost 0: pot navedena;
1: obstoječi win-acme je prestar ali njegove različice ni mogoče prebrati; 2: napačna ukazna vrstica.
Za branje opravil potrebuje skrbniške pravice; brez njih velja priloženi.