| Zrovna jsem se tu nedávno zabýval bezpečností použítí Group Policy Preferences při nastavování hesla lokálních uživatelských účtů a vznikla tu diskuze, jestli by to nešlo udělat ještě jinak. Obzvláště v případě, že chcete pro každý server jiné heslo lokálního administrátora, tak se vám Group Policy Preferences moc hodit nebudou.
Můžete tedy reset těch hesel udělat skriptem. Ideálně v jazyce PowerShell. Nejjednodušší je to asi tak, jak je v následujícím příkladu. Pro pořádek, srv5 je nějaký můj vzdálený server, na který se musím být schopen dostat přes sdílené soubory - SMB TCP 445. Uživatel Administrator je jméno lokálního admina tohoto vzdáleného serveru - ten login musíte znát. Skript také musíte spustit pod nějakým doménovým účtem, který se na ten vzdálený server může připojit také jako jeho správce:
$locAdm = [ADSI] 'WinNT://srv5.gopas.virtual/Administrator,user'
$locAdm.SetPassword('Pa$$w0rd')
Ale pozor! Tady není jistota, že se heslo přenáší po síti zašifrovaně. Zkoumal jsem dokumentaci, ale ta mluví jen o šifrování v případě použití LDAP providera, zatímco o WinNT providerovi a jeho šifrování tam není ani slovo. Takže bych tomu osobně nevěřil a raději si šifrování vynutil přímo takto:
$locAdm = New-Object System.DirectoryServices.DirectoryEntry('WinNT://srv5.gopas.virtual/Administrator,user', 'gps\domain-admin', 'Pa$$w0rd', 'Sealing')
$locAdm.SetPassword('Pa$$w0rd')
V tomhle případě musíte do konstruktoru DirectoryEntry vložit i přihlašovací údaje nějakého toho doménového správce, ale zase máte jistotu, že se všechno přenáší zašifrovaně pomocí Kerberos příhlašovacích údajů. |