我是一个相当新的 Windows 系统管理员。我已经完成了一些基本的批处理文件和一些其他脚本。我想知道我应该走哪条路才能成为更好的编剧。我应该学习什么语言以及学习的最佳资源是什么(网站、书籍等)。
如何找到 MSI 包的 GUID?我想使用以下脚本在大量桌面上删除程序:
msiexec.exe /x产品代码
为什么这对“添加/删除程序”中列出的任何应用程序不起作用?
您如何检查安装了哪个版本的 Windows 管理框架 (WMF)?看起来应该是一件很简单的事情,但我不能。即使在谷歌上搜索一堆不同版本的问题也几乎没有结果。
它不在 appwiz.cpl 中,并且 regedit 没有为“Windows 管理框架”找到任何内容,并且为“wmf”找到了太多无关的东西
我只想知道如何以任何合理的方式检查它。有它的注册表项吗?有我可以检查的文件吗?任何事物???
我能找到的最接近的东西是 serverfault: Methods to Detect version of Windows Management Framework。这个问题一开始是一样的,但它似乎要求在 GPO 中使用一种特定的检查方法;也许这就是为什么它没有得到答案。
我想在多台计算机上进行检查。我开始使用的是 Windows Server 2008 R2 Standard。还将有其他 Windows Server 操作系统。
如果您知道任何标签比我拥有的更好,请发表评论或重新标记;我找不到任何能很好地描述这个问题的东西。
更新:有些人似乎认为“ $PSVersionTable”(和/或它的各种属性)是一个答案。我最近终于意识到这是一个 PowerShell 变量(也许“PS”前缀应该为我提供它,但它没有)并试图更深入地挖掘。这导致了另一个问题:PowerShell 的 $PSVersionTable 的内容代表什么?.
更新 2:根据我现在收集的所有信息和我更好的理解,我相当肯定 PowerShell 的内置变量$PSVersionTable.PSVersion在技术上不是解决这个问题的方法,但它经常(有时?总是?不确定)相同,因为在版本中可能会齐头并进。该$PSVersionTable.WSManStackVersion变量可能是我想要的,但该属性的官方简短描述将其显示为代表 WS-Management 堆栈。WS-Management 堆栈是否与 WMF 相同?谷歌搜索表明它们密切相关,但我不确定答案是否是肯定的。
我想在新文件复制到特定目录时自动运行脚本。换句话说,在 Linux 中有没有办法“观察”一个目录的变化,然后运行一些东西来响应变化?
我可以使用什么命令从文本文件中去除颜色代码转义序列?理想情况下,我可以通过管道。如果我有一个带有一堆彩色文本rainbow.txt的文件,差距是什么:
cat rainbox.txt | *something* > plain.txt
Run Code Online (Sandbox Code Playgroud)
我在 CentOS 4.4 上使用 bash。
我正在尝试将 ini 文件转换为 bash 数组变量。示例ini如下:
[foobar]
session=foo
path=/some/path
[barfoo]
session=bar
path=/some/path
Run Code Online (Sandbox Code Playgroud)
所以这些变成:
session[foobar]=foo
path[foobar]=/some/path
session[barfoo]=bar
Run Code Online (Sandbox Code Playgroud)
等等。
现在,我只能想出这个命令
awk -F'=' '{ if ($1 ~ /^\[/) section=$1; else if ($1 !~ /^$/) print $1 section "=" $2 }'
Run Code Online (Sandbox Code Playgroud)
此外,另一个问题是,它没有考虑附近的空间=。我认为sed可能更适合这项工作,但我不知道如何在sed.
那么知道如何做到这一点吗?
我必须为不在 Windows 域中的几台机器设置本地组策略设置和本地安全策略。到目前为止,我是通过在 gpedit 中手动设置键来完成的。由于过渡到 Windows 10,我想自动化并使用批处理或 PowerShell 脚本来设置它们。如果这可以在没有 3rd 方工具的情况下完成,那就太好了。
如何使用 Powershell 或批处理文件设置这些策略?
提前感谢您的回答!
彼得
我正在尝试重置用户目录的权限,并且在我的脚本的最后一步遇到了一些麻烦。我的脚本基本上拥有整个用户目录的所有权,重置目录的所有文件和文件夹的权限,明确授予我需要的权限,停止从父文件夹继承所有权限,为所有文件设置合法所有者(指定用户)和文件夹,然后删除我给自己的权限,以便我可以对文件进行操作。我需要最后一步从所有文件和子文件夹中删除我自己,但目前它只是将我从 %userDir% 中删除,并将所有继承的权限保留在下面。这是 ICACLS 的一个明显缺点。有谁知道任何其他方式来实现这一目标?
set /p userDir=Enter the login of the user's directory you're modifying permissions for. (i.e. jDoe)
TAKEOWN /f "E:\Home Directories\%userDir%" /r /d y
ICACLS "E:\Home Directories\%userDir%" /reset /T
ICACLS "E:\Home Directories\%userDir%" /grant:r "MYDOMAIN\%userDir%":(OI)(CI)F /grant:r "SYSTEM":(OI)(CI)F /grant:r "MYDOMAIN\%username%":(OI)(CI)F
ICACLS "E:\Home Directories\%userDir%" /inheritance:r
ICACLS "E:\Home Directories\%userDir%" /setowner "MYDOMAIN\%userDir%" /T
ICACLS "E:\Home Directories\%userDir%" /remove "MYDOMAIN\%username%"
Run Code Online (Sandbox Code Playgroud) 这对超级用户来说可能更好,但我认为作为交易工具,它可能是一个更好的主题。我经常发现在 vim 中编辑时退出,运行一些我正在测试的脚本,然后返回到 vim(是的,我意识到我可以使用 :!command 从 vim 运行东西)我只是想知道是否有保存文件时挂钩运行的方法(:w)?
有没有办法通过运行带有 -x 选项的 bash 脚本将显示的信息发送到文件,同时不更改运行脚本的用户看到的标准输出?
这是我想在我们经常使用的 bash 脚本中实现的调试功能。
非常感激。
scripting ×10
windows ×5
linux ×3
bash ×2
powershell ×2
awk ×1
debugging ×1
group-policy ×1
hook ×1
inotify ×1
msi ×1
permissions ×1
sed ×1
vim ×1