Ще се постарая да покажа най-честите команди в конзолата Powershell.
Get-Service | Select-Object Name,Status,StartType | more
Тази конада ще подреди единa под другa всички налични услуги. Ако искаме примерно да проверим услугата "Remote Desktop Services" (TermService), то комндата ще е:
Get-Service TermService | Select-Object Name,Status,StartType Name Status StartType ---- ------ --------- TermService Stopped Manual
В управление се има в предвид, как да се стартира услугата (Автоматично/Ръчно) и стартиране на услугата в текуща сесия. Ще продължим с горния пример за TermService. Първо ще накараме услугата автоматично да се стартира след рестарт на машината, а след това ще я стартираме в текущата сесия.
Set-Service TermService -StartupType Automatic Start-Service TermService
И да проверим какво създадохме:
Get-Service TermService | Select-Object Name,Status,StartType Name Status StartType ---- ------ --------- TermService Running Automatic
Всичко е както искахме.
Първата задача е да проверим какви правила има в защитната стена.
Get-NetFirewallRule | select DisplayGroup | more
Достатъчно голям брой правила. Примерно ни вълнува правилата за споделяне на папки.
Get-NetFirewallRule | select DisplayGroup | Select-String 'Sharing' @{DisplayGroup=File and Printer Sharing} @{DisplayGroup=File and Printer Sharing} @{DisplayGroup=File and Printer Sharing (Restrictive)} @{DisplayGroup=File and Printer Sharing} @{DisplayGroup=File and Printer Sharing} ### Надолу има още доста правила, няма да ги показвам всичките ... @{DisplayGroup=Windows Media Player Network Sharing Service} @{DisplayGroup=Windows Media Player Network Sharing Service} @{DisplayGroup=Windows Media Player Network Sharing Service} @{DisplayGroup=Windows Media Player Network Sharing Service}
Нас ни вълнува примерно DisplayGroup=File and Printer Sharing. Да проверим самото правило за тази група.
Get-NetFirewallRule -DisplayGroup 'File and Printer Sharing'
Отново доста правила даде системата като отговор. Значи ще потърсим не по DisplayGroup, а по конкретно име DisplayName
Get-NetFirewallRule -DisplayName 'File and Printer Sharing (SMB-In)'
В случая имаме отговор за 3 правила. Отново дълъг отговор. Нужен ни прост и прегледен екран.
Get-NetFirewallRule -DisplayGroup 'File and Printer Sharing' -Direction Inbound | Select-Object -Property DisplayName,Profiles,Enabled,Action DisplayName Profiles Enabled Action ----------- -------- ------- ------ File and Printer Sharing (Spooler Service - RPC-EPMAP) 1 False Allow File and Printer Sharing (Spooler Service - RPC) 1 False Allow File and Printer Sharing (NB-Session-In) 1 False Allow File and Printer Sharing (Spooler Service - RPC) 4 True Allow File and Printer Sharing (NB-Datagram-In) 1 False Allow File and Printer Sharing (NB-Name-In) 4 True Allow File and Printer Sharing (Spooler Service - RPC-EPMAP) 4 True Allow File and Printer Sharing (NB-Name-In) 1 False Allow File and Printer Sharing (NB-Session-In) 4 True Allow File and Printer Sharing (Echo Request - ICMPv4-In) 4 True Allow File and Printer Sharing (SMB-In) 4 True Allow File and Printer Sharing (SMB-In) 1 False Allow File and Printer Sharing (Echo Request - ICMPv6-In) 4 True Allow File and Printer Sharing (Echo Request - ICMPv6-In) 1 False Allow File and Printer Sharing (NB-Datagram-In) 4 True Allow File and Printer Sharing (Echo Request - ICMPv4-In) 1 False Allow File and Printer Sharing (LLMNR-UDP-In) 4 True Allow File and Printer Sharing (LLMNR-UDP-In) 3 False Allow File and Printer Sharing (NB-Datagram-In) 2 False Allow File and Printer Sharing (Echo Request - ICMPv6-In) 2 False Allow File and Printer Sharing (SMB-In) 2 False Allow File and Printer Sharing (Echo Request - ICMPv4-In) 2 False Allow File and Printer Sharing (NB-Session-In) 2 False Allow File and Printer Sharing (Spooler Service - RPC-EPMAP) 2 False Allow File and Printer Sharing (NB-Name-In) 2 False Allow File and Printer Sharing (Spooler Service - RPC) 2 False Allow
Прегледно и ясно. Супер! Сега да променим някое от горните правила, примерно "File and Printer Sharing (Echo Request - ICMPv4-In) 2 False Allow". Няма да го правим с една команда да е активно и да се отнася за всички профили, а поотделно. Накрая ще покажа как може да се направи с една команда. За начало нека правилото се отнася за всички профили.
Set-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)' -Profile Public,Domain,Private
Да проверим:
Get-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)' -Direction Inbound | Select-Object -Property DisplayName,Profiles,Enabled,Action DisplayName Profiles Enabled Action ----------- -------- ------- ------ File and Printer Sharing (Echo Request - ICMPv4-In) 7 True Allow File and Printer Sharing (Echo Request - ICMPv4-In) 7 False Allow File and Printer Sharing (Echo Request - ICMPv4-In) 7 False Allow
Прекрасно, правилото се отнася за всички профили. Сега да го направим активно (Имаме две прафила със статус False).
Set-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)' -Enabled True
Да проверим:
Get-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)' | Select-Object -Property DisplayName,Profiles,Enabled,Action DisplayName Profiles Enabled Action ----------- -------- ------- ------ File and Printer Sharing (Echo Request - ICMPv4-In) 7 True Allow File and Printer Sharing (Echo Request - ICMPv4-In) 7 True Allow File and Printer Sharing (Echo Request - ICMPv4-In) 7 True Allow
И сега обещаната команда която ще направи горните две стъпки на един път.
Set-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)' -Enabled True -Profile Public,Domain,Private
Ако пък искате правилото да се прилага не само за точно определено условие, то използвайте група. За пример:
Set-NetFirewallRule -DisplayGroup 'File and Printer Sharing' -Enabled True -Profile Public,Domain,Private
Като цяло Powershell е много мощен инструмент. Просто е доста мъчен за анализ.
За начало да проверим какви приложения от магазина на Microsoft са инсталирани .
Get-AppxPackage | select name, packagefullname
За да изтриете определено приложение:
Get-AppxPackage *windowsmaps*| Remove-AppxPackage
Приложението беше изтрито за текущия потребител. Ако пък е за всички потребители:
Get-AppxPackage -allusers *windowsalarms*| Remove-AppxPackage
Ако пък искате да изтриете всички приложения за всички потребители то ползвайте следната команда:
Get-AppxPackage -allusers | Remove-AppxPackage
Сега ще покажа няколко приложения които стандартно не могат да се изтрият. Може само през PowerShell като Administrator.
Get-AppxPackage -allusers *Microsoft.Xbox* | Remove-AppxPackage Get-AppxPackage -allusers Microsoft.549981C3F5F10 | Remove-AppxPackage Get-AppxPackage *Microsoft.YourPhone* -AllUsers | Remove-AppxPackage Get-AppxPackage -allusers *People* | Remove-AppxPackage Get-AppxPackage -allusers Microsoft.WindowsMaps | Remove-AppxPackage
Приложенията са: - Xbox - Кортана - Вашия телефон - Хора - Карти Примерно още могат да се изтрият, Време, Офис, OneNote, OneDrive.