[Win2k3 AD] Local Admin wachtwoord aanpassen via GPO

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
Ik wil graag het lokale admin wachtwoord aanpassen op zo'n 400 werkstations met Windows XP SP2.

Dit in combinatie met een Active Directory en een Windows 2003 domain contoller.

Ik weet dat er meerdere methodes zijn voor het wijzigen van het lokale wachtwoord van meerdere pc's tegelijkertijd.

Maar mijn vraag aan jullie, welke methode gebruiken jullie en welke heeft de voorkeur voor mijn situatie? Helaas is er geen GPO optie voor, maar ik heb het volgende kunnen vinden :

- Visual Basic login script die het lokale wachtwoord aanpast (security risk?)
- Bat file met Net User localadminaccount newpassword (security risk?)
- cusrmgr.exe -u Administrator -m \\pc1 -P newpass (ben ik lang bezig)
- Software oplossingen (licenties enzo..)

Ik denk dat ik toch moet gaan kiezen voor de eerste of tweede oplossing en dit via een encryptie laten werken? Of 's avonds doen wanneer niemand aanwezig is? Hopen dat hierna niets gecached wordt op de werkstations wanneer ik de login script heb verwijderd.

Ik ben benieuwd hoe jullie het doen en of jullie de source ook willen delen

Mijn V&A


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ik heb een script geschreven dat de Active Directory leegleest (dsquery computer), vervolgens aan de hand van de tijd en computernaam een 'uniek' password maakt, daarna wordt met 'psexec' het password gewijzigt en dit 'unieke' password wordt in een CSV file opgeslagen :)

  • Marlibica
  • Registratie: Augustus 2002
  • Laatst online: 17-11-2025

Marlibica

Tijd voor een ondertitel.

Je kunt ook via een policy het locale administrator account disablen

Sign here against sigs


  • Workaholic
  • Registratie: Februari 2003
  • Niet online
elevator schreef op donderdag 27 september 2007 @ 16:48:
Ik heb een script geschreven dat de Active Directory leegleest (dsquery computer), vervolgens aan de hand van de tijd en computernaam een 'uniek' password maakt, daarna wordt met 'psexec' het password gewijzigt en dit 'unieke' password wordt in een CSV file opgeslagen :)
Ik ben heel benieuwd of ik hier de source van mag zien?
Marlibica schreef op donderdag 27 september 2007 @ 16:55:
Je kunt ook via een policy het locale administrator account disablen
Niet helemaal de bedoeling, wil het wachtwoord wijzigen, niet de hele account uitschakelen :)

Mijn V&A


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Audi-Addict schreef op donderdag 27 september 2007 @ 18:39:
Ik ben heel benieuwd of ik hier de source van mag zien?
Ik zal een licht gewijzigde (dus ongeteste :P ) versie posten.

Als eerste moet je een script hebben dat het password van de lokale administrator kan wijzigen en de PC waarop dit gewijzigd moet worden als eerste parameter kan nemen.

Je doet dan bijvoorbeeld zoiets:
@ECHO OFF
REM ** Changes the password of an computer account given as the first parameter
REM **
REM ** Parameters: Computername to change password for
REM **
REM ** Files it uses:
REM **    - changelog.txt  - file of all output
REM **    - pwdlist.csv    - list of all new passwords
REM **

REM ** Reset some variables
SET FIXEDALREADY=
SET UNIQUEPASS=

REM ** ensure ourselves that this computer hasn't already changed
FOR /F %%i in ('FINDSTR /I "%1," pwdlist.csv') do IF %%i NEQ "" SET FIXEDALREADY=TRUE
IF "%FIXEDALREADY%"=="TRUE" ECHO "%1" has already an unique password... (%FIXEDALREADY%)
IF "%FIXEDALREADY%"=="TRUE" GOTO END

REM ** then get the unique password
FOR /F "tokens=3,4,5 delims=.:, " %%i in ("%TIME%") do SET UNIQUEPASS=%%i%%j%%k%1

REM ** show something to the user
ECHO Changing password of "%1" to "%UNIQUEPASS%"

REM ** Changing password of "%1" to "%UNIQUEPASS%"
PSEXEC \\%1 net user administrator %UNIQUEPASS% >>changelog.txt

REM ** and write this info to a CSV file, but only do so 
REM ** if the psexec utility reported success. 
IF "%ERRORLEVEL%" EQU "0" ECHO %1,%UNIQUEPASS% >>pwdlist.csv

:END


Vervolgens moet je een lijst hebben van alle computers in je netwerk hebben, bijvoorbeeld door dit uit te voeren:
for /f "tokens=2 delims==," %%i in ('dsquery computer "ou=Clients,dc=domain,dc=lan"') do @call change_pwd.bat %%i

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
Het wil helaas niet helemaal lukken.

- psexec gedownload, daar kon ik al geen wachtwoord mee wijzigen helaas.
- Kan ik dit lokaal testen? Zelfs wanneer ik geen domain admin ben?

Is er geen simpele methode? Met behulp van visual basic of iets dergelijks?

Iemand anders nog andere suggesties, die niet te veel programmeerwerk vereisen? Ik ben totaal een newbie wat programmeren betreft.

[ Voor 24% gewijzigd door Workaholic op 28-09-2007 14:42 ]

Mijn V&A


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

http://www.microsoft.com/...local/users/lousvb02.mspx ?

Ik zou even kijken of je die als éénmalig startup script 1x in de zoveel tijd kan laten runnen, SYSTEM moet sowieso bij de local SAM kunnen komen.

[ Voor 47% gewijzigd door alt-92 op 28-09-2007 17:07 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Workaholic
  • Registratie: Februari 2003
  • Niet online
alt-92 schreef op vrijdag 28 september 2007 @ 17:06:
http://www.microsoft.com/...local/users/lousvb02.mspx ?

Ik zou even kijken of je die als éénmalig startup script 1x in de zoveel tijd kan laten runnen, SYSTEM moet sowieso bij de local SAM kunnen komen.
Hoe veilig is het om zo'n startup script te gebruiken?

De VBS scripten die ik kan vinden moet ik allemaal handmatig het wachtwoord in vermelden.

De gegevens uit jouw link zijn voor 1 pc, kan ik hier localhost van maken? dus strComputer = "localhost"

Indien ik deze maandelijks zou gebruiken (scheduled?) loop ik dan het risico dat dit bestand ergens gecached wordt op de lokale pc's?

Het zijn 400 werkstations, het lokale wachtwoord is natuurlijk anders dan die van belangrijke pc's/servers etc. Alleen voor de werkstations dus.

Het mooiste zou zijn wanneer we een random wachtwoord generator zouden kunnen scripten en de output hiervan weg schrijven op een share, webserver/webpagina.

Is zoiets te doen?

[ Voor 44% gewijzigd door Workaholic op 28-09-2007 18:29 ]

Mijn V&A


  • _Arthur
  • Registratie: Juli 2001
  • Laatst online: 13-02 20:19

_Arthur

blub

Audi-Addict schreef op vrijdag 28 september 2007 @ 14:38:
Het wil helaas niet helemaal lukken.

- psexec gedownload, daar kon ik al geen wachtwoord mee wijzigen helaas.
Klopt, aangezien psexec gebruikt wordt voor het remote executen van het "net user" commando zoals in het voorbeeld staat.
- Kan ik dit lokaal testen? Zelfs wanneer ik geen domain admin ben?
Ja.
Is er geen simpele methode? Met behulp van visual basic of iets dergelijks?

Iemand anders nog andere suggesties, die niet te veel programmeerwerk vereisen? Ik ben totaal een newbie wat programmeren betreft.
Je wilt iets simpels, daar heb je hier boven een prima iets voor. Maar nu zoek je naar vb-scripts terwijl je niet kan programmeren.

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
_Arthur schreef op vrijdag 28 september 2007 @ 18:40:


Je wilt iets simpels, daar heb je hier boven een prima iets voor. Maar nu zoek je naar vb-scripts terwijl je niet kan programmeren.
Ik kan me er wel in verdiepen als het niet te ingewikkeld is. Het lijkt er in iedere geval op dat er al voldoende codes aanwezig zijn op het internet en het bijna een kwestie is van knippen en plakken.

Waar ik me druk om maak is de " vulnerability " bij het gebruiken van een vbs script waarin ik het wachtwoord vermeld .

In principe zou ik dit dan als GPO Startup script gebruiken, dus dan zou deze login script toch niet ergens terug gevonden kunnen worden? Voor de duidelijkheid, ik verwijder deze na een dag " actief " te zijn.

Mijn V&A


  • _Arthur
  • Registratie: Juli 2001
  • Laatst online: 13-02 20:19

_Arthur

blub

Audi-Addict schreef op vrijdag 28 september 2007 @ 18:47:
Ik kan me er wel in verdiepen als het niet te ingewikkeld is. Het lijkt er in iedere geval op dat er al voldoende codes aanwezig zijn op het internet en het bijna een kwestie is van knippen en plakken.

Waar ik me druk om maak is de " vulnerability " bij het gebruiken van een vbs script waarin ik het wachtwoord vermeld .

In principe zou ik dit dan als GPO Startup script gebruiken, dus dan zou deze login script toch niet ergens terug gevonden kunnen worden? Voor de duidelijkheid, ik verwijder deze na een dag " actief " te zijn.
Je snapt er weinig van. Dan hier een beetje uitleg:

Dit is de code die werd gepost:
code:
1
PSEXEC \\%1 net user administrator %UNIQUEPASS% >>changelog.txt

%1 vervang je door de naam van de targetcomputer waarop je het wachtwoord van de user "administrator" wilt wijzigen. Laten we deze WS-Pietje-01 noemen. %UNIQUEPASS% vervang je door het nieuwe wachtwoord, laten we als nieuw wachtwoord "HutseFluts" kiezen.

Dan krijg je dus iets als:
code:
1
PSEXEC \\WS-Pietje-01 net user administrator HutseFluts >>changelog.txt

Hiermee kan je vanaf je lokale werkstation, het admin pw van de user "administrator" op de pc "ws-pietje-01" veranderen in "HutseFluts". En je hebt een stukje logging in het bestand "changelog.txt".

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
Bedankt voor de uitleg ik heb PSEXEC/net user nu prima werkend.

Ik heb er dus nu een Bat file van en ik doe passwd.bat pcnaam deze geneert nu een password

Deze exporteert het nu naar een csv file.

het nadeel hiervan is alsnog dat ik 400 werkstations moet doen met deze methode met het riscio dat ik wellicht bepaalde stations oversla.

Vandaar dat ik een login script een beter idee vond en dat stond helemaal buiten het PSEXEC gedeelte..

Dus wat betreft " ik snap er niets van" mijn vorige reply ging alleen over de deze VBS script :

code:
1
2
3
4
5
strComputer = "atl-ws-01"
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")

objUser.SetPassword "09iuy%4e"
objUser.SetInfo


Ik ben het echter met je eens dat PSEXEC dus veiliger is, maar hoe kan ik dit dan het beste automatiseren voor 400 werkstations?

[ Voor 35% gewijzigd door Workaholic op 28-09-2007 19:15 ]

Mijn V&A


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Als je mijn scripts goed geinterpreteerd had, had je gezien dat mijn 2e script zowel de lijst van PC's genereert, als voor elke aanwezige PC dit script aanroept mits het password nog niet gewijzigt is.

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
elevator schreef op vrijdag 28 september 2007 @ 19:17:
Als je mijn scripts goed geinterpreteerd had, had je gezien dat mijn 2e script zowel de lijst van PC's genereert, als voor elke aanwezige PC dit script aanroept mits het password nog niet gewijzigt is.
Dat laatste regeltje begreep ik inderdaad niet helemaal.

Ik kreeg dit niet aan de praat omdat dit gedeelte niet goed ging :

code:
1
 ('dsquery computer "ou=Computers,dc=domein.bedrijfsnaam,dc=com"')=


Hij geeft een dsquery failed:Directory object not found error. De OU --> de Computers OU in onze AD waar alle pc's in staan.

Active directory users and computers geeft domein.bedrijfsnaam.com. Dus dat moet gewoon goed zijn.

Wat het wachtwoord wijzigen betreft :

Ik run jouw bat file nu door
code:
1
 batfile.bat pcnaam
in te toetsen

Dit werkt perfect, exporteert ook eht wachtwoord naar een csv file. Echter krijg ik nu deze wachtwoorden :

2459ens-cc-1307 waarvan ens-cc-1307 de pc naam is.

Opzich niet erg, maar het nadeel hiervan is dat elke pc dus nu een ander local admin wachtworod heeft.

We hebben liever een random wachtwoord elke maand, maar dan wel globaal overal hetzelfde. Anders moeten we wel erg vaak die csv file raadplegen.

Is dit mogelijk? Wellicht gebruik ik jouw script verkeerd en gaat er iets fout met het wachtwoord generen?

[ Voor 52% gewijzigd door Workaholic op 28-09-2007 19:54 ]

Mijn V&A


  • _Arthur
  • Registratie: Juli 2001
  • Laatst online: 13-02 20:19

_Arthur

blub

Probeer die batchfile eens te lezen zodat je snapt wat het doet. Ipv dit klakkeloos uit te proberen en dan te roepen dat het niet werkt.

Wat ook een idee is om elke stap handmatig te controleren wat het doet.

Dit is toch echt wel basic batch scripting..

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Hetzelfde geldt trouwens voor dat snippet aan VBscript.
Het is nota bene een link naar de Technet scripting site van MS, waar je ook alle uitleg kan vinden wat je moet veranderen om een script op een lokale PC te laten runnen ( "." dus)..

Ik krijg een beetje de indruk dat je de laatste tijd een beetje veel hooi op de vork hebt genomen gezien je recente topicstortvloed ;)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Audi-Addict schreef op vrijdag 28 september 2007 @ 19:33:
Ik kreeg dit niet aan de praat omdat dit gedeelte niet goed ging :

code:
1
 ('dsquery computer "ou=Computers,dc=domein.bedrijfsnaam,dc=com"')=


Hij geeft een dsquery failed:Directory object not found error. De OU --> de Computers OU in onze AD waar alle pc's in staan.
"Computers" is geen OU (je ziet in ADUC ook dat het een ander icoontje heeft), je zal dus vermoedelijk CN=Computers,dc=domein,dc=bedrjfsnaam,dc=com" als DN moeten gebruiken (let op dat ik dc=domain,dc=bedrijfsnaam schrijf ipv dc=domain.bedrijfsnaam - in een DN kunnen geen punten zitten zeg maar) :)
Dit werkt perfect, exporteert ook eht wachtwoord naar een csv file. Echter krijg ik nu deze wachtwoorden :

2459ens-cc-1307 waarvan ens-cc-1307 de pc naam is.

Opzich niet erg, maar het nadeel hiervan is dat elke pc dus nu een ander local admin wachtworod heeft.

We hebben liever een random wachtwoord elke maand, maar dan wel globaal overal hetzelfde. Anders moeten we wel erg vaak die csv file raadplegen.
Wij zien dat als een voordeel - omdat we dus soms (heel, heel erg soms in praktijk :P ) het admin password telefonisch moeten doorgeven kan je dat dus met een gerust hart doen zonder dat gebruikers opeens 'handige buurman' in je netwerk gaan spelen :)
Is dit mogelijk? Wellicht gebruik ik jouw script verkeerd en gaat er iets fout met het wachtwoord generen?
Uiteraard is dat mogelijk - maar je zal eventjes mijn script moeten begrijpen voordat je weet hoe dat moet. Het ziet er allemaal veel moeilijker uit dan dat het is, dus lees het gewoon even door met de help in de hand (bv. de help van "for" kan je opvragen door "for /?" in te typen) en dan zal je vanzelf zien dat je begrijpt wat het doet :)

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
alt-92 schreef op vrijdag 28 september 2007 @ 22:42:
Ik krijg een beetje de indruk dat je de laatste tijd een beetje veel hooi op de vork hebt genomen gezien je recente topicstortvloed ;)
Mja, dat valt wel mee toch? Het is ook deels hobby (vmware server :)) en heb met jullie hulp toch al een hoop geleerd.
elevator schreef op zaterdag 29 september 2007 @ 01:40:
[...]

"Computers" is geen OU (je ziet in ADUC ook dat het een ander icoontje heeft), je zal dus vermoedelijk CN=Computers,dc=domein,dc=bedrjfsnaam,dc=com" als DN moeten gebruiken (let op dat ik dc=domain,dc=bedrijfsnaam schrijf ipv dc=domain.bedrijfsnaam - in een DN kunnen geen punten zitten zeg maar) :)
Daar was ik inderdaad al achter gekomen, helaas krijg ik nu geen output ipv een foutmelding. Dus de bat file sluit direct af. Ik probeer het natuurlijk in command prompt, bestand staat op de C:/ en ik krijg geen output in de computers.txt. Zal is kijken of ik kan debuggen.
Uiteraard is dat mogelijk - maar je zal eventjes mijn script moeten begrijpen voordat je weet hoe dat moet. Het ziet er allemaal veel moeilijker uit dan dat het is, dus lees het gewoon even door met de help in de hand (bv. de help van "for" kan je opvragen door "for /?" in te typen) en dan zal je vanzelf zien dat je begrijpt wat het doet :)
Ik zal dit is gaan proberen en tevens de nodige technet documenten door gaan nemen.

In iedere geval bedankt voor je vriendelijke reply, ik heb het idee dat andere minder blij zijn met mijn vragen :) Kan ik opzich wel inkomen aangezien dit voor jullie allemaal peanuts is.

Voor de duidelijkheid het is dus eerder enthousiasme dat ik hier sneller post in plaats van dat ik het helemaal uitpluis :>

Ik zal in iedere geval in het vervolg wat meer doorlezen voordat ik enthousiast hier al ga vragen :)

[ Voor 9% gewijzigd door Workaholic op 29-09-2007 10:36 ]

Mijn V&A


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Audi-Addict schreef op zaterdag 29 september 2007 @ 10:34:

Ik zal dit is gaan proberen en tevens de nodige technet documenten door gaan nemen.

In iedere geval bedankt voor je vriendelijke reply, ik heb het idee dat andere minder blij zijn met mijn vragen :) Kan ik opzich wel inkomen aangezien dit voor jullie allemaal peanuts is.

Voor de duidelijkheid het is dus eerder enthousiasme dat ik hier sneller post in plaats van dat ik het helemaal uitpluis :>
Oh, maar dat is juist leuk hoor :)
Wat ik er meer mee bedoelde is dat je in sommige gevallen ook een inschatting maakt of je niet te lang bezig zou zijn met een perfecte oplossing terwijl voor de eerste aanpak een eenvoudiger oplossing ook werkt (tijdsdruk).
Je kan dan altijd terugvallen op je mooie oplossing als je wat meer tijd hebt om dingen uit te zoeken (least administrative effort).

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Audi-Addict schreef op zaterdag 29 september 2007 @ 10:34:
Daar was ik inderdaad al achter gekomen, helaas krijg ik nu geen output ipv een foutmelding. Dus de bat file sluit direct af. Ik probeer het natuurlijk in command prompt, bestand staat op de C:/ en ik krijg geen output in de computers.txt. Zal is kijken of ik kan debuggen.
Voer dan even alleen het 'dsquery' stukje uit (dus alles wat tussen quotes staat in die for regel) en kijk even of daar resultaat uit komt. Mijn 'for' regel gaat er van uit dat alle PC's in OUs staan dus misschien dat dat mis gaat bij jou :)


alt-92 schreef op zaterdag 29 september 2007 @ 10:54:
Wat ik er meer mee bedoelde is dat je in sommige gevallen ook een inschatting maakt of je niet te lang bezig zou zijn met een perfecte oplossing terwijl voor de eerste aanpak een eenvoudiger oplossing ook werkt (tijdsdruk).
Je kan dan altijd terugvallen op je mooie oplossing als je wat meer tijd hebt om dingen uit te zoeken (least administrative effort).
Indirect het administrator password van al je clients verspreiden onder je gebruikers is nooit de juiste oplossing :P

[ Voor 32% gewijzigd door elevator op 29-09-2007 10:57 ]


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

elevator schreef op zaterdag 29 september 2007 @ 10:56:
Indirect het administrator password van al je clients verspreiden onder je gebruikers is nooit de juiste oplossing :P
offtopic:
Zeg ik dat dan? :P
met http://www.microsoft.com/...ts/templates/default.mspx en http://www.microsoft.com/...local/users/lousvb02.mspx samen moet je toch ook een heel eind kunnen komen ;)

[ Voor 28% gewijzigd door alt-92 op 29-09-2007 12:08 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Workaholic
  • Registratie: Februari 2003
  • Niet online
Om het topic af te ronden.. de code werkt en loopt momenteel. Krijg nu alleen :

code:
1
The process cannot access the file because it is being used by another process.


Gebruikers zijn momenteel aangemeld, maar niet als Administrator. Dus ik denk dat er geen gebruiker aangemeld mag zijn? Maar dat moet ik maar even uitzoeken

Dus we zijn al een stapje verder :). Daar kom ik wel uit denk ik.

Alleen een kort vraagje, het connecting to -- client naam duurt erg lang wanneer de client uitstaat. (dus krijg je network path not found)

Bijna 1-2 minuten. Bij 400 clients is dit dus een behoorlijke tijd. Is er manier om dit versnellen? Wellicht kan ik de code uitbreiden met een ping commando?

ping %1 (variable van de hostname) = fail dan skip? of iets in die richting?

[ Voor 42% gewijzigd door Workaholic op 29-09-2007 15:44 ]

Mijn V&A


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Mjah, maar dan moet je dus het password impliciet verspreiden onder je gebruikers bv. door het in een logon script te zetten of iets dergelijks :)


Audi-Addict schreef op zaterdag 29 september 2007 @ 15:22:
Om het topic af te ronden.. de code werkt en loopt momenteel. Krijg nu alleen :

code:
1
The process cannot access the file because it is being used by another process.


Gebruikers zijn momenteel aangemeld, maar niet als Administrator. Dus ik denk dat er geen gebruiker aangemeld mag zijn? Maar dat moet ik maar even uitzoeken
Je zal even moeten uitzoeken welk statement die melding genereert - over het algemeen kan dat namelijk niet echt nee :)
Bijna 1-2 minuten. Bij 400 clients is dit dus een behoorlijke tijd. Is er manier om dit versnellen? Wellicht kan ik de code uitbreiden met een ping commando?

ping %1 (variable van de hostname) = fail dan skip? of iets in die richting?
Ja, je kan met 'ping -n 1 -w 300' bv. je PC's pingne, daarvan dan de output parseren met 'for' en afhankelijk daarvan iets doen :)

  • Workaholic
  • Registratie: Februari 2003
  • Niet online
Stel dat ik toch overal het zelfde wachtwoord zou willen ipv een ander wachtwoord per pc.

Kan ik het %unique% gedeelte dan weg halen uit jouw code en dit vervangen voor een handmatige code? Eventueel nog een import uit een csv file? (zou helemaal mooi zijn)

Mijn V&A


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Ja :)
Pagina: 1