jodalein
Goto Top

VBS Script mit Random Passwort bei jedem Systemstart

Hallo,
habe mir hier ein kleines nettes Script zurecht gestrickt:
Sobad der PC gestartet wird, wird für ein Lokalen Benutzer ein Random Passwort gesetzt und dieses Per E-mail verschickt.
Nun gibt es meiner ansicht nach noch ein kleines Problem mit den Variablen.

Die Variable strComputer kann ohne Probleme immer und überall verwenden.

Gerne würde ich auch hier wo /USER steht die Variable strUser verwenden nur leider macht er es nicht.
Set objUser = GetObject("WinNT://" & strComputer & "/USER, user")  

'Passwort änderungs Script für Locale User  
'gpedit.msc > Computer Configuration >Windows Settings > Scritps > Startup  
'add Script > Path to Script   
'Username in Zeile 46 Editieren  46 ""/USER," nur Lokale Benutzer  
'cc und bcc fals nötig ändern  
'Set computer name (Network Name)  
'Set user name (for email only)  

strComputer = "PC-NAME"  
strUser = "USERNAME"  

'sleep time in ms 1000 = 1 sec.  
wscript.sleep 20000

' Password generator  
Dim NumChar, Count, strRdm, intRdm
NumChar = 8
If NOT IsNumeric(NumChar) Then
  MsgBox Chr(34) & NumChar & Chr(34) & " is invalid input." & vbcrlf & _  
         vbcrlf & "Input must be a number between 1 and 100",, Title  
  WScript.Quit
Else
  NumChar = CInt(NumChar)
  If NumChar < 1 OR NumChar > 100 Then
    MsgBox Chr(34) & NumChar & Chr(34) & " is invalid input." & vbcrlf & _  
           vbcrlf & "Input must be a number between 1 and 100",, Title  
    WScript.Quit
  End If
End If
 
Randomize Timer

Do Until Count = NumChar
  Count = Count + 1
  GetRdm
  strRdm = strRdm & Chr(intRdm)
Loop

Sub GetRdm
  intRdm = Int((122 - 49) * Rnd + 48)
  If intRdm > 57 And intRdm < 65 Or intRdm > 90 And intRdm < 97 Then GetRdm
End Sub
'Debug PW  
'WScript.echo "" & strRdm  

Set objUser = GetObject("WinNT://" & strComputer & "/USER, user")  
objUser.SetPassword "" & strRdm  
objUser.SetInfo

Set objMessage = CreateObject("CDO.Message")    
objMessage.Subject = "Password for PC:"  & strComputer  
objMessage.From = """ABSENDER"" <DOMAIN>"    
objMessage.To = "DOMAIN"    
objMessage.CC = ""    
objMessage.BCC = ""    
objMessage.TextBody = "PC name:" & strComputer & vbCRLF & "User name:" &  strUser & vbCRLF & "Password:" &  strRdm    

objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2    
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ""   
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1   
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendusername") = ""   
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""   
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25    
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False   
objMessage.Configuration.Fields.Item _ 
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60   
objMessage.Configuration.Fields.Update 
objMessage.Send 

Danke.
jodalein
Kommentar vom Moderator Dani am 29.04.2011 um 10:31:04 Uhr
Formatierung hinzugefügt.

Content-ID: 165380

Url: https://administrator.de/contentid/165380

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

Dani
Dani 29.04.2011 um 10:43:07 Uhr
Goto Top
Moin jodalein,
probier es mal so:
Set objUser = GetObject("WinNT://" & strComputer & "/" & strUser)  
Ich überlege gerade ob du strComputername überhaupt benötigst? So sollte es auch gehen:
Set objUser = GetObject("WinNT://" & Benutzer)  
Alles natürlich ungetestet!


Grüße,
Dani
jodalein
jodalein 29.04.2011 um 10:47:30 Uhr
Goto Top
Ja den brauche ich.
Weil in der E-mail der PC Name auch mit verschickt wird.
Dani
Dani 29.04.2011 um 10:48:32 Uhr
Goto Top
Zitat von @jodalein:
Ja den brauche ich.
Weil in der E-mail der PC Name auch mit verschickt wird.
Diese Ansicht war nicht auf das ganze Skript bezogen sondern nur auf diese eine Zeile. face-smile


Grüße,
Dani
jodalein
jodalein 29.04.2011 um 10:51:14 Uhr
Goto Top
Kein ding..
aber es klappt nun super, muss am Anfang nur noch 2 Variablen setzten und er spaß läuft.
Dieses doofe VBS zeugs is manchmal echt doof... habe zich sachen probiert... " "/" & strUser" nur ohne user am ende nicht, weils halt in allen bsp. so steht.