Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >powershell管道对象的正确处理

powershell管道对象的正确处理
EN

Stack Overflow用户
提问于 2013-04-09 13:34:21
回答 2查看 1.3K关注 0票数 1

此脚本代码段正在访问函数中的网站( SharePoint )。它创建了一个SPWeb对象,该对象应该在函数结束时被释放,以避免内存泄漏。通常,处理对象的方法类似于$web.dispose()。在本例中,SPWeb对象是在管道中创建和使用的,但没有名称。

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function foobar {
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" |
         ForEach-Object {$_.Lists | Where {$_.Title -EQ "someLibrary"} |  
         Select ID }
}

我怀疑SPWeb对象不会在管道末尾自动释放,并导致内存泄漏。

如何处理在管道中创建的对象?我有必要这么做吗?

仅供参考:$x没有名为“Dispose”的方法,因此$x.Dispose()不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 13:45:12

我不知道如何“自动”处理对象,但要使Dispose方法可用,您需要中断该命令。现在,最终的结果是一个不支持该方法的list对象。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function foobar {
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2"
    $list = $x.Lists['someLibrary'].Id
    $x.Dispose()
    $list
}
票数 1
EN

Stack Overflow用户

发布于 2017-07-05 16:30:07

更符合PowerShell vernacular的是通过使用Start-SPAssignmentStop-SPAssignment来维护管道,例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function foobar {
    $assig = Start-SPAssignment
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" -AssignmentCollection $assign |
         ForEach-Object {$_.Lists | Where {$_.Title -EQ "someLibrary"} |  
         Select ID }
    Stop-SPAssignment $assign
}

这只是一个示例,而不是一个经过验证的代码示例,因为我目前没有现成的SharePoint服务器来测试它,但它给了您一个想法。如果我有机会,我会测试它,并相应地修改我的答案。

进一步的改进是将ForEach压缩到管道中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function foobar {
    $assig = Start-SPAssignment
    $x = Get-SPWeb -Identity "http://mylocalsite/Sites/test1/test2" -AssignmentCollection $assign |
         Select-Object -ExpandProperty Lists | 
         Where {$_.Title -EQ "someLibrary"} |  
         Select ID
    Stop-SPAssignment $assign
}

再说一次,这只是一个说明,而不是一个经过验证的代码示例。

下面的博客文章对assignment对象PowerShell, SharePoint and Memory Leaks (Start-SPAssignment)提供了一个很好的教程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15903411

复制
相关文章
[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
该系列文章将系统整理和深入学习系统安全、逆向分析和恶意代码检测,文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。漫漫长征路,偏向虎山行。享受过程,一起加油~
Eastmount
2023/02/28
8.9K0
[系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
利用powershell 生成sqlserver 对象脚本
首先,创建一个server 对象实例,然后连接它。我只需要引入Script() 方法,脚本如下:
用户1217611
2022/05/06
9170
使用管道符在PowerShell中进行各种数据操作
最近在培训PowerShell,在讲到Pipeline的时候,对于我这种长期和数据(数据库)打交道的人来说,觉得很实用,所以写此博文,记录一下。
深蓝studyzy
2022/06/16
2.3K0
关于go的只读管道只写管道以及单向管道的理解
上面的例子,writeChan只能对ch变量进行写操作,readChan只能对ch变量进行读操作,这样造成很多同学对管道理解就有了只读和只写管道了,其实管道都是双向的,默认双向可读写,只是管道在函数参数传递时可以使用操作符限制管道的读写,就如上面的例子。
公众号-利志分享
2022/04/25
1K0
PowerShell系列(七)PowerShell当中的Provider介绍
今天给大家讲解PowerShell当中的非常重要的概念Provider相关的知识,希望对大家能有所帮助!
小明互联网技术分享社区
2023/09/26
3920
PowerShell系列(七)PowerShell当中的Provider介绍
图片加载失败的正确处理[通俗易懂]
对于这样一段代码来讲,如果该图片加载成功,那么界面上会显示图片,如果由于一些原因导致图片加载失败,会出现这样的图标。
全栈程序员站长
2022/08/23
2.4K0
图片加载失败的正确处理[通俗易懂]
Flutter SDK变更后的正确处理方式
网上有些方法用了未必有效。比如有说直接修改项目中的.packages文件,改完后可能还会有问题。
IT晴天
2020/02/18
2.3K0
Node中POST请求的正确处理方式
Node的 http 模块只对HTTP报文的头部进行了解析,然后触发 request 事件。如果请求中还带有内容部分(如 POST 请求,它具有报头和内容),内容部分需要用户自行接收和解析。
Qiang
2019/06/20
2K0
Node中POST请求的正确处理方式
在 JavaScript 正确处理变量
变量无处不在。即便我们写一个小函数或一个小工具,也要声明、赋值和读取变量。增强对变量的重视,可以提高代码的可读性和可维护性。
疯狂的技术宅
2020/12/31
6110
PowerShell系列(二):PowerShell和Python之间的差异介绍
今天给大家聊聊PowerShell和Python之间有哪些共同之处,各自有哪些优势,希望对运维的朋友了解两种语言能提供一些有用的信息。
小明互联网技术分享社区
2023/09/20
6270
PowerShell系列(二):PowerShell和Python之间的差异介绍
前端正确处理“文字溢出”的思路
然而当用户缩放浏览器显示的尺寸时,我们需要做到省略中间的文字,选择保留后缀这种方案。如下图所示:
@超人
2023/05/12
7630
前端正确处理“文字溢出”的思路
PowerShell的开源实现
从Mono老大的blog上Open Source Powershell Implementation 看到了一个PowerShell的开源实现的项目Pash。目前可以运行的平台包括Linux, Mac
张善友
2018/01/31
6900
PowerShell的开源实现
正确处理 CSV 文件的引号和逗号
CSV(Comma-Separated Values,逗号分割值),就是用纯文本的形式存储表格数据,最大的特点就是方便。
仁扬
2023/07/02
1.2K0
Powershell中的变量
在我们的迷你系列“Variables in Shells”中,了解如何在PowerShell中处理局部变量。
QRosie
2019/11/24
3K0
Powershell中的变量
PowerShell系列(三):PowerShell发展历程梳理
Windows Server 2003 SP1/SP2,Windows Server2003 R2, Windows XP SP2, and Windows Vista
小明互联网技术分享社区
2023/09/21
4610
PowerShell系列(三):PowerShell发展历程梳理
PowerShell revshells
PowerShell revshells 在提示符和工作目录上方显示 username@computer 有部分 AMSI-bypass,使一些事情更容易 TCP 和 UDP Windows Powershell 和核心 Powershell 上传和下载文件的功能。(使用sc0tfree的 Updog) ngrok 支持 ngrok 可以从脚本内部启动/停止 有效载荷将与 ngrok 地址一起生成 更新支持 您可以从脚本内部启动/停止 Updog PowerShell revshells 嵌入了上传/下
Khan安全团队
2023/02/23
1.4K0
PowerShell revshells
Redis的管道Pipeline
文章目录 1. Redis的管道(Pipeline) 1.1. 为什么使用管道 1.2. 客户端使用管道执行命令 1.2.1. API Redis的管道(Pipeline) 为什么使用管道 其中redis的执行一条命令可以分为四个步骤 发送命令 命令排队 命令执行 返回结果 其中1-4之间所需要的时间称为往返时间(RTT) Redis提供了批量操作命令(例如mget、mset等),有效地节约RTT。但 大部分命令是不支持批量操作的,例如要执行n次hgetall命令,并没有 mhgetall命令存在,需要
爱撒谎的男孩
2019/12/31
1.6K0
Shell中的管道
管道 管道,从一头进去,从另一头出来。 在Shell中,管道将一个程序的标准输出作为另一个程序的标准输入,就像用一根管子将一个程序的输出连接到另一个程序的输入一样。 管道的符号是|,下面的程序将cat的标准输出作为less的标准输入,以实现翻页的功能: $ cat source.list.bk | less tee 有时候我们想要同时将程序的输出显示在屏幕上(或进入管道)和保存到文件中,这个时候可以使用tee。 tee程序的输出和它的输入一样,但是会将输入内容额外的保存到文件中: $ cat hello.t
mwangblog
2018/07/04
9100
Dart 编码规范:正确处理 null
在 Dart 编码中,我们会经常遇到需要处理 null 的场合。Dart 2.12版本引入 null safety 以后,对 null 的处理有了新的规范。关于 null safety 特性,可以阅读本人的另一篇文章:升级踩坑,聊聊 Dart 的 null safety,本篇介绍如何正确处理 null。
玖柒的小窝
2021/11/21
1.3K0
Dart 编码规范:正确处理 null
Windows PowerShell:(
  Cmdlets 用于服务器的管理方面主要体现在4个方面:服务、日志、进程、服务器管理器。
py3study
2020/01/07
3.1K0

相似问题

Powershell管道前端-对象

12

PowerShell -管道枚举对象

23

管道中的PowerShell引用对象

135

管道中的PowerShell ForEach对象

22

C# Powershell管道前端对象

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文