- Remoting ໃຊ້ WinRM/WS-Man (HTTP/HTTPS) ແລະອະນຸຍາດໃຫ້ 1-to-1, 1-to-many, ແລະເຊດຊັນຄົງທີ່ທີ່ມີການຄວບຄຸມຄວາມປອດໄພ.
- Enable-PSRemoting configure ການບໍລິການ, listeners, ແລະ firewall; HTTPS ຕ້ອງການໃບຢັ້ງຢືນທີ່ຖືກຕ້ອງ ແລະ CN/SAN ກົງກັນ.
- ຜົນໄດ້ຮັບແມ່ນກັບຄືນ deserialized; ວິທີການຖືກເອີ້ນພາຍໃນ scriptblock ຫ່າງໄກສອກຫຼີກແລະຈຸດສິ້ນສຸດທີ່ກໍາຫນົດເອງແມ່ນໃຊ້ສໍາລັບການມອບຫມາຍທີ່ດີ.
ເຈົ້າອາດຈະເຮັດໃຫ້ຫຼາຍໜ້າວຽກໂດຍອັດຕະໂນມັດດ້ວຍ PowerShell ຢູ່ໃນທ້ອງຖິ່ນ, ແຕ່ເຈົ້າຢູ່ໃສແທ້ໆ PowerShell Remoting ເຮັດໃຫ້ຄວາມແຕກຕ່າງ ມັນແມ່ນເວລາທີ່ທ່ານດໍາເນີນການຄໍາສັ່ງໃນເຄື່ອງຫ່າງໄກສອກຫຼີກ, ບໍ່ວ່າຈະເປັນຈໍານວນຫນ້ອຍຫຼືຫຼາຍຮ້ອຍ, ການໂຕ້ຕອບຫຼືຂະຫນານ. ເທກໂນໂລຍີນີ້, ສາມາດໃຊ້ໄດ້ຕັ້ງແຕ່ Windows PowerShell 2.0 ແລະປັບປຸງຕັ້ງແຕ່ 3.0, ແມ່ນອີງໃສ່ WS-Management (WinRM) ແລະແປງ. PowerShell ໃນຊ່ອງທາງການຄຸ້ມຄອງທາງໄກທີ່ເຂັ້ມແຂງ, ສາມາດຂະຫຍາຍໄດ້ແລະປອດໄພ.
ຫນ້າທໍາອິດຂອງການທັງຫມົດ, ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະເຂົ້າໃຈສອງແນວຄວາມຄິດທີ່ສໍາຄັນ: cmdlets ກັບ - ຕົວກໍານົດການຊື່ຄອມພິວເຕີ (ເຊັ່ນ: Get-Process ຫຼື Get-Service) ບໍ່ແມ່ນເສັ້ນທາງໄລຍະຍາວທີ່ Microsoft ແນະນໍາ, ແລະ PowerShell Remoting ບໍ່ໄດ້ເຮັດວຽກເປັນ "hack." ໃນຄວາມເປັນຈິງ, ບັງຄັບໃຊ້ການກວດສອບເຊິ່ງກັນແລະກັນ, ບັນທຶກການກວດສອບ ແລະເຄົາລົບສິດອະນຸຍາດປົກກະຕິຂອງທ່ານ, ໂດຍບໍ່ມີການເກັບຮັກສາຂໍ້ມູນປະຈໍາຕົວ ຫຼືດໍາເນີນການອັນມະຫັດສະຈັນດ້ວຍສິດທິພິເສດ.
PowerShell Remoting ແມ່ນຫຍັງ ແລະເປັນຫຍັງຕ້ອງໃຊ້ມັນ?
ຂອບກົດລະບຽບ ການຖອດຖອນ PowerShell ເຈົ້າສາມາດ ປະຕິບັດເກືອບທຸກຄໍາສັ່ງຈາກໄລຍະໄກ ທີ່ທ່ານສາມາດເປີດຕົວໃນເຊດຊັນທ້ອງຖິ່ນ, ຈາກການບໍລິການສອບຖາມໄປຫາການຕັ້ງຄ່າການຕັ້ງຄ່າ, ແລະເຮັດແນວນັ້ນໃນຄອມພິວເຕີຫຼາຍຮ້ອຍເຄື່ອງໃນເວລາດຽວກັນ. ບໍ່ເຫມືອນກັບ cmdlets ທີ່ຍອມຮັບ -ComputerName (ຫຼາຍຄົນໃຊ້ DCOM/RPC), ໄລຍະໄກ ເດີນທາງຜ່ານ WS-Man (HTTP/HTTPS), ຊຶ່ງເປັນ firewall ເປັນມິດຫຼາຍ, ອະນຸຍາດໃຫ້ຂະຫນານແລະ offloads ເຮັດວຽກກັບເຈົ້າພາບຫ່າງໄກສອກຫຼີກ, ບໍ່ແມ່ນລູກຄ້າ.
ນີ້ແປເປັນສາມຂໍ້ໄດ້ປຽບການປະຕິບັດ: ການປະຕິບັດທີ່ດີກວ່າໃນການປະຕິບັດຂະຫນາດໃຫຍ່, friction ຫນ້ອຍໃນເຄືອຂ່າຍ ດ້ວຍກົດລະບຽບຈຳກັດ ແລະຮູບແບບຄວາມປອດໄພທີ່ສອດຄ່ອງກັບ Kerberos/HTTPS. ນອກຈາກນັ້ນ, ໂດຍບໍ່ຂຶ້ນກັບແຕ່ລະ cmdlet ເພື່ອປະຕິບັດການຫ່າງໄກສອກຫຼີກຂອງຕົນເອງ, Remoting ມັນເຮັດວຽກສໍາລັບ script ຫຼືບົດບາດໃດໆ ທີ່ມີຢູ່ໃນປາຍທາງ.
ໂດຍຄ່າເລີ່ມຕົ້ນ, ເຊີບເວີ Windows ທີ່ຜ່ານມາມາພ້ອມກັບການເປີດໃຊ້ງານຫ່າງໄກສອກຫຼີກ; ໃນ Windows 10/11 ທ່ານເປີດໃຊ້ມັນ ດ້ວຍ cmdlet ດຽວ. ແລະແມ່ນແລ້ວ, ທ່ານສາມາດນໍາໃຊ້ຂໍ້ມູນປະຈໍາຕົວສຳຮອງ, ເຊດຊັນຄົງທີ່, ຈຸດສິ້ນສຸດແບບກຳນົດເອງ, ແລະອື່ນໆອີກ.
ຫມາຍເຫດ: ການຫ່າງໄກສອກຫຼີກບໍ່ແມ່ນຄ້າຍຄືກັນກັບການເປີດທັງຫມົດ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ຜູ້ບໍລິຫານເທົ່ານັ້ນ ພວກເຂົາສາມາດເຊື່ອມຕໍ່ໄດ້, ແລະການກະທໍາແມ່ນຖືກປະຕິບັດພາຍໃຕ້ຕົວຕົນຂອງພວກເຂົາ. ຖ້າທ່ານຕ້ອງການການມອບຫມາຍທີ່ດີ, ຈຸດສິ້ນສຸດທີ່ກໍາຫນົດເອງອະນຸຍາດໃຫ້ທ່ານເປີດເຜີຍພຽງແຕ່ຄໍາສັ່ງທີ່ສໍາຄັນ.

ມັນເຮັດວຽກແນວໃດພາຍໃນ: WinRM, WS-Man ແລະພອດ
PowerShell Remoting ເຮັດວຽກຢູ່ໃນຕົວແບບລູກຄ້າ-ເຊີບເວີ. ລູກຄ້າສົ່ງຄໍາຮ້ອງຂໍການຄຸ້ມຄອງ WS ຜ່ານ HTTP (5985/TCP) ຫຼື HTTPS (5986/TCP). ຢູ່ໃນເປົ້າໝາຍ, ການບໍລິການ Windows Remote Management (WinRM) ຟັງ, ແກ້ໄຂຈຸດສິ້ນສຸດ (ການຕັ້ງຄ່າເຊສຊັນ), ແລະຈັດກອງປະຊຸມ PowerShell ໃນພື້ນຫຼັງ (ຂະບວນການ wsmprovhost.exe), ກັບຄືນຜົນໄດ້ຮັບ serialized ກັບລູກຄ້າ ໃນ XML ຜ່ານ SOAP.
ຄັ້ງທໍາອິດທີ່ທ່ານເປີດໃຊ້ການຫ່າງໄກສອກຫຼີກ, ຜູ້ຟັງຖືກຕັ້ງຄ່າ, ການຍົກເວັ້ນໄຟວໍທີ່ເຫມາະສົມແມ່ນເປີດ, ແລະການຕັ້ງຄ່າເຊດຊັນຖືກສ້າງຂື້ນ. ຈາກ PowerShell 6+, ຫຼາຍສະບັບຢູ່ຮ່ວມກັນ, ແລະ ເປີດໃຊ້ງານ, PSRemoting ລົງທະບຽນຈຸດສິ້ນສຸດດ້ວຍຊື່ທີ່ສະທ້ອນເຖິງເວີຊັນ (ຕົວຢ່າງ, PowerShell.7 ແລະ PowerShell.7.xy).
ຖ້າທ່ານພຽງແຕ່ອະນຸຍາດໃຫ້ HTTPS ໃນສະພາບແວດລ້ອມຂອງທ່ານ, ທ່ານສາມາດສ້າງ a ຜູ້ຟັງທີ່ປອດໄພ ກັບໃບຢັ້ງຢືນທີ່ອອກໃຫ້ໂດຍ CA ທີ່ເຊື່ອຖືໄດ້ (ແນະນໍາ). ອີກທາງເລືອກ, ທາງເລືອກອື່ນແມ່ນການໃຊ້ TrustedHosts ໃນລັກສະນະທີ່ຈໍາກັດ, ລະວັງຄວາມສ່ຽງ, ສໍາລັບສະຖານະການຂອງກຸ່ມຫຼືຄອມພິວເຕີທີ່ບໍ່ແມ່ນໂດເມນ.
ໃຫ້ສັງເກດວ່າ Powershell Remoting ສາມາດຢູ່ຮ່ວມກັນກັບ cmdlets ກັບ -ComputerName, ແຕ່ Microsoft ຍູ້ WS-Man ເປັນວິທີການມາດຕະຖານແລະຫຼັກຖານໃນອະນາຄົດສໍາລັບການຄຸ້ມຄອງຫ່າງໄກສອກຫຼີກ.
ເປີດໃຊ້ PowerShell Remoting ແລະພາລາມິເຕີທີ່ເປັນປະໂຫຍດ
ໃນ Windows, ພຽງແຕ່ເປີດ PowerShell ເປັນຜູ້ເບິ່ງແຍງລະບົບ ແລະດໍາເນີນການ ເປີດໃຊ້ງານ, PSRemoting. ລະບົບເລີ່ມ WinRM, ຕັ້ງຄ່າ autostart, ເປີດໃຊ້ຜູ້ຟັງ, ແລະສ້າງກົດລະບຽບໄຟວໍທີ່ເຫມາະສົມ. ກ່ຽວກັບລູກຄ້າທີ່ມີໂປຣໄຟລ໌ເຄືອຂ່າຍສາທາລະນະ, ທ່ານສາມາດໂດຍເຈດຕະນາອະນຸຍາດໃຫ້ນີ້ກັບ -SkipNetworkProfileCheck (ແລະຫຼັງຈາກນັ້ນເສີມສ້າງດ້ວຍກົດລະບຽບສະເພາະ):
Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force
syntax ຍັງອະນຸຍາດໃຫ້, - ຢືນຢັນ y -ຖ້າຫາກວ່າ ສໍາລັບການຄວບຄຸມການປ່ຽນແປງ. ຈື່: ມັນສາມາດໃຊ້ໄດ້ໃນ Windows ເທົ່ານັ້ນ, ແລະທ່ານຕ້ອງດໍາເນີນການ console ສູງ. ກົດລະບຽບທີ່ສ້າງຂຶ້ນແມ່ນແຕກຕ່າງກັນລະຫວ່າງສະບັບເຊີຟເວີແລະລູກຄ້າ, ໂດຍສະເພາະໃນເຄືອຂ່າຍສາທາລະນະ, ບ່ອນທີ່ໂດຍຄ່າເລີ່ມຕົ້ນພວກມັນຖືກຈໍາກັດຢູ່ໃນເຄືອຂ່າຍຍ່ອຍທ້ອງຖິ່ນເວັ້ນເສຍແຕ່ວ່າທ່ານຂະຫຍາຍຂອບເຂດ (ຕົວຢ່າງເຊັ່ນ Set-NetFirewallRule).
ເພື່ອລາຍຊື່ການຕັ້ງຄ່າເຊດຊັນທີ່ບັນທຶກໄວ້ແລ້ວ ແລະຢືນຢັນວ່າທຸກຢ່າງພ້ອມແລ້ວ, ໃຫ້ໃຊ້ Get-PSSessionConfigurationຖ້າຈຸດສິ້ນສຸດ PowerShell.x ແລະ Workflow ປະກົດຂຶ້ນ, ກອບການຖອດຖອນແມ່ນເຮັດວຽກ.

ຮູບແບບການນຳໃຊ້: 1 ຫາ 1, 1 ເຖິງຫຼາຍ, ແລະເຊດຊັນທີ່ຄົງຢູ່
ເມື່ອທ່ານຕ້ອງການ console ແບບໂຕ້ຕອບໃນຄອມພິວເຕີເຄື່ອງດຽວ, ໃຫ້ຫັນໄປຫາ Enter-PSSessionການເຕືອນຈະປາກົດ, ແລະທຸກສິ່ງທຸກຢ່າງທີ່ທ່ານປະຕິບັດຈະໄປຫາເຈົ້າພາບທາງໄກ. ທ່ານສາມາດນໍາໃຊ້ໃບຢັ້ງຢືນການກັບ Get-Credential ເພື່ອຫຼີກເວັ້ນການໃຫ້ເຂົາເຈົ້າເຂົ້າມາອີກເທື່ອຫນຶ່ງ:
$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession
ຖ້າສິ່ງທີ່ທ່ານກໍາລັງຊອກຫາແມ່ນເພື່ອສົ່ງຄໍາສັ່ງໄປຫາຄອມພິວເຕີຫຼາຍໆຄັ້ງໃນເວລາດຽວກັນ, ເຄື່ອງມືແມ່ນ Invoke-Command ດ້ວຍ scriptblock. ໂດຍຄ່າເລີ່ມຕົ້ນ, ມັນຈະເປີດການເຊື່ອມຕໍ່ພ້ອມກັນໄດ້ເຖິງ 32 ການເຊື່ອມຕໍ່ (ປັບໄດ້ດ້ວຍ -ThrottleLimit). ຜົນໄດ້ຮັບແມ່ນກັບຄືນມາເປັນ deserialized ວັດຖຸ (ໂດຍບໍ່ມີການ "ດໍາລົງຊີວິດ" ວິທີການ):
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred
ຕ້ອງການເອີ້ນໃຊ້ວິທີການເຊັ່ນ .Stop() ຫຼື .Start()? ເຮັດມັນ. ພາຍໃນ scriptblock ໃນສະພາບການຫ່າງໄກສອກຫຼີກ, ບໍ່ແມ່ນວັດຖຸ deserialized ທ້ອງຖິ່ນ, ແລະນັ້ນແມ່ນມັນ. ຖ້າມີ cmdlet ທຽບເທົ່າ (Stop-Service/Start-Service), ປົກກະຕິແລ້ວມັນມັກໃຊ້ມັນເພື່ອຄວາມຊັດເຈນ.
ເພື່ອຫຼີກເວັ້ນການຄ່າໃຊ້ຈ່າຍຂອງການເລີ່ມຕົ້ນແລະສິ້ນສຸດຂອງເຊດຊັນໃນແຕ່ລະການໂທ, ສ້າງ a PSSession ຄົງທີ່ ແລະໃຊ້ມັນຄືນໃນຫຼາຍຄໍາເຊີນ. ໃຊ້ New-PSSession ເພື່ອສ້າງການເຊື່ອມຕໍ່, ແລະໃຊ້ Invoke-Command-Session ເພື່ອໃຊ້ອຸໂມງຄືນໃໝ່. ຢ່າລືມປິດມັນດ້ວຍ Remove-PSSession ເມື່ອທ່ານເຮັດແລ້ວໆ.
Serialization, ຂອບເຂດຈໍາກັດແລະການປະຕິບັດທີ່ດີ
ລາຍລະອຽດທີ່ສໍາຄັນ: ໃນເວລາທີ່ເດີນທາງ, ວັດຖຸ "+flatten" ແລະມາຮອດ ພາບຖ່າຍ deserialized, ມີຄຸນສົມບັດແຕ່ບໍ່ມີວິທີການ. ນີ້ແມ່ນເຈດຕະນາແລະປະຫຍັດແບນວິດ, ແຕ່ມັນຫມາຍຄວາມວ່າທ່ານບໍ່ສາມາດໃຊ້ສະມາຊິກທີ່ປະຕິບັດເຫດຜົນ (ເຊັ່ນ: .Kill()) ໃນສໍາເນົາທ້ອງຖິ່ນ. ການແກ້ໄຂແມ່ນຈະແຈ້ງ: ຮຽກຮ້ອງວິທີການເຫຼົ່ານັ້ນ. ຫ່າງໄກສອກຫຼີກ ແລະຖ້າທ່ານຕ້ອງການສະເພາະບາງຊ່ອງ, ການກັ່ນຕອງດ້ວຍ Select-Object ເພື່ອສົ່ງຂໍ້ມູນຫນ້ອຍລົງ.
ໃນສະຄຣິບ, ຫຼີກເວັ້ນ Enter-PSSession (ມີຈຸດປະສົງເພື່ອໂຕ້ຕອບ) ແລະໃຊ້ Invoke-Command ກັບ script blocks. ຖ້າຫາກວ່າທ່ານຄາດຫວັງການໂທຫຼາຍຫຼືຕ້ອງການທີ່ຈະຮັກສາລັດ (ຕົວປ່ຽນແປງ, ໂມດູນນໍາເຂົ້າ), ໃຊ້ເຊດຊັນຄົງທີ່ ແລະ, ຖ້າເປັນໄປໄດ້, ຕັດການເຊື່ອມຕໍ່/ເຊື່ອມຕໍ່ພວກມັນຄືນໃໝ່ດ້ວຍ Disconnect-PSSession/Connect-PSSession ໃນ PowerShell 3.0+.
ການກວດສອບຄວາມຖືກຕ້ອງ, HTTPS, ແລະສະຖານະການນອກໂດເມນ
ໃນໂດເມນ, ການພິສູດຢືນຢັນພື້ນເມືອງແມ່ນ Kerberos ແລະທຸກສິ່ງທຸກຢ່າງໄຫຼ. ເມື່ອອຸປະກອນບໍ່ສາມາດຢືນຢັນຊື່ເຊີບເວີ, ຫຼືທ່ານເຊື່ອມຕໍ່ກັບ CNAME IP ຫຼືນາມແຝງ, ທ່ານຕ້ອງການຫນຶ່ງໃນສອງທາງເລືອກນີ້: 1) Listener HTTPS ກັບໃບຢັ້ງຢືນ ອອກໃຫ້ໂດຍ CA ທີ່ທ່ານໄວ້ໃຈ, ຫຼື 2) ເພີ່ມປາຍທາງ (ຊື່ ຫຼື IP) ໃສ່ TrustedHosts ແລະ ໃຊ້ຂໍ້ມູນປະຈໍາຕົວທາງເລືອກທີສອງປິດການໃຊ້ງານການກວດສອບເຊິ່ງກັນແລະກັນສໍາລັບແມ່ຂ່າຍນັ້ນ, ສະນັ້ນມັນຫຼຸດຜ່ອນຂອບເຂດຈໍາເປັນຕໍາ່ສຸດທີ່.
ການຕັ້ງຄ່າຜູ້ຟັງ HTTPS ຕ້ອງການໃບຢັ້ງຢືນ (ໂດຍສະເພາະຈາກ PKI ຂອງທ່ານຫຼື CA ສາທາລະນະ), ຕິດຕັ້ງຢູ່ໃນຮ້ານຂອງທີມແລະຜູກມັດກັບ WinRM. ຫຼັງຈາກນັ້ນ, Port 5986/TCP ຖືກເປີດຢູ່ໃນໄຟວໍແລະ, ຈາກລູກຄ້າ, ຖືກນໍາໃຊ້. - ໃຊ້SSL ໃນ cmdlets ໄລຍະໄກ. ສໍາລັບການກວດສອບໃບຢັ້ງຢືນລູກຄ້າ, ທ່ານສາມາດແຜນທີ່ໃບຢັ້ງຢືນກັບບັນຊີທ້ອງຖິ່ນແລະເຊື່ອມຕໍ່ກັບ - ໃບຢັ້ງຢືນການ Thumbprint (Enter-PSSession ບໍ່ຍອມຮັບມັນໂດຍກົງ; ສ້າງ session ທໍາອິດດ້ວຍ New-PSSession.)
hop ທີສອງແລະຄະນະຜູ້ແທນຂອງໃບຢັ້ງຢືນ
"double hop" ທີ່ມີຊື່ສຽງປະກົດຂຶ້ນເມື່ອ, ຫຼັງຈາກເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ, ທ່ານຕ້ອງການເຄື່ອງແມ່ຂ່າຍນັ້ນເພື່ອເຂົ້າເຖິງ a ຊັບພະຍາກອນທີສາມ ໃນນາມຂອງເຈົ້າ (ເຊັ່ນ: ການແບ່ງປັນ SMB). ມີສອງວິທີທີ່ຈະອະນຸຍາດໃຫ້ນີ້: CredSSP ແລະຄະນະຜູ້ແທນ Kerberos ອີງໃສ່ຊັບພະຍາກອນຈໍາກັດ.
ຂອບກົດລະບຽບ CredSSP ທ່ານເປີດໃຊ້ລູກຄ້າ ແລະຕົວກາງໃນການມອບໝາຍຂໍ້ມູນປະຈຳຕົວຢ່າງຈະແຈ້ງ, ແລະທ່ານກຳນົດນະໂຍບາຍ (GPO) ເພື່ອອະນຸຍາດໃຫ້ມອບໝາຍໃຫ້ຄອມພິວເຕີສະເພາະ. ມັນໄວໃນການຕັ້ງຄ່າ, ແຕ່ມີຄວາມປອດໄພໜ້ອຍກວ່າ ເພາະວ່າຂໍ້ມູນປະຈຳຕົວຈະເດີນທາງເປັນຂໍ້ຄວາມທີ່ຊັດເຈນພາຍໃນອຸໂມງທີ່ເຂົ້າລະຫັດໄວ້. ຈຳກັດແຫຼ່ງທີ່ມາ ແລະປາຍທາງສະເໝີ.
ທາງເລືອກທີ່ຕ້ອງການໃນໂດເມນແມ່ນ ຈໍາກັດຜູ້ແທນ Kerberos (ຄະນະຜູ້ແທນທີ່ອີງໃສ່ຊັບພະຍາກອນ) ໃນ AD ທີ່ທັນສະໄຫມ. ນີ້ອະນຸຍາດໃຫ້ endpoint ອີງໃສ່ການຮັບຕົວແທນຈາກຈຸດກາງສໍາລັບການບໍລິການສະເພາະ, ຫຼີກເວັ້ນການເປີດເຜີຍຕົວຕົນຂອງທ່ານໃນການເຊື່ອມຕໍ່ເບື້ອງຕົ້ນ. ຕ້ອງການຕົວຄວບຄຸມໂດເມນທີ່ຜ່ານມາແລະ RSAT ສະບັບປັບປຸງ.
ຈຸດສິ້ນສຸດແບບກຳນົດເອງ (ການກຳນົດຄ່າເຊດຊັນ)
ຫນຶ່ງໃນແກ້ວປະເສີດຂອງ Remoting ແມ່ນສາມາດລົງທະບຽນຈຸດເຊື່ອມຕໍ່ກັບ ຄວາມສາມາດປັບແຕ່ງແລະຂໍ້ຈໍາກັດ. ທໍາອິດທ່ານສ້າງໄຟລ໌ທີ່ມີ New-PSSessionConfigurationFile (ໂມດູນທີ່ຈະໂຫລດລ່ວງຫນ້າ, ຫນ້າທີ່ເບິ່ງເຫັນ, ນາມແຝງ, ExecutionPolicy, LanguageMode, ແລະອື່ນໆ), ແລະຫຼັງຈາກນັ້ນທ່ານລົງທະບຽນກັບ Register-PSSessionConfiguration, ບ່ອນທີ່ທ່ານສາມາດຕັ້ງຄ່າໄດ້. RunAsCredential ແລະການອະນຸຍາດ (SDDL ຫຼືການໂຕ້ຕອບ GUI ກັບ -ShowSecurityDscriptorUI).
ສໍາລັບຄະນະຜູ້ແທນທີ່ປອດໄພ, ເປີດເຜີຍພຽງແຕ່ສິ່ງທີ່ຈໍາເປັນກັບ -VisibleCmdlets/-VisibleFunctions ແລະປິດການທໍາງານຂອງສະຄິບຟຣີຖ້າເຫມາະສົມກັບ LanguageMode RestrictedLanguage ຫຼື NoLanguage. ຖ້າທ່ານອອກຈາກ FullLanguage, ບາງຄົນສາມາດໃຊ້ script block ເພື່ອເອີ້ນຄໍາສັ່ງທີ່ບໍ່ໄດ້ເປີດເຜີຍ, ເຊິ່ງລວມກັບ RunAs, ມັນຈະເປັນຂຸມ. ອອກແບບຈຸດສິ້ນສຸດເຫຼົ່ານີ້ດ້ວຍຫວີແຂ້ວລະອຽດ ແລະບັນທຶກຂອບເຂດຂອງພວກມັນ.
ໂດເມນ, GPOs, ແລະ Groupware
ໃນ AD ທ່ານສາມາດປັບໃຊ້ Powershell Remoting ໃນລະດັບທີ່ມີ GPO: ອະນຸຍາດໃຫ້ຕັ້ງຄ່າອັດຕະໂນມັດຂອງຜູ້ຟັງ WinRM, ຕັ້ງການບໍລິການເປັນອັດຕະໂນມັດ, ແລະສ້າງຂໍ້ຍົກເວັ້ນ firewall. ຈື່ໄວ້ວ່າ GPOs ປ່ຽນການຕັ້ງຄ່າ, ແຕ່ພວກມັນບໍ່ສະເຫມີເປີດບໍລິການທັນທີ; ບາງຄັ້ງທ່ານຈໍາເປັນຕ້ອງ restart ຫຼືບັງຄັບ gpupdate.
ຢູ່ໃນກຸ່ມວຽກ (ບໍ່ແມ່ນໂດເມນ), ຕັ້ງຄ່າ Remoting ກັບ ເປີດໃຊ້ງານ, PSRemoting, ຕັ້ງ TrustedHosts ໃນລູກຄ້າ (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) ແລະໃຊ້ຂໍ້ມູນປະຈໍາຕົວທ້ອງຖິ່ນ. ສໍາລັບ HTTPS, ທ່ານສາມາດຕິດຕັ້ງໃບຢັ້ງຢືນທີ່ເຊັນດ້ວຍຕົນເອງ, ເຖິງແມ່ນວ່າມັນຖືກແນະນໍາໃຫ້ໃຊ້ CA ທີ່ເຊື່ອຖືໄດ້ແລະ ຢືນຢັນຊື່ ທີ່ເຈົ້າຈະໃຊ້ໃນ -ComputerName ໃນໃບຮັບຮອງ (CN/SAN match).
ຄີ cmdlets ແລະ syntax
ມືຂອງ commandos ກວມເອົາ 90% ຂອງສະຖານະການປະຈໍາວັນ. ເພື່ອເປີດໃຊ້ / ປິດໃຊ້ງານ:
Enable-PSRemoting
Disable-PSRemoting
ເຊດຊັນໂຕ້ຕອບ 1 ຫາ 1 ແລະອອກ:
Enter-PSSession -ComputerName SEC504STUDENT
Exit-PSSession
1 ເຖິງຫຼາຍ, ມີຂະຫນານແລະຂໍ້ມູນປະຈໍາຕົວ:
Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred
ເຊດຊັນຄົງຄ້າງ ແລະນໍາໃຊ້ຄືນ:
$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s
ການທົດສອບແລະ WinRM ທີ່ເປັນປະໂຫຍດ:
Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https
ບັນທຶກການປະຕິບັດກ່ຽວກັບໄຟວໍ, ເຄືອຂ່າຍແລະພອດ
ເປີດ 5985/TCP ສໍາລັບ HTTP ແລະ 5986/TCP ສໍາລັບ HTTPS ໃນຄອມພິວເຕີເປົ້າໝາຍ ແລະໃນ ໄຟວໍລະດັບປານກາງໃດໆໃນລູກຄ້າ Windows, Enable-PSRemoting ສ້າງກົດລະບຽບສໍາລັບໂດເມນແລະໂປຣໄຟລ໌ສ່ວນຕົວ; ສໍາລັບໂປຣໄຟລ໌ສາທາລະນະ, ມັນຈໍາກັດຢູ່ໃນເຄືອຂ່າຍຍ່ອຍທ້ອງຖິ່ນເວັ້ນເສຍແຕ່ວ່າທ່ານດັດແປງຂອບເຂດດ້ວຍ Set-NetFirewallRule -RemoteAddress Any (ມູນຄ່າທີ່ທ່ານສາມາດປະເມີນໂດຍອີງໃສ່ຄວາມສ່ຽງຂອງທ່ານ).
ຖ້າທ່ານໃຊ້ການເຊື່ອມໂຍງ SOAR/SIEM ທີ່ດໍາເນີນການຄໍາສັ່ງທາງໄກ (ເຊັ່ນ: ຈາກ XSOAR), ໃຫ້ແນ່ໃຈວ່າເຄື່ອງແມ່ຂ່າຍມີ ຄວາມລະອຽດ DNS ກັບເຈົ້າພາບ, ການເຊື່ອມຕໍ່ກັບ 5985/5986, ແລະຂໍ້ມູນປະຈໍາຕົວທີ່ມີການອະນຸຍາດທ້ອງຖິ່ນພຽງພໍ. ໃນບາງກໍລະນີ, NTLM/Basic authentication ອາດຈະຮຽກຮ້ອງໃຫ້ມີການປັບຕົວ (ເຊັ່ນ: ການນໍາໃຊ້ຜູ້ໃຊ້ທ້ອງຖິ່ນໃນ Basic ກັບ SSL).
Enable-PSRemoting Parameters (ບົດສະຫຼຸບການດໍາເນີນງານ)
-Confirm ຂໍການຢືນຢັນກ່ອນທີ່ຈະປະຕິບັດ; - ບັງຄັບ ບໍ່ສົນໃຈຄຳເຕືອນ ແລະເຮັດການປ່ຽນແປງທີ່ຈໍາເປັນ; -SkipNetworkProfileCheck ເປີດໃຊ້ Remoting ໃນເຄືອຂ່າຍລູກຄ້າສາທາລະນະ (ຈໍາກັດໂດຍຄ່າເລີ່ມຕົ້ນກັບເຄືອຂ່າຍຍ່ອຍທ້ອງຖິ່ນ); -WhatIf ສະແດງໃຫ້ທ່ານເຫັນສິ່ງທີ່ຈະເກີດຂຶ້ນໂດຍບໍ່ມີການນໍາໃຊ້ການປ່ຽນແປງ. ນອກຈາກນັ້ນ, ເຊັ່ນດຽວກັນກັບ cmdlet ມາດຕະຖານໃດກໍ່ຕາມ, ມັນສະຫນັບສະຫນູນ ຕົວກໍານົດການທົ່ວໄປ (-Verbose, -ErrorAction, ແລະອື່ນໆ).
ຈົ່ງຈື່ໄວ້ວ່າ "ເປີດໃຊ້" ບໍ່ໄດ້ສ້າງຜູ້ຟັງ HTTPS ຫຼືໃບຢັ້ງຢືນສໍາລັບທ່ານ; ຖ້າຫາກວ່າທ່ານຕ້ອງການການເຂົ້າລະຫັດ end-to-end ຈາກການເລີ່ມຕົ້ນແລະການກວດສອບໂດຍອີງໃສ່ ໃບຢັ້ງຢືນ, ຕັ້ງຄ່າຕົວຟັງ HTTPS ແລະກວດສອບ CN/SAN ຕໍ່ກັບຊື່ທີ່ເຈົ້າຈະໃຊ້ໃນ -ComputerName.
WinRM ທີ່ເປັນປະໂຫຍດແລະຄໍາສັ່ງຫ່າງໄກສອກຫຼີກ PowerShell
ບາງຄົນ ສິ່ງຂອງທີ່ສໍາຄັນຂ້າງຕຽງນອນ ສໍາລັບຊີວິດປະຈໍາວັນ:
winrm get winrm/config
winrm enumerate winrm/config/listener
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
Test-WSMan -ComputerName host -Authentication Default -Credential (Get-Credential)
New-PSSession -ComputerName host
Enter-PSSession -ComputerName host
Enable-PSRemoting -SkipNetworkProfileCheck -Force
ໃນເວລາທີ່ການຄຸ້ມຄອງ Windows ໃນຂະຫນາດ, Remoting ອະນຸຍາດໃຫ້ທ່ານທີ່ຈະຍ້າຍອອກຈາກ "ຄອມພິວເຕີກັບຄອມພິວເຕີ" ກັບວິທີການປະກາດແລະຄວາມປອດໄພ. ໂດຍການລວມເອົາເຊດຊັນທີ່ຍັງຄົງຄ້າງ, ການພິສູດຢືນຢັນທີ່ເຂັ້ມແຂງ (Kerberos/HTTPS), ຈຸດສິ້ນສຸດທີ່ຈຳກັດ, ແລະການຕິດຕາມທີ່ຊັດເຈນສໍາລັບການວິນິດໄສ, ທ່ານໄດ້ຮັບຄວາມໄວແລະການຄວບຄຸມ ໂດຍບໍ່ມີການເສຍສະລະຄວາມປອດໄພຫຼືການກວດສອບ. ຖ້າທ່ານຍັງສ້າງມາດຕະຖານການເປີດໃຊ້ GPO ແລະເປັນກໍລະນີພິເສດ (TrustedHosts, double hop, ໃບຢັ້ງຢືນ), ທ່ານຈະມີເວທີຫ່າງໄກສອກຫຼີກແຂງສໍາລັບການດໍາເນີນງານປະຈໍາວັນແລະການຕອບສະຫນອງເຫດການ.
ບັນນາທິການຊ່ຽວຊານໃນບັນຫາເຕັກໂນໂລຢີແລະອິນເຕີເນັດທີ່ມີປະສົບການຫຼາຍກວ່າສິບປີໃນສື່ດິຈິຕອນທີ່ແຕກຕ່າງກັນ. ຂ້າພະເຈົ້າໄດ້ເຮັດວຽກເປັນບັນນາທິການແລະຜູ້ສ້າງເນື້ອຫາສໍາລັບ e-commerce, ການສື່ສານ, ການຕະຫຼາດອອນໄລນ໌ແລະບໍລິສັດໂຄສະນາ. ຂ້າພະເຈົ້າຍັງໄດ້ຂຽນກ່ຽວກັບເສດຖະກິດ, ການເງິນແລະເວັບໄຊທ໌ຂອງຂະແຫນງການອື່ນໆ. ການເຮັດວຽກຂອງຂ້ອຍຍັງເປັນ passion ຂອງຂ້ອຍ. ໃນປັດຈຸບັນ, ໂດຍຜ່ານບົດຄວາມຂອງຂ້າພະເຈົ້າໃນ Tecnobits, ຂ້າພະເຈົ້າພະຍາຍາມຄົ້ນຫາຂ່າວທັງຫມົດແລະໂອກາດໃຫມ່ທີ່ໂລກຂອງເຕັກໂນໂລຢີສະເຫນີໃຫ້ພວກເຮົາທຸກໆມື້ເພື່ອປັບປຸງຊີວິດຂອງພວກເຮົາ.