我正在为我儿子写的剧本有问题.我的意图是提醒他记住他的家务.我刚刚开始做PowerShell,我真的非常喜欢它.我已经买了几本书,还经历了很多其他的帖子.
到目前为止我所得到的是,似乎评估不能正常使用-or (或者我可能会这么做?)
## REMINDERS TO DO CHORES ##
$sun = "Sunday"
$mon = "Monday"
$tue = "Tuesday"
$wed = "Wednesday"
$thu = "Thursday"
$fri = "Friday"
$sat = "Saturday"
$today = (get-date).DayOfWeek
$choreVac = "Vacuum the rooms and stairs"
$choreBath = "Clean the Bathroom Including emptying the garbage"
$choreOther = "No Chores Today -- But keep dishes done up"
if($today -eq $mon -or $wed -or $fri) {
msg /time:2500 * "Today is a Chore Day: your job is …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 bash 脚本中的 echo 命令在同一行上打印输出。Echo 命令在循环内给出,每次循环运行时,都会执行 echo 命令。但通常情况下,echo 每次执行时都会换行,但我希望每次执行时输出都在同一行。
这就是我的示例小代码的样子:
#!/bin/bash
loop=1;
while [ $loop -lt 5 ];
do
echo "-"
let loop=loop+1
done
Run Code Online (Sandbox Code Playgroud)
我还尝试使用 echo 命令的 -n 选项,但没有输出。我将 stmt - echo "-" 替换为 echo -n "-"。
所需的输出是:“-----”
有人可以帮我解决这个问题吗
我有一个充满子目录的目录,其中包含任意数量的 0 到 300 个文件。
我想输出子目录名称和该子目录中的文件数
到目前为止,无论子目录中有多少实际文件,我所得到的都是 0。
$dir = "C:\Folder\"
$subFiles = (Get-ChildItem $dir -recurse | where-object {$_.PSIsContainer -eq $true })
$subFiles | % {
Get-ChildItem -Path $_ -Force -Recurse | Measure-Object | Select-Object -ExpandProperty Count
write-host "$_"
}
Run Code Online (Sandbox Code Playgroud)
有时它还包括运行脚本的目录,即“C:\Users\Blah\documents and settings\startmen”并导致错误。
任何帮助都非常感谢,谢谢
看完之后,我对这些之间的关系感到困惑.我不相信gwmi是一个纯粹的别名Get-WmiObject,因为他们似乎在我看到的例子中有相似但不完全相同的语法.
有趣的是,当我单独google"gwmi"时,所有顶级参考文献都会立即回复 Get-WmiObject,但似乎并未引用gwmi自己.
我正在尝试运行一个使用Start-BitsTransfer. 但是,每当我打开 Powershell 时,我每次都必须重新安装该BitsTransfer模块。这也意味着我无法运行调用 Powershell 来运行命令的脚本,因为该模块认为它没有安装。

我有以下代码行在 powershell 3.0 中工作
$Type = "DD"
if ($Type -in "AA","BB","CC") {Write-Host "Type = $Type" -ForegroundColor Yellow }
Run Code Online (Sandbox Code Playgroud)
但是,使用 PowerShell 2.0 运行时出现错误
- : You must provide a value expression on the right-hand side of the '-' operator.
+ CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : ExpectedValueExpression
Run Code Online (Sandbox Code Playgroud)
为什么呢?我该如何解决?
我有一个以下PowerShell命令,它对我有用,给我我需要的结果(有关AD组及其成员的详细信息)
Get-ADGroup -Filter * -Properties * -SearchBase "CN=Users,DC=domain,DC=com" |
Select-Object -Property Name, Description, GroupCategory, Members |
Format-Table -AutoSize
Run Code Online (Sandbox Code Playgroud)
但我想格式化Members属性只显示DisplayName用户,而不是他的整个LDAP路径.
Members属性的输出是:
{CN=John Doe,CN=Users,DC=domain,DC=com, CN=Jane Doe,CN=Users, DC=domain, DC=com,...}
Run Code Online (Sandbox Code Playgroud) 我给了用户域\名称,密码和路径,我想显示给定用户是否在给定目录中具有写入和/或读取访问权限.
大概的概念:
function Has-Read-Access {
param(
[Parameter(Mandatory=$true)][string]$userLogin
[Parameter(Mandatory=$true)][string]$userPwd
[Parameter(Mandatory=$true)][string]$directory
)
$hasReadAccess = 0
#insert magic here
return $hasReadAccess
}
Has-Read-Access -userLogin 'DOMAIN\user' -userPwd 'Passw0rd' -directory 'C:\FolderName\'
Run Code Online (Sandbox Code Playgroud)
我尝试过powershell.exe不同的用户运行:
Start-Process powershell.exe -Credential "TestDomain\Me"
Run Code Online (Sandbox Code Playgroud)
但这似乎是一种错误的做法.
我的脚本中有一个奇怪的问题.我正在某些服务器上调用命令.如果我无法连接到服务器(因为它是脱机的或其他东西)我仍然想记录(服务器脱机> log.txt)
显然,当Try块中发生错误时,Catch不执行该块.
为了测试这个,我给ComputerName不存在的参数写了一个值.这是我的代码:
Try {
Invoke-Command -ComputerName hui -ScriptBlock $sb
}
Catch {
Write-Host "Hello"
}
Run Code Online (Sandbox Code Playgroud)
但是脚本从未发出"你好"
我得到的例外是PSRemotingTransportException.我也试着指定异常,也没用
当我在该Invoke-Command行设置断点时,它也会忽略catch块.为什么?
我觉得自己很愚蠢,我自己无法解决这个问题。
我有来自 CarbonBlack API 的日期,例如 2022-02-15-172040,采用 UTC 格式
[datetime]如果我删除字符串的秒部分,类型转换工作正常
PS M:\Scripts> [datetime]"2022-02-15-1720"
Tuesday, February 15, 2022 12:20:00 PM
Run Code Online (Sandbox Code Playgroud)
我不明白它如何“知道”这是一个 UTC 字符串。这当然是正确的,但我预计时间部分是下午 5:20。我想要日期的秒数,所以我去精确解析,因为据我所知,这与任何格式字符串都不匹配
PS M:\Scripts> [datetime]::ParseExact("2022-02-15-172040", "yyyy-MM-dd-HHmmss" ,[Globalization.CultureInfo]::CurrentUICulture)
Tuesday, February 15, 2022 5:20:40 PM
Run Code Online (Sandbox Code Playgroud)
这是我预期的时间,但时间不正确。
为什么[datetime]它在我不希望的情况下工作?我需要对字符串或静态方法调用执行什么操作才能将其视为 UTC 字符串并进行最少的操作?