标签: powershell

禁用 Windows powershell 事件日志记录

我使用 PsExec 在远程计算机上运行 PowerShell 脚本,作为其副作用,“Windows PowerShell”事件日志(在“应用程序和服务日志”下的事件查看器中找到)将我们的所有参数记录到“HostApplication”下的脚本。这是一个问题,因为其中一些参数包含敏感密码。

我尝试将下面列出的首选项变量设置为 false,但在 PowerShell 引擎启动时它仍然会创建日志。据我所知,这是因为 PowerShell 在检查这些首选项变量的值之前就创建了这些日志。

$LogEngineLifeCycleEvent=$false;
$LogEngineHealthEvent=$false;
$LogProviderLifeCycleEvent=$false;
$LogProviderHealthEvent=$false;
Run Code Online (Sandbox Code Playgroud)

我们当前的解决方案结合使用这些首选项变量,并将以下行放在每个 PowerShell 脚本的开头,以确保清除 PowerShell 引擎启动时创建的日志。

Clear-EventLog "Windows PowerShell";
Run Code Online (Sandbox Code Playgroud)

这个解决方案是好的,但我希望它达到这样的程度:我们的密码永远不会保存在日志中,并且日志永远不需要清除。有没有办法禁用 PowerShell 日志记录,以便在 PowerShell 引擎生命周期的任何时刻都不会创建事件?

powershell event-log

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

无法使用 Powershell 删除文件夹,但可以使用命令提示符

我正在尝试使用 PowerShell 删除安装脚本中的文件夹。该脚本将一堆文件复制到分发文件夹(使用 RoboCopy),然后清理多余的文件和文件夹。

c:\installs\wwhelp\Editors\.vs即使在以管理员身份运行的 Powershell 控制台中设置了权限后,我似乎也无法使用 PowerShell 删除文件夹名称。

我基本上是在复制并清理 .vs 文件夹后执行此操作:

set source=\wwapps\wwhelp
set target=\installs\wwhelp
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy UnRestricted

robocopy $source\Editors $target\Editors /MIR
deletefiles $target\Editors\.vs\*.* -r -f   <-- deletes files & folder recursively
rd  $target\Editors\.vs
Run Code Online (Sandbox Code Playgroud)

这失败了:

rd:无法删除项目C:\installs\wwhelp\editors\.vs:您没有足够的访问权限来执行此操作。

该文件夹是空的,我正在以管理员身份运行,并且已经设置了执行策略。如果我创建一个vs在同一文件夹结构中调用的文件夹,则删除有效。

rd同样,使用 Admin 在命令窗口中运行命令也可以。

.有什么想法为什么我在 Powershell 中以 a 开头的文件夹上遇到安全异常?

powershell file-permissions

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

运行 Windows 应用程序而不显示其 GUI

有没有办法在不显示 GUI 窗口的情况下运行 Windows 应用程序?

我有一个第三方 Windows 应用程序,它没有任何命令行参数或开关来抑制其 GUI。我需要在后台启动它,并且仅使用该第三方应用程序发布的数据交换 API 以编程方式与其交互。

我尝试使用隐藏复选框在任务计划程序中创建任务,但即使这样,当我手动启动任务时,应用程序的窗口也会显示。我猜这个应用程序被编程为在启动后自动聚焦。

我需要这个适用于 Windows 7 的解决方案。

谢谢。

windows-7 powershell shell-script vbscript

5
推荐指数
1
解决办法
8208
查看次数

双击 ps1 文件时以管理员身份启动 powershell

我已阅读如何在管理员模式下打开文件进行编辑?

我有一个 .ps1 文件,需要以管理员身份运行。我很高兴看到,当我双击任何 .ps1 文件时,powershell 都会以管理员身份运行。

我已经将C:\Users\me\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell两个 PowerShell 快捷方式设置为以管理员身份运行

如果我从开始菜单打开 Powershell,系统会询问我是否允许应用程序进行更改...这表明它正在以管理员身份运行,并且当 Powershell 运行时,它会在“标题”栏中显示管理员

但是,当我双击 .ps1 文件时,它会以普通用户(而不是管理员)身份打开。

我还需要做什么?

powershell windows-10

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

Linux 和 macOS 上用户的 PowerShell 配置文件路径位置?

我在 Linux 上找不到用户的 PowerShell 本地配置文件。它位于非 Windows 操作系统上的什么位置?

linux powershell profile macos

5
推荐指数
1
解决办法
6442
查看次数

从 Powershell 2.0 升级到 Powershell 5.1

我在尝试从 PS 2 升级到 PS 5.1 时遇到了困难。

建议我下载 WMF 5.1 来执行此操作。

我已经运行了 pre-req 脚本,没有任何问题。当安装程序运行时,我收到错误代码 0x80240037(不支持硬件)。我这里的同事拥有相同的硬件,他们能够毫无问题地安装 PS 5.1。

我使用的是.NET 4.6.2。我已经安装了4.5.2。未安装 WMF 3.0。

x64 位 Windows 7 专业版

有人知道我在哪里可以看到有关失败的更多日志信息吗?

提前致谢

windows-7 powershell

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

如何从 Windows Defender 中排除计划任务?

我已经安排了每两个小时运行一次的任务,并使用以下命令行操作:

  • 程序:mshta
  • 论据:vbscript:Execute("CreateObject(""Wscript.Shell"").Run ""powershell -NoLogo -Command """"& 'X:\Path\To\Custom\powershellScript.ps1'"""""", 0 : window.close")

每两个小时,我得到的不是任务运行,而是:

发现一些恶意软件 Windows Defender 正在将其删除

在后卫历史上:

检测到的项目 Trojan:Win32/Powerssere.G

我不想停止 Windows Defender,因为这样做可能会带来安全隐患。有没有办法在 Defender 中添加排除以忽略该任务?

我尝试添加脚本路径、文件夹mshta.exepowershell.exe排除项以及ps1文件类型。什么都不起作用。

顺便说一句,Defender 不会删除任务或应该运行的脚本,只是阻止其运行。

澄清

  • 它必须在后台运行,任务运行时不应弹出任何窗口,如果用户已登录,则必须与用户一起运行,我不想存储密码/使用其他用户帐户或最高权限运行。

  • 该脚本必须以登录用户的身份执行。其目的是将登录用户的壁纸更改为下载的壁纸($picturePath变量)。摘抄:


    $registryPropertyPath = "HKCU:\Control Panel\Desktop\"
    $registryPropertyName = "Wallpaper"
    $wallpaperProperty = (Get-ItemProperty -Path $registryPropertyPath -Name $registryPropertyName).WallPaper
    if ($wallpaperProperty -ne $picturePath) {
        Set-ItemProperty -Path $registryPropertyPath -Name $registryPropertyName -Value $picturePath
        for ($i = 0; $i -lt 20; $i++) {
            RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1, True
        }
    }
Run Code Online (Sandbox Code Playgroud)

powershell windows-defender windows-task-scheduler windows-10

5
推荐指数
1
解决办法
1514
查看次数

如何解决“错误:指定的演员无效。” 安装过程中出错?

我目前在安装Java SE 运行时环境( )时收到此错误jre8,更新过去可以正常工作:

Searching if new version exists...
ERROR: Specified cast is not valid.
The install of jre8 was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\jre8\tools\chocolateyInstall.ps1'.
 See log for details.

Chocolatey installed 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - jre8 (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\jre8\tools\chocolateyInstall.ps1'.
 See log for details.
Run Code Online (Sandbox Code Playgroud)

巧克力日志(由于 30 000 个字符的长度限制,我无法在此处粘贴,我已删除了日期)

powershell chocolatey

5
推荐指数
2
解决办法
8731
查看次数

无法生成 .tar 文件

如何.tar在Win10中从当前目录树创建一个?尝试tar -c Archive.tar *并得到tar: Failed to open '\\.\tape0'

C:\>tar -h
tar(bsdtar): manipulate archive files
First option must be a mode specifier:
  -c Create  -r Add/Replace  -t List  -u Update  -x Extract
Common Options:
  -b #  Use # 512-byte records per I/O block
  -f <filename>  Location of archive (default \\.\tape0)
  -v    Verbose
  -w    Interactive
Create: tar -c [options] [<file> | <dir> | @<archive> | -C <dir> ]
  <file>, <dir>  add these items to archive
  -z, …
Run Code Online (Sandbox Code Playgroud)

powershell tar windows-10

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

无法以非管理员身份运行 cmd 或 powershell

所以这是一个奇怪的事情......

我需要以非管理员身份运行 64 位版本的命令提示符/powershell。不幸的是,无论我尝试什么,它都只能在提升模式下运行。

据我所知,在 system32 文件夹中 cmd 和 powershell 设置为打开时以管理员身份运行,而在 sysWOW64 文件夹中它们运行良好。虽然 32 位可以工作,但它不适用于我需要运行的脚本;因此,我需要 64 位命令行才能工作。

  • 操作系统:Windows 7 64 位企业版

  • 域计算机

  • 域 GPO 不是问题,因为这是唯一有问题的计算机。

我尝试过的:

  1. “禁用”UAC,虽然它不再提示,但它仍然只能以管理员身份运行,这没有帮助,因为我需要在非提升模式下运行它。

  2. 以不同用户身份运行,导致访问错误(即无法按照管理员需要打开命令行程序)

  3. 兼容模式呈灰色,但即使检查设置,它也没有设置为以管理员身份运行。

  4. 快捷方式还会在提升模式下自动打开它。所以问题出在目标位置,更改快捷方式并不能解决问题。

有没有办法让它以普通用户身份运行?

windows windows-7 powershell command-line

5
推荐指数
1
解决办法
2169
查看次数