Verwijderd schreef op 12 februari 2004 @ 14:21:
Heb wel gekeken naar het exist commando maar dat schijnt alleen voor bestanden te gelden. terwijl ik eigenlijk wil dat er in een lijst de namen van de computers weg word geschreven die al zijn gedaan en dat daar dan word gecontroleerd of de computer die het batch bestand nu probeert te doen als is gedaan.
Dat doet dat script wat ik hier boven post dus exact
Ik zal het even lijn per lijn bespreken:
code:
1
2
3
| REM ** Reset some variables
SET ALCHANGED=
SET UNIQUEPWD= |
Omdat het script een paar honderd/duizend keer aangeroepen wordt, resetten we de state van die variabelen
code:
1
2
| REM ** ensure ourselves that this computer hasn't already changed
FOR /F %%i in ('FINDSTR /I "%1," pwdlist.csv') do IF %%i NEQ "" SET ALCHANGED=TRUE |
Wat doen we hier?
We voeren uit: "findst /i "COMPUTERNAME," pwdlist.csv" - namelijk %1 is de 1e parameter die aan dit script wordt meegegeven en dat moet de computernaam zijn, en pwdlist.csv is de file met computers waarvan we het passwoord willen wijzigen. Voor meer informatie voer maar eens: "for /?", "if /?" en "findstr /?" uit
Als uit die findstr iets terugkomt (Not Equal to "") dan zit die computername dus al in die file, en dan is het passwoord van die PC dus al gewijzigd.
code:
1
2
| IF "%ALCHANGED%"=="TRUE" ECHO "%1" is already changed... (%ALCHANGED%)
IF "%ALCHANGED%"=="TRUE" GOTO END |
ALs ie al veranderd is, laat dat zien op je scherm, en spring naar het einde van de batchfile.
code:
1
2
| REM ** First get the unique password
CALL getunique_pwd.bat %1 |
Roep nu een ander script aan (getunique_pwd.bat) en geef het als parameter onze eigen parameter (dus die computernaam van hierboven). Van dat script verwachten we dat het de environment variabele "UNIQUEPWD" set - hoe of waarop hij dat zet laten we volledig over aan het script.
code:
1
2
| REM ** Changing password of "%1" to "%UNIQUEPWD%"
PSEXEC \\%1 net user administrator %UNIQUEPWD% >>changelog.txt |
Vervolgens starten we psexec op om lokaal dat passwoord te wijzigen.
code:
1
| IF "%ERRORLEVEL%" EQU "0" ECHO %1,%UNIQUEPWD% >>pwdlist.csv |
als het gelukt is, voegen we de COMPUTERNAAM,PASSWORD toe aan de file pwdlist.csv
Dat bovenstaande script, moet dus voor elke computer aangeroepen worden - een lijst van PC's kan je vrij gemakkelijk zelf maken, zie bijvoorbeeld maar eens:
elevator in "Computers automatisch afsluiten"
Als je dat lijstje hebt gemaakt, kan je met een for loop er door heen lopen, en ker op keer bovenstaand script uitvoeren
[
Voor 3% gewijzigd door
elevator op 12-02-2004 14:51
]