Questions tagged «powershell»

Windows PowerShell是Windows的命令行外壳程序和脚本语言,它取代了CMD.exe Shell和批处理语言。PowerShell还是Windows的自动化引擎,提供类似于Windows Script Host和VBScript的功能。

1
使用CredSSP的PowerShell Remoting已损坏
我最近让PowerShell与CredSSP完美配合,但现在每次我尝试使用CredSSP建立远程会话时,我都会收到以下错误: Enter-PSSession:连接到远程服务器server01.contoso.com失败,并显示以下错误消息:WinRM客户端收到HTTP服务器错误状态(500),但远程服务未包含有关失败原因的任何其他信息。有关详细信息,请参阅about_Remote_Troubleshooting帮助主题。在行:1 char:1 + Enter-PSSession -ComputerName server01.contoso.com -Credential $ cred -Authentication C ... + ~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~ + CategoryInfo:InvalidArgument:(server01.contoso.com:String)[Enter-PSSession],PSRemotingTransportException + FullyQualifiedErrorId:CreateRemoteRunspaceFailed 我尝试过使用重置winrm服务 winrm invoke restore winrm/config 我已经尝试禁用PowerShell远程处理,禁用CredSSP(客户端和服务器),重新启用PowerShell远程处理,重新启用CredSSP,禁用与配置WinRM和凭据委派相关的任何GPO,并且没有任何工作。有没有办法进一步深入研究这是怎么回事? 这影响了我实验室环境中的所有Windows Server 2012系统,这些系统显然正在运行PowerShell v3。 在客户端,我在Windows远程管理事件日志中看到了这一点:WSMan operation CreateShell failed, error code 2150859120 配置服务器 Disable-PSRemoting -Force; Disable-WsmanCredssp -Role Client; Disable-WsmanCredssp -Role Server; Enable-PSRemoting -Force; Set-WSmanQuickConfig …

1
寻找一种方法来通知用户是否长时间与互联网断开连接
如标题所述,我正在寻找一种很好的方法,以在计算机长时间与互联网断开连接(14天以上)时向Windows用户发送通知。 这些是基本上在信息亭模式下长时间运行Win 10 LTSB的工业机器。我正在寻找一种方法来提示用户连接到互联网,并检查Windows更新(如果他们在过去两周内未这样做)。 目前,我的解决方案有些奇怪,但是可以解决。我使用计划的Powershell脚本来完成它。每次用户连接时,一个脚本记录日期,而每次断开连接时,另一个脚本记录日期。每小时运行三分之一,以比较两者和当前日期,如果距上次断开连接已有14天以上,则会向用户显示一条消息。 我想知道是否有更好的方法可以做到这一点。谢谢!

2
使用Powershell复制具有特定名称的所有文件
我想查找并复制特定目录中的所有文件以及具有特定名称的所有子目录。 我Copy-Item在Powershell中使用(technet | ss64) 这是我所拥有的: Copy-Item ` -Path \\Server\Apps\* ` -Destination C:\ReadMeFiles\ ` -Include *ReadMe.txt ` -Recurse ` -WhatIf 它将获取以下文件: \\Server\Apps\ReadMe.txt 但不是: \\Server\Apps\AppName\ReadMe.txt 即使我已经指定 -recurse 我怎样才能使它在每个目录中向下传播?

1
启用Windows Linux子系统错误
在Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux以管理员身份运行的powershell中运行命令时,过一会儿出现以下错误 Enable-WindowsOptionalFeature : The referenced assembly could not be found. At line:1 char:1 + Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows- ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Enable-WindowsOptionalFeature], COMException + FullyQualifiedErrorId : Microsoft.Dism.Commands.EnableWindowsOptionalFeatureCommand

1
检测Windows PowerShell脚本中虚拟(TrueCrypt)卷的安装
我正在使用以下powershell脚本来检测何时安装了特定的卷,因此我可以运行一个脚本,该文件会将文件从我的机器移至设备(我对powershell脚本了解不多,我在网上找到了此信息)。 #Requires -version 2.0 Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange write-host (get-date -format s) " Beginning script..." do{ $newEvent = Wait-Event -SourceIdentifier volumeChange $eventType = $newEvent.SourceEventArgs.NewEvent.EventType $eventTypeName = switch($eventType) { 1 {"Configuration changed"} 2 {"Device arrival"} 3 {"Device removal"} 4 {"docking"} } write-host (get-date -format s) " Event detected = " …

1
PowerShell中的NSLookup始终会引发RemoteException错误
当我nslookup从PowerShell脚本运行时,尽管查找成功,但始终会收到一个错误(输出到控制台): PS C:\Windows\system32> $MyOutput = nslookup -q=SOA superuser.com 8.8.4.4 nslookup : Non-authoritative answer: At line:1 char:13 + $MyOutput = nslookup -q=SOA superuser.com 8.8.4.4 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (Non-authoritative answer::String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError 这似乎是由于答案不权威。针对权威DNS服务器进行查找不会返回错误。 在我自己寻找解决方案的尝试中,我找到了这个答案。建议使用Resolve-DNSName命令。不幸的是,这需要Windows 8.1 / Server 2012 R2,并且我的脚本将在其中运行的某些系统是Windows 7时代。 如何防止显示此错误? 奖励点,用于解释PowerShell为什么认为发生了错误!

1
启用PowerShell远程处理需要什么权限?
我试图在我是管理员的桌面上启用PowerShell Remoting。我在笔记本电脑上安装了Powershell Remoting,它可以正常工作(从笔记本电脑到远程服务器)。在我的桌面上,我得到“访问被拒绝”。我尝试以32位和64位管理员身份使用PowerShell。我正在使用Windows 7 Professional 64位。

1
Powershell脚本不删除子项
我在运行PowerShell脚本时遇到错误。这是陈述 Microsoft.Powershell.Core \ FileSystem :: \ [目录路径]中的项目具有子项,并且未指定Recurse参数。 在我的PowerShell脚本中,我确实指定了它。它在错误的位置吗? # Add CmdletBinding to support -Verbose and -WhatIf [CmdletBinding(SupportsShouldProcess=$True)] param ( # Mandatory parameter including a test that the folder exists [Parameter(Mandatory=$true)] [ValidateScript({Test-Path $_ -PathType 'Container'})] [string] $Path, # Optional parameter with a default of 60 [int] $Age = 60 ) # …

2
CMD.exe会在调用时立即调整大小
无论何时我使用cmd,窗口都会缩小并捕捉到屏幕的左上角。无论终端仿真器(Visual Code集成终端,CMDer,“run - > cmd”,Powershell - > cmd)都会发生这种情况。 这是它拍摄的大小的图片。 问题的Gif 另外,我可以看到它在缩小/捕捉到这个位置之前闪现几帧的实际默认大小。如果我单击“恢复”图标,它会调整为我预设的默认大小。没有其他不寻常的行为。 使用npm / node输出尤其令人讨厌,输出会立即隐藏,因为它一次只显示一行。 我检查了命令窗口的默认值/属性,一切正常。我检查了注册表,一切似乎也很好。 该问题似乎是调用cmd.exe所独有的。如果我运行python脚本等,一切都很好。 有任何想法吗?我把头发拉出来!

1
如何使用通配符将文件复制到目标?
例如,我想将一个shortcut.lnk复制到windows xp中的所有个人用户。因此我想做这样的事情: echo | f xcopy \\server\networkpath\shortcut.lnk "c:\Documents and Settings\%\Application Data\Microsoft\Internet Explorer\Quick Launch\ /Y /f 如果它在CMD或PowerShell中完成无关紧要,我只需要一些有效的东西。

1
如何在Windows中记录终端会话?
Linux和Unix都有 script 命令 ,这非常有用: script命令是一个记录终端的Unix实用程序 会话。 1 scriptreplay命令提供重放功能 脚本。[2]默认情况下,会话在文件名typescript中捕获; 使用空格在脚本命令后指定不同的文件名 和文件名如下:script recorded_session。 ttyrec程序提供相同类型的功能和优惠 几个绑定。 可以使用在线服务共享录制的shell会话。[3]该 以通常的格式记录的会话优势 截屏是可以轻松复制/粘贴shell指令 播放器屏幕。 与Windows类似的是什么? 也可以看看: 用于将交互式bash会话记录到shell脚本的工具 在linux中记录SSH终端 为了实用 script 命令。


0
如何以编程方式更改Active Directory中计算机对象的权限
我在企业Active Directory域中继承了对OU的控制权。我们的OU中的所有计算机对象都是我的前任所有(并且只能由我们编写)。这可以防止我重新添加这些计算机,除非我删除对象(在这种情况下,新对象将由我添加它们的任何帐户拥有)或添加所有OU管理员的写入权限。我想要晚一点。 所以,我正在寻找一种方法来制作一个可以指向OU的VBA / Powershell /其他脚本,对于该OU中的每个计算机对象,它都可以: 将对象的所有权更改为我们使用的服务/部门帐户 添加对象的写入权限以包括我们的OU管理员组 实际上,VBA / Powershell的偏好仅仅是因为我认为这个脚本可能需要在其中一个DC上运行,而我无法控制它们上面安装的内容。如果可以通过网络使用标准LDAP工具执行此操作,那么我猜任何语言都可以。


1
将多个窗口分组在另一个窗口中
我的要求的一个当前示例是我打开了3或4个PowerShell窗口,并最小化到任务栏。有没有什么方法,除了创建第二个桌面,我可以在另一个主机窗口中平铺,比如4,PowerShell窗口,这样当我从任务栏恢复该主机时,我可以同时访问所有四个PowerShell窗口,平铺在主机,所以在这种情况下,每个占用主机空间的1/4?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.