Powershell(3)
Powershell
可以使用powershell管理的服務
- share point, exchange, lync, windows azure, window server, system center, vmware, sql server, visual studio, 硬體
- .NET Framework是一個量身為windows定製的框架, 一款API, 解決了很多問題, .NET Framework解決了C/C++的記憶體管理, 大部分的程式執行在.NET Framework上, Window Management Frame安裝的前提是安裝了.NET Framework, 在windows上可以安裝多個.NET framework, 這樣是為了相容性考慮, 多裝一點好一點, 他是一個程式設計體系, 簡單的講這就是個類庫,有很多遊戲或者軟體都呼叫這個類庫裡的方法
- WinRM(預設不開啟, 是協議的實現)
- WMF(Windows Management Framework)可以安裝在Linux上
- windows 羨慕Linux的命令列, 但是因為Linux的設計裡面是檔案, 而windows是API, 所以採用了powershell這個平臺, ps的引擎一直都是沒有變的
- system Int 32
- system string
- system boolean
-
system collection hashtable
命令
- get-service
- format-volume
- 服務: bit, bits一般不怎麼用
- update-help -UIculture zh-CN
- set, new, add, remove等涉及到修改類的需要指定-Name
- 如果get-help沒有更新, 也不影響卡語法
- enable-bitlocker: 對driver加密
- 輸出的為物件, print物件的string
- get-member: 獲取物件成員 –> get-service | get-member –> 通過管道返回service物件的屬性(屬性和方法, 類似於python中的dir(obj))
- 輸出的列明為屬性名, 輸出的不一定是該物件所有的屬性, 而是一些可以輸出的屬性, 如果要全部, get-service | select-object *, 簡短的; 或者 get-service | get-member 複雜的
- 輸出的都是一行一行的表格, 其實他們是一個system.array物件, 輸出的是該物件中的物件的str資訊, 學過java和python懂得
-
接受管道傳來的物件是命令的引數, 通過get-help檢視paramter, 檢視是否接受管道, 還有接受管道的優先順序別
命令使用案例
- $var = “1” –> $var.gettype().fullname
- [system.int32]$a = “1” –> 提供強制轉型
- $services = get-services –> (services | foreach-object {)_.name}
-
foreach-object必須在管道後面, foreach必須另起一行
foreach ($item in $services) { $item.name $item.start() $item.stop() }
-
for迴圈
for ($i = 0; $i -le 100; $i++) { $i }
- 定義陣列$arr = @(`a`, `b`, `c`)
- 陣列: .count[元素個數], $arr[0]
- $host.ui.writedebugline(`error`)
- $error為內建的全域性變數, 是一個array, 存放異常物件
- $env:path –> 顯示環境變數的值, $env:pathext等等
- write-host, write-output, write –> echo
- `符是Linux中的作用
- $args為引數變數
- $erroractionperformance –> 命令錯誤的動作
- invokecommand -ComputerName name -ScriptBlock {…}–> 對遠端計算機執行命令, 類似於rpc, 但是在win上是WinRM, 將scriptblock內部東西推送到執行
- 反序列化物件沒有close和dispose等方法
-
system.object是所有的類的父類, 有gettype和tostring方法
為了深入瞭解序列化與反序列化的案例
enable-psremoting -force
set-wsmanquickconnfig -force
invoke-command -computername win2012 scriptblock {get-service -name alg} | get-member
那麼對於get-member命令是在本地執行的, 而get-service -name alg是推送到遠端主機執行的, 遠端執行完畢之後將得到的物件序列化返回給本地主機, 本地主機將該序列化物件進行反序列化轉為反序列化
物件, 此物件是沒有close(), dispose()等方法的
invoke-command -computername win2012 scriptblock {get-service -name alg | get-member}
服務
- alg: application layer gateway service
- bit, bits, winrm
遠端連線(在windows server 2012 r2預設已經配置好了)
- HTTP/HTTPS
- 偵聽器
- 開啟服務 set-msmanquickconfig
- 註冊偵聽器 http5985 https5986
如何開啟(powershell管理遠端, 客戶端與服務端):
enable-psremoting -force
set-wsmanquickconfig -force
- 本地信任列表
提供程式(這裡面的項看起來是檔案, 其實不是)
- get-childitem wsman: –> 與遠端連線有關, 使用set-item trusthost -value 192.168.1.7 新增信任
- cert
- hklm
- hkcu
- IIS
相關文章
- Powershell tricks::Powershell RemotingREM
- Powershell————1、認識Powershell
- Powershell————2、Powershell互動式
- Windows PowerShellWindows
- PowerShell 使用
- PowerShell使用
- Win10系統開啟Windows Powershell的3種方法Win10Windows
- powershell指令碼指令碼
- PowerShell HelpWriter 2021
- Powershell免殺
- Windows Powershell & 環境變數;Powershell where命令無輸出Windows變數
- Windows 升級 powershellWindows
- PowerShell安裝IIS
- powershell 版本問題
- Powershell tricks::Bypass AV
- Powershell and Windows RAW SOCKETWindows
- Linux 安裝 powershellLinux
- 【GiraKoo】PowerShell美化筆記筆記
- Powershell之MOF後門
- Powershell 提權框架-Powerup框架
- IPFS的PowerShell安裝
- powershell無法修改字符集,非修改登錄檔修改powershell的方法
- powershell重新命名指令碼指令碼
- PowerShell 筆記 - 基礎篇筆記
- Windows 下如何除錯 PowerShellWindows除錯
- 更改 Windows cmd 以及 PowerShell 字型Windows
- powershell程式碼混淆繞過
- Powershell tricks::Code Execution & Process Injection
- win10系統執行powershell提示找不到powershell.ink的解決方法Win10
- 利用powershell轉wps文件到pdf
- 繞過PowerShell執行策略方法
- powershell滲透-資訊收集命令
- 給大家安利一下 PowerShell
- [譯] PowerShell Core 6.0 的新增特性
- Powershell & Powersploit 入門
- 通過PowerShell管理Office 365組
- win10系統powershell使用教程_win10系統powershell命令列工具怎麼用Win10命令列
- Win10系統如何開啟Windows Powershell_Win10開啟Windows Powershell圖文教程Win10Windows