我有一个关于 PS 如何缩写各种命令的问题,特别是在初始化 PS 会话时。
假设我们从 Windows DOS 提示符开始:
C:\> powershell -exec bypass
Run Code Online (Sandbox Code Playgroud)
我似乎注意到您还可以键入以下内容,但它似乎仍在运行:
C:\> powershell -execution bypass
C:\> powershell -exec by
C:\> powershell -exec b
Run Code Online (Sandbox Code Playgroud)
如果键入的内容足够独特以匹配已知的有效命令/选项/标志/参数,PowerShell 是否会“猜测”用户尝试运行的命令?如果有任何文献可以解释这里发生的事情,那将非常有帮助。谢谢!
我正在尝试应用使用来自已安装模块的资源的 DSC 配置。但是,当我运行时Start-DscConfiguration,出现此错误:
PowerShell DSC 资源 ******** 不存在于 PowerShell 模块路径中,也未注册为 WMI DSC 资源。
+ CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException
+fullyQualifiedErrorId : DscResourceNotFound
但是,当我登录服务器并运行时Get-DscResource,缺少的资源就在那里。
为什么DSC找不到资源?
如何使用 Powershell 重命名 AD 域中的机器?
我正在将敏感凭据注入用户数据,但不确定这是否安全。
我正在使用 userdata 属性运行一个脚本,该脚本在实例上线时将其加入域
并像这样传递信用:
$ADUser = 'me'
$ADPassword = 'Pass'
$ADPassword = $ADPassword | ConvertTo-SecureString -AsPlainText -Force
$ADCred = New-Object System.Management.Automation.PSCredential -ArgumentList $ADUser, $ADPassword
Add-Computer -Credential $ADCred -DomainName mydom.local -NewName testing
Restart-Computer -force
Run Code Online (Sandbox Code Playgroud)
我正在使用New-EC2Instancecmdlet 启动它并将此脚本作为 userdata 传入
我的凭据是否会出现在 aws 日志的错误输出中?或者别的地方?凭证在注入 PS 命令之前是安全的,我担心它在 AWS 中的位置。
我正在尝试编写一个powershell脚本来更改comment使用csv和的电脑列表中名为“ ”的 属性import-Csv。
这是我的脚本
$computers=Import-Csv -Path "C:\sds.csv"
foreach ($item in $computers){
Set-ADComputer -identity $computers.DistinguishedName -add @{comment="bara"}
}
Run Code Online (Sandbox Code Playgroud)
并听到我的csv文件位于"C:\sds.csv"
但它跳到这个..
尝试谷歌搜索并在这里和那里更改,但不起作用!我对power-shell脚本了解甚少,但希望学习。有人可以指导我请什么我搞砸了?
当服务器被 ping 时,结果地址将与库存进行比较,以便使库存保持最新。
我试图在下一个相应的单元格中将结果附加为“好”或“坏”。除了我设置的工作流程的结果总是“糟糕”之外,它有点工作。
CSV 包含从 Excel 清单中提取的服务器名称和 IP 地址,格式如下:
name,ipaddress
server1,10.1.24.51
server2,10.1.24.52
server3,10.1.24.53
server4,10.1.27.101
server5,10.1.27.102 <--- purposely wrong IP address for testing
Run Code Online (Sandbox Code Playgroud)
当前脚本:
$serverlist = Import-Csv -Path file.csv
ForEach ($server in $serverlist) {
$thisservername = $server.name
$thisserveripaddress = $server.ipaddress
$pingdaddress = (Test-Connection -ComputerName $thisservername -Count 1 -ErrorAction SilentlyContinue -Verbose).IPV4Address.IPAddressToString
if ($pingdaddress -ne $thisserveripaddress) {
#$thisservername + " bad"
$serverlist | Select-Object name,ipaddress, @{Name='connection';Expression={'bad'}} | `
Export-Csv -Path file.csv -NoTypeInformation
} else {
#$thisservername + " good"
$serverlist | Select-Object …Run Code Online (Sandbox Code Playgroud) 目前我有一个 4 节点的 S2D 集群,我们将在几天内将其发送给我们的客户。之前需要做一些存储基准测试,之前找到了一篇关于压力测试的文章——VM Fleet https://www.starwindsoftware.com/blog/deploy-vm-fleet-to-benchmark-your-storage-system。
目前我正在尝试允许 PowerShell 使用 VM Fleet 脚本,但得到
Windows PowerShell 成功更新了您的执行策略,但该设置被在更具体范围内定义的策略覆盖
并且政策没有变化。我错过了什么吗?
此外,在所有集群节点上都执行了基准测试,我如何从 4 个节点中选择 3 个?
我正在制作一个脚本来获取 Outlook 中的帐户。为此,我检索 .pst 和 .ost 文件。但是如果没有任何文件,我想写一个类似“没有找到文件”的输出这是我的代码:
get-childitem -path C:\users\*\AppData\Local\Microsoft\Outlook* -recurse -force -dept 1 -include *.ost, *.pst | select-object fullname, @{name='Size_MB';expression={$_.length /1MB -as [int]}}, lastwritetime | Sort-Object -Property Size_MB -Descending | out-file c:\test.txt
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西,但没有任何效果......知道吗?
非常感谢!
我试图做一个powershell脚本来读取一个带有参数的文件:
带有参数 ( params.ini) 的文件:
[domain]
domain="google.com"
[port]
port="80"
Run Code Online (Sandbox Code Playgroud)
读取文件的 Powershell 脚本:
Get-Content "params.ini" | ForEach-Object -Begin {$settings=@{}} -Process {$store = [regex]::split($_,'='); if(($store[0].CompareTo("") -ne 0) -and ($store[0].StartsWith("[") -ne $True) -and ($store[0].StartsWith("#") -ne $True)) {$settings.Add($store[0], $store[1])}}
$Param1 = $settings.Get_Item("domain")
$Param2 = $settings.Get_Item("port")
# Displaying the parameters
Write-Host "Domain: $Param1";
Write-Host "Port: $Param2";
Run Code Online (Sandbox Code Playgroud)
但我希望通过参数读取文件。例如:
> scriptExample.ps1 -file C:\params.ini
Run Code Online (Sandbox Code Playgroud)
我应该应用哪些更改?
使用 PowerShell,我可以获得所有(当前进程)环境变量并对其进行格式化和排序:
gci env: | %{"{0}={1}" -f $_.Name,$_.Value} | sort
Run Code Online (Sandbox Code Playgroud)
这使:
a=foo
b=bar
c=baz
Run Code Online (Sandbox Code Playgroud)
但这给出了所有流程变量,我只想要用户变量,所以我这样做:
[Environment]::GetEnvironmentVariables("User") | %{"{0}={1}" -f $_.Name,$_.Value} | sort
Run Code Online (Sandbox Code Playgroud)
但这仅输出:
=
Run Code Online (Sandbox Code Playgroud)
该[Environment]::GetEnvironmentVariables("User")作品的东西之后是问题。