Wie kann ich ein Passwort mit einem Skript ändern?

November 16

Windows-Kennwörter unterstützen Unternehmen und Menschen zu schützen ihren Computer vor unbefugtem Zugriff. Manchmal kann es jedoch notwendig, ändern Sie das Kennwort auf einem Computer oder einer Gruppe von Computern, wenn das Netzwerk gehackt ist oder Ex-Mitarbeiter Zugriff verhindern. Wenn der Computer über ein Netzwerk verbunden sind, kann der Administrator das Passwort auf einer Liste von Computern, die mit diesem Power Shell-Skript ändern.

Anweisungen

1 Kompilieren Sie eine Liste der Computer, dessen lokaler Administrator-Kennwort geändert wird. Die Liste kann manuell eingegeben werden, in einem beliebigen Texteditor, oder alle zweckdienlichen Unterlagen verwendet werden kann. Verwenden Sie z. B. den Dateinamen "computerlist.txt".

2 Kopieren Sie das folgende Skript, genau so, wie es scheint, und fügen Sie ihn in eine Textdatei mit der Erweiterung "ps1." Z. B. den Dateinamen "Change-LocalUserPassword.ps1".

< #

. Synopse

Sets local user password on one or more computers

. Beschreibung

This script sets local user password on one or more computers

It can read a text file of comptuer names (one per line) and

connect to those computers to change a local user password.

This script requires admin rights.

PARAMETERS

-computer name of the computer

-path path to the computer list. Causes script to use file for

computer name

-user the name of the user whose password is to be reset

-password the password to user

. Beispiel

Change-LocalUserPassword.ps1 -user administrator -password NewPassword

Changes the local administrator password to NewPassword on local computer

. Beispiel

Change-LocalUserPassword.ps1 -user bob -password NewPassword

Changes the local user bob password to NewPassword on local computer

. Beispiel

Change-LocalUserPassword.ps1 -user administrator -password NewPassword

-path c:\computerlist.txt

Changes the local administrator password to NewPassword on each computer in

the c:\computerlist.txt file.

. Eingänge

[string]

. Ausgänge

[string]

. Hinweise

NAME: Windows 7 Resource Kit

AUTHOR: Ed Wilson

LASTEDIT: 5/20/2009

KEYWORDS:

. Verbindung

Http://www.ScriptingGuys.comBenötigt - Version 2.0 >

Param)

[Parameter(Position=0)]

[string]

$computer = $env:computername,

[string]

$path,

[string]

[Parameter(Mandatory=$true)]

$user,

[string]

[Parameter(Mandatory=$true)]

$password

) #end Param

Funktionen beginnen Funktion New-Unterstreichung

{

< #

. Synopse

Erstellt eine Unterstreichung der Länge der eingegebenen Zeichenfolge

. Beispiel

Neue-Underline - StrIN "Hello World"

. Beispiel

Neue-Underline - StrIn "Welt von Morgen"-Char "-" - sColor "blue" - uColor "gelb"

. Beispiel

"Dies ist ein String" | Neuen Underline

. Hinweise

NAME:

Autor: Ed Wilson

LASTEDIT: 20.05.2009

STICHWÖRTER:

. Verbindung

Http://www.ScriptingGuys.com

> [CmdletBinding()]

Param)

[Parameter(Mandatory = $true,Position = 0,valueFromPipeline=$true)]

[string]

$strIN,

[string]

$char = "=",

[string]

$sColor = "Green",

[string]

$uColor = "darkGreen",

[switch]

$pipe

) #end Param

$strLine = $char * $strIn.length

If(-not $Pipe)

{

Write-Host - ForegroundColor $sColor $strIN

Write-Host - ForegroundColor $uColor $strLine

}

Sonst

{

$strIn

$strLine

}

} #end New unterstreichen-Funktion

Funktion Test-IsAdministrator

{

&lt;#

.Synopsis

Tests if the user is an administrator

.Description

Returns true if a user is an administrator, false if the user is not an administrator

.Example

Test-IsAdministrator

#>

param()

$currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()

(New-Object Security.Principal.WindowsPrincipal $currentUser).IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)

} #end Funktion Test-IsAdministrator

Einstiegspunkt zum Skript Wenn (-nicht (Test-IsAdministrator)) {New-Unterstreichung "Admin-Rechte sind erforderlich für dieses Skript"; exit}

if($path)

{

$computers = Get-Content - Pfad $path

Foreach ($Computer in $computers)

{

Neue-Underline "Einstellung $user Passwort auf $computer"

$de [Adsi] = "WinNT: / / $computer/$user, User"

$de. SetPassword($Password)

$de. SetInfo()

} #end Foreach

} #end wenn

Sonst

{

Neue-Underline "Einstellung $user Passwort auf $computer"

$de [Adsi] = "WinNT: / / $computer/$user, User"

$de. SetPassword($Password)

$de. SetInfo()

}

3 Kopieren Sie "Change-LocalUserPassword.ps1" in einen Ordner bequem auf dem Domänencontroller, sodass es in PowerShell verwendet werden kann. Kopieren Sie "computerlist.txt" in denselben Ordner.

4 Öffnen Sie PowerShell mit Start > Programme > PowerShell.

Wenn der Ordner "C:\MyScripts" geben Sie "cd C:\MyScripts" in PowerShell. Typ:

".\Change-LocalUserPassword.ps1-Benutzeradministrator-Passwort < NewPassword >-Pfad c:\MyScripts\computerlist.txt". Ändern Sie < NewPassword > in ein sicheres Passwort.

Tipps & Warnungen

  • Ändern alle lokalen Administrator-Passwörter dieselben kann unberechtigten Zugriff auf Daten auf den einzelnen Computern ermöglichen.
  • Dies sollte nur durch Netzwerkadministratoren oder Microsoft Certified Professionals versucht werden.