是否可以使用Powershell编辑Linux服务器的配置文件?

时间:2019-07-17 04:42:47

标签: powershell

我正在尝试编写一个Powershell脚本,该脚本在SSH进入后可以编辑linux服务器的配置文件。

此脚本的目的是为我在工作中使用的安全工具自动配置linux服务器。我要创建一个脚本来为我执行此操作,而不是手动处理[cmd中的SSH linux服务器,在vim中打开和编辑配置文件]。

我已经阅读了很多有关bash脚本的文档,但是我没有找到有关将Powershell与Linux服务器集成的太多信息。

1 个答案:

答案 0 :(得分:0)

只需使用SCP。

使用SCP,您可以通过SSH传输文件。因此,您可以下载文件,在本地进行编辑,然后再上传。

要下载文件,请使用:

EnumProcessModules

要上传文件,请使用:

moduleHandles

您还可以使用func getBaseAddress(handle uintptr) int64 { // GetProcessImageFileNameA var imageFileName [200]byte var fileSize uint32 = 200 var fileName string ret, _, _ := procGetProcessImageFileNameA.Call(handle, uintptr(unsafe.Pointer(&imageFileName)), uintptr(fileSize)) for _, char := range imageFileName { if char == 0 { break } fileName += string(char) } fileName = fileName[24:] // EnumProcessModules var n uint32 var needed uint64 ret, _, _ = procEnumProcessModules.Call(handle, 0, uintptr(n), uintptr(unsafe.Pointer(&needed))) moduleHandles := make([]syscall.Handle, int(needed)) if ret == 1 && needed > 0 { ret, _, _ = procEnumProcessModules.Call(handle, uintptr(unsafe.Pointer(&moduleHandles)), uintptr(needed), uintptr(unsafe.Pointer(&needed))) } // GetModuleFileNameExA var finalModuleHandle uintptr for _, moduleHandle := range moduleHandles { if moduleHandle > 0 { var moduleFileName [200]byte var moduleSize uint32 = 200 var moduleName string ret, _, _ = procGetModuleFileNameExA.Call(handle, uintptr(moduleHandle), uintptr(unsafe.Pointer(&moduleFileName)), uintptr(moduleSize)) if ret != 0 { for _, char := range moduleFileName { if char == 0 { break } moduleName += string(char) } moduleName = moduleName[3:] if moduleName == fileName { finalModuleHandle = uintptr(moduleHandle) break } } } } return int64(finalModuleHandle) } 或其他与SSH一起使用的身份验证方法,例如公钥身份验证。