我使用 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 删除安装脚本中的文件夹。该脚本将一堆文件复制到分发文件夹(使用 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 开头的文件夹上遇到安全异常?
有没有办法在不显示 GUI 窗口的情况下运行 Windows 应用程序?
我有一个第三方 Windows 应用程序,它没有任何命令行参数或开关来抑制其 GUI。我需要在后台启动它,并且仅使用该第三方应用程序发布的数据交换 API 以编程方式与其交互。
我尝试使用隐藏复选框在任务计划程序中创建任务,但即使这样,当我手动启动任务时,应用程序的窗口也会显示。我猜这个应用程序被编程为在启动后自动聚焦。
我需要这个适用于 Windows 7 的解决方案。
谢谢。
我有一个 .ps1 文件,需要以管理员身份运行。我很高兴看到,当我双击任何 .ps1 文件时,powershell 都会以管理员身份运行。
我已经将C:\Users\me\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell两个 PowerShell 快捷方式设置为以管理员身份运行
如果我从开始菜单打开 Powershell,系统会询问我是否允许应用程序进行更改...这表明它正在以管理员身份运行,并且当 Powershell 运行时,它会在“标题”栏中显示管理员
但是,当我双击 .ps1 文件时,它会以普通用户(而不是管理员)身份打开。
我还需要做什么?
我在 Linux 上找不到用户的 PowerShell 本地配置文件。它位于非 Windows 操作系统上的什么位置?
我在尝试从 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 专业版
有人知道我在哪里可以看到有关失败的更多日志信息吗?
提前致谢
我已经安排了每两个小时运行一次的任务,并使用以下命令行操作:
mshtavbscript:Execute("CreateObject(""Wscript.Shell"").Run ""powershell -NoLogo -Command """"& 'X:\Path\To\Custom\powershellScript.ps1'"""""", 0 : window.close")每两个小时,我得到的不是任务运行,而是:
在后卫历史上:
我不想停止 Windows Defender,因为这样做可能会带来安全隐患。有没有办法在 Defender 中添加排除以忽略该任务?。
我尝试添加脚本路径、文件夹mshta.exe和powershell.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
我目前在安装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 个字符的长度限制,我无法在此处粘贴,我已删除了日期)
如何.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) 所以这是一个奇怪的事情......
我需要以非管理员身份运行 64 位版本的命令提示符/powershell。不幸的是,无论我尝试什么,它都只能在提升模式下运行。
据我所知,在 system32 文件夹中 cmd 和 powershell 设置为打开时以管理员身份运行,而在 sysWOW64 文件夹中它们运行良好。虽然 32 位可以工作,但它不适用于我需要运行的脚本;因此,我需要 64 位命令行才能工作。
操作系统:Windows 7 64 位企业版
域计算机
域 GPO 不是问题,因为这是唯一有问题的计算机。
我尝试过的:
“禁用”UAC,虽然它不再提示,但它仍然只能以管理员身份运行,这没有帮助,因为我需要在非提升模式下运行它。
以不同用户身份运行,导致访问错误(即无法按照管理员需要打开命令行程序)
兼容模式呈灰色,但即使检查设置,它也没有设置为以管理员身份运行。
快捷方式还会在提升模式下自动打开它。所以问题出在目标位置,更改快捷方式并不能解决问题。
有没有办法让它以普通用户身份运行?
powershell ×10
windows-10 ×3
windows-7 ×3
chocolatey ×1
command-line ×1
event-log ×1
linux ×1
macos ×1
profile ×1
shell-script ×1
tar ×1
vbscript ×1
windows ×1