jjzjj

Scripting

全部标签

windows - 替换/更新文件共享上的特定文件

我正在尝试搜索多个目录并替换newfile.swf的所有实例。$Logfile="C:\FOLDER\filecopy.log"$ServerDir="\\SERVER\TESTING\DIRECTORY"$SourceFile="C:\FOLDER\newfile.swf"$OldFiles=Get-ChildItem-path$ServerDir-Recurse-Includenewfile.swf|Sort-ObjectName|Format-TableFullname-Autoforeach($Oin$OldFiles){if(Test-Path$O){Copy-Item$So

windows - 在 PowerShell v2 中打破 foreach 循环

我在PowerShellv2中终止foreach-object循环时遇到问题。为了大致了解我要完成的任务,这里是伪代码:从文本文件中读取主机列表为文本文件中的每个主机获取Win32_Product(根据排除列表过滤),将输出转换为html并保存。脚本的原因是我积累了一个文本文件,列出了标准客户端镜像中包含的所有应用程序,并且想定期从另一个文本文件扫描主机,看看是否有任何未经授权的、粗略的或其他不必要的应用程序在主机上。代码在粗略的意义上确实有效,但我遇到的主要问题是脚本不会在没有人工干预的情况下终止。我想我在这里缺少的组件是运行循环直到存在某些条件(即第二次遇到主机文件中的第一行),然

windows - 检查批处理文件中的空白用户输入(无输入)

这个问题在这里已经有了答案:set/pemptyanswercrash(1个回答)关闭7年前。因此,我要求用户做出选择。这个问题的重点是捕捉用户是否在没有任何输入的情况下刚刚输入。我的计划是查明用户是否未输入任何内容并直接点击输入。如果是,则显示它不是有效选项并返回到:START。以下代码不起作用-特别是空输入和仅包含space字符的输入。如果用户做了这个无效的事情,那么我只想显示消息说它是空的。非常感谢任何有关如何处理此问题的建议。@echooff:STARTclsechoChooseyouroption&echo.echo[P]playecho[R]rulesecho[M]main

windows - 为什么这个逻辑不能按预期过滤掉数据?

我正在使用此代码块从管理员组中删除任何不是“Lcs”或“Admin”的管理员。但是,“Lcs”也仍在从管理组中删除。我认为以下代码会将脚本配置为简单地在控制台中为“Lcs”帐户写出一些文本而不更改其当前状态,但每次运行它时Lcs都会从管理员组中删除。$UserList=Get-WmiObject-ClassWin32_UserAccount-Filter"LocalAccount='True'"foreach($Userin$UserList){if($User.Name-match"Lcs"){Write-Host"LCSAccountExcluded."}if($User.Name

windows - 如何使用 MsgBox 在 VBS 中使用用户输入正确配置条件操作?

我一直在尝试让VBS脚本与msgbox一起工作一段时间。当我使用单个msgbox语句时,它起作用了。一旦我开始添加条件输入选项,它就不起作用了。我在super用户上发布了这个问题,我被告知使用“dim”声明,并在这个网站上发布,我现在都做了。这是我正在尝试的一些有效代码。(请忽略我的例子。)OptionExplicitDimvbsmsg,vbsyes,vbsnovbsmsg=MsgBox("ProceedingwillwipethecontentsofyourC:Drive.Proceed?",1+48,"FormatDriveC:")当我通过快捷方式运行上述代码时,会出现如下对话框:

windows - 从 Powershell 类返回自定义 PSObjects 数组

我有一个powershell类,它具有可以返回自定义PSObject数组的方法,但我不确定如何定义该方法以使其不会报错。即classThisIsAClass{MethodReturnsArray(){$thisArray=@()for($i=0;$i-lt$total;$i++){$item=New-Object-TypeNamePSObject$item|Add-MemberMemberType-NoteProperty-NameID-Valuei$item|Add-MemberMemberType-NoteProperty-NameText-Value"a"}return$this

windows - Windows 注册表中的应用程序显示名称部分匹配?

我是PowerShell菜鸟。提前抱歉。我正在尝试编写一个快速脚本来检查PC以查看是否安装了应用程序列表。我将列表存储在一个数组中,并将其与注册表中卸载键中应用程序的显示名称进行比较。$Apps=@('Paint.net','Blender','SketchUp')Get-ItemPropertyHKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*|Where-Object{$Apps-Like$_.DisplayName}|Select-ObjectDisplayName,DisplayVersion这有效,但仅适用于

windows - 使用变量后 PowerShell 命令失败

我正在尝试运行一个命令来收集具有特定要求的使用配置文件,这是我的代码:#$numberOfDays=30#$numberOfDays$profileStructsToRemove=Get-CimInstanceWin32_UserProfile|Where-Object{$_.LastUseTime-lt$(Get-Date).Date.AddDays(-$numberOfDays)}|Where-Object{$_.LocalPath.ToUpper()-ne'C:\USERS\ADMINISTRATOR'}|Where-Object{$_.LocalPath.ToUpper()-n

windows - 使用参数运行exe文件的Powershell脚本

我需要脚本来运行带参数的exe文件。我就是这么写的,有没有更好的方法呢?$Command="\\Networkpath\Restart.exe"$Parms="/t:21600/m:360/r/f"$Prms=$Parms.Split("")&"$Command"$Prms谢谢 最佳答案 运行外部可执行文件时,您有几个选择。Splatting$command='\\netpath\restart.exe'$params='/t:21600','/m:360','/r','/f'&$command@params此方法实质上会将您的数组

windows - 在批处理脚本之后继续使用 CMD 命令

我正在尝试编写一个批处理脚本,该脚本一旦完成,将允许用户继续使用Windows命令提示符,因为他们通常不会运行任何脚本。这可能吗?提前感谢您的帮助。 最佳答案 如果您手动打开CMD(命令提示符)并按名称调用批处理文件,则在批处理文件完成后,CMD将保持打开状态以执行其他命令。您不能通过双击批处理文件来执行此操作,但如果您创建一个运行CMD.EXE的批处理文件的快捷方式,并带有/K开关,您将运行批处理文件,然后让CMD运行以获取其他命令。参见CMDatSS64. 关于windows-在批处