标签: powershell

如何使用批处理文件卸载软件

我想通过调用bat文件来卸载软件。它必须是自动的,在卸载过程中无需输入任何参数。如何制作可以按名称卸载软件的bat文件?

PS:我知道使用 WMI 的完美方法,但它需要用户输入:

WMIC
product where name="software" call uninstall
Run Code Online (Sandbox Code Playgroud)

windows powershell batch-file uninstall wmi

4
推荐指数
1
解决办法
4万
查看次数

为什么我的 PowerShell 脚本在通过批处理 (.cmd) 文件在 PSEXEC 中调用时挂起?

我正在尝试使用PSEXEC. PowerShell 脚本通过.cmd批处理文件调用。我们这样做的原因是更改执行策略,运行 powershell 脚本然后再次重置执行策略:

在远程服务器上do-tasks.cmd看起来像:

powershell -command "&{ set-executionpolicy unrestricted}"  
powershell DoTasks.ps1  
powershell -command "&{ set-executionpolicy restricted}"  
Run Code Online (Sandbox Code Playgroud)

PowerShell 脚本DoTasks.ps1现在只是这样做:

Write-Output "Hello World!"
Run Code Online (Sandbox Code Playgroud)

这两个脚本都存在于c:\windows\system32(目前)中,因此它们位于 PATH 中。

在原始服务器上,我这样做:

psexec \\web1928 -u administrator -p "adminpassword" do-tasks.cmd

当它运行时,我在命令行收到以下响应:

c:\Windows\system32>powershell -command "&{ set-executionpolicy unrestricted}"

并且脚本不再运行。

我不能按 ctrl-c 来破坏脚本,我只能看到 ^C 字符,我可以从键盘输入输入,字符会回显到控制台。

在远程服务器上,我看到 PowerShell.exe 和 CMD.exe 正在任务管理器的进程选项卡中运行。如果我结束这些进程,那么控制将返回到原始服务器上的命令行。

我已经用一个简单的.cmd批处理文件尝试了这个,@echo hello world它工作得很好。

do-tasks.cmd通过 RDP 会话在远程服务器上运行也可以正常工作。

原始服务器运行 Windows 2003 SP2,远程服务器运行 Windows 2008 SP2。

为什么我的远程批处理文件在通过执行时卡住了 …

remote-access windows powershell pstools

4
推荐指数
2
解决办法
2万
查看次数

如何让PowerShell在执行命令后添加新行?

是否有可能以某种方式配置 PowerShell 在执行命令后添加新行?IronPython 和我使用的其他控制台程序并不总是用 \n 完成它的输出,因此 PowerShell 提示符将出现在该行的中间。

这就是我得到的:

PS D:\Test> ipy test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
RuntimeError: *** ERROR ***PS D:\Test\bin>  <---------- MIDDLE OF LINE PROMPT
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

PS D:\Test> ipy test.py
Traceback (most recent call last):
  File "test.py", line 1, in <module>
RuntimeError: *** ERROR ***
PS D:\Test\bin>                            <---------- NEW LINE PROMPT
Run Code Online (Sandbox Code Playgroud)

powershell formatting

4
推荐指数
1
解决办法
2567
查看次数

powershell 或 bat - 计算所有目录和子目录中的文件

我们有一个包含数十万个文件的硬盘

我需要弄清楚我们有多少个文件扩展名

我怎么能用 windowspowershell 或命令提示符或其他可用的东西来做到这一点?

我需要它来浏览每个目录。我公司的律师需要这个。它可以是整个硬盘的总数 它不必按目录分解

例子:

1232 JPEG
11 exe
45 bat
2342 avi
532 doc
Run Code Online (Sandbox Code Playgroud)

powershell active-directory command-line-interface count

4
推荐指数
1
解决办法
703
查看次数

使用 ROBOCOPY 来移动数据,而不是复制它

我有以下 powershell 脚本,它执行一些 robocopy 命令:

ROBOCOPY.exe $q3 $q4 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD
ROBOCOPY.exe $q2 $q3 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD
ROBOCOPY.exe $q1 $q2 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD
ROBOCOPY.exe $src $q1 /R:5 /W:15 /S /NP /MT:32 /XA:SH /XJD
Run Code Online (Sandbox Code Playgroud)

这工作正常,但需要很长时间,我想知道是否有办法让 robocopy 执行“剪切+粘贴”而不是“复制+粘贴”,以便 Windows 将 NTFS 指针移动到文件,而不是实际复制每个文件的所有位?

powershell command-line-interface robocopy

4
推荐指数
1
解决办法
2万
查看次数

是否可以使用 powershell 添加 Windows 服务依赖项?

我知道有这个sc.exe,您可以在其中添加和设置 Windows 服务依赖项,但我想知道是否可以使用 Powershell 完成同样的事情。

powershell service

4
推荐指数
1
解决办法
7228
查看次数

为什么 .NET Folder.CopyHere 方法在 SQL Server 代理 PowerShell 作业步骤中运行时不允许对 .ZIP 文件进行对话框抑制?

我在 SQL Server 代理作业步骤中使用 PowerShell 自动将 .ZIP 文件内容提取到目录。

基于这个问题的最高投票答案:How to zip/unzip files in Powershell?

我正在使用此代码:

$dir_source = "\\myserver\myshare\"
$dir_destination = "\\myserver2\myshare2\"
$file_source = Get-ChildItem -Path (Join-Path -Path $dir_source -ChildPath "test.zip")

$shell_app = New-Object -com shell.application
$zip_file = $shell_app.namespace($file_source.FullName)
$destination = $shell_app.namespace($dir_destination)
$destination.Copyhere($zip_file.items(),20)
Run Code Online (Sandbox Code Playgroud)

CopyHere 方法的 vOptions 可选参数是 20,它指定“不显示进度对话框”。(4) 和“对显示的任何对话框用“全部是”来响应。” (16).

此参数在 PowerShell 脚本编辑器中按预期工作(我使用的是 PowerGUI 脚本编辑器)。我可以运行脚本,然后再次运行它(覆盖场景),脚本完成时没有错误,也没有对话框。但是,当目标数据库中已存在文件时,在 SQL Server 代理 PowerShell 作业步骤中执行相同的代码会导致作业挂起。

重现步骤:

- Instantiate code in a SQL Server 2008 SQL Server Agent Job step
- Start the SQL job
- …
Run Code Online (Sandbox Code Playgroud)

powershell compression .net copy sql-server-2008

4
推荐指数
1
解决办法
5740
查看次数

启用不受限制的 PowerShell 远程处理的安全问题

我想向我组织的 IT 部门提议,我们在生产机器上启用 PowerShell 远程处理,以便更轻松地管理它们。我觉得不受限制的访问比处理签名要容易得多:

>Set-ExecutionPolicy Unrestricted
Run Code Online (Sandbox Code Playgroud)

这是生产机器的一大禁忌吗?这会打开一个主要的安全漏洞,还是会安全地仅限于那些只对机器具有管理权限的人?

security powershell

4
推荐指数
1
解决办法
995
查看次数

使用 PowerShell 进行 NTFS 权限审核

我正在从事一个项目,我需要能够在 NTFS 格式的 Windows 文件服务器上审核各种用户和用户组权限。我想使用 PowerShell 并让它递归搜索远程文件共享,或者它可以在服务器本身上运行并输出它为所有内容或指定用户或用户组找到的所有权限。目标是能够使用它来定期审核用户和用户组,以确保不会发生权限蠕变,并且所有权限都由不同的系统管理员以相同的方式设置。最后,当我们在组策略中更改用户组时,它将用于识别需要更改的位置。有没有常见的方法来解决这个问题?PowerShell 能胜任这项任务吗?是否可以让 PowerShell 将结果输出为可读格式?

powershell permissions ntfs

4
推荐指数
1
解决办法
2万
查看次数

在登录时使用 VBScript 确定是否安装了 powershell

我的网络上混合了 Win7 和 XP 计算机。每个用户都使用基于 VBS 的登录脚本登录,对于支持它的客户端,我想显示一个信息弹出窗口,如下所示。

如何检测是否使用 VBScript 安装了 Powershell?

powershell logon-scripts vbscript

4
推荐指数
1
解决办法
1714
查看次数