Skrypty systemowe
LOG Plus
W LOG Plus udostępniamy listę gotowych skryptów, które można wykorzystać lub użyć jako podstawę i dostosować do swoich potrzeb.
Założenia
Skrypt pozwala na archiwizację wybranego profilu użytkownika. Archiwizacja polega na skompresowaniu profilu użytkownika zgodnie z zadanym filtrem, oraz umieszczenie go w określonej lokalizacji (również sieciowej)
Parametry domyślne:
-userLogin -destinationDir
Treść skryptu
param([Parameter(Mandatory=$true)][string]$userLogin, [Parameter(Mandatory=$true)][string]$destinationDir ,[string]$filter = "(name = *.*)", [switch]$skipOnError)
# Skrypt archiwizujący profil użytkownika
# umożliwia skompresowanie profilu użytkownika zgodnie z zadanym filtrem,
# oraz umieszczenie go w określonej lokalizacji (również sieciowej)
# Parametry:
# -userLogin - nazwa użytkownika w postaci: login , lub DOMENA\login
# -destinationDir - katalog docelowy np. c:\ , lub \\192.168.1.1\backups
# -filter - filtr określający jakie pliki mają być achiwizowane (domyślnie wszystkie)
# szczegóły http://dotnetzip.herobo.com/DNZHelp/html/4469abe7-8fa4-101e-975d-305d2fd0affb.htm
# np. "(name != *.mp3) and (name != *.avi)" - wyklucza pliki mp3 i avi
# -skipOnError - pomiń pliki, których nie można dodać
$a = [System.Reflection.Assembly]::LoadFrom([System.AppDomain]::CurrentDomain.BaseDirectory + "ext\Ionic.Zip.dll");
try
{
$ob = New-Object System.Security.Principal.NTAccount($userLogin)
$sid = $ob.Translate([System.Security.Principal.SecurityIdentifier])
}
catch
{
Write-Error "Unable to find user $userLogin"
exit -2
}
$regPath = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\' + $sid
$path = (Get-ItemProperty -path $regPath).profileImagePath
$zipFile = $destinationDir + "\" +$userLogin.Replace('\','.') + (Get-Date).ToShortDateString() + ".zip"
"Writing $path to $zipFile"
try
{
$strWriter = new-object System.IO.StringWriter
$zip = new-object Ionic.Zip.ZipFile
$zip.UseZip64WhenSaving = [Ionic.Zip.Zip64Option]::AsNecessary
if ($skipOnError)
{
$zip.StatusMessageTextWriter = $strWriter
$zip.ZipErrorAction = [Ionic.Zip.ZipErrorAction]::Skip
}
$zip.AddSelectedFiles($filter, $path,"",$true)
$zip.Save($zipFile)
}
finally
{
[System.Text.RegularExpressions.Regex]::Replace($strWriter.ToString(), "^adding.*$[\r\n]*", [String]::Empty, [System.Text.RegularExpressions.RegexOptions]::Multiline)
$zip.Dispose()
}
Parametry:
Wymagane:
userLogin - nazwa użytkownika w postaci: login, lub DOMENA\login,
destinationDir - katalog docelowy np. c:\ , lub \\192.168.1.1\backups,
Opcjonalne:
filter - filtr określający jakie pliki mają być achiwizowane (domyślnie wszystkie) np. "(name != *.mp3) and (name != *.avi)" - wyklucza pliki z rozszerzeniem mp3 i avi,
skipOnError - pomiń pliki, których nie można dodać.
Założenia
Skrypt pozwala na wyczyszczenie zawartości katalogów tymczasowych dla wszystkich użytkowników
Parametry domyślne:
delete |
Treść skryptu
@echo off
rem ***************************** Informacje wstępne
rem Skrypt domyślnie tylko wyświetla pliki i foldery do usunięcia,
rem aby je rzeczywiście usunąć, wywołaj go z parametrem "delete"
rem
rem Parametry:
rem delete - usuwa pliki i katalogi tymczasowe dla wszystkich użytkowników
set _TD=%SystemDrive%
set _DELETE=0
if "%1" == "delete" set _DELETE=1
if %_DELETE%==0 (
echo Skrypt domyślnie tylko wyświetla pliki i foldery do usunięcia
echo Aby je rzeczywiście usunąć, wywołaj z parametrem "delete"
)
set _UD=Users
if exist "%_TD%\%_UD%" goto filelist
set _UD=Documents and Settings
if exist "%_TD%\%_UD%" goto filelist
goto directoryNotFound
:filelist
for /f "tokens=*" %%g in ('dir/b /a:D "%_TD%\%_UD%"') do (
CALL :userDir %_TD%\%_UD%\%%g
)
goto end
:userDir
SETLOCAL
set _UDIRTEMP1=Ustawienia lokalne\Temp
set _UDIRTEMP2=Local Settings\Temp
set _UDIRTEMP3=AppData\Local\Temp
for /f "usebackq tokens=2* delims==" %%h in (`set _UDIRTEMP`) do (
call :tempDir %*\%%h
)
ENDLOCAL
exit/b
:tempDir
if exist "%*" (
for /f "tokens=*" %%z in ('dir/b /a:-D "%*"') do (
call :deleteFile %*\%%z
)
for /f "tokens=*" %%x in ('dir/b /a:D "%*"') do (
call :deleteDir %*\%%x
)
)
exit/b
:deleteDir
if %_DELETE%==1 (
rmdir /q /s "%*"
) else (
echo D %*
)
exit/b
:deleteFile
if %_DELETE%==1 (
del /q "%*"
) else (
echo F %*
)
exit/b
:directoryNotFound
echo "Nie znaleziono katalogu użytkowników!" >&2
:end
Parametry:
delete - skasuj zawartość katalogów tymczasowych
Uwagi
Uruchomienie skryptu bez podania parametrów spowoduje wyświetlenie listy plików i folderów do usunięcia.
Założenia
Skrypt umożliwia zdalne wywołanie polecenia defragmentacji partycji dysku twardego podanej w polu Parametry
Parametry domyślne:
C:
Treść skryptu
rem Parametry:
rem - litera partycji do defragmentacji
@echo off
defrag %1
Parametry:
C: - litera partycji do defragmentacji (domyślnie partycja C:)
Założenia
Skrypt dodaje wybrany przez nas komputer do domeny
Parametry domyślne:
Treść skryptu
REM PC musi być wpięty do sieci lokalnej !!!
$password = $args[0] | ConvertTo-SecureString -asPlainText -Force
$username = $args[1]
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $args[2] -Credential $credential
Parametry:
Hasło
Domena\Nazwa_użytkownika
Pełna nazwa domeny
Uwagi
Żeby skrypt zadziałał dany komputer musi być wpięty do sieci lokalnej!
Skrypt należy uruchomić na komputerze który ma zostać dodany do domeny.
Założenia
Założeniem skryptu jest uproszczenie procesu deinstalacji oprogramowania.
Proces deinstalacji z wykorzystaniem skryptu możliwy jest dla oprogramowania, którego deinstalacja wykorzystuje polecenie "msiexec".
Parametry domyślne:
REM 1. W polu parametr można podać nazwę oprogramowania jakie ma być odinstalowane.
REM 2. Informację o oprogramowaniu można zebrać wykonując skrypt "Lista oprogramowania" - lista przedstawi całość oprogramowania możliwego do odinstalowania niniejszym skryptem.
REM 3. Nazwę oprogramowania nalezy przekleić do pola "Parametry" w momencie wywołania niniejszego skryptu"
wmic product where "name like '%*%%'" call uninstall /nointeractive
Parametry:
Nazwę oprogramowania należy przekleić do pola "Parametry" w momencie wywołania niniejszego skryptu.
Założenia
Skrypt umożliwia na wskazanym komputerze odnowienie adresu IP który został przypisany przez serwer DHCP
Treść skryptu
rem Dla IPv4
ipconfig /renew
rem Dla IPv6
rem ipconfig /renew6
Założenia
Skrypt umożliwia odświeżenie bufora programu rozpoznawania nazw DNS. Opcja przydatna w przypadku problemów z rozwiązywaniem nazw DNS:
Treść skryptu
ipconfig /flushdns
Założenia
Skrypt umożliwia wymuszenie odświeżenia zasad lokalnych/AD na komputerze zdalnym:
Treść skryptu
gpupdate /force
Założenia
Skrypt umożliwia wyświetlenie szczegółowych danych dotyczących usługi podanej w polu Parametry.
Parametry:
Treść skryptu
@echo off
echo Konfiguracja usługi:
sc qc %1
echo Stan usługi:
sc queryex %1
Założenia
Skrypt umożliwia usunięcie użytkownika z wybranego przez nas komputera
Treść skryptu
REM /del - usuwa konto
net user %1 /del
Uwagi
Skrypt usuwa tylko użytkowników lokalnych na danym komputerze
Założenia
Skrypt umożliwia usunięcie katalogu wskazanego w polu Parametry wraz z całą jego zawartością lub tylko plików we wskazanym katalogu i jego podkatalogach (struktura katalogów pozostaje nienaruszona).
Treść skryptu
@echo off
rem Parametry:
rem
rem C:\Katalog - Należy wskazać bezwzględną ścieżkę do katalogu przeznaczonego do usunięcia
rem all - Usuwanie wskazanego jako parametr katalogu wraz z zawartością
rem files - Usuwanie samych plików w katalogu i jego podkatalogach (struktura katalogów pozostaje nienaruszona)
IF %2 == all (
RD /S /Q %1
)
IF %2 == files (
DEL /S /F /Q %1
)
Parametry:
Parametry są przykładowe, przed wywołaniem polecenia należy podać właściwe dane:
C:\Katalog files - należy podać w tym miejscu bezwzględna ścieżka do katalogu przeznaczonego do usunięcia wraz z podaniem parametrów:
all - usuwa wskazany jako parametr katalog wraz z zawartością
files - usuwa same pliki w katalogu i jego podkatalogach (struktura katalogów pozostaje nienaruszona)
Założenia
Skrypt umożliwia zatrzymanie, a następnie uruchomienie usługi podanej jako parametr (domyślnie nie jest wskazana żadna usługa)
Treść skryptu
net stop %1
net start %1
Założenia
Skrypt posiada 3 podstawowe akcje jakie może wykonać na wskazanym komputerze lub grupie komputerów:
przejście w stan hibernacji
restart komputera
wyłączenie komputera
Parametry domyślne:
-s
Treść skryptu
rem Parametry:
rem
rem -s wyłącz (domyślnie)
rem -h hibernuj
rem -r restartuj
shutdown -f %1 -t 0
Skrypt domyślnie wymusza wyłączenie komputera natychmiast. Można usunąć parametr -f odpowiedzialny za wymuszenie i zwiększyć opóźnienie czasowe ustawione domyślnie na 0 sekund.
Parametry:
-s - zamyka komputer
-h - hibernuje komputer
-r - restartuje komputer
Założenia
Skrypt umożliwia podanie nowej konfiguracji konkretnie wskazanego połączenia sieciowego na wskazanym komputerze.
Treść skryptu
rem Skrypt zmieniający adres IP na komputerze zdalnym
rem
rem Parametry:
rem
rem - dokładna nazwa interfejsu sieciowego
rem - docelowy adres IP
rem - docelowa maska
rem - docelowa brama domyślna
rem
netsh int ip set address %1 static %2 %3 %4
Powyższy skrypt można rozbudować o polecenie ustawiające adresy serwerów DNS.
Parametry:
Parametry są przykładowe, przed wywołaniem polecenia należy podać właściwe dane:
"Połączenie lokalne" - dokładna nazwa interfejsu sieciowego
192.168.1.101 - docelowy adres IP
255.255.255.0 - docelowa maska
192.168.1.1 - docelowa brama domyślna
W przypadku błędnej konfiguracji można utracić połączenie z serwerem.
Założenia
Skrypt umożliwia zmianę istniejącego lub wprowadzenie nowego opisu komputera we wszystkich gałęziach rejestru.
Treść skryptu
rem Parametry:
rem
rem Opis komputera, jaki ma być ustawiony na komputerze zdalnym
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\services\LanmanServer\Parameters" /v srvcomment /t REG_SZ /d %1 /f
Założenia
Skrypt wyświetla czy została zainstalowana poprawka o danym numerze na wybranym przez nas komputerze.
Treść skryptu:
REM Podaj numer poprawki, którą chcesz sprawdzić.
wmic qfe | find "%1"
Założenia
Skrypt umożliwia zwrócenie pełnej informacji o systemie z polecenia systeminfo.
Treść skryptu:
systeminfo
Założenia
Skrypt pozwala na odczytanie listy oprogramowania zapisanego w rejestrze Windows.
Treść skryptu:
wmic product get name, version
Założenia
Skrypt umożliwia wyświetlenie listy uruchomionych procesów na wskazanym komputerze.
Treść skryptu
@echo off
tasklist /FO table
Założenia
Skrypt wyświetla listę zainstalowanych na komputerze poprawek i aktualizacji.
Treść skryptu
wmic qfe
Założenia
Skrypt umożliwia wymuszenie zakończenia procesu podanego jako parametr.
Treść skryptu
taskkill /IM %1 /F
Polecenie taskkill posiada funkcję przyjmowania jako parametr wyrażeń regularnych, np. taskkill Flash* /F (zakończone zostają wszystkie procesy rozpoczynające się od Flash*). W przypadku konieczność zastosowania takich wyrażeń regularnych należy utworzyć skrypt własny na wzór systemowego, który w w swojej strukturze będzie miał już zapisany taki parametr. Nie można skorzystać z funkcji Parametry.
Założenia
Skrypt przełącza możliwość wykonywania skryptów PowerShell'a (funkcja domyślnie zablokowana na standardowej instalacji Windowsa).
Parametry domyślne:
Treść skryptu
@echo off
rem ***************************** Informacje wstępne
rem Skrypt przełącza możliwość wykonywania skryptów PowerShell'a
rem (funkcja domyślnie zablokowana na standardowej instalacji Windowsa).
rem
rem Parametry:
rem enable - aktywuje obsługę skryptów PowerShell
rem disable - deaktywuje obsługę skryptów PowerShell
rem status - sprawdza aktualny stan obsługi skryptów PowerShell
if "%1" == "status" (
echo Wykonywanie skryptów Powershell:
powershell Get-ExecutionPolicy
) else if "%1" == "enable" (
powershell Set-ExecutionPolicy RemoteSigned
echo Wykonywanie skryptów Powershell:
powershell Get-ExecutionPolicy
) else if "%1" == "disable" (
powershell Set-ExecutionPolicy Restricted
echo Wykonywanie skryptów Powershell:
powershell Get-ExecutionPolicy
) else (
echo Nieprawidłowy parametr: '%1'
exit -2
)
exit
Parametry:
enable - aktywuje obsługę skryptów PowerShell
disable - deaktywuje obsługę skryptów PowerShell
status - sprawdza aktualny stan obsługi skryptów PowerShell
Related content
logplus.io