Administrace sítě

Úprava defaultního profilu uživatele
Spuštění příkazového řádku na vzdáleném počítači s Windows
  Nutné nastavení stanic
  Spuštění na jedné vzdálené stanici
  Spuštění na více vzdálených stanicích dávkou
Windows update - nastavení a vzdálené spuštění
  Nastavení WU - Gpedit
  Nastavení WU - Nastavení
  Řízení Windows Update příkazovým řádkem
  Vzdálené řízení Windows Update v LAN
 

Úprava defaultního profilu uživatele

Při prvním přihlášení nového uživatele mu systém Windows vytvoří složku C:\users\[login] a zkopíruje do ní celý obsah složky C:\users\Default (tam je umístěna šablona uživatelského profilu).
Tuto šablonu lze nahradit již existujícím profilem (např. C:\users\host) s potřebným uživatelským nastaven (programů, cest, barev…):

  1. Existující profil vyčisti (vymaž dočasné soubory prohlížečů, systému…)
  2. Vymaž (či přesuň jinam) celý obsah složky Default (nutná práva správce).
  3. Vyčištěný profil (obsah C:\users\host) zkopíruj do C:\users\Default (nutná práva správce).
  4. V C:\Users\Default\AppData\Local SMAŽ všechny složky i soubory, kromě:

Nový uživatel bude mít po přihlášení stejná nastavení, jako původní C:\users\host.

Spuštění příkazového řádku na vzdáleném počítači s Windows

PsExec (součást balíku PsTools od autora Mark Russinovich) je oficiální nástroj Microsoftu ke spuštění programu na vzdáleném systému.
Neinstaluje se.

Nutné nastavení stanic

Ve vzdáleném počítači musíme povolit ve firewallu:

Pro případné kopírování instalačních souborů je dobré ve vzdáleném počítači povolit Sdílené složky správců:

Vše najednou skriptem psexec-povol.cmd:

netsh advfirewall firewall set rule group="Slu§ba WMI (Windows Management Instrumentation)" new enable=yes
netsh advfirewall firewall set rule group="Vzd len  spr va slu§eb" new enable=yes
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1

(diakritika odpovídá příkazovému řádku)

Spuštění na jedné vzdálené stanici

Příkazový řádek správce (PowerShell):

PS C:\WINDOWS\System32>  cd \bat   (je-li PsExec umístěn C:\BAT\PsExec.exe)

PowerShell pak vyžaduje k volání programu z aktuální složky "linuxovou" konvenci .\[program].

Spuštění příkazového řádku na vzdálené stanici pc02:

PS C:\bat>.\psexec \\pc02\ cmd

(když na vzdálené stanici existuje stejný uživatel, jako nynější uživatel lokálního příkazového řádku)

PS C:\bat>.\psexec \\pc02\ -u user -p pass cmd

(když na vzdálené stanici existuje jiný uživatel user s heslem pass)

Další příkazy jsou už vykonávány na vzdálené stanici.
Příkazový řádek vzdálené stanice ukončí příkaz exit.

 

Na lokálním příkazovém řádku správce (PowerShell) lze zapsat i celý příkaz:

PS C:\bat>.\psexec \\pc02\ ping serv1

PS C:\bat>.\psexec \\pc02\ cmd /c time

Spuštění na více vzdálených stanicích dávkou

Dávku pro 1 stanici (v umístění C:\BAT\remote-run-multi-1pc.cmd) spustíme:

PS C:\bat> .\remote-run-multi-1pc.cmd pc01 pc02 pc03

(pc01 pc02 pc03 jsou parametry - jména vzdálených stanic)

Příklad dávky pro 1 stanici - vzdálené spuštění vyhledání aktualizací

:begin
if %1=="" goto end
.\psexec \\%1 C:\Windows\System32\UsoClient.exe StartInteractiveScan
echo %1 errorlevel %errorlevel% >> log-WU-StartInteractiveScan.log
shift
goto begin
:end

Příklad dávky pro 1 stanici - vzdálená instalace Java

:begin
if %1=="" goto end
@echo off
copy D:\Instal\jre*.* \\%1\ADMIN$\TEMP
.\psexec \\%1\ C:\Windows\TEMP\jre-8u191-windows-i586.exe INSTALLCFG=C:\Windows\TEMP\jre-inst.cfg
echo %1 errorlevel %errorlevel% >> log-Java.log
del /q \\%1\ADMIN$\TEMP\jre*.* >nul
shift
goto begin
:end
 
 
 
= kopírování jre*.* do vzdáleného C:\Windows\TEMP
= vzdálená instalace
= zápis do LOGu
= smazání jre*.* ve vzdáleném C:\Windows\TEMP
 
 
 

 

Windows update - nastavení a vzdálené spuštění

Nastavení Windows Update na stanici - GPEDIT

Konfigurace počítače->Šablony pro správu->Součásti systému Windows->Windows update:

Nastavení Windows Update na stanici - Nastavení

Řízení Windows Update příkazovým řádkem

                            příkaz                                   stanice provede
c:\Windows\System32\UsoClient.exe StartInteractiveScan vyhledá aktualizace
c:\Windows\System32\UsoClient.exe StartInstall ihned zahájí instalaci aktualizací
c:\Windows\System32\UsoClient.exe StartInteractiveScan
wuauclt /reportnow
podá hlášení (serveru WSUS)
(2 příkazy pod sebou)

Vzdálené řízení Windows Update v LAN

Stanice musí být nastaveny pro vzdálené spuštění programu, aby bylo možné vzdálené spuštění výše uvedených příkazů k řízení Windows Update.
Vzdáleně lze jednotlivé příkazy spouštět výše uvedenou dávkou nebo vše pomocí PowerShell skriptu RemoteRun.ps1:

# This script calls on remote computers of the LAN "Search", "Install updates" and "Send instant Report" of updates to WSUS server.
# On every computer must be enabled on firewall WMI, Remote administration of services and on registry LocalAccountTokenFilterPolicy=1.
# WSUS server must be set on registry.
# Script needs the same directory:
# - program psexec (Mark Russinovich)
# - list names of PC in "PcList.txt" (names of PC in 1 line separated by spaces).
# http://vyuka.jihlavsko.cz/administrator/
# Jiri Hrodek 2018

$menu=@"
1 Search updates
2 Install updates
3 Send Report to WSUS
4 Chkdsk C: after reboot
R Reboot
O PowerOff
Q Quit

Select number or Q to quit
"@
cls
Write-Host "-------------------WHAT TO DO for computers below?-------------------" -ForegroundColor Cyan
$column = (Get-Content PcList.txt) -split '\s+|\t+'
Write-Host "Computers: "$column
$r = Read-Host $menu
Switch ($r) {
"1" {
Add-Content log-WU-StartInteractiveScan.log (Get-Date -Format g)
foreach($line in $column) {
.\psexec \\$line C:\Windows\System32\UsoClient.exe StartInteractiveScan
Add-Content log-WU-StartInteractiveScan.log $line"`t errorlevel "$lastexitcode
}
}

"2" {
Add-Content log-WU-StartInstall.log (Get-Date -Format g)
foreach($line in $column) {
.\psexec \\$line C:\Windows\System32\UsoClient.exe StartInstall
Add-Content log-WU-StartInstall.log $line"`t errorlevel "$lastexitcode
}
}

"3" {
Add-Content log-WU-Report-send.log (Get-Date -Format g)
foreach($line in $column) {
.\psexec \\$line C:\Windows\System32\UsoClient.exe StartInteractiveScan
.\psexec \\$line wuauclt /reportnow
Add-Content log-WU-Report-send.log $line"`t errorlevel "$lastexitcode
}
}

"4" {
Add-Content log-Chkdsk.log (Get-Date -Format g)
foreach($line in $column) {
.\psexec \\$line cmd /c "echo y.|chkdsk c: /f"
Add-Content log-Chkdsk.log $line"`t errorlevel "$lastexitcode
}
}

"R" {
Add-Content log-Reboot.log (Get-Date -Format g)
foreach($line in $column) {
.\psexec \\$line C:\Windows\System32\shutdown.exe -r -t 00
Add-Content log-Reboot.log $line"`t errorlevel "$lastexitcode
}
}

"O" {
Add-Content log-PowerOff.log (Get-Date -Format g)
foreach($line in $column) {
.\psexec \\$line C:\Windows\System32\shutdown.exe -s -t 00
Add-Content log-PowerOff.log $line"`t errorlevel "$lastexitcode
}
}

"Q" {
Write-Host "Quitting" -ForegroundColor Green
}

default {
Write-Host "End without action." -ForegroundColor Yellow
}
} #end switch

Skript generuje LOG s výpisem errorlevel pro každý ošetřený počítač.