Schrijven in het register lukt niet.

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Stanleyvc
  • Registratie: Mei 2004
  • Laatst online: 25-07-2024
Ik probeer vanuit C# de naam van een Netwerk adapter in het register aan te passen, met de volgende code:

code:
1
2
3
4
RegistryKey rKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + guid + "\\Connection",true);               
rKey.OpenSubKey("Name", true); //true is for WriteAble.
rKey.SetValue("Name", name, RegistryValueKind.String);
rKey.Close();


Maar krijg dan de melding: System.Security.SecurityException: 'Requested registry access is not allowed.'

Wat doe ik fout? 8)7

Alvast bedankt.

Alle reacties


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je zult 't moeten doen met admin rechten vermoed ik, dus je applicatie starten als administrator ;)
Maar voor een volgende keer: Die vragen die er staan wanneer je een nieuw topic opent staan er natuurlijk niet voor niets ;)
Mijn vraag
...

Relevante software en hardware die ik gebruik
...

Wat ik al gevonden of geprobeerd heb
...

[ Voor 61% gewijzigd door RobIII op 22-10-2023 22:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Stanleyvc
  • Registratie: Mei 2004
  • Laatst online: 25-07-2024
Ok.
Bedankt, maar wanneer ik het programma als admin laat draaien komt deze met de bekende popup en dat is ook niet gewenst.

Hoe kan ik dat oplossen?

Alvast bedankt.

Acties:
  • +4 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Niet. Als alles en iedereen zomaar in 't register kon schrijven op plekken waar Admin rechten benodigd zijn konden we heel dat rechten "gedoe" natuurlijk wel afschaffen ;)

M.a.w. als jij wil "klooien" in systeeminstellingen zul je dat moeten doen met de juiste rechten en die krijg je alleen maar als je of al admin bent, of de UAC prompt accordeert (of een zeroday gebruikt o.i.d. :+ ).

Je zou een installer kunnen gebruiken (die vragen vrij doorgaans wel om admin rechten) en dan een service installeren met localsystem rechten o.i.d. en dan je applicatie met die service laten babbelen en die service de spullen in 't register laten regelen. Maar dat is disaster waiting to happen en - to be honest - als je deze vragen stelt ben je daar nog niet klaar voor ;) Niet vervelend bedoeld verder ofzo, maar je zet je systeem (of dat van je klanten) potentieel wagenwijd open voor god-knows-what. Hoe dan ook, zélfs dan krijg je minimaal één keer de UAC prompt.

[ Voor 38% gewijzigd door RobIII op 23-10-2023 17:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • biomass
  • Registratie: Augustus 2004
  • Laatst online: 16-09 23:23
Draait het in een context die die rechten van te voren al heeft? Software die je interactief start en het registry gaat aanpassen, niet vreemd dat je de daar de elevation prompt voor krijgt?

Acties:
  • 0 Henk 'm!

  • Stanleyvc
  • Registratie: Mei 2004
  • Laatst online: 25-07-2024
Ik moet vanuit een programma wat ik met C# maak, alleen de naam van een netwerk adapter aan kunnen passen. De rest doe ik vanuit WMI.
De naam van de adapter kan blijkbaar alleen in het register worden aangepast.

Met de opdracht: "rKey.OpenSubKey("Name", true);" zou ik schrijf rechten moeten krijgen in de sub key "Name" maar dat blijkt dus niet te werken?

Acties:
  • 0 Henk 'm!

  • biomass
  • Registratie: Augustus 2004
  • Laatst online: 16-09 23:23
Als je een beheerstaak moet invullen met scripting, waarom dan niet met Powershell?
https://devblogs.microsof...ters-by-using-powershell/
Het niet krijgen van de schrijfrechten heeft er mee te maken dat je wat in de CurrentControlSet tak van het register wil aanpassen. Dat willen malwareschrijvers ook nagenoeg altijd...

Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Stanleyvc schreef op maandag 23 oktober 2023 @ 17:07:
Met de opdracht: "rKey.OpenSubKey("Name", true);" zou ik schrijf rechten moeten krijgen in de sub key "Name" maar dat blijkt dus niet te werken?
Dat werkt (vast) wel, maar voor die schrijfrechten zul je éérst admin moeten "zijn".

@biomass / TS: Het maakt verder weinig uit of je het doet vanuit C# of Powershell of assembly; je zult eerst "langs" het OS moeten, en het OS vindt dat je eerst elevated privileges (ofwel: admin) zult moeten hebben voordat je aan die registersleutel mag komen. En dus zul je je proces elevated moeten starten of iig voordat je die registry key gaat aanpassen elevated moeten maken. Behalve wat ik eerder noemde (het 'uitbesteden' aan een service die het voor je doet, die al elevated privileges heeft of een zeroday) is daar geen omweg voor. En zélfs als je een service zou bouwen waaraan je het uitbesteedt: die kun je ook alleen maar installeren en de juiste rechten geven als je admin bent - dus je ontkomt niet aan, op z'n minst, eenmalig die UAC. En maar goed ook want anders zouden kwaadwillenden ook vanalles en nogwat kunnen uitspoken in 't register. "Ja, maar mijn programma is kei lief O+ ". Vast wel, maar dat weet Windows / Microsoft niet ;) Je zou eens kunnen bellen met Satya of je een uitzondering kunt krijgen :+

[ Voor 15% gewijzigd door RobIII op 23-10-2023 17:34 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • biomass
  • Registratie: Augustus 2004
  • Laatst online: 16-09 23:23
@RobIII De MS developer uit dat genoemde blog weet het zelf ook (niet), strepen en schuingedrukt door mij:
"Using the NetAdapter module
Renaming a network adapter via Windows PowerShell requires admin rights. Unfortunately, the Help does not mention this. You just have to know this. Luckily, an error message appears when attempting to run the command without admin rights. The message is instructive, and it informs you that access is denied. It is shown here:"

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
biomass schreef op maandag 23 oktober 2023 @ 18:06:
@RobIII De MS developer uit dat genoemde blog weet het zelf ook (niet), strepen en schuingedrukt door mij:
[...]
De foutmelding is toch al vanaf de topicstart duidelijk :?
SecurityException: 'Requested registry access is not allowed.'
M.a.w. Je hebt admin rechten nodig. Of je dat nou met powershell of whatever doet is niet relevant natuurlijk; zou mooi zijn als je met powershell die rechten niet nodig had en met C# wel. Dan gebruikte elke malwaremaker gewoon powershell (voor zover ze dat niet al doen :P ).

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1