Get-ChildItem -R -Path "D:\fileFolder\" | ? { $_.Name -like '*(1).mp4' } | Remove-Item
Category Archives: Microsoft
GPO – rozwiązywanie problemów ( troubleshooting )
W przypadku problemów ze źle działającymi polisami dobrze sprawdzić:
- Czy polisa jest w ogóle podpięta do konkretnego OU;
- Czy link jest włączony / aktywny (Policy properties -> Scope -> Enabled: Yes). Symbolizuje to również niebieska strzałeczka przy podpiętym linku. Jeśli link nie jest aktywny – strzałeczka jest szara.
- Czy nie ma zaznaczonego Security Filtering (Policy properties -> Scope -> Security Filtering);
- Czy nie ma zaznaczonego WMI Filtering (Policy properties -> Scope -> WMI Filtering);
- Czy polisa jest włączona (lub dla jakiej sekcji jest wyłączona) (Policy properties -> Details -> GPO Status);
- Kolejności ładowania polis i dziedziczenia – czy nie jest przypadkiem zablokowane aplikowanie polisy, która jest podpięta do kontenera nadrzędnego.
Enforce Policy jest regułą nadrzędną i wymusza aplikowanie polisy do podrzędnych OU, nawet gdy mają one zaznaczoną regułę blokującą dziedziczenie – Block Inheritance. Polisa wymuszająca dziedziczenie zostanie zaaplikowana jako ostatnia. Kolejności ładowania polis wyświetla zakładka Group Policy Inheritance po kliknięciu na OU);
Zmianę kolejności ładowania polis podpiętych tylko do konkretnego OU można dokonać po kliknięciu na OU a następnie na zakładkę Linked Group Policy Objects (strzałki po lewej stronie). - Czy polisa jest obsługiwana przez dany system operacyjny (zazwyczaj notka Supported on: pod radio buttonami Not Configured, Enabled, Disabled) lub okienko pomocy.
- Czy polisa nie wymaga restartu komputera lub przelogowania użytkownika (polecenie gpupdate /force wyświetli odpowiedni komunikat jeśli tak będzie).
- Group Policy Result – można uruchomić z poziomu GPMC lub na systemie klienckim, wydając polecenie gpresult /H:gpresult.html
- Czy kontroler domenty, do którego jest aktualnie podłączony komputer jest faktycznie tym, który przetwarza polisy (podłączenie można sprawdzić poprzez wydanie polecenia: start -> cmd -> komenda set -> wyświetlona zmienna LOGONSERVER=). Może się okazać, że w dużym środowisku komputer / użytkownik może być podłączony do jednego DC, a mieć przetwarzane polisy (tzw. secure channel) przez inny DC. Wyświetlenie kontrolera domeny, który przetwarza polisy można wykonać poprzez wydanie na końcówce komendy: nltest /sc_query:nazwadomeny.local
- Czy wersja polisy dla użytkownika różni się od wersji polisy dla komputera (w zakładce Details: User Version, Computer Version);
- Czy kontrolery są poprawnie replikowane: http://obsluga-it.pl/sprawdzanie-poprawnej-replikacji-miedzy-kontrolerami-domeny/
Windows Server 2022 – zabezpieczenie systemu ( Microsoft Security Baselines Blog )
Microsoft Security Baselines Blog jest to blog mówiący nt. dobrych praktyk dot. zabezpieczeń produktów Microsoft. Jednym z produktów jest Server 2022, którego wybierając z listy użytkownik przechodzi do strony zawierającej materiały szkoleniowe oraz narzędzia mające na celu zabezpieczenie danego systemu, tj. Security Compliance Toolkit and Baselines: https://www.microsoft.com/en-us/download/details.aspx?id=55319
W przypadku zabezpieczenia Windows Server 2022 na uwagę zasługują 3 pozycje:
– Windows Server 2022 Security Baseline (użyteczne pliki: New Settings in Windowa Server 2022.xlsx, Final-MS Security Baseline Windows Server 2022.xlsx – dobre praktyki, ustawienia GPO oraz przykładowe – rekomendowane reguły polis: Windows Server-2022-Security-Baseline-FINAL\Documentation\MSFT-WS2022-FINAL.PolicyRules),
– PolicyAnalyzer – aplikacja, jak sama nazwa wskazuje – analizator / porównywarka polis. Można do programu zaimportować wszystkie reguły (z rozszerzeniem *.PolicyRules) znajdujące się w katalogu PolicyRules (w ściągniętym archiwum wraz z programem) oraz powyższą regułę (tj. MSFT-WS2022-FINAL.PolicyRules) a następnie porównać je z naszymi. Wówczas można zobaczyć jak się mają one do dobrych praktyk – ustawień polis zalecanych przez Microsoft.
– LGPO – Local Group Policy Object Utility – aplikacja obsługiwana wyłącznie z linii komend służąca do eksportu / importu lokalnych polis z Registry Policy (Registry.pol) a także z odpowiednio sformatowanych plików tekstowych „LGPO text” oraz XML – plików programu Policy Analyzer.
Eksport polis można dokonać również bezpośrednio z GPMC.
Źródła:
Blog Microsoft nt. zabezpieczeń swoich produktów ( Microsoft Security Baselines Blog ):
https://techcommunity.microsoft.com/t5/microsoft-security-baselines/bg-p/Microsoft-Security-Baselines
https://techcommunity.microsoft.com/t5/windows-server-for-it-pro/active-directory-advanced-threat-hunting-compare-gpos-with-the/m-p/4074177
Powershell – masowa zmiana nazw plików
Get-ChildItem -Path e:\pliki\*.txt -File | ForEach-Object { $currentFile = $_.Name $newName = $_.Name -replace "stary_fragment_nazwy", "nowy_fragment_nazwy" Rename-Item -path $_ -NewName $newName Write-Host "Renamed file $currentFile to $newName" }
lub inaczej:
get-childitem *txt | foreach {
rename-item $_ $_.name.replace("stary_fragment_nazwy","nowy_fragment_nazwy")
}
Więcej nt. zmiany nazw plików: https://lazyadmin.nl/powershell/rename-files/
MSSQL Server 2019 – sprawdzenie spójności i naprawa baza
-- ustawienie bazy w tryb SINGLE_USER, wszystkie transakcje użytkowników zostaną wycofane a sesje zakończone ALTER DATABASE [AdventureWorks2014backup] SET SINGLE_USER WITH ROLLBACK IMMIDIATE DBCC CHECKDB ([AdventureWorks2014backup], REPAIR_ALLOW_DATA_LOSS) -- przywrócenie bazy w tryb MULTI_USER (UWAGA - należy zamknąć wszystkie uprzednio otwarte skrypty, okna, sesje itp.) ALTER DATABASE [AdventureWorks2014backup] SET MULTI_USER;
Powershell – Wyświetlenie plików oraz folderów których ścieżka dostępu przekracza x znaków
Get-ChildItem -path e:\ -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.FullName.Length -gt 250}
Wyświetlenie liczby plików / folderów których ścieżka dostępu przekracza 250 znaków:
write-host(Get-ChildItem -path e:\ -Recurse -Force -ErrorAction SilentlyContinue | Where-Object {$_.FullName.Length -gt 250}).count
Po przełączniku -Recourse można użyć przełącznika -File lub -Directory.
Powershell – monitorowanie temperatury CPU
function Get-Temperature { $t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi" $returntemp = @() foreach ($temp in $t.CurrentTemperature) { $currentTempCelsius = ($temp / 10) - 273.15 $returntemp += $currentTempCelsius.ToString() } return $returntemp } Get-Temperature
Active Directory – odblokowanie konta i reset hasła administratora domeny
Aby odblokować i zresetować hasło Administratora należy uruchomić serwer z płyty instalacyjnej Windows Serwer (testowane na 2022) a następnie wejść do linii komend i wykonać poniższe kroki:
1) narzędziem DiskPart należy nadać literę partycji systemowej;
diskpart select disk 0 list partition select partition 3 assign letter c
2) odpowiednio skonfigurować ponowne uruchomienie serwera oraz podmienić plik utilman.exe;
bcdedit /set {bootmgr} displaybootmenu yes bcdedit /set {bootmgr} timeout 15 c: cd windows/system32 ren utilman.exe utilman.123 copy cmd.exe utilman.exe
3) Restart serwera. Po restarcie naciśnięcie klawisza F8 i wybranie opcji „Disable Early Launch Anti-Malware Driver”, przy logowaniu należy kliknąć na ikonkę kółeczka znajdującą się w dolnym prawym rogu. Zamiast narzędzia utilman.exe otworzy się cmd.exe – linia komend.
4) W linii komend należy wydać polecenia odblokowujące i zmieniające hasło użytkownikowi Administrator (również administratorowi domenowemu):
net user administrator /active:yes net user administrator password net user administrator password /domain
Active Directory i PowerShell – operacje na grupach
Wyświetlenie obiektów należących do grupy o nazwie GroupName
Get-ADGroupMember GroupName | Format-Table name
Wyświetlenie wszystkich grup, do których należy użytkownik o nazwie UserName
Get-ADPrincipalGroupMembership UserName | Format-Table name
Wyświetlenie użytkowników należących do grupy zabezpieczeń o nazwie SecureGroup.
Get-ADUser -filter 'memberOf -recursivematch "CN=SecureGroup, OU=IT, DC=domena, DC=local"' | Format-Table name
Dodanie użytkowników OU do grupy zabezpieczeń.
Get-ADUser -SearchBase ‘OU=nazwaOU,DC=test,DC=local’ -Filter * | ForEach-Object {Add-ADGroupMember -Identity ‘NazwaGrupyZabezpieczen’ -Members $_ }
Windows – programy służące od wysycenia zasobów systemu
Świetne programy pozwalające na symulację pracy systemu Windows pod obciążeniem:
Testlimit – obciążenie pamięci RAM ( https://learn.microsoft.com/pl-pl/sysinternals/downloads/testlimit )
CPU Stres – obciążenie CPU ( https://learn.microsoft.com/en-us/sysinternals/downloads/cpustres )