Wie kann ich ein Passwort mit einem Skript ändern?
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.com
Benö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
{
<#
.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.