问题标签 [powershell-remoting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
image-processing - 使用 System.Drawing.Image 导出带有 $imageFile.Width 和 $_.Fullname 的 Csv
我想知道是否有更好的方法来编写这个脚本来收集图像尺寸和文件路径。该脚本适用于中小型目录,但我不肯定 100,000 多个文件/文件夹是可能的。
我现在实际上并没有使用 Where-Object 过滤器。
使用 appx 在远程目录上运行上述脚本时。该脚本需要 20,000 个文件 + 文件夹 appx。26 分钟,在创建 .csv 之前。
我在 Windows 7 上从 Powershell V2 ISE 运行脚本,我相信远程服务器在 Windows Server 2003 上。
直接从远程服务器运行脚本会更快吗?
由于所有数据在写入 csv 之前都收集在“缓存”中,因此导出 csv 的过程是否缓慢?
如果我只需要处理 20,000 个文件,我会等待 26 分钟,但 500,000 个文件和文件夹是一个漫长的等待。
我正在测试下面的方法,因为我认为我真正的问题不是速度,而是在内存中存储了太多数据。感谢 George Howarth 的帖子,以及顶级脚本的 PoSherLife -http://powershellcommunity.org/tabid/54/aft/4844/Default.aspx
在非图像文件类型上运行这些脚本时是否存在任何风险/性能损失?
当我不排除非图像时,我收到此错误:
感谢您的任何建议!再次感谢 George Howarth 和 PoSherLife 的剧本!
powershell - powershell 远程作业
为什么我收到以下代码的错误:
Receive-Job :输入对象不能绑定到命令的任何参数,因为命令不接受管道输入,或者输入及其属性不匹配任何接受管道输入的参数。在 line:1 char:147 + Get-Job -Id 1 | 选择对象-ExpandProperty 子作业 | Where-Object {$_.state -eq 'Completed'} | 选择对象-ExpandProperty id | Receive-Job <<<<
+ CategoryInfo : InvalidArgument: (2:PSObject) [Receive-Job], ParameterBindingException + FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Commands.ReceiveJobCommand
但是,这条线完美地工作:
感谢您对代码的任何提示或有用的评论。我是 PowerShell 的新手。
谢谢
powershell - 如何将 InputObject 上的 NoteProperties 访问到远程会话
我在访问PSObject
定义了 NoteProperties 的 s 时遇到了困难,它们正在通过Invoke-Command
. 我为此目的构造一个对象的原因是我需要访问远程会话中的两条单独的信息,但 PowerShell 只提供一个InputObject
.
我的代码看起来像这样:
对于上面的每个编号行,我得到以下输出。
1.$input
因此,首先我尝试了将变量转储到控制台的常用技术,这证实了属性以预期值传递:
2.$input | Get-Member
这比之前的尝试产生了更多的信息:
请注意,最后两行清楚地表明 NoteProperty 存在于远程会话接收的对象上。所有这些提到Deserialized
都开始激起我的兴趣......
3.$input.NoteProperty1
在前两个运气好之后,我开始尝试检查NoteProperty1
自己。但是,此属性的值似乎为 null;使用上面的行没有将任何内容写入控制台,$input.NoteProperty1 -eq $null
返回 True。
4.$input.NoteProperty1 | Get-Member
因此,最后,我尝试NoteProperty1
通过 直接检查该值Get-Member
,但失败并显示消息“没有为 get-member cmdlet 指定对象。”,这与传递给 Get-Member 的空对象一致。
帮助!
所以,我现在完全不知所措:这个薛定谔属性既存在又不存在;都有期望值,没有值。我想我可以用一种稍微不同的方式来写这个,这样就不需要 NoteProperties,但我很想知道这里发生了什么!
powershell - Select-Object 是否修改输入?
按照这个问题,似乎 Select-Object 将其输入设置为 null 作为其处理的一部分。这对我来说似乎是错误的。这是我正在尝试做的事情:
实际发生的是它只有$foo
它的期望值,并且$bar
总是$null
. 经过一番调查,事实证明这$input
是$null
在第一次Select-Object
运行之后设置的。例如,$input | Get-Member
在两Select-Object
行之间插入会引发错误,指出“没有为 get-member cmdlet 指定对象”。
这里发生了什么?
c# - 如何托管 Powershell 脚本或应用程序以便可以通过 WSManConnectionInfo 访问它?(如 Office 365)
我知道连接到远程运行空间的唯一方法包括以下参数
或者
如何设置我自己的自定义 Powershell 对象,以便我可以通过 HTTP 公开它?
使用哪些正确参数以及如何设置它们?
powershell - 批处理脚本运行良好,但通过 PowerShell Remoting 执行时失败
我在 Windows 2008 R2 服务器上有以下批处理脚本:
如果我在服务器本身上运行脚本,无论是通过命令提示符还是 PowerShell,它都可以正常工作并返回“0”。
问题是我需要从远程计算机执行它,所以我执行以下操作(仅用于测试的示例):
输出是“-1073740940”,这可能是错误代码 C0000374,这可能与堆损坏有关。
这似乎是 djoin 命令本身的问题。我可以注释掉 djoin 并运行其他二进制文件,例如 ping,使用相同的 Invoke-Command 没有问题。
请记住,当从目标计算机上的 PowerShell 执行脚本时,该脚本工作得非常好,远程操作会引入哪些问题?
在这两种情况下,脚本都使用我的帐户以相同的权限执行,该帐户是 Domain Admins 的成员。我怀疑这是一个权限问题,不知道还能去哪里看。
[编辑]
放弃了整件事。这要么是 djoin 中的错误,要么是 djoin 和 PS 远程处理之间的交互中的一些模糊问题。
我设法直接在客户端上运行 djoin,使用“runas / netonly ...”来提供域凭据。这是一个非常混乱的解决方案(我还没有弄清楚如何获得由 runas 启动的进程的退出状态),但可以完成工作。
powershell - 如何修改我的服务器以在 Powershell 中轻松调用远程命令
当我可以通过简单地输入远程会话时,我有服务器(使用Microsoft Windows Server 2003 R2 SE ;手动安装 WinRM):
输入-PSSession *computername_here*
或(在远程会话之外)调用远程命令:
Get-Process -ComputerName *computername_here*
不幸的是,在另一个(使用Microsoft Windows Server 2008 R2 SE)上它不起作用(尽管我使用相同的配置)。我需要输入(根据第一个示例):
输入-PSSession
IP address
-Credential "域\用户名"
然后给出用户名和密码。我知道可以将凭据保存到外部文件,但我不想像连接第一台服务器那样简单地连接到远程服务器?我应该检查防火墙还是以特殊方式配置我的服务器?
==================================================== =================
谢谢你的答案。我说的是“Microsoft Windows Server 2008 R2 Standard”操作系统
(“*gwmi win32_operatingsystem |select name*”命令告诉我)。
WSManConfig:Microsoft.WSMan.Management\WSMan::localhost\Client
包含属性TrustedHosts设置为 *,所以我认为它是正确的。
有趣的是,虽然我在两台机器上都有管理员权限,但是当我尝试检查“localhost”包含的内容时,我收到了一条错误消息,而不是直接从服务器,而是从我的本地计算机:
PS WSMan:\localhost> ls
访问被拒绝。+ CategoryInfo : + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetChildItemCommand
powershell - Powershell's Invoke-Command won't take in a variable for -ComputerName parameter?
I'm pulling my hair out here, because I just can't seem to get this to work, and I can't figure out how to google this issue. I'm running Powershell 2.0. Here's my script:
The last command gives the error:
But when I copy the output of the Write-Output command to the shell and run that, it works just fine. How can I cast the string variable to something that Invoke-Command will accept? Thanks in advance!
powershell - 结合 powershell 命令
伙计们,我有这个独特的问题,并且一直在寻找答案。我基本上有两个很好的运行脚本,但我需要将它们结合起来。由于某种原因,这不起作用,我收到所有类型的语法 powershell 错误。
第一个正常工作的脚本。请参阅下面的第二个脚本
这是运行的第二个命令。这本身就很好用,并再次尝试
将它与上面的命令结合起来失败。
现在我想要完成的是让我的输出如下所示。
DisplayName MailboxSize("MB") ItemCount
Alias ServerName
ProhibitSendReceiveQuota UseDatabaseQuotaDefaults IssueWarningQuota日期时间:2012 年 4 月 10 日星期二下午 4:04:28
名称 Foldersize Itemsinfolder topofinfromationstore 0 3 日历
1234 54 收件箱 1024785 241 已发送项目 14745 54 已删除项目 5414745 875
powershell-remoting - PowerShell 远程处理与主机版本
我在使用 Powershell 进行远程处理时遇到了一个奇怪的问题。
我有一个名为 dothis.ps1 的脚本,它执行以下操作:
此脚本由InvokeProcess
of执行Microsoft.TeamFoundation.Build.Workflows.Activities
我遇到的问题是,如果我从 dothis.ps1 打印出 Powershell 的版本,我就有 2.0。
但是,如果我从远程脚本 (somSecript.ps1) 中打印出 Powershell 的版本,它会给我 1.0。
我想知道我正在运行的 powershell 的版本,因为以下命令不起作用:$Host.Runspace.ThreadOptions
有人可以解释一下发生了什么吗?谢谢。